办公室日常信息管理系统数据库课程设计报告.docx
《办公室日常信息管理系统数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《办公室日常信息管理系统数据库课程设计报告.docx(33页珍藏版)》请在冰豆网上搜索。
![办公室日常信息管理系统数据库课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-1/30/15b5fa99-4417-49d2-9b9b-787c015d1147/15b5fa99-4417-49d2-9b9b-787c015d11471.gif)
办公室日常信息管理系统数据库课程设计报告
办公室日常信息管理系统
1.需求分析:
1.1业务流程分析:
系统管理员的功能包括如下几个方面:
文件信息管理、考勤信息管理、会议记录管理、通知公告管理
办公管理系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询的操作上,包括通知公告信息,文件信息。
文件信息:
文件编号,文件名称,文件类型,存储位置
考勤信息:
员工编号,时间,姓名,性别,出勤情况
会议记录:
会议编号,会议时间,参会人,记录人,会议内容
通知公告:
公告编号,内容,通知人,公告时间
用户管理:
用户以合法身份登入系统后,管理员可以进行系统用户的添加,密码的修改操作。
文件信息管理:
办公室管理员可以在文件信息管理模块对办公室线路信息进行管理。
管理员首先建立办公室文件信息数据库,输入原始的文件信息,当有新的文件需要添加或者需要对已有的文件信息进行修改,删除的时候,管理员就可以进行相应的操作。
管理员也可以通过本模块查询到所有需要查询的文件的详细信息。
考勤信息管理:
管理员可以在考勤信息管理模块实现对考勤信息的管理。
管理员首先应该建立考勤信息数据库,输入原始的数据信息,当有新的考勤信息的时候或者管理员需要修改某个考勤的相关信息以及想要删除某个考勤信息的时候,就可以完成相应的操作。
管理员也可以在整个数据库中查寻相关考勤信息。
会议记录管理:
管理员可以在会议记录管理模块实现对会议记录信息的管理。
管理员根据相应的会议记录来设置相应的会议记录详细信息。
当有新的会议记录添加的时候,要把相应的会议记录信息添加到数据库中,管理员还可以对某条会议记录信息进行修改,删除和查询操作。
通知公告管理:
管理员可以在通知公告管理模块实现对通知公告信息的管理。
管理员根据相应的通知公告来设置相应的通知公告详细信息。
当有新的通知公告添加的时候,要把相应的通知公告信息添加到数据库中,管理员还可以对某条通知公告信息进行修改,删除和查询操作。
1.2功能分析:
程序分为登陆界面,选择界面,文件信息界面,考勤信息界面,会议记录信息,通知公告信息用户注册界面这几个主体界面。
使用时应先知道管理员帐号和密码,登陆进入系统主菜单界面,里面包括文件信息,考勤信息,会议记录信息,通知公告,用户注册,退出程序菜单选项。
需要特别说明的是,当对数据进行操作时,在查询框内输入提示数据内容,对话框的表中和提示栏中都会出现所查询的数据,我们可以在提示栏中对数据进行删除和修改操作。
办公室日常信息管理
登陆系统
文件管理
考勤管理
公告通知
会议记录
退出系统
查询文件信息
修改文件信息
打印文件信息
查询考勤信息
修改考勤信息
打印考勤信息
查询公告通知
修改公告通知
打印公告通知
查询会议记录
修改会议记录
打印会议记录
图1:
办公室日常管理系统功能模块图
1.3数据流图和数据字典
1.3.1数据流图
数据流图就是从数据的角度描述系统的组成及组成之间的联系,将业务工作流程以一种明确而又易于理解的形式表示出来。
数据流图有四个基本构成成分:
(1)数据流:
即流动的数据,代表信息流过的通道。
用带箭头的直线表示,直线上方表明数据流的名称,箭头代表数据流流动方向。
(2)加工或处理:
处理是对进入的数据流进行特定加工的过程,数据流被处理后将产生新的数据流。
用圆圈表示,圆圈内注明处理的名称。
(3)文件或数据存储:
数据流图中的文件代表一种数据的暂存场所,可对其进行存取操作。
用一侧带有双线的方框表示,并在其内注明文件或数据存储的名称。
(4)外部实体:
用以说明数据的来源和归宿,即表示数据的原点和终点。
用方框表示,并在其内注明相应的名称。
文件数据
输入
文件记录
员工数据
输入
员工信息记录
公告通知
输入
公告通知数据
会议信息
输入
会议记录
各种查询
各种报表
管理员
图2:
办公室日常管理系统流图
1.3.2数据字典
数据字典表达了数据和处理过程的关系。
在SA方法中,处理过程的处理活动常常借助于判定表或判定树来描述。
系统中的数据则借助数据字典来描述。
数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,在数据库设计中占有很重要的地位。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程、外部项等六个部分。
文件信息表
属性名
列名
数据类型
主键
是否允许空
文件编号
WNo
int
是
否
文件名称
WName
char
否
文件类型
WType
char
否
存储位置
WPlace
char
否
考勤信息表
属性名
列名
数据类型
主键
是否空
员工编号
YNo
int
是
否
姓名
YName
Char
否
性别
Sex
char
否
时间
YTime
char
否
出勤情况
YC
char
否
会议记录表
属性名
列名
数据类型
主键
是否空
会议编号
MNo
int
是
否
会议时间
MTime
char
否
会议内容
MContent
char
否
参会人
MPeople
char
否
记录人
MRecorder
char
否
公告通知表
属性名
列名
数据类型
主键
是否空
公告编号
GNo
int
是
否
公告内容
GContent
char
否
公告时间
GTime
Char
否
通知人
GPeople
char
否
2.概念结构设计
概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。
描述概念模型的有力工具是E-R图。
由于E-R图提供了人们对数据模型的描述,它即标准、规范,又直观、具体,从而使得E-R图成为应用最广泛的数据库概念设计工具。
管理员
文件管理
文件编号
管理
文件类型
文件名称
存放位置
考勤管理
公告通知
会议记录
管理
员工编号
姓
名
性
别
时
间
出勤情况
公告编号
公告内容
公告时间
通知人
会议编号
会议时间
会议内容
参会人
记录人
管理
管理
E-R图
源程序
importjava.sql.*;
importjava.io.*;
publicclassOA
{
publicstaticvoidwj()
{
System.out.println("文件编号"+"\t文件名称"+"\t文件类型"+"\t存储位置");
}
publicstaticvoidkq()
{
System.out.println("员工编号"+"姓名"+"\t性别"+"\t\t时间"+"\t\t出勤情况");
}
publicstaticvoidgg()
{
System.out.println("公告编号"+"\t公告内容"+"\t公告时间"+"\t通知人");
}
publicstaticvoidhy()
{
System.out.println("会议编号"+"会议内容"+"\t会议时间"+"\t参会人"+"\t\t记录人");
}
publicstaticvoidmain(String[]args)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(Exceptione){
System.out.println("JDBC-ODBCdriverfailedtoload.");
return;
}
try
{
Connectioncon=DriverManager.getConnection("jdbc:
odbc:
OA","sa","");
Statementstmt=con.createStatement();
intz=1;
while(z!
=0)
{
System.out.println("1.查询2.插入3.更新4.删除");
System.out.println("请选择:
");
intx=0;
try
{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
x=Integer.parseInt(br.readLine());
}catch(IOExceptionex){}
if(x==5)z=0;
if(x==1)
{
System.out.println("1.文件信息查询2.考勤信息查询3.公告通知查询4.会议记录查询");
System.out.println("请选择:
");
inti=0;
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
i=Integer.parseInt(br.readLine());
}catch(IOExceptionex){}
if(i==1)
{
ResultSetrs=stmt.executeQuery("selectWNo,WName,WType,WPlacefromwj");
wj();
while(rs.next())
{
inta=rs.getInt("WNo");
Stringb=rs.getString("WName");
Stringc=rs.getString("WType");
Stringd=rs.getString("WPlace");
System.out.println(a+"\t\t"+b+c+d);
}
}
if(i==2)
{
ResultSetrs=stmt.executeQuery("selectYNo,YName,Sex,YTime,YCfromkq");
kq();
while(rs.next())
{
inta=rs.getInt("YNo");
Stringb=rs.getString("YName");
Stringc=rs.getString("Sex");
Stringd=rs.getString("YTime");
Stringe=rs.getString("YC");
System.out.println(a+"\t"+b+c+d+e);
}
}
if(i==3)
{
ResultSetrs=stmt.executeQuery("selectGNo,GContent,GTime,GPeoplefromgg");
gg();
while(rs.next())
{
inta=rs.getInt("GNo");
Stringb=rs.getString("GContent");
Stringc=rs.getString("GTime");
Stringd=rs.getString("GPeople");
System.out.println(a+"\t\t"+b+c+d);
}
}
if(i==4)
{
ResultSetrs=stmt.executeQuery("selectMNo,MTime,MContent,MPeople,MRecorderfromhy");
hy();
while(rs.next())
{
inta=rs.getInt("MNo");
Stringb=rs.getString("MTime");
Stringc=rs.getString("MContent");
Stringd=rs.getString("MPeople");
Stringe=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("请选择:
");
intm=0;
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
m=Integer.parseInt(br.readLine());
}catch(IOExceptionex){}
if(m==1){
Stringc1="",c2="",c3="",c4="";
//PreparedStatementpstmt1=con.prepareStatement("select*fromCommunicationwhereUname=?
");
//pstmt1.setString(1,c1);
//ResultSetrs2=pstmt1.executeQuery();
System.out.println("输入你要插入的文件编号:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c1=br.readLine();
}catch(IOExceptionex){}
System.out.println("c1="+c1);
System.out.println("输入你要插入的文件名称:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c2=br.readLine();
}catch(IOExceptionex){}
System.out.println("c2="+c2);
System.out.println("输入你要插入的文件种类:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c3=br.readLine();
}catch(IOExceptionex){}
System.out.println("c3="+c3);
System.out.println("输入你要插入的存储位置:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c4=br.readLine();
}catch(IOExceptionex){}
System.out.println("c4="+c4);PreparedStatementpstmt2=con.prepareStatement("insertintowjvalues(?
?
?
?
)");
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){
Stringc1="",c2="",c3="",c4="",c5="";
//PreparedStatementpstmt1=con.prepareStatement("select*fromMemowhereUname=?
");
//pstmt1.setString(1,c1);
//ResultSetrs2=pstmt1.executeQuery();
System.out.println("输入你要插入的员工编号:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c1=br.readLine();
}catch(IOExceptionex){}
System.out.println("c1="+c1);
System.out.println("输入你要插入的姓名:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c2=br.readLine();
}catch(IOExceptionex){}
System.out.println("c2="+c2);
System.out.println("输入你要插入的性别:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c3=br.readLine();
}catch(IOExceptionex){}
System.out.println("c3="+c3);
//ResultSetrs2=pstmt1.executeQuery();
System.out.println("输入你要插入的时间:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c4=br.readLine();
}catch(IOExceptionex){}
System.out.println("c4="+c4);
System.out.println("输入你要插入的出勤情况:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c5=br.readLine();
}catch(IOExceptionex){}
System.out.println("c5="+c5);
PreparedStatementpstmt2=con.prepareStatement("insertintokqvalues(?
?
?
?
?
)");
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){
Stringc1="",c2="",c3="",c4="",c5="";
//PreparedStatementpstmt1=con.prepareStatement("select*fromDiarywhereUname=?
");
//pstmt1.setString(1,c1);
//ResultSetrs2=pstmt1.executeQuery();
System.out.println("输入你要插入的会议编号:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c1=br.readLine();
}catch(IOExceptionex){}
System.out.println("c1="+c1);
System.out.println("输入你要插入的会议时间:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c2=br.readLine();
}catch(IOExceptionex){}
System.ou