办公室日常信息管理系统数据库课程设计报告[1]---副本.doc
办公室日常信息管理系统1需求分析:11业务流程分析:系统管理员的功能包括如下几个方面:文件信息管理、考勤信息管理、会议记录管理、通知公告管理办公管理系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询的操作上,包括通知公告信息,文件信息。文件信息:文件编号,文件名称,文件类型,存储位置考勤信息:员工编号,时间,姓名,性别,出勤情况会议记录:会议编号,会议时间,参会人,记录人,会议内容通知公告:公告编号,内容,通知人,公告时间用户管理:用户以合法身份登入系统后,管理员可以进行系统用户的添加,密码的修改操作。文件信息管理:办公室管理员可以在文件信息管理模块对办公室线路信息进行管理。管理员首先建立办公室文件信息数据库,输入原始的文件信息,当有新的文件需要添加或者需要对已有的文件信息进行修改,删除的时候,管理员就可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的文件的详细信息。考勤信息管理:管理员可以在考勤信息管理模块实现对考勤信息的管理。管理员首先应该建立考勤信息数据库,输入原始的数据信息,当有新的考勤信息的时候或者管理员需要修改某个考勤的相关信息以及想要删除某个考勤信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查寻相关考勤信息。会议记录管理:管理员可以在会议记录管理模块实现对会议记录信息的管理。管理员根据相应的会议记录来设置相应的会议记录详细信息。当有新的会议记录添加的时候,要把相应的会议记录信息添加到数据库中,管理员还可以对某条会议记录信息进行修改,删除和查询操作。通知公告管理:管理员可以在通知公告管理模块实现对通知公告信息的管理。管理员根据相应的通知公告来设置相应的通知公告详细信息。当有新的通知公告添加的时候,要把相应的通知公告信息添加到数据库中,管理员还可以对某条通知公告信息进行修改,删除和查询操作。12 功能分析:程序分为登陆界面,选择界面,文件信息界面,考勤信息界面,会议记录信息,通知公告信息用户注册界面这几个主体界面。使用时应先知道管理员帐号和密码,登陆进入系统主菜单界面,里面包括文件信息,考勤信息,会议记录信息,通知公告,用户注册,退出程序菜单选项。需要特别说明的是,当对数据进行操作时,在查询框内输入提示数据内容,对话框的表中和提示栏中都会出现所查询的数据,我们可以在提示栏中对数据进行删除和修改操作。办公室日常信息管理登陆系统文件管理考勤管理公告通知会议记录退出系统查询文件信息修改文件信息打印文件信息查询考勤信息修改考勤信息打印考勤信息查询公告通知修改公告通知打印公告通知查询会议记录修改会议记录打印会议记录图1:办公室日常管理系统功能模块图13 数据流图和数据字典131 数据流图数据流图就是从数据的角度描述系统的组成及组成之间的联系,将业务工作流程以一种明确而又易于理解的形式表示出来。数据流图有四个基本构成成分:(1) 数据流:即流动的数据,代表信息流过的通道。用带箭头的直线表示,直线上方表明数据流的名称,箭头代表数据流流动方向。(2) 加工或处理:处理是对进入的数据流进行特定加工的过程,数据流被处理后将产生新的数据流。用圆圈表示,圆圈内注明处理的名称。(3) 文件或数据存储:数据流图中的文件代表一种数据的暂存场所,可对其进行存取操作。用一侧带有双线的方框表示,并在其内注明文件或数据存储的名称。(4) 外部实体:用以说明数据的来源和归宿,即表示数据的原点和终点。用方框表示,并在其内注明相应的名称。文件数据输入文件记录员工数据输入员工信息记录公告通知输入公告通知数据会议信息输入会议记录各种查询各种报表管理员图2:办公室日常管理系统流图132数据字典数据字典表达了数据和处理过程的关系。在SA方法中,处理过程的处理活动常常借助于判定表或判定树来描述。系统中的数据则借助数据字典来描述。数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程、外部项等六个部分。文件信息表属性名列名数据类型主键是否允许空文件编号WNoint是否文件名称WNamechar否文件类型WTypechar否存储位置WPlacechar否考勤信息表属性名列名数据类型主键是否空员工编号YNoint是否姓名YNameChar否性别Sexchar否时间YTimechar否出勤情况YCchar否会议记录表属性名列名数据类型主键是否空会议编号MNoint是否会议时间MTimechar否会议内容MContentchar否参会人MPeoplechar否记录人MRecorderchar否公告通知表属性名列名数据类型主键是否空公告编号GNoint是否公告内容GContentchar否公告时间GTimeChar否通知人GPeoplechar否2概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。描述概念模型的有力工具是E-R图。由于E-R图提供了人们对数据模型的描述,它即标准、规范,又直观、具体,从而使得E-R图成为应用最广泛的数据库概念设计工具。管理员文件管理文件编号管理文件类型文件名称存放位置考勤管理公告通知会议记录管理员工编号姓 名性 别时 间出勤情况公告编号公告内容公告时间通知人会议编号会议时间会议内容参会人记录人管理管理E-R图源程序import java.sql.*;import java.io.*;public class OApublic static void wj() System.out.println("文件编号"+"t文件名称"+"t文件类型"+"t存储位置"); public static void kq() System.out.println("员工编号"+"姓名"+"t性别"+"tt时间"+"tt出勤情况");public static void gg()System.out.println("公告编号"+"t公告内容"+"t公告时间"+"t通知人");public static void hy()System.out.println("会议编号"+"会议内容"+"t会议时间"+"t参会人"+"tt记录人");public static void main(Stringargs)try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(Exception e)System.out.println("JDBC-ODBC driver failed to load.");return;tryConnection con = DriverManager.getConnection("jdbc:odbc:OA", "sa", "");Statement stmt = con.createStatement();int z=1;while(z!=0)System.out.println("1.查询2.插入3.更新4.删除");System.out.println("请选择:");int x=0;tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);x=Integer.parseInt(br.readLine();catch(IOException ex)if(x=5) z=0;if(x=1)System.out.println("1.文件信息查询2.考勤信息查询3.公告通知查询4.会议记录查询");System.out.println("请选择:");int i=0;tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);i=Integer.parseInt(br.readLine();catch(IOException ex)if(i=1)ResultSet rs=stmt.executeQuery("select WNo,WName,WType,WPlace from wj");wj();while(rs.next()int a=rs.getInt("WNo");String b=rs.getString("WName");String c=rs.getString("WType");String d=rs.getString("WPlace");System.out.println(a+"tt"+b+c+d);if(i=2)ResultSet rs=stmt.executeQuery("select YNo,YName,Sex,YTime,YC from kq");kq();while(rs.next()int a=rs.getInt("YNo");String b=rs.getString("YName");String c=rs.getString("Sex");String d=rs.getString("YTime");String e=rs.getString("YC");System.out.println(a+"t"+b+c+d+e);if(i=3)ResultSet rs=stmt.executeQuery("select GNo,GContent,GTime,GPeople from gg");gg();while(rs.next()int a=rs.getInt("GNo");String b=rs.getString("GContent");String c=rs.getString("GTime");String d=rs.getString("GPeople");System.out.println(a+"tt"+b+c+d);if(i=4)ResultSet rs=stmt.executeQuery("select MNo,MTime,MContent,MPeople,MRecorder from hy");hy();while(rs.next()int a=rs.getInt("MNo");String b=rs.getString("MTime");String c=rs.getString("MContent");String d=rs.getString("MPeople");String e=rs.getString("MRecorder");System.out.println(a+"t"+b+c+d+e);if(x=2)System.out.println("1.文件信息插入2.考勤信息插入3会议记录插入4.公告通知插入");System.out.println("请选择:");int m=0;tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);m=Integer.parseInt(br.readLine();catch(IOException ex)if(m=1)String c1="",c2="",c3="",c4=""/PreparedStatement pstmt1=con.prepareStatement("select * from Communication where Uname=?");/pstmt1.setString(1,c1);/ResultSet rs2=pstmt1.executeQuery();System.out.println("输入你要插入的文件编号:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c1=br.readLine();catch(IOException ex)System.out.println("c1="+c1);System.out.println("输入你要插入的文件名称:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c2=br.readLine();catch(IOException ex)System.out.println("c2="+c2);System.out.println("输入你要插入的文件种类:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c3=br.readLine();catch(IOException ex)System.out.println("c3="+c3);System.out.println("输入你要插入的存储位置:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c4=br.readLine();catch(IOException ex)System.out.println("c4="+c4);PreparedStatement pstmt2=con.prepareStatement("insert into wj values(?,?,?,?)");pstmt2.setString(1,c1);pstmt2.setString(2,c2);pstmt2.setString(3,c3);pstmt2.setString(4,c4);pstmt2.executeUpdate();System.out.println("插入成功!");pstmt2.close();/pstmt1.close();/rs2.close();if(m=2)String c1="",c2="",c3="",c4="",c5=""/PreparedStatement pstmt1=con.prepareStatement("select * from Memo where Uname=?");/pstmt1.setString(1,c1);/ResultSet rs2=pstmt1.executeQuery();System.out.println("输入你要插入的员工编号:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c1=br.readLine();catch(IOException ex)System.out.println("c1="+c1);System.out.println("输入你要插入的姓名:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c2=br.readLine();catch(IOException ex)System.out.println("c2="+c2);System.out.println("输入你要插入的性别:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c3=br.readLine();catch(IOException ex)System.out.println("c3="+c3);/ResultSet rs2=pstmt1.executeQuery();System.out.println("输入你要插入的时间:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c4=br.readLine();catch(IOException ex)System.out.println("c4="+c4);System.out.println("输入你要插入的出勤情况:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c5=br.readLine();catch(IOException ex)System.out.println("c5="+c5);PreparedStatement pstmt2=con.prepareStatement("insert into kq values(?,?,?,?,?)");pstmt2.setString(1,c1);pstmt2.setString(2,c2);pstmt2.setString(3,c3);pstmt2.setString(4,c4);pstmt2.setString(5,c5);pstmt2.executeUpdate();System.out.println("插入成功!");pstmt2.close();/pstmt1.close();/rs2.close();if(m=3)String c1="",c2="",c3="",c4="",c5=""/PreparedStatement pstmt1=con.prepareStatement("select * from Diary where Uname=?");/pstmt1.setString(1,c1);/ResultSet rs2=pstmt1.executeQuery();System.out.println("输入你要插入的会议编号:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c1=br.readLine();catch(IOException ex)System.out.println("c1="+c1);System.out.println("输入你要插入的会议时间:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c2=br.readLine();catch(IOException ex)System.out.println("c2="+c2);System.out.println("输入你要插入的会议内容:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c3=br.readLine();catch(IOException ex)System.out.println("c3="+c3);System.out.println("输入你要插入的参会人:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c4=br.readLine();catch(IOException ex)System.out.println("c4="+c4);System.out.println("输入你要插入的记录人:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c5=br.readLine();catch(IOException ex)System.out.println("c5="+c5);PreparedStatement pstmt2=con.prepareStatement("insert into hy values(?,?,?,?,?)");pstmt2.setString(1,c1);pstmt2.setString(2,c2);pstmt2.setString(3,c3);pstmt2.setString(4,c4);pstmt2.setString(5,c5);pstmt2.executeUpdate();System.out.println("插入成功!");pstmt2.close();/pstmt1.close();/rs2.close();if(m=4)String c1="",c2="",c3="",c4=""/PreparedStatement pstmt1=con.prepareStatement("select * from Finance where Uname=?");/pstmt1.setString(1,c1);/ResultSet rs2=pstmt1.executeQuery();System.out.println("输入你要插入的公告编号:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c1=br.readLine();catch(IOException ex)System.out.println("c1="+c1);System.out.println("输入你要插入的公告内容:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c2=br.readLine();catch(IOException ex)System.out.println("c2="+c2);System.out.println("输入你要插入的公告时间:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c3=br.readLine();catch(IOException ex)System.out.println("c3="+c3);System.out.println("输入你要插入的通知人:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);c4=br.readLine();catch(IOException ex)System.out.println("c4="+c4);PreparedStatement pstmt2=con.prepareStatement("insert into gg values(?,?,?,?)");pstmt2.setString(1,c1);pstmt2.setString(2,c2);pstmt2.setString(3,c3);pstmt2.setString(4,c4);pstmt2.executeUpdate();pstmt2.close();System.out.println("插入成功!");/pstmt1.close();/rs2.close();if(x=3)System.out.println("1.文件信息修改2.考勤信息修改3. 会议记录修改4.公告通知修改");System.out.println("请选择:");int m=0;tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);m=Integer.parseInt(br.readLine();catch(IOException ex)if(m=1)String m11=""String m13=""int m12=0;System.out.println("选择你要修改文件的编号:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);m11=br.readLine();catch(IOException ex)PreparedStatement pstmt31=con.prepareStatement("select * from wj where WNo=?");pstmt31.setString(1,m11);ResultSet rs3=pstmt31.executeQuery();if(rs3.next()System.out.println("输入你要修改的项:1.文件名称2.文件种类3.存储位置");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);m12=Integer.parseInt(br.readLine();catch(IOException ex)if(m12=1)System.out.println(" 输入你修改后的值:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);m13=br.readLine();catch(IOException ex)pstmt31.close();PreparedStatement pstmt3=con.prepareStatement("Update wj set WName=? where WNo=?");pstmt3.setString(1,m13);pstmt3.setString(2,m11);pstmt3.executeUpdate();System.out.println("修改成功!");if(m12=2)System.out.println(" 输入你修改后的值:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);m13=br.readLine();catch(IOException ex)pstmt31.close();PreparedStatement pstmt3=con.prepareStatement("Update wj set WType=? where WNo=?");pstmt3.setString(1,m13);/pstmt3.setint(2,m11);pstmt3.setString(2,m11);pstmt3.executeUpdate();System.out.println("修改成功!");rs3.close();/pstmt3.close();if(m12=3)System.out.println(" 输入你修改后的值:");tryBufferedReader br=new BufferedReader(new InputStreamReader(System.in);m13=br.readLine();catch(IOException ex)pstmt31.close();PreparedStatement pstmt3=con.prepareStatement("Update wj set WPlace=? where WNo=?");pstmt3.setString(1,