数据库课程设计班级事务管理系统.docx
《数据库课程设计班级事务管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计班级事务管理系统.docx(41页珍藏版)》请在冰豆网上搜索。
数据库课程设计班级事务管理系统
1.数据库设计内容
1.1.课程设计任务与要求
1.1.1.任务
班级事务管理系统
问题描述:
班级管理信息系统的任务是收集、存储、管理班级同学的相关信息,以及班级日常管理中的相关信息。
为班级信息公开、增进同学交流了解服务,同时加强班级管理、提高班级管理与服务的效率和质量。
1.1.2.设计要求
①、实现用户登录。
②、实现管理员管理班级事务。
(学生信息、成绩、课程、详细信息的增、删、改、查)
③、实现学生成绩查询。
④、实现个人事务管理。
⑤、实现生活委员班费管理。
1.1.3.运行环境
WindowsXP、SQLServer5.0、Myeclipse6.0、Tomcat5.5.28、IE浏览器、JDK
1.2需求分析
1.2.1.数据需求
班级事务管理系统需要完成功能主要有:
①学生基本信息的输入,包括学号、姓名、担任职务等。
②学生基本信息的添加、查询、修改、删除,包括学生学号、姓名、职务、角色等。
③学生成绩的添加、查询、修改、删除,包括学号、课程号、分数。
④课程的添加、删除,包括课程号、课程名、学分、任课老师。
⑤生活委员对班费的管理,包括班费的收入、支出。
⑥个人对本人事务的管理,包括时间和事件。
1.2.2事物需求
①管理员对学生事务管理部分,要求:
a、可以查询学生基本、详细信息、课程信息以及成绩。
b、可以对学生基本信息、详细信息进行添加、修改及删除操作。
c、可以对课程信息进行添加、删除操作。
d、可以对学生成绩进行添加、删除操作。
②生活委员对班费的管理,要求:
a、可以查询班费收入支出的详细信息。
b、可以对班费信息进行添加、修改、删除操作。
1.2.3关系模式
学生用户表(学号、姓名、密码、担任职务、角色)
课程表(课程号、课程名、学分、任课老师)
成绩表(主键、学号、课程号、成绩)
学生详细信息表(id、学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号)
生活委员事物表(ID、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班费余额、活动意义、活动结果)
其它管理页面(ID、时间、内容、结果)
1.3概念结构设计
1.3.1.E-R图
1.4.逻辑结构设计
1.4.1表结构
1.4.2数据库设计及完整性约束
学生用户表:
createtableuser
(
idintauto_incrementprimarykey,
usernamevarchar(10),
userpassvarchar(20),
userjobvarchar(10),
userrolevarchar(10)
)
课程表:
createtablecourse
(
idintauto_incrementprimarykey,
cnamevarchar(20),
ccreditint,
cteachervarchar(20)
)
成绩表:
createtableSc
(
idintauto_incrementprimarykey,
uidint,
cidint,
sgradevarchar(5)
)
ALTERTABLEScADDCONSTRAINTfk_Sc_uidFOREIGNKEY(uid)REFERENCESuser(id);
ALTERTABLEScADDCONSTRAINTfk_Sc_cidFOREIGNKEY(cid)REFERENCEScourse(id);
学生详细信息表:
createtablestuinfo
(
idintauto_incrementprimarykey,
stuidint,
stubirthvarchar(20),
stuidentityvarchar(30),
stuaddrvarchar(200),
studormvarchar(20),
stucardvarchar(20)
)
ALTERTABLEstuinfoADDCONSTRAINTfk_stuinfo_stuidFOREIGNKEY(stuid)REFERENCESuser(id);
生活委员事物表:
createtableshwy
(
idintauto_incrementprimarykey,
timevarchar(20),
addrvarchar(100),
stunumint,
startmoneydecimal,
expensedecimal,
endmoneydecimal,
actmeaningtext,
actresultvarchar(10)
)
其它管理页面:
createtableqita(
idintauto_incrementprimarykey,
qtimevarchar(20),
qcontenttext,
qresultvarchar(20)
)
1.4.3.数据库用户权限管理
该系统设置三种类型的用户
(1)管理员(admin)即系统管理员拥有对学生基本信息、详细信息、成绩、课程的管理权限。
(2)生活委员(shwy)可以对班级班费收入支出的详细信息进行管理;
(3)其他个人(qita)对个人事务事件进行管理。
2.应用系统设计
2.1.需求分析
2.1.1数据需求
班级事务管理系统需要完成功能主要有:
①学生基本信息的输入,包括学号、姓名、担任职务等。
②学生基本信息的添加、查询、修改、删除,包括学生学号、姓名、职务、角色等。
③学生成绩的添加、查询、修改、删除,包括学号、课程号、分数。
④课程的添加、删除,包括课程号、课程名、学分、任课老师。
⑤生活委员对班费的管理,包括班费的收入、支出。
⑥个人对本人事务的管理,包括时间和事件。
2.1.2事物需求
①管理员对学生事务管理部分,要求:
a、可以查询学生基本、详细信息、课程信息以及成绩。
b、可以对学生基本信息、详细信息进行添加、修改及删除操作。
c、可以对课程信息进行添加、删除操作。
d、可以对学生成绩进行添加、删除操作。
②生活委员对班费的管理,要求:
a、可以查询班费收入支出的详细信息。
b、可以对班费信息进行添加、修改、删除操作。
2.1.3关系模式
学生用户表(学号、姓名、密码、担任职务、角色)
课程表(课程号、课程名、学分、任课老师)
成绩表(主键、学号、课程号、成绩)
学生详细信息表(id、学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号)
生活委员事物表(ID、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班费余额、活动意义、活动结果)
其它管理页面(ID、时间、内容、结果)
2.1.5数据字典
为了使各数据流,数据处理过程,存储过程不能反映其中的数据成,数据项目,数据特性,所以用数据字典来对数据流图中的各成份进行具体的定义,为系统的分析,设计及以后的实现提供供有关元素一致性定义和详细的描述:
①数据流字典
数据流名称:
管理员登录(P3)
来源:
管理员
去向:
查询学生基本信息
数据组成:
姓名+密码+登录权限
数据流名称:
学生个人登录
来源:
个人
去向:
查询个人信息
数据组成:
姓名+密码+登录权限
数据流名称:
生活委员登录
来源:
生活委员
去向:
班费管理
数据组成:
姓名+密码+登录权限
数据流名称:
所有学生基本信息查询
来源:
管理员
去向:
查询处理过程
数据组成:
学号|姓名|密码|担任职务|角色
数据流名称:
所有学生详细信息查询
来源:
管理员
去向:
查询处理过程
数据组成:
学生学号|出生日期|身份证号码|家庭往址|宿舍号|银行卡号
数据流名称:
成绩和课程查询
来源:
学生
去向:
查询处理过程
数据组成:
主键|学号|课程号|成绩
数据流名称:
班费管理查询
来源:
生活委员
去向:
查询处理过程(P3)
数据组成:
ID|时间|活动地点|活动人数|消费前班费余额|消费金额|消费后班费余额|活动意义|活动结果
数据流名称:
个人事务查询
来源:
学生
去向:
查询处理过程
数据组成:
ID|时间|内容|结果
2.2.概念结构设计
2.3.详细设计
2.3.1流程图
2.4.运行界面
2.4.1管理员登陆界面
2.4.2管理员查询、添加、修改、删除学生基本信息表
程序代码说明
package.dao;
importjava.io.UnsupportedEncodingException;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.LinkedList;
importjava.util.List;
import.bean.UserBean;
import.util.DBConnection;
publicclassStudentDao{
publicListqueryAllStudent(){
Listlist=newLinkedList();
Connectionconn=DBConnection.getConnection();
try{
PreparedStatementps=conn.prepareStatement
("select*fromuser");
ResultSetrs=ps.executeQuery();
while(rs.next()){
UserBeanstudent=newUserBean();
student.setId(rs.getInt("id"));
student.setUsername(rs.getString("username"));
student.setUserpass(rs.getString("userpass"));
student.setUserjob(rs.getString("userjob"));
student.setUserrole(rs.getString("userrole"));
list.add(student);
}
}catch(SQLExceptione){e.printStackTrace();
}finally{
try{conn.close();
}catch(SQLExceptione){e.printStackTrace();
}
}
returnlist;
}
publicUserBeanqueryById(intid){
Connectionconn=DBConnection.getConnection();
UserBeanstudent=null;
try{PreparedStatementps=conn.prepareStatement("select*fromuserwhereid=?
");
ps.setInt(1,id);
ResultSetrs=ps.executeQuery();
while(rs.next()){
student=newUserBean();
student.setId(rs.getInt("id"));
student.setUsername(rs.getString("username"));
student.setUserpass(rs.getString("userpass"));
student.setUserjob(rs.getString("userjob"));
student.setUserrole(rs.getString("userrole"));
}
}catch(SQLExceptione){e.printStackTrace();
}finally{
try{conn.close();
}catch(SQLExceptione){e.printStackTrace();
}
}
returnstudent;
}
publicintupdateStuInfo(UserBeanstu){
Connectionconn=DBConnection.getConnection();
UserBeanstudent=null;
intflag=0;
try{PreparedStatementps=conn.prepareStatement
("updateusersetusername=?
userpass=?
userjob=?
userrole=?
whereid=?
");
ps.setString(1,stu.getUsername());
ps.setString(2,stu.getUserpass());
ps.setString(3,stu.getUserjob());
ps.setString(4,stu.getUserrole());
ps.setInt(5,stu.getId());
flag=ps.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
returnflag;
}
publicintdeleteInfo(intid){
Connectionconn=DBConnection.getConnection();
UserBeanlb=null;
intflag=0;
try{
PreparedStatementps=conn.prepareStatement
("deletefromuserwhereid=?
");
ps.setInt(1,id);
flag=ps.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
returnflag;
}
publicintaddStudentInfo(UserBeanub){
intflag=0;
Connectionconn=DBConnection.getConnection();
PreparedStatementps;
Stringusername=ub.getUsername();
try{
username=newString(username.getBytes("ISO-8859-1"),"UTF-8");
}catch(UnsupportedEncodingExceptione1){
e1.printStackTrace();
}
try{
ps=conn.prepareStatement
("insertintouser
(username,userpass,userjob,userrole)values(?
?
?
?
)");
ps.setString(1,ub.getUsername());
ps.setString(2,ub.getUserpass());
ps.setString(3,ub.getUserjob());
ps.setString(4,ub.getUserrole());
flag=ps.executeUpdate();
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
returnflag;
}
}
2.4.3.成绩查询、添加、删除
程序代码说明:
package.dao;
importjava.io.UnsupportedEncodingException;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.LinkedList;
importjava.util.List;
import.bean.CoursBean;
import.bean.ScBean;
import.bean.UserBean;
import.util.DBConnection;
publicclassScDao{
publicListqueryAllSc(){
Listlist=newLinkedList();
Connectionconn=DBConnection.getConnection();
try{
PreparedStatementps=conn.prepareStatement
("select*fromsc");
ResultSetrs=ps.executeQuery();
while(rs.next()){
ScBeanscb=newScBean();
scb.setId(rs.getInt("id"));
scb.setUid(rs.getInt("uid"));
scb.setCid(rs.getInt("cid"));
scb.setSgrade(rs.getString("sgrade"));
list.add(scb);
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
returnlist;
}
publicintdeleteScInfo(intid){
Connectionconn=DBConnection.getConnection();
ScBeanlb=null;
intflag=0;
try{
PreparedStatementps=conn.prepareStatement
("deletefromscwhereid=?
;");
ps.setInt(1,id);
flag=ps.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
returnflag;
}
publicintaddScInfo(ScBeanub){
intflag=0;
Connectionconn=DBConnection.getConnection();
PreparedStatementps;
try{ps=conn.prepareStatement("insertintosc(uid,cid,sgrade)values(?
?
?
)");
ps.setInt(1,ub.getUid());
ps.setInt(2,ub.getCid());
ps.setString(3,ub.getSgrade());
flag=ps.executeUpdate();
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
returnflag;
}
}
2.4.4.课程的查询、添加、删除
程序代码说明:
package.dao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.LinkedList;
importjava.util.List;
import.bean.CoursBean;
import.bean.ScBean;
import.util.DBConnection;
publicclassCourseDao{
publicListqueryAllCourse(){
Listlist=newLinkedList();
Connectionconn=DBConnection.getConnection();
try{
PreparedStatementps=conn.prepareStatement
("select*fromcourse");
ResultSetrs=ps.executeQuery();
while(rs.next()){
CoursBeanscb=newCoursBean();