学生成绩管理系统课程设计5.doc

上传人:文库蛋蛋多 文档编号:3941683 上传时间:2023-03-28 格式:DOC 页数:13 大小:3.22MB
返回 下载 相关 举报
学生成绩管理系统课程设计5.doc_第1页
第1页 / 共13页
学生成绩管理系统课程设计5.doc_第2页
第2页 / 共13页
学生成绩管理系统课程设计5.doc_第3页
第3页 / 共13页
学生成绩管理系统课程设计5.doc_第4页
第4页 / 共13页
学生成绩管理系统课程设计5.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《学生成绩管理系统课程设计5.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计5.doc(13页珍藏版)》请在三一办公上搜索。

1、 课 程 设 计 报 告课程设计名称:学生成绩管理系统系 : 三系 学生姓名: * 班 级: 计算机(3)班 学 号: * 成 绩: 指导教师: * 开课时间:2010-2011学年 2 学期一设计题目学生成绩管理系统二主要内容学生成绩管理系统从功能上划分可分为以下几大模块:1.学生信息管理学生信息管理模块:设置学生基本信息,并可以对学生信息进行添加、修改、删除。2.课程信息管理课程信息管理:设置课程号,课程名,任课教师等课程信息,并可以对课程信息进行添加、修改、删除。3.学生成绩管理成绩信息管理模块:设置成绩信息,并可以对成绩信息进行添加、修改、删除。还可以用关键字查询并调出数据库里的学生基

2、本成绩信息的修改、删除等。输出查询的学生成绩信息,并对学生成绩总分,平均分等进行统计。三具体要求1.具有良好的系统性能,友好的用户界面2.较高的处理效率,便于使用和维护3.采用成熟的技术开发,是系统具有较高的技术水平和较长的生命周期4.系统尽可能简化重复工作,提高工作效率简化数据查询、降低统计难度四进度安排序号内 容时间(天)1调试工具使用0.52概要设计13详细设计24调试分析0.55测试结果16总结和完成设计报告2合 计7五成绩评定正文1、 系统的需求分析和功能设计需求分析:该学生成绩管理系统的开发是为了能够让用户方便、快速的查找有关于一些学生的基本信息。同时该学生成绩管理系统的建立也要要

3、求能够节约用户时间和节约系统资源等。该系统是由以下几部分组成:系统管理、学生管理、课程管理、成绩管理和信息管理。在系统管理功能中有退出功能;学生成绩管理功能中有增加学生、修改学生和删除学生;课程管理功能中有增加课程、修改课程和删除课程;成绩管理功能中成绩增加和成绩修改;信息管理功能中学生信息查询、课程信息查询和成绩查询。在查询功能中还有一些子功能。功能设计:1.系统功能结构学生成绩管理系统分为3大功能模块,分别为:学生信息管理、课程管理、成绩管理。系统各个部分及其包括的具体功能模块如图1所示。学生成绩管理系统学生信息管理课程信息管理成绩信息管理信息查询学生信息修改学生信息删除课程信息添加课程信

4、息修改课程信息删除成绩信息添加成绩信息修改成绩信息删除学生信息查询课程信息查询成绩信息查询按学号查询按姓名查询按性别查询按专业查询按班级查询按课程名查询按任课老师查询按科目查询图1 系统功能结构图2.数据库设计(1) 数据库概念结构设计局部E-R图 学生实体图:共有6中属性,包括学号、姓名、性别、出生日期、专业、籍贯等6种属性,如图2所示。学生学号姓名籍贯专业性别出生日期图2学生实体图课程实体图,课程信息实体共有3种属性,包括课程号,课程名,任课教师等3种属性,如图3所示。课程课程号任课教师课程名图3课程实体图成绩信息学号考试成绩课程名成绩实体图,成绩信息实体共有3种属性,包括学生学号,课程名

5、称,平考试成绩,成绩信息实体图如图4所示。 图4成绩信息实体图系统E-R图如图5所示11nn学生学号姓名籍贯专业出生日期性别课程信息选课课程名课程号任课教师成绩信息课程名学号成绩考试(2) 数据库逻辑结构设计本系统采用ACCESS数据库,各数据表结构如下:学生信息表: 如表1所示表1 学生信息表课程信息表: 如表2所示表2 课程信息表成绩信息表: 如表3所示表3 成绩信息表2、源程序及注释(1)增加学生代码中主要代码如下:public void actionPerformed(ActionEvent e) if(e.getSource()=clearInfo) /设置清空按钮功能 sNum.s

6、etText(); sBirth.setText(); sMajor.setText(); sHome.setText(); sName.setText(); else if(e.getSource()=addInfo) /设置增加按钮功能 String xh=sNum.getText(); String xm=sName.getText(); String xb; if(xb1.isSelected() /判断所选人的性别 xb=男; else xb=女; String csrq=sBirth.getText(); String zy=sMajor.getText(); String jg=

7、sHome.getText(); if(xh.equals() JOptionPane.showMessageDialog(this,学号不能为空!,操作提,JOptionPane.ERROR_MESSAGE); /创建学号不能为空提示信息框 else if(xm.equals() JOptionPane.showMessageDialog(this,姓名不能为空!,操作提示,JOptionPane.ERROR_MESSAGE); /创建姓名不能为空提示信息框 try /用来捕获异常 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url

8、=jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=student.mdb; /连接student数据库Connection con=DriverManager.getConnection(url); /建立连接Statement stm=con.createStatement(); /创建Statement对象 /创建添加学生sql语句String str=insert into xs(xh,xm,xb,csrq,zy,jg) values(+xh+,+xm+,+xb+,+csrq+,+zy+,+jg+);int rs=stm.exec

9、uteUpdate(sqlstr); /更新数据库记录if(rs0) /判断记录是否添加JOptionPane.showMessageDialog(this,恭喜你,学生信息添加成功!,提示,JOptionPane.INFORMATION_MESSAGE); /创建信息添加成功提示框con.close(); / 关闭结果集stm.close(); /关闭语句catch(Exception E) /用来处理异常 public static void main(String arg) /创建主函数new StuInfo(); /调用StuInfo()方法(2).修改学生代码中主要部分代码如下:pu

10、blic void actionPerformed(ActionEvent ae) if(ae.getSource()=btnClear) /设置取消按钮功能 sNum.setText(); sNum.requestFocus(); else if(ae.getSource()=btnOk) /设置确定按钮功能 String xh=sNum.getText(); if(xh.equals() JOptionPane.showMessageDialog(this,学号不能为空!,警告,JOptionPane.ERROR_MESSAGE); 创建提示信息框 else StuInfo newst=n

11、ew StuInfo(); newst.sNum.setText(xh); newst.sNum.setEnabled(false); /把学号文本框禁用 newst.addInfo.setEnabled(false); /把增加按钮设置为禁用 newst.modifyInfo.setEnabled(true); /把修改按钮设置为可用 newst.deleteInfo.setEnabled(false); /把删除按钮设置为禁用 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url= jdbc:odbc:driver=Micr

12、osoft Access Driver (*.mdb);DBQ=student.mdb;/连接student数据库Connection con=DriverManager.getConnection(url);/建立连接Statement stm=con.createStatement();/创建Statement对象String sql =select * from xs where xh=+xh+; /按学号查询学生表中所有数据 ResultSet rs= stm.executeQuery(sql); /执行sql操作 while(rs.next() /循环执行数据库中每条记录newst.

13、sNum.setText(rs.getString(xh); / 获取xh字段 newst.sName.setText(rs.getString(xm); / 获取xm字段if(rs.getString(xb).equals(男) /获取xb字段,判断所选性别 newst.xb1.setSelected(true); else newst.xb2.setSelected(true); newst.sMajor.setText(rs.getString(zy); newst.sHome.setText(rs.getString(jg);int n=stm.executeUpdate(sql);

14、/ 执行sql更新命令if(n0) /判断是否修改数据库JOptionPane.showMessageDialog(null,成功修改一条新的纪录!);elseJOptionPane.showMessageDialog(null, 更新失败, 错误, JOptionPane.ERROR_MESSAGE); con.close(); /关闭结果集stm.close(); /关闭语句catch(Exception e)System.out.println(e); /输出信息 public static void main(String args) /创造主函数 new xiugai(); /调用x

15、iugai()方法 (3).学生删除代码中主要部分代码:public void actionPerformed(ActionEvent e) if(e.getSource()=button) /设置删除按钮 tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url= jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=student.mdb; /连接student数据库Connection conn=DriverManager.getConnection(url);/建立连接Sta

16、tement stmt=conn.createStatement(); /创建Statement对象 String sqlstr =delete from xs where xh=+sHome.getText()+;/创建删除从xs表中删除语句 int result= stmt.executeUpdate(sqlstr); /执行更新命令 if (result0) /判断是否删除 JOptionPane.showMessageDialog(this,学生删除成功!,提示,JOptionPane.INFORMATION_MESSAGE); conn.close(); / 关闭结果集 stmt.c

17、lose(); /关闭语句 catch(Exception E) public static void main(String arg) /创建主函数new scstudent(); /调用scstudent()方法3、运行示例及结果分析(1).主界面结果分析:该界面是学生成绩管理系统的主界面,从这界面可以看出有几个功能系统。(2).添加界面结果分析:在学生信息中输入相应的信息后按增加按钮就会出现恭喜你,学生信息添加成功。 如果在输入信息时,没有输入相应的学号和姓名,则会出现相应的提示框提示学号和姓名不能为空。(3).修改界面结果分析:在信息框中输入课程号,按确定按钮则会跳出相应的课程信息框,

18、如果数据库中有这一课程号,则会把相应的信息显示出来,否则只会显示课程号。(4).删除界面结果分析:在信息框中输入要删除的学生学号按确定按钮,如果所输入的学号在数据库中存在,则会跳出学生删除成功提示框,否则按确定按钮无效。(5).查询界面结果分析:此结果会从所有的显示数据中被提取出来,并不是只显示查询结果。4、调试和运行程序过程中产生的问题及采取的措施(1).在调试程序时在定义公共类是出现问题,导致错误的原因是类名和java文件名不同,只要public去掉或把java文件名修改成与类名一致。(2).在调试课程增加程序时,调试结果没有显示错误,但在运行时增加功能没有实现,导致错误的原因可能是数据库

19、问题,查找数据库代码和数据库中相应的表发现课程表中没有xm这一字段,代码中出现了,删除这一字段即可。(3).在调试主函数代码时会出现一些找不到符号的问题,有可能时你调用的子函数不在同一个文件下,也有可能是你调用的子函数不存在,还有可能是子函数没有调试和运行。要想解决问题只要把相应的java文件放在同一个文件下或创建相应的子函数还可以把那些子函数调试和运行一边,再调试主函数即可。(4).在调试和运行后界面中出现的文字不全和文本框大小与窗体大小不搭调,导致的原因是标签和文本框大小没有设置好。只要重新设置一下大小即可。5、对系统相关功能的讨论、分析,改进设想该学生成绩管理系统的建立主要分为系统管理、

20、学生管理、课程管理、成绩管理和信息管理。在这几个系统功能中有些功能的实现是运用继承JFrame类和实现监听器ActionListener来实现的。为了更好的实现功能可以创建构造函数来实现初始化。同时也可以创造方法通过方法调用来实现相应的功能。为了进一步完善学生成绩管理系统可以有以下改进设想:1).在信息查询系统功能中增加补考信息查询菜单项,再补考信息查询菜单中设置补考学生信息查询和成绩及格学生信息查询子菜单项。在补考学生信息查询中添加补考是否通过信息查询。2).在信息查询系统功能中添加按学期查询,在这个查询中把学生这一学期的所有信息都显示在界面上。3).在主界面中增加获奖信息系统功能项,在这中

21、添加获奖信息,修改获奖信息,删除获奖信息和获奖信息查询。在获奖信息查询中添加按等级查询和按竞赛查询。在按等级查询中只要等级名后按查询按钮就会显示此等级是否通过等这样的信息;在按竞赛查询中输入竞赛名,则会弹出你有没有参加此竞赛框,如有则按确定按钮,则会显示出此同学获讲情况。4).在主界面中添加评价信息系统功能项,此功能主要是为了实现一些人对学生的评价。在这项中分别添加辅导员评价、任课教师评价和同学评价。在辅导员评价中只要输入学生的学号按确定按钮就会跳出相应的评价信息;在任课教师评价中输入学生学号后按确定按钮,则会跳出要你输入课程名信息框,输入课程名后,在按确定按钮则会跳出课程名和任课教师名点击查

22、询则会显示出相应的信息;在同学评价中只要输入学生学号即可。6、总结这次的课程设计任务是开发学生成绩管理系统,在开发的过程中可以看出自己对java知识学到的很少,这次的课程设计能够让我学到很多java知识,同时也有利于期末考试。因为该系统的建立几乎用到了java这学期所学的所有知识。这等于让我复习了一边java知识。在创建学生成绩管理系统时,要想把界面布局好看些首先要会设置标签和文本框大小位置,在设置这时用setBounds( ),在这括号中有四个数字分别表示垂直、水平、长度和高度。同时为了防止误操作一些按钮和文本框可以利用setEnabled(false)来把按钮和文本框禁用。要想使该学生成绩

23、管理系统实现添加、修改、删除和查询功能时就必须与数据库连接起来。用以下代码实现数据库的连接:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url=”jdbc:odbc:drive=Microsoft Access Driver (*.mdb);DBQ=student.mdb;Connectionconn=DriverManager.getConnection(url);Statementstmt=conn.createStatement();在设计修改功能时首先要利用查询语句把查询出来的结果获取出来显示在文本框中,然后再利用SQL的修改

24、语句对相应的信息做出修改,在修改后数据库中的数据要做出相应的更新来保证数据的正确。可以用executeUpdate(sqlstr)来执行。在设置性别这一项是可利用单选按钮来实现。同时还要和ButtonGroup 一起使用才能实现相应的功能。在对事件处理时可用ActionListener监听器和 actionPerformed 方法实现。用代码实现一定的功能时会发生一定的异常,这就要用try catch 来处理。使用这一语句时要知道try只能有一个而catch可以有多个,finally和catch可以同时出现,但finally和catch至少要出现一个,并且不管异常是否会发生,finally语句块都会执行。在这次的课程设计中我懂得了要想作出好的系统光靠书本上的那些知识是万万不够的,要不断的看系统开发之类的书和自己动手实践才能够学到相应的知识。同时一个人学习是孤学而无有,相互学习才是最有效的。7、参考文献1.张亦挥 冯华 胡洁 Java面向对象程序设计 人名邮电出版社 2010年9月2.黄小东 Java课程设计按例精编 中国水利水电出版社 2004年5月3.陆正武 Java项目开发实践(第2版) 中国铁道出版社 2005年7月4.张广彬 孟红蕊 张永宝 Java课程设计按例精编 清华大学出版社2007年1月

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号