1、办公室日常信息管理系统 1.需求分析: 1.1业务流程分析: 系统管理员的功能包括如下几个方面:文件信息管理、考勤信息管理、会议记录管理、通知公告管理 办公管理系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询的操作上,包括通知公告信息,文件信息。 文件信息:文件编号,文件名称,文件类型,存储位置 考勤信息:员工编号,时间,姓名,性别,出勤情况 会议记录:会议编号,会议时间,参会人,记录人,会议内容 通知公告:公告编号,内容,通知人,公告时间 用户管理:用户以合法身份登入系统后,管理员可以进行系统用户的添加,密码的修改操作。 文件信息管理:办公室管理员可以在文件信
2、息管理模块对办公室线路信息进行管理。管理员首先建立办公室文件信息数据库,输入原始的文件信息,当有新的文件需要添加或者需要对已有的文件信息进行修改,删除的时候,管理员就可以进行相应的操作.管理员也可以通过本模块查询到所有需要查询的文件的详细信息。 考勤信息管理:管理员可以在考勤信息管理模块实现对考勤信息的管理。管理员首先应该建立考勤信息数据库,输入原始的数据信息,当有新的考勤信息的时候或者管理员需要修改某个考勤的相关信息以及想要删除某个考勤信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查寻相关考勤信息. 会议记录管理:管理员可以在会议记录管理模块实现对会议记录信息的管理。管理员
3、根据相应的会议记录来设置相应的会议记录详细信息。当有新的会议记录添加的时候,要把相应的会议记录信息添加到数据库中,管理员还可以对某条会议记录信息进行修改,删除和查询操作。 通知公告管理:管理员可以在通知公告管理模块实现对通知公告信息的管 理。管理员根据相应的通知公告来设置相应的通知公告详细信息.当有新的通知公告添加的时候,要把相应的通知公告信息添加到数据库中,管理员还可以对某条通知公告信息进行修改,删除和查询操作。 1.2 功能分析: 程序分为登陆界面,选择界面,文件信息界面,考勤信息界面,会议记录信息,通知公告信息用户注册界面这几个主体界面.使用时应先知道管理员帐号和密码,登陆进入系
4、统主菜单界面,里面包括文件信息,考勤信息,会议记录信息,通知公告,用户注册,退出程序菜单选项。需要特别说明的是,当对数据进行操作时,在查询框内输入提示数据内容,对话框的表中和提示栏中都会出现所查询的数据,我们可以在提示栏中对数据进行删除和修改操作。 图1:办公室日常管理系统功能模块图 1。3 数据流图和数据字典 1.3.1 数据流图 数据流图就是从数据的角度描述系统的组成及组成之间的联系,将业务工作流程以一种明确而又易于理解的形式表示出来。 数据流图有四个基本构成成分: (1 数据流:即流动的数据,代表信息流过的通道。用带箭头的直线 表示,直线上方表明数据流的名称,箭头代表
5、数据流流动方向。 (2 加工或处理:处理是对进入的数据流进行特定加工的过程,数据 流被处理后将产生新的数据流。用圆圈表示,圆圈内注明处理的 名称。 (3 文件或数据存储:数据流图中的文件代表一种数据的暂存场所, 可对其进行存取操作。用一侧带有双线的方框表示,并在其内注 明文件或数据存储的名称。 (4 外部实体:用以说明数据的来源和归宿,即表示数据的原点和终 点。用方框表示,并在其内注明相应的名称。 图2:办公室日常管理系统流图 1。3。2数据字典 数据字典表达了数据和处理过程的关系。在SA方法中,处理过程的处理活动常常借助于判定表或判定树来描述。系统中的数据则借助数
6、据字典来描述. 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程、外部项等六个部分。 文件信息表 属性名列名数据类型主键是否允许空 文件编号 WNo int 是否 文件名称 WName char 否 文件类型 WType char 否 存储位置 WPlace char 否 考勤信息表 属性名列名数据类型主键是否空 员工编号 YNo int 是否 Char 否 姓名 YName 性别 Sex char 否 时间 YTime char 否 出
7、勤情况 YC char 否 会议记录表 属性名列名数据类型主键是否空 会议编号 MNo int 是否 会议时间 MTime char 否 会议内容 MContent char 否 参会人 MPeople char 否 char 否 记录人 MRecorder 公告通知表 属性名列名数据类型主键是否空 公告编号 GNo int 是否 公告内容 GContent char 否 公告时间 GTime Char 否 通知人 GPeople char 否 2。概念结构设计 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。描述概念模型的有力
8、工具是E—R图。由于E-R图提供了人们对数据模型的描述,它即标准、规范,又直观、具体,从而使得E-R图成为应用最广泛的数据库概念设计工具. E—R图 源程序 import java。sql。*; import java.io.*; public class OA { public static void wj( { System。out。println(”文件编号"+"\t文件名称"+"\t文件类型”+"\t存储位置"; } public static void kq( { System。out。println("员工编号”+"姓名”+"\t性别"+”\t\t时
9、间”+”\t\t出勤情况"; } public static void gg( { System。out.println("公告编号"+”\t公告内容"+"\t公告时间"+"\t通知人”; } public static void hy( { System.out.println(”会议编号"+"会议内容”+”\t会议时间"+"\t参会人”+"\t\t记录人"; } public static void main(String[]args { try { Class.forName(”sun。jdbc。odbc。JdbcOdbcDriver”; }catch(Ex
10、ception e{ System.out.println("JDBC-ODBC driver failed to load。"; return; } try { Connection 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
11、 try { BufferedReader 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; try{ BufferedReader br=new BufferedRea
12、der(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"; Strin
13、g d=rs。getString(”WPlace”; System.out.println(a+”\t\t"+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”; St
14、ring 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(”GPe
15、ople”; System.out。println(a+”\t\t”+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”; S
16、tring 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; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; m=Integer。parseInt(br.readLine(; }c
17、atch(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(”输入你要插入的文件编号:"; try{ BufferedReader br=new BufferedRe
18、ader(new InputStreamReader(System。in; c1=br.readLine(; }catch(IOException ex{} System。out。println("c1="+c1; System.out。println(”输入你要插入的文件名称:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; c2=br.readLine(; }catch(IOException ex{} System。out.println("c2="+c2; Sy
19、stem.out.println("输入你要插入的文件种类:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; c3=br。readLine(; }catch(IOException ex{} System。out.println("c3=”+c3; System.out.println(”输入你要插入的存储位置:”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; c4=
20、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("插入成功!”; pst
21、mt2.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("输入你要插入的员工编号:”; try{ BufferedR
22、eader br=new BufferedReader(new InputStreamReader(System.in; c1=br。readLine(; }catch(IOException ex{} System。out.println("c1="+c1; System。out.println("输入你要插入的姓名:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; c2=br。readLine(; }catch(IOException ex{} System。out。
23、println("c2=”+c2; System.out.println("输入你要插入的性别:”; try{ BufferedReader 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(”输入你要插入的时间:"; try{ BufferedReader br=
24、new BufferedReader(new InputStreamReader(System.in; c4=br。readLine(; }catch(IOException ex{} System。out.println("c4=”+c4; System.out.println("输入你要插入的出勤情况:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; c5=br。readLine(; }catch(IOException ex{} System。out.println
25、"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(;
26、 //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(”输入你要插入的会议编号:”; try{ BufferedReader br=new BufferedReader(
27、new InputStreamReader(System。in; c1=br.readLine(; }catch(IOException ex{} System.out。println(”c1="+c1; System.out。println(”输入你要插入的会议时间:”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; c2=br.readLine(; }catch(IOException ex{} System。out.println(”c2="+c2; System.
28、out。println("输入你要插入的会议内容:”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; c3=br。readLine(; }catch(IOException ex{} System。out。println("c3=”+c3; System。out。println(”输入你要插入的参会人:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; c4=br.rea
29、dLine(; }catch(IOException ex{} System.out。println(”c4="+c4; System。out。println(”输入你要插入的记录人:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; c5=br.readLine(; }catch(IOException ex{} System.out。println(”c5="+c5; PreparedStatement pstmt2=con.prepareStatement(”ins
30、ert 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=”";
31、//PreparedStatement pstmt1=con。prepareStatement(”select * from Finance where Uname=?"; //pstmt1.setString(1,c1; //ResultSet rs2=pstmt1。executeQuery(; System.out.println(”输入你要插入的公告编号:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; c1=br。readLine(; }catch(IOExcept
32、ion ex{} System。out.println("c1=”+c1; System.out.println("输入你要插入的公告内容:”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; c2=br。readLine(; }catch(IOException ex{} System。out.println(”c2=”+c2; System.out.println("输入你要插入的公告时间:”; try{ BufferedReader br=new BufferedRe
33、ader(new InputStreamReader(System.in; c3=br。readLine(; }catch(IOException ex{} System.out。println(”c3=”+c3; System。out.println("输入你要插入的通知人:”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; c4=br。readLine(; }catch(IOException ex{} System.out。println("c4=”+c4; Pre
34、paredStatement 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
35、out。println("1.文件信息修改2。考勤信息修改3. 会议记录修改4.公告通知修改”; System。out.println("请选择:”; int m=0; try{ BufferedReader 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("选择你要修
36、改文件的编号:”; try{ BufferedReader 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.o
37、ut.println("输入你要修改的项:1。文件名称2。文件种类3.存储位置”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; m12=Integer。parseInt(br。readLine(; }catch(IOException ex{} if(m12==1{System.out.println(” 输入你修改后的值:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in;
38、 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(” 输入你修改后的值:”; tr
39、y{ BufferedReader 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; pstmt
40、3。executeUpdate(; System.out.println(”修改成功!"; rs3。close(; //pstmt3。close(; } if(m12==3{System.out.println(" 输入你修改后的值:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; m13=br。readLine(; }catch(IOException ex{} pstmt31.close(; PreparedStatement pstmt3=con。prepar
41、eStatement(”Update wj set WPlace=? where WNo=?”; pstmt3。setString(1,m13; //pstmt3。setint(2,m11; pstmt3。setString(2,m11; pstmt3.executeUpdate(; System。out。println(”修改成功!”; rs3。close(; //pstmt3.close(; } } else{System。out。println(”你要更改的项不存在!";} } if(m==2{ String m11="”;String m13="”;int m
42、12=0; System。out.println(”选择你要修改员工编号:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; m11=br。readLine(; }catch(IOException ex{} PreparedStatement pstmt31=con。prepareStatement("select * from kq where YNo=?”; pstmt31.setString(1,m11; ResultSet rs3=pstmt31。executeQ
43、uery(; if(rs3。next({ System.out。println(”输入你要修改的项:1。员工姓名2。性别3。时间4.出勤情况”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; m12=Integer。parseInt(br.readLine(; }catch(IOException ex{} if(m12==1{System.out.println(” 输入你修改后的值:"; try{ BufferedReader br=new BufferedReade
44、r(new InputStreamReader(System。in; m13=br.readLine(; }catch(IOException ex{} pstmt31.close(; PreparedStatement pstmt3=con。prepareStatement(”Update kq set YName=? where YNo=?"; pstmt3.setString(1,m13; pstmt3.setString(2,m11; pstmt3.executeUpdate(; System.out.println("修改成功!”; } if(m12==2{Sy
45、stem。out。println(" 输入你修改后的值:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; m13=br。readLine(; }catch(IOException ex{} pstmt31.close(; PreparedStatement pstmt3=con.prepareStatement("Update kq set Sex=? where YNo=?"; pstmt3。setString(1,m13; //pstmt3.setint(2,m11;
46、 pstmt3.setString(2,m11; pstmt3.executeUpdate(; System.out.println(”修改成功!”; rs3。close(; //pstmt3。close(; } if(m12==3{System。out。println(” 输入你修改后的值:”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; m13=br.readLine(; }catch(IOException ex{} pstmt31.close(; Prep
47、aredStatement pstmt3=con.prepareStatement(”Update kq set YTime=? where YNo=?"; pstmt3。setString(1,m13; //pstmt3.setint(2,m11; pstmt3。setString(2,m11; pstmt3.executeUpdate(; System.out。println("修改成功!"; rs3。close(; } if(m12==4{System。out。println(” 输入你修改后的值:”; try{ BufferedReader br=new Buff
48、eredReader(new InputStreamReader(System。in; m13=br。readLine(; }catch(IOException ex{} pstmt31。close(; PreparedStatement pstmt3=con。prepareStatement(”Update kq set YC=? where YNo=?"; pstmt3。setString(1,m13; //pstmt3。setint(2,m11; pstmt3.setString(2,m11; pstmt3。executeUpdate(; System.out.pri
49、ntln(”修改成功!"; rs3。close(; } } else{System。out.println("你要更改的项不存在!”;} } if(m==3{ String m11="";String m13=””;int m12=0; System.out.println(”选择你要修改会议编号:"; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in; m11=br.readLine(; }catch(IOException ex{} PreparedStatement
50、 pstmt31=con.prepareStatement("select * from hy where MNo=?"; pstmt31。setString(1,m11; ResultSet rs3=pstmt31.executeQuery(; if(rs3.next({ System.out。println(”输入你要修改的项:1.会议时间2.会议内容3.参会人4.记录人”; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System。in; m12=Integer.parseInt(br。r






