基于JSP的学生成绩管理系统(SQL).doc

上传人:scccc 文档编号:11178571 上传时间:2021-07-09 格式:DOC 页数:20 大小:398.50KB
返回 下载 相关 举报
基于JSP的学生成绩管理系统(SQL).doc_第1页
第1页 / 共20页
基于JSP的学生成绩管理系统(SQL).doc_第2页
第2页 / 共20页
基于JSP的学生成绩管理系统(SQL).doc_第3页
第3页 / 共20页
基于JSP的学生成绩管理系统(SQL).doc_第4页
第4页 / 共20页
基于JSP的学生成绩管理系统(SQL).doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《基于JSP的学生成绩管理系统(SQL).doc》由会员分享,可在线阅读,更多相关《基于JSP的学生成绩管理系统(SQL).doc(20页珍藏版)》请在三一文库上搜索。

1、华北科技学院计算机学院综合性实验报告华北科技学院计算机学院综合性实验实 验 报 告 课程名称 数据库原理与应用D 实验学期 2013 至 2014 学年 第 2 学期学生所在系部 计算机学院 年级 专业班级 学生姓名 学号 任课教师 实验成绩 计算机学院制实验报告须知1、 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。2、 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。3、 教师应该填写的内容包括:实验成绩、教师评价等。4、 教师根据本课程的综合性实验指导单中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验

2、报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。5、 未尽事宜,请参考该课程的实验大纲和教学大纲。数据库原理与应用D课程综合性实验指导单适用专业:信息管理与信息系统一、 实验题目:小型信息管理系统的开发(学生成绩管理系统)二、 实验目的:(1) 培养学生数据库分析和设计能力;(2) 培养学生软件结构和功能模块分析能力;(3) 培养提高学生自学能力和独立进行软件开发能力;(4) 培养学生的创新意识和协作精神;(5) 培养学生文字论述规范、清晰、严谨的能力。三、 实验设备及环境:硬件:多媒体计算机

3、软件:Windows操作系统,SQL Server数据库管理系统四、 实验内容及要求: 1. 根据具体的设计题目(题目可自选)作数据库设计(要求根据数据库设计的规范化理论设计合理的数据库及数据表)2. 根据系统需求设计合理的功能模块3. 按照完整应用程序的要求设计一个应用系统。在该系统中将所学数据库的知识(如数据的添加、修改、删除、视图、存储过程等)应用到该系统中; 4. 应用系统的界面设计和代码设计。五、 考核标准:1. 数据库结构的设计是否合理、规范;2数据库应用系统的功能是否完善;3. 学生是否独立完成系统的设计和编码;3. 实验报告中论述数据库设计的基本思路、方法是否清晰,描述是否规范

4、;4. 对所设计题目优点、缺点进行分析总结。数据库原理与应用D课程综合性实验报告开课实验室:基础五 2014 年6月16日实验题目学生成绩管理系统的开发一、 实验目的(1) 培养学生数据库分析和设计能力;(2) 培养学生软件结构和功能模块分析能力;(3) 培养提高学生自学能力和独立进行软件开发能力;(4) 培养学生的创新意识和协作精神;(5) 培养学生文字论述规范、清晰、严谨的能力。二、 设备与环境硬件:多媒体计算机软件:Windows操作系统,SQL Server 数据库管理系统,应用程序开发环境 JSP开发环境 三、 实验内容1. 系统需求描述(1)信息需求在学校,学生成绩管理系统是必须的

5、,学生教师通过系统了解有关成绩情况,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。(2)功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。具体功能应包括:学生模块:学生利用自己的学号登陆系统可以查看自己所学的课程以及相对应的课程成绩、查看自己的个人信息、修改个人的登陆密码;教师模块:教师利用自己的编号的登录系统可以查看自己所授课程、为所授课程添加学生成绩、查看课程成绩,修改学生成绩;管理员模块:可以分别对学生、教师、课程信息进行查看、添加、删除、修改。在实现以上

6、功能的同时用了数据库视图的建立与输出、存储过程的建立与执行。2数据库设计(1) E-R图(2) 数据库表结构设计l 选课关系表SC属性数据类型长度约束备注SNochar20外键-S表学号(与CNo作为联合主键)CNochar4外键-C表课程号Scoretinyint成绩l 授课关系表TC属性数据类型长度约束备注CNochar4外键-C表课程号(与TNo作为联合主键)TNochar5外键-T表教师号l 教师信息表T属性数据类型长度约束备注TNochar5主键,非空教师号TNvarchar20非空教师姓名sexchar2非空性别agetinyint年龄jobchar10职称deptvarchar2

7、0系别pwdnchar10登陆密码l 学生信息表S属性数据类型长度约束备注SNochar20主键,非空学号SNvarchar20非空学生姓名sexchar2性别agetinyint年龄deptvarchar20系别pwdnchar10登陆密码l 课程信息表C属性数据类型长度约束备注CNochar4主键,非空课程号CNvarchar20非空课程名l 管理员信息表G属性数据类型长度约束备注uidchar10主键,非空编号GNchar10管理员姓名pwdnchar10登陆密码l 建表语句如下:.创建教师表create table T(TNo Char(5) constraint T1 primary

8、 key,TN Varchar(20) not null,sex char(2),age tinyint,Job char(10),Dept varchar(20),pwd nchar(10) )数据如下:创建学生表create table S(SNo Char(10) constraint S1 primary key, SN Varchar(20) not null,sex char(2),age tinyint,dept varchar(20),pwd nchar(10) not null)数据如下:创建课程表create table C(CNo Char(4) constraint C

9、1 primary key, CN Varchar(20) not null)数据如下:创建学生课程表create table SC(SNo Char(20) constraint SC2 foreign key references S(SNo), CNo Char(4) constraint SC3 foreign key references C(CNo), Score tinyint, constraint SC1 primary key(SNo,CNo)数据如下:创建教师课程表create table TC(TNo Char(5) constraint TC2 foreign key

10、 references T(TNo), CNo Char(4) constraint TC3 foreign key references C(CNo),constraint TC1 primary key(TNo,CNo)数据如下:.创建管理员表Create table G(uid char(10) constraint G1 primary key, GN char(10), pwd nchar(10) )数据如下:建立学生查询成绩视图代码:Create View S_SC(SNo,SN,CNo,CN,Score)As select S.SNo,SN,SC.CNo,CN,Scorefrom

11、 s,SC,Cwhere s.SNo=SC.SNo and SC.CNo=C.cno创建插入学生记录的存储过程Create procedure Insert_Stu(SNo char(20),SN varchar(20),sex char(2),age tinyint,dept varchar(20),pwd nchar(10) )AS Insert into S values(SNo,SN,sex,age,dept,pwd)3. 系统实现(1)模块1:学生模块l 功能1:学生登陆界面:实现的关键代码: String uid=request.getParameter(uid); String

12、pwd=request.getParameter(pwd); Connection conn=null; PreparedStatement stmit=null; ResultSet rs=null; tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);conn= DriverManager.getConnection(jdbc:odbc:data,); String sql=SELECT * from S where SNo = + + uid + + and + pwd = + + pwd + ; stmit = conn.prepareStat

13、ement(sql); rs = stmit.executeQuery();l 功能2:学生查询自己的成绩(视图的查询操作)界面:实现关键代码(输出视图):Connection conn = null; ResultSet rs = null; Statement stmt =null; request.setCharacterEncoding(gb2312); String sDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;String sConnStr = jdbc:odbc:data;String uid=(String)session.getAttrib

14、ute(uid); try Class.forName(sDBDriver); catch(ClassNotFoundException ex) System.err.println(ex.getMessage(); try int totalRecords = 0; conn = DriverManager.getConnection(sConnStr); stmt = conn.createStatement(); String sql=SELECT cn,score from S_SC where sno = + + uid + ; rs = stmt.executeQuery(sql)

15、;l 功能3:学生查看自己的信息并修改登陆密码界面1:界面2:实现关键代码1(显示当前学生信息):Connection conn = null; ResultSet rs = null; Statement stmt =null; request.setCharacterEncoding(gb2312); String sDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;String sConnStr = jdbc:odbc:data;String uid=(String)session.getAttribute(uid);/String uid=request.

16、getParameter(uid); try Class.forName(sDBDriver); catch(ClassNotFoundException ex) System.err.println(ex.getMessage(); try int totalRecords = 0; conn = DriverManager.getConnection(sConnStr); stmt = conn.createStatement(); String sql=SELECT * from s where s.sno = + + uid + ; rs = stmt.executeQuery(sql

17、);实现关键代码2(修改登陆密码):Connection conn = null;ResultSet rs = null;Statement stmt =null; request.setCharacterEncoding(gb2312); String sDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;String sConnStr = jdbc:odbc:data;try Class.forName(sDBDriver); catch(ClassNotFoundException ex) System.err.println(ex.getMessage();

18、 try conn = DriverManager.getConnection(sConnStr); stmt = conn.createStatement();String sql=UPDATE S SET pwd=+pwd+where SNo=+sno;stmt.executeUpdate(sql); (2)模块2:教师模块l 功能1:教师登陆界面:实现关键代码:与“学生模块”登陆实现关键代码类似l 功能2:显示所教课程信息界面:实现关键代码:Connection conn = null;ResultSet rs = null;Statement stmt =null; String sD

19、BDriver = sun.jdbc.odbc.JdbcOdbcDriver;String sConnStr = jdbc:odbc:data;String uid=(String)session.getAttribute(uid); try Class.forName(sDBDriver); catch(ClassNotFoundException ex) System.err.println(ex.getMessage(); try int totalRecords = 0; conn = DriverManager.getConnection(sConnStr); stmt = conn

20、.createStatement(); String sql=SELECT o,cn from tc join c on o=o where tc.tno = + + uid + ;rs = stmt.executeQuery(sql);l 功能3:显示所教课程成绩信息和修改成绩 界面1:界面2:修改以后:实现关键代码1(输出成绩):Connection conn = null;ResultSet rs = null;Statement stmt =null; String sDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;String sConnStr = j

21、dbc:odbc:data;String cno = request.getParameter(cno); try Class.forName(sDBDriver); catch(ClassNotFoundException ex) System.err.println(ex.getMessage(); try int totalRecords = 0;conn = DriverManager.getConnection(sConnStr); stmt = conn.createStatement(); String sql=SELECT s.sno,sn,score from sc join

22、 s on sc.sno=s.sno where o = + + cno + ;rs = stmt.executeQuery(sql);实现关键代码2(修改成绩):Connection conn = null;ResultSet rs = null;Statement stmt =null; request.setCharacterEncoding(gb2312); String sDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;String sConnStr = jdbc:odbc:data; try Class.forName(sDBDriver); cat

23、ch(ClassNotFoundException ex) System.err.println(ex.getMessage(); try conn = DriverManager.getConnection(sConnStr); stmt = conn.createStatement();String sql=UPDATE SC SET score=+score+where SNo=+sno+ and CNo=+cno+; stmt.executeUpdate(sql);l 功能4:教师通过显示的课程添加相应的成绩界面:实现关键代码: % Connection conn=null; tryC

24、lass.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= DriverManager.getConnection(jdbc:odbc:data,sa,He_&1993); PreparedStatement ps=conn.prepareStatement(insert into SC(SNo,CNo,score) values(?,?,?); ps.setString(1,sno); ps.setString(2,cno); ps.setString(3,score); int num=ps.executeUpdate(); l 功能5:显示教师个人

25、信息和修改个人登陆密码界面1:界面2:实现关键代码:与“学生模块功能3-学生查看自己的信息并修改登陆密码”实现代码类似。(3)模块3:管理员模块l 功能1:管理员登陆界面:实现关键代码:与“学生模块功能1学生登陆”实现代码类似。l 功能2:学生信息管理界面1:(显示学生信息并删除): 图(删除前) 图(删除后)实现关键代码:Connection conn = null;ResultSet rs = null;Statement stmt =null; String sDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;try Class.forName(sDBDri

26、ver); catch(ClassNotFoundException ex) System.err.println(ex.getMessage(); try conn = DriverManager.getConnection(jdbc:odbc:data,sa,He_&1993); stmt = conn.createStatement(); String sql=delete from S where SNo = + + sno + ;stmt.executeUpdate(sql);界面2:(添加学生信息读入数据库:这里执行了存储过程Insert_Stu):实现关键代码:request.s

27、etCharacterEncoding(gb2312); String sno=request.getParameter(sno); String sn=request.getParameter(sn); String sex=request.getParameter(sex); String age=request.getParameter(age);String dept=request.getParameter(dept); String pwd=request.getParameter(pwd);ResultSet rs = null; Statement stmt =null; Co

28、nnection conn=null; tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); conn= DriverManager.getConnection(jdbc:odbc:data,sa,He_&1993);stmt = conn.createStatement();String sql=EXECInsert _Stu sno=+sno+,sn=+sn+,sex=+sex+,age=+age+,dept=+dept+,pwd=+pwd+; stmt.executeUpdate(sql); 界面3:(修改学生信息)实现关键代码:Connecti

29、on conn = null;ResultSet rs = null;Statement stmt =null; String sDBDriver = sun.jdbc.odbc.JdbcOdbcDriver;String sConnStr = jdbc:odbc:data; try Class.forName(sDBDriver); catch(ClassNotFoundException ex) System.err.println(ex.getMessage(); try conn = DriverManager.getConnection(sConnStr); stmt = conn.

30、createStatement();String sql=UPDATE S SETSN=+sn+,sex=+sex+,age=+age+,dept=+dept+,pwd=+pwd+where SNo=+sno;l 功能3:教师信息管理界面1(添加教师信息):实现关键代码:教师信息的删除、修改功能实现与学生信息的删除、修改功能实现类似,界面、实现关键代码也类似,这里不再一一列出。l 功能4:(课程信息的管理) 课程信息的添加、删除、修改功能实现与教师的添加、删除、修改功能实现类似,界面、实现关键代码也类似,不再赘述。四、实验结果及分析整个系统大概用了三天时间基本完成,而后进行细微修改。本学生成绩

31、查询系统主要参照课本,以课本为依据,所以整个设计做下来基本掌握了课本上数据库的基础操作。设计过程中我遇到了一些问题,通过和同学交流解决了不少问题。(1)操作视图查询,编写代码时发现,一个表中的主键必须是另一个表的外键时才可以对另一个表进行引用。(2)在设计表时应注意使用正确的字段类型。(3)在建表语句中,如果这个表的主键是多个属性的组合主键,则必须作为表级完整性进行定义。(4)jsp中的sql语句的格式容易出错,字符型的有双引号,数字的只有单引号。(5)进行关系表的修改时候,尤其是对SC表中成绩的修改需要同时获得SNo和CNo的值,因为SC表中SNo和CNo是联合主键。数据库是系统开发的基础,想要做好系统的开发必定要做好数据库的设计,系统的数据操作都离不开数据库,通过这次实验我体会到了数据库的重要性,了解到了更多的知识,自己掌握的还不够,需要学习的知识还有很多。教 师 评 价评定项目ABCD评定项目ABCD算法正确界面美观,布局合理程序结构合理操作熟练语法、语义正确解析完整实验结果正确文字流畅报告规范题解正确其他:评价教师签名:年 月 日第 19 页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1