档案管理课程设计教职工档案管理系统.docx
《档案管理课程设计教职工档案管理系统.docx》由会员分享,可在线阅读,更多相关《档案管理课程设计教职工档案管理系统.docx(62页珍藏版)》请在冰豆网上搜索。
档案管理课程设计教职工档案管理系统
(档案管理)课程设计教职工档案管理系统
3.2系统模块结构图
3.3数据库结构设计
为了支持此职工档案管理系统,创建数据库employeemanage,在这个数据库里包含四个表:
worker表,manager表,employee表和teaching表,它们的截图如下:
在worker表中,有八个属性列,分别为:
id(职工号),wname(姓名),sex(性别),age(年龄),degree(学历),worktime(参加工作时间),salary(工资),dept(院别)。
其基本数据类型分别为:
char,char,char,int,char,char,int,char.
表1worker
在manager表中,有两个属性列,分别为:
mname(管理员姓名),password(密码)其基本数据类型分别为:
char,char。
当管理员登录系统时从此表获取数据,其截图如下:
表2manager
在employee表中,有两个属性列,分别为:
wname(职工姓名),password(密码)其基本数据类型分别为:
char,char。
当教职工登录系统时从此表获取数据,其截图如下:
表3employee
在teaching表中,有七个属性列,分别为:
id(职工号),wname(姓名),grade(年级),tmajor(教授专业),snum(学生人数),passrate(及格率),ment(教学总评)。
其基本数据类型分别为:
char,char,char,int,char,char,char。
其截图如下:
表4teaching
3.4模块设计
在整个系统主界面,可以选择登录方式,是教职工登录还是管理员登录。
如果选择教职工,则进入教职工登录界面,在这个界面上要求输入教职工姓名和密码。
输入后单击“确认登录”按钮,若密码正确,则转换到教职工教学信息查询页面,当输入教职工姓名后即可显示该名教职工的教学信息,若密码不正确,这提示密码错误。
如果选择是管理员登录,则进入管理员登陆界面,在这个界面上输入管理员姓名和密码,输入后单击“教职工信息管理”按钮,则进入管理员主界面。
在管理员主界面可以选择进行文件操作,查询操作还是修改操作。
若要查询教职工简介信息,点击查询菜单项则进入教职工简介信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个教职工的姓名。
输入后,单击“检索”按钮,则开始对数据库中数据进行查询。
如果数据库检索到所需信息,则生成列表显示检索结构,如果没有所需信息,则页面列表中显示为空。
若要查询教职工教学信息,则点击教职工教学信息查询菜单项,进入教学查询界面。
在此界面的文本框中输入要查询教学信息的教职工姓名,然后单击检索按钮。
若数据库中有该教职工的教学信息,则生成列表显示教学信息,若没有此记录,则列表显示内容为空。
如果管理员要对数据库中进行修改操作,则在管理员主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:
添加教职工简介信息,删除教职工简介信息(这两个是对数据库中worker表的操作),添加教职工教学信息,删除教职工教学信息(这两个是对数据库中teaching表的操作)。
在添加信息操作中,按照标签提示一次输入要添加的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。
在删除信息操作中,输入要删除信息的教职工姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。
以上就是该职工档案管理系统涉及的操作步骤。
3.5系统流程描述
No
Yes
Yes
四、系统实现DBconnection类
本系统所编写的程序保存在以下四个包中:
connection包,first包,second包,finally包
1.connection包中的类:
(1)DBconnection类:
此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。
若连接成功,提示:
connectionsuccess,若连接失败,提示:
connectionfailure
DBconnection类源代码:
packageconnection;
import.Connection;
import.DriverManager;
import.SQLException;
import;
publicclassDBconnection{
publicstaticvoidmain(String[]args){
newDBconnection();
}
publicstaticConnectioncon=null;
publicstaticConnectiongetConnection()
{
try{
StringdbDriver=".";
(dbDriver);
.println("DriverSuceess");
}catch(ClassNotFoundExceptione){
.println("Drivernotfound");
e.printStackTrace();
}
try{
con=("jdbc:
mysql:
//localhost:
3306/employeemanage","root","418");
.println("ConnectionSuceess");
}catch(SQLExceptione){
.println("Connetionfailure");
e.printStackTrace();
}
returncon;
}
publicstaticvoidcloseConnection()
{
if(con!
=null)
try{
();
.println("databaseclosesuccess");
}catch(SQLExceptione){
.println("closefailure");
e.printStackTrace();
}
}
}
2.first包中的类:
(1)Workerfirst类:
此类中有四个方法,managerLogin,addWorker,deleteWorker,queryworker,作用分别是控制管理员登陆系统,增加教职工基本信息,删除学生基本信息,查询教职工基本信息。
managerLogin()方法中,有两个参数,分别传给select语句中的mname(管理员姓名)和password(登录密码),利用select语句在employee表中检索管理员登录信息。
若存在此信息,返回true,否则返回false
addWorker)方法中,有八个参数,分别传给insert语句中的id(职工号),wname(教职工姓名),age(年龄),sex(性别),degree(学历),worktime(参加工作时间),salary(工资)和dept(院别),利用insert语句向worker教职工信息简介表中插入记录。
若插入成功,返回true,否则返回false
deleteWorker()方法中,有一个参数,传给delete语句中的wname(教职工姓名),利用delete语句,把worker表中相关教职工信息删除。
若删除成功,返回true,否则返回false
queryWorker()方法中,有两个参数,分别传给select语句中的field(查找方式)和key(查找内容),利用select语句,从worker表中检索教职工简介信息。
若存在此信息,则返回一个ArrayList类的对象lis(表格),否则,异常处理
Workerfirst类源代码:
packagefirst;
import.Connection;
import.PreparedStatement;
import.ResultSet;
import.SQLException;
import.Statement;
import.ArrayList;
import;
import;
publicclassWorkerfirst{
publicbooleanmanagerLogin(Stringmname,Stringpassword){
DBconnectiondb=newDBconnection();
Connectioncon=();
booleanisfound=false;
PreparedStatementpst;
try{
pst=("select*frommanagerwheremname=?
andpassword=?
");
(1,mname);
(2,password);
ResultSetrs=();
if(())
isfound=true;
}catch(SQLExceptione){
e.printStackTrace();
}
.println(isfound);
returnisfound;
}
publicbooleanaddWorker(Stringid,Stringwname,Stringsex,intage,Stringdegree,Stringworktime,intsalary,Stringdept)
{
Connectioncon=();
PreparedStatementpst;
try{
pst=("insertintoworkervalues(?
?
?
?
?
?
?
?
)");
(1,id);
(2,wname);
(3,sex);
(4,age);
(5,degree);
(6,worktime);
(7,salary);
(8,dept);
intcount=();//返回修改的记录数
if(count==1)
returntrue;
else
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
publicArrayListqueryWorker(Stringfield,Stringkey){
ArrayListlis=newArrayList();
Connectioncon=();
Statementstm;
try{
stm=();
Stringsql="select*fromworkerwhere"+field+"like'%"
+key+"%'";
.println(sql);
ResultSetrs=(sql);
while(()){
Workwork=newWork(
(1),
(2),(3),(4),(5),(6),(7),(8));
(work);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlis;
}
publicbooleandeleteWorker(Stringkey){
Connectioncon=();
Statementstm;
try{
stm=();
Stringsql="deletefromworkerwherewnamelike'%"
+key+"%'";
.println(sql);
intcount=(sql);
if(count==1)
returntrue;
else
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
}
(2)Employeefirst类:
此类中有一个方法:
queryEmployee(),作用是控制教职工登陆queryEmployee()方法中,有两个参数,分别传给select语句中的wname(教职工姓名)和password(登陆密码),利用select语句在teacher表中检索教师登陆信息。
若存在此信息,返回true,否则返回false
Employeefirst类源代码:
packagefirst;
import.Connection;
import.PreparedStatement;
import.ResultSet;
import.SQLException;
import.Statement;
import;
publicclassEmployeefirst{
publicbooleanqueryEmployee(Stringwname,Stringpassword){
DBconnectiondb=newDBconnection();
Connectioncon=();
booleanisfound=false;
PreparedStatementpst;
try{
pst=("select*fromemployeewherewname=?
andpassword=?
");
(1,wname);
(2,password);
ResultSetrs=();
if(())
isfound=true;
}catch(SQLExceptione){
e.printStackTrace();
}
.println(isfound);
returnisfound;
}
publicstaticvoidmain(String[]args){
}
}
(3)Teaching类:
在该类中有四个方法queryTeaching,addTeaching,deleteTeaching
作用分别是为教职工用户提供查询教学信息的功能,为管理者用户提供
询教职工教学信息,添加教学信息,删除教学信息功能。
queryTeaching()方法中,有一个参数,传给select语句中的wname(学生姓名),利用select语句,查询教学信息表中的内容。
若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理
addTeaching()方法中,有七个参数,分别传给insert语句中的id(职工号),wname(教职工姓名),grade(年级),tmajor(教学专业),snum(学生人数),passrate(及格率),ment(教学总评)。
利用insert语句,将这些记录写入teaching表中。
若插入成功返回true,否则返回false
deleteTeaching()方法中,有一个参数,传给delete语句中的wname(教职工姓名),利用delete语句,把steaching表中相关教职工的教学信息删除。
若删除成功,返回true,否则返回false
Teaching类源代码:
packagefirst;
import.Connection;
import.PreparedStatement;
import.ResultSet;
import.SQLException;
import.Statement;
import.ArrayList;
import;
import;
import;
import;
publicclassTeachingfirst{
publicArrayListqueryTeaching(Stringkey){
ArrayListlis=newArrayList();
Connectioncon=();
Statementstm;
try{
stm=();
Stringsql="select*fromteachingwherewnamelike'%"+key
+"%'";
.println(sql);
ResultSetrs=(sql);
while(()){
Teachingteach=newTeaching(
(1),
(2),rs
.getString(3),(4),(5),(6),(7));
(teach);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlis;
}
publicArrayListqueryTeach(Stringkey){
ArrayListlis=newArrayList();
Connectioncon=();
Statementstm;
try{
stm=();
Stringsql="select*fromteachingwherewnamelike'%"+1
+"%'";
.println(sql);
ResultSetrs=(sql);
while(()){
Teachingteach=newTeaching(
(1),
(2),rs
.getString(3),(4),(5),(6),(7));
(teach);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlis;
}
publicbooleanaddTeaching(Stringid,Stringwname,Stringgrade,Stringtmajor,
intsnum,Stringpassrate,Stringment){
Connectioncon=();
PreparedStatementpst;
try{
pst=("insertintoteachingvalues(?
?
?
?
?
?
?
)");
(1,id);
(2,wname);
(3,grade);
(4,tmajor);
(5,snum);
(6,passrate);
(7,ment);
intcount=();//返回修改的记录数
if(count==1)
returntrue;
else
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
publicbooleandeleteTeaching(Stringkey){
Connectioncon=();
Statementstm;
try{
stm=();
Stringsql="deletefromteachingwherewnamelike'%"+key+"%'";
.println(sql);
intcount=(sql);
if(count==1)
returntrue;
else
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
}
3.second包中的类:
(1)Work类:
此类中有八个成员变量,Stringid;Stringwname;Stringsex;
intage;Stringdegree;Stringworktime;intsalary;Stringdept,和十六个成员方法,类中分别获取和设置了这八个变量,即为worker表中八个属性的属性名,每个变量都对应了getXXX(),setXXX()方法,还有一个构造方法,用于在调用其对象时对成员变量赋值
Work类源代码:
packagesecond;
publicclassWork{
Stringid;
Stringwname;
Stringsex;
intage;
Stringdegree;
Stringworktime;
intsalary;
Stringdept;
publicStringgetID(){
returnid;
}
publicvoidsetID(Stringid){
=id;
}
publicStringgetWname(){
returnwname;
}
publicvoidsetWname(Stringwname){
=wname;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
=sex;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
=age;
}
publicStringgetDegree(){
returndegree;
}
publicvoidsetDegree(Stringdegree){
=degree;
}
publicStringgetWorktime(){
returnworktime;
}
publicvoidsetWorktime(Stringworktime){
=worktime;
}
publicintgetSalary(){
returnsalary;
}
publicvoidsetSalary(intsalary){
=salary;
}
publicStringgetDept(){
returndept;
}
publicvoidsetDept(Stringdept){
=dept;
}
publicWork(Stringid,Stringwname,Stringsex,intage,Stringdegree,Stringworktime,intsalary,Stringdept)
{
super();
=id;
=wname;
=sex;
=age;
=degree;
=worktime;
=salary;
=dept;
}
}
(2)Teaching类:
此类中有七个成员变量,Stringid;Stringwname;Stringgrade;Stringtmajor;intsnum;Stringpassrate;Stringment,和十四个成员方法,类中分别获取和设置了这七个变量,即为teaching表中七个属性的属性名,每个变量都对应了getXXX(),setXXX()方法,还有一个构造方法,用于在调用其对象时对成员变量赋值
Teaching类源代码:
packagesecond;
publicclassTeaching{
Stringid;
Stringwname;
Stringgrade;
intsnum;
Stringtmajor;
Stringpassrate;
Stringment;
publicStringgetID(){
returnid;
}
publicvoidsetID(Stringid){
=id;
}
publicStringgetWname(){
returnwname;
}
publicvoidsetWname(Stringwname){
=wname;
}
publicStringgetGrade(){
returngrade;
}
publicvoidsetGrade(Stringgrade){
=grade;
}
publicintgetSnum(){
returnsnum;
}
publicvoidsetSnum(intsnum){
=snum;
}
publicStringgetTmajor(){
returntmajor;
}
publicvoidsetTmajor(Stringtmajor){
=tmajor;
}
publicStringgetPassRate(){
returnpassrate;