《办公室日常信息管理系统数据库课程设计报告统.docx》由会员分享,可在线阅读,更多相关《办公室日常信息管理系统数据库课程设计报告统.docx(33页珍藏版)》请在三一办公上搜索。
1、办公室日常信息管理系统数据库课程设计报告统办公室日常信息管理系统 1需求分析: 11业务流程分析: 系统管理员的功能包括如下几个方面:文件信息管理、考勤信息管理、会议记录管理、通知公告管理 办公管理系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询的操作上,包括通知公告信息,文件信息。 文件信息:文件编号,文件名称,文件类型,存储位置 考勤信息:员工编号,时间,姓名,性别,出勤情况 会议记录:会议编号,会议时间,参会人,记录人,会议内容 通知公告:公告编号,内容,通知人,公告时间 用户管理:用户以合法身份登入系统后,管理员可以进行系统用户的添加,密码的修改操作。 文件信息管理:办公室
2、管理员可以在文件信息管理模块对办公室线路信息进行管理。管理员首先建立办公室文件信息数据库,输入原始的文件信息,当有新的文件需要添加或者需要对已有的文件信息进行修改,删除的时候,管理员就可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的文件的详细信息。 考勤信息管理:管理员可以在考勤信息管理模块实现对考勤信息的管理。管理员首先应该建立考勤信息数据库,输入原始的数据信息,当有新的考勤信息的时候或者管理员需要修改某个考勤的相关信息以及想要删除某个考勤信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查寻相关考勤信息。 会议记录管理:管理员可以在会议记录管理模块实现对会议记录信息
3、的管理。管理员根据相应的会议记录来设置相应的会议记录详细信息。当有新的会议记录添加的时候,要把相应的会议记录信息添加到数据库中,管理员还可以对某条会议记录信息进行修改,删除和查询操作。 通知公告管理:管理员可以在通知公告管理模块实现对通知公告信息的管理。管理员根据相应的通知公告来设置相应的通知公告详细信息。当有新的通知公告添加的时候,要把相应的通知公告信息添加到数据库中,管理员还可以对某条通知公告信息进行修改,删除和查询操作。 12 功能分析: 程序分为登陆界面,选择界面,文件信息界面,考勤信息界面,会议记录信息,通知公告信息用户注册界面这几个主体界面。使用时应先知道管理员帐号和密码,登陆进入
4、系统主菜单界面,里面包括文件信息,考勤信息,会议记录信息,通知公告,用户注册,退出程序菜单选项。需要特别说明的是,当对数据进行操作时,在查询框内输入提示数据内容,对话框的表中和提示栏中都会出现所查询的数据,我们可以在提示栏中对数据进行删除和修改操作。 办公室日常信息管理 登陆系统 文件管理 考勤管理 公告通知 会议记录 退出系统 查询文件信息 修改文件信息 打印文件信息 查询考勤信息 修改考勤信息 打印考勤信息 查询公告通知 修改公告通知 打印公告通知 查询会议记录 修改会议记录 打印会议记录 图1:办公室日常管理系统功能模块图 13 数据流图和数据字典 131 数据流图 数据流图就是从数据的
5、角度描述系统的组成及组成之间的联系,将业务工作流程以一种明确而又易于理解的形式表示出来。 数据流图有四个基本构成成分: 数据流:即流动的数据,代表信息流过的通道。用带箭头的直线表示,直线上方表明数据流的名称,箭头代表数据流流动方向。 加工或处理:处理是对进入的数据流进行特定加工的过程,数据流被处理后将产生新的数据流。用圆圈表示,圆圈内注明处理的名称。 文件或数据存储:数据流图中的文件代表一种数据的暂存场所,可对其进行存取操作。用一侧带有双线的方框表示,并在其内注明文件或数据存储的名称。 外部实体:用以说明数据的来源和归宿,即表示数据的原点和终点。用方框表示,并在其内注明相应的名称。 文件数据
6、输入 文件记录 各种查询 员工数据 输入 员工信息记录 各种报表 管理员 公告通知 输入 公告通知数据 会议信息 输入 会议记录 图2:办公室日常管理系统流图 132数据字典 数据字典表达了数据和处理过程的关系。在SA方法中,处理过程的处理活动常常借助于判定表或判定树来描述。系统中的数据则借助数据字典来描述。 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程、外部项等六个部分。 属性名 文件编号 文件名称 文件类型 存储位置 列名 WNo WName WType WP
7、lace 文件信息表 数据类型 主键 int 是 char 否 char 否 char 否 考勤信息表 数据类型 主键 int Char char char char 会议记录表 是 否 否 否 否 是否允许空 否 属性名 员工编号 姓名 性别 时间 出勤情况 列名 YNo YName Sex YTime YC 是否空 否 属性名 会议编号 会议时间 会议内容 参会人 记录人 列名 MNo MTime MContent MPeople MRecorder 数据类型 int char char char char 公告通知表 主键 是 否 否 否 否 是否空 否 属性名 公告编号 公告内容 公告
8、时间 通知人 列名 GNo GContent GTime GPeople 数据类型 int char Char char 主键 是 否 否 否 是否空 否 2概念结构设计 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。描述概念模型的有力工具是E-R图。由于E-R图提供了人们对数据模型的描述,它即标准、规范,又直观、具体,从而使得E-R图成为应用最广泛的数据库概念设计工具。 文件编号 文件类型 文件名称 存放位置 文件管理 管理 管理员 管理 管理 管理 考勤管理 公告通知 会议记录 员工编号 姓 名 性 别 时 间 出勤情况 公告编号 公告内容 公告时间 通
9、知人 会议编号 会议时间 会议内容 参会人 记录人 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性别+tt时间+tt出勤情况); public static void gg System.out.println(公告编号+t公告内容+t公告时间+t通知人); public static
10、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; try Connection con = DriverManager.getConnection(jdbc:odbc:OA, sa, ); Statemen
11、t stmt = con.createStatement; int z=1; while(z!=0) System.out.println(1.查询2.插入3.更新4.删除); System.out.println(请选择:); int x=0; 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.文件信息
12、查询2.考勤信息查询3.公告通知查询4.会议记录查询); System.out.println(请选择:); int i=0; try BufferedReader 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
13、.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.g
14、etString(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
15、=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.get
16、String(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); catch(IOException ex) if(m=1) String c1=,c2=
17、,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 BufferedReader(new InputStreamReader(System.in); c1=br.readLine; catch(IOExcep
18、tion 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 BufferedReader(new InputStre
19、amReader(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);PreparedStatement pstmt2=con.prepareSta
20、tement(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.prepareSt
21、atement(select * from Memo 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(IOException ex) System.out.println(c1=+c1); System.out.println(输入
22、你要插入的姓名:); 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 BufferedReader(new InputStreamReader(System.in); c3=br.readLine; catch(IOException ex) Sys
23、tem.out.println(c3=+c3); /ResultSet rs2=pstmt1.executeQuery; System.out.println(输入你要插入的时间:); try BufferedReader br=new BufferedReader(new InputStreamReader(System.in); c4=br.readLine; catch(IOException ex) System.out.println(c4=+c4); System.out.println(输入你要插入的出勤情况:); try BufferedReader br=new Buffer
24、edReader(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.setStrin
25、g(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(输入
26、你要插入的会议编号:); try BufferedReader 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)
27、 System.out.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); System.out.println(输入你要插入的参会人:); try BufferedReader br=new BufferedReader(new InputStreamReader(
28、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(c5=+c5); PreparedStatement pstmt2=con.prepareStatement(in
29、sert 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=
30、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(IOException ex) System.out.println(c1=+c1); Syste
31、m.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 BufferedReader(new InputStreamReader(System.in); c3=br.readLine; catch
32、(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); PreparedStatement pstmt2=con.prepareStatement(insert into gg values(?,?,?,?); pst
33、mt2.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; try BufferedReader
34、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(选择你要修改文件的编号:); try BufferedReader br=new BufferedReader(new InputStreamReader(System.in); m11=br.readLine; catch(IOException ex
35、) 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.存储位置); try BufferedReader br=new BufferedReader(new InputStreamReader(System.in); m12=Integer.parseInt(
36、br.readLine); catch(IOException ex) if(m12=1)System.out.println( 输入你修改后的值:); try BufferedReader 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.setSt
37、ring(1,m13); pstmt3.setString(2,m11); pstmt3.executeUpdate; System.out.println(修改成功!); if(m12=2)System.out.println( 输入你修改后的值:); try BufferedReader br=new BufferedReader(new InputStreamReader(System.in); m13=br.readLine; catch(IOException ex) pstmt31.close; PreparedStatement pstmt3=con.prepareStateme
38、nt(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( 输入你修改后的值:); try BufferedReader 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,m13); /pstmt3.setint(2,m11); pstmt3.setString(2,m11); pstmt3.executeUpdate; System.out.println(修改成功!); rs3.close; /pstmt3.close;