当前位置:文档之家› 数据库课程设计——班级事务管理系统方案

数据库课程设计——班级事务管理系统方案

1.数据库设计容1.1.课程设计任务与要求1.1.1.任务班级事务管理系统问题描述:班级管理信息系统的任务是收集、存储、管理班级同学的相关信息,以及班级日常管理中的相关信息。

为班级信息公开、增进同学交流了解服务,同时加强班级管理、提高班级管理与服务的效率和质量。

1.1.2.设计要求①、实现用户登录。

②、实现管理员管理班级事务。

(学生信息、成绩、课程、详细信息的增、删、改、查)③、实现学生成绩查询。

④、实现个人事务管理。

⑤、实现生活委员班费管理。

1.1.3.运行环境WindowsXP、SQL Server5.0、Myeclipse6.0、Tomcat5.5.28、IE 浏览器、JDK1.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数据库设计及完整性约束学生用户表:create table user(id int auto_increment primary key,username varchar(10),userpass varchar(20),userjob varchar(10),userrole varchar(10))课程表:create table course(id int auto_increment primary key,cname varchar(20),ccredit int,cteacher varchar(20))成绩表:create table Sc(id int auto_increment primary key,uid int,cid int,sgrade varchar(5))ALTER TABLE Sc ADD CONSTRAINT fk_Sc_uid FOREIGN KEY(uid) REFERENCES user(id);ALTER TABLE Sc ADD CONSTRAINT fk_Sc_cid FOREIGN KEY(cid) REFERENCES course(id);学生详细信息表:create table stuinfo(id int auto_increment primary key,stuid int,stubirth varchar(20),stuidentity varchar(30),stuaddr varchar(200),studorm varchar(20),stucard varchar(20))ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_stuid FOREIGN KEY(stuid) REFERENCES user(id);生活委员事物表:create table shwy(id int auto_increment primary key,time varchar(20),addr varchar(100),stunum int ,startmoney decimal,expense decimal,endmoney decimal,actmeaning text,actresult varchar(10))其它管理页面:create table qita(id int auto_increment primary key,qtime varchar(20),qcontent text,qresult varchar(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;import java.io.UnsupportedEncodingException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;erBean;import..util.DBConnection;public class StudentDao {public List queryAllStudent(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from user");ResultSet rs = ps.executeQuery();while (rs.next()) {UserBean student = new UserBean();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 (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public UserBean queryById(int id){Connection conn = DBConnection.getConnection();UserBean student=null;try {PreparedStatement ps = conn.prepareStatement("select * from user where id=?");ps.setInt(1, id);ResultSet rs = ps.executeQuery();while (rs.next()) {student = new UserBean();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 (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return student;}public int updateStuInfo(UserBean stu){Connection conn = DBConnection.getConnection();UserBean student=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("update user set username=?,userpass=?,userjob=?,userrole=? where id=?");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 (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int deleteInfo(int id){Connection conn = DBConnection.getConnection();UserBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("delete from user where id=?");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addStudentInfo(UserBean ub) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;String username=ub.getUsername();try {username=newString(username.getBytes("ISO-8859-1"),"UTF-8");} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}try {ps = conn.prepareStatement("insert into user(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 (SQLException e) {e.printStackTrace();}return flag;}}2.4.3.成绩查询、添加、删除程序代码说明:package..dao;import java.io.UnsupportedEncodingException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import..bean.CoursBean;import..bean.ScBean;erBean;import..util.DBConnection;public class ScDao {public List queryAllSc(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement ("select * from sc");ResultSet rs = ps.executeQuery();while (rs.next()) {ScBean scb= new ScBean();scb.setId(rs.getInt("id"));scb.setUid(rs.getInt("uid"));scb.setCid(rs.getInt("cid"));scb.setSgrade(rs.getString("sgrade"));list.add(scb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public int deleteScInfo(int id){Connection conn = DBConnection.getConnection();ScBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("delete from sc where id=?;");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addScInfo(ScBean ub) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insert into sc(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 (SQLException e) {e.printStackTrace();}return flag;}}2.4.4.课程的查询、添加、删除程序代码说明:package..dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import..bean.CoursBean;import..bean.ScBean;import..util.DBConnection;public class CourseDao {public List queryAllCourse(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from course");ResultSet rs = ps.executeQuery();while (rs.next()) {CoursBean scb= new CoursBean();scb.setId(rs.getInt("id"));scb.setCname(rs.getString("cname"));scb.setCcredit(rs.getInt("ccredit"));scb.setCteacher(rs.getString("cteacher"));list.add(scb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public int deleteCourseInfo(int id){Connection conn = DBConnection.getConnection();ScBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("delete from course where id=?;");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addCourseInfo(CoursBean cb) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insert into course(cname,ccredit,cteacher) values(?,?,?)");ps.setString(1, cb.getCname());ps.setInt(2, cb.getCcredit());ps.setString(3,cb.getCteacher());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}}2.4.5.学生详细信息的查询、添加、删除程序代码说明:package..dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import..bean.StuInfoBean;import..util.DBConnection;public class StuInfoDao {public List queryAllStuInfo(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from stuinfo");ResultSet rs = ps.executeQuery();while (rs.next()) {StuInfoBean sfb= new StuInfoBean();sfb.setId(rs.getInt("id"));sfb.setId(rs.getInt("stuid"));sfb.setStubirth(rs.getString("stubirth"));sfb.setStuidentity(rs.getString("stuidentity"));sfb.setStuaddr(rs.getString("stuaddr"));sfb.setStudorm(rs.getString("studorm"));sfb.setStucard(rs.getString("stucard"));list.add(sfb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}//管理员删除学生详细信息public int deleteStuInfo(int id){Connection conn = DBConnection.getConnection();StuInfoBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement ("delete from stuinfo where id=?;");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}//添加学生详细信息public int addStuInfo(StuInfoBean cb) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insertintostuinfo(stuid,stubirth,stuidentity,stuaddr,studorm,stucar d) values(?,?,?,?,?,?)");ps.setInt(1, cb.getStuid());ps.setString(2, cb.getStubirth());ps.setString(3, cb.getStuidentity());ps.setString(4,cb.getStuaddr());ps.setString(5, cb.getStudorm());ps.setString(6,cb.getStucard());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}}2.4.6.普通用户登录界面2.4.7.个人事务管理登录界面2.4.8.生活委员管理特殊权限程序代码说明:package..dao;import java.sql.Connection;import java.sql.PreparedStatement; import java.sql.ResultSet;import java.sql.SQLException; import java.util.LinkedList; import java.util.List;import..bean.ShwyBean;import..util.DBConnection;public class ActivityDao {public List queryAllActivity(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from shwy");ResultSet rs = ps.executeQuery();while (rs.next()) {ShwyBean scb= new ShwyBean();scb.setId(rs.getInt("id"));scb.setTime(rs.getString("time"));scb.setAddr(rs.getString("addr"));scb.setStunum(rs.getInt("stunum"));scb.setStartmoney(rs.getDouble("startmoney"));scb.setExpense(rs.getDouble("expense"));scb.setEndmoney(rs.getDouble("endmoney"));scb.setActmeaning(rs.getString("actmeaning"));scb.setActresult(rs.getString("actresult"));list.add(scb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public int deleteArrInfo(int id){Connection conn = DBConnection.getConnection();ShwyBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("delete from shwy where id=?");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addArrInfo(ShwyBean cb) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insertintoshwy(time,addr,stunum,startmoney,expense,endmoney,actmean ing,actresult) values(?,?,?,?,?,?,?,?)");ps.setString(1, cb.getTime());ps.setString(2, cb.getAddr());ps.setInt(3, cb.getStunum());ps.setDouble(4, cb.getStartmoney());ps.setDouble(5,cb.getExpense());ps.setDouble(6,cb.getEndmoney());ps.setString(7,cb.getActmeaning());ps.setString(8,cb.getActresult());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}public ShwyBean queryById(int id){Connection conn = DBConnection.getConnection();ShwyBean sb=null;try {PreparedStatement ps = conn.prepareStatement("select * from shwy where id=?");ps.setInt(1, id);ResultSet rs = ps.executeQuery();while (rs.next()) {sb = new ShwyBean();sb.setId(rs.getInt("id"));sb.setTime(rs.getString("time"));sb.setAddr(rs.getString("addr"));sb.setStunum(rs.getInt("stunum"));sb.setStartmoney(rs.getDouble("startmoney"));sb.setExpense(rs.getDouble("expense"));sb.setEndmoney(rs.getDouble("endmoney"));sb.setActmeaning(rs.getString("actmeaning"));sb.setActresult(rs.getString("actresult"));}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return sb;}public int updateArrInfo(ShwyBean sb){Connection conn = DBConnection.getConnection();ShwyBean student=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("updateshwysettime=?,addr=?,stunum=?,startmoney=?,expense=?,endmoney=?,actmeaning=?,actresult=? where id=?");ps.setString(1,sb.getTime() );ps.setString(2,sb.getAddr() );ps.setInt(3,sb.getStunum());ps.setDouble(4,sb.getStartmoney() );ps.setDouble(5,sb.getExpense() );ps.setDouble(6,sb.getEndmoney() );ps.setString(7,sb.getActmeaning());ps.setString(8,sb.getActresult() );ps.setInt(9, sb.getId());flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}}2.4.9.个人事务事件管理界面程序代码说明:package..dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import..bean.QitaBean;import..util.DBConnection;public class QitaDao {public List queryAllQita(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from qita");ResultSet rs = ps.executeQuery();while (rs.next()) {QitaBean scb= new QitaBean();scb.setId(rs.getInt("id"));scb.setQtime(rs.getString("qtime"));scb.setQcontent(rs.getString("qcontent"));scb.setQresult(rs.getString("qresult"));list.add(scb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public int deleteQitaArrInfo(int id){Connection conn = DBConnection.getConnection();QitaBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement ("delete from qita where id=?");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addQitaArrInfo(QitaBean qb) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insert into qita(qtime,qcontent,qresult) values(?,?,?)");ps.setString(1, qb.getQtime());ps.setString(2, qb.getQcontent());ps.setString(3, qb.getQresult());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}public QitaBean queryById(int id){Connection conn = DBConnection.getConnection();QitaBean qb=null;try {PreparedStatement ps = conn.prepareStatement("select * from qita where id=?");ps.setInt(1, id);ResultSet rs = ps.executeQuery();while (rs.next()) {qb = new QitaBean();qb.setId(rs.getInt("id"));qb.setQtime(rs.getString("qtime"));qb.setQcontent(rs.getString("qcontent"));qb.setQresult(rs.getString("qresult"));}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return qb;}}3.课程设计心得体会在本次课程设计的软件开发的过程中,不仅学到了很多知识,还认识了很多事情全面实践一个面向数据库的应用系统的开发过程,这样的项目对我们学过的数据结构,程序设计,数据库,软件工程等课程是一个综合性很高的实践。

相关主题