




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告课程设计名称:学生成绩管理系统系 : 三系 学生姓名: * 班 级: 计算机(3)班 学 号: * 成 绩: 指导教师: * 开课时间:2010-2011学年 2 学期一设计题目学生成绩管理系统二主要内容学生成绩管理系统从功能上划分可分为以下几大模块:1.学生信息管理学生信息管理模块:设置学生基本信息,并可以对学生信息进行添加、修改、删除。2.课程信息管理课程信息管理:设置课程号,课程名,任课教师等课程信息,并可以对课程信息进行添加、修改、删除。3.学生成绩管理成绩信息管理模块:设置成绩信息,并可以对成绩信息进行添加、修改、删除。还可以用关键字查询并调出数据库里的学生基本成绩信息的修改、删除等。输出查询的学生成绩信息,并对学生成绩总分,平均分等进行统计。三具体要求1.具有良好的系统性能,友好的用户界面2.较高的处理效率,便于使用和维护3.采用成熟的技术开发,是系统具有较高的技术水平和较长的生命周期4.系统尽可能简化重复工作,提高工作效率简化数据查询、降低统计难度四进度安排序号内 容时间(天)1调试工具使用0.52概要设计13详细设计24调试分析0.55测试结果16总结和完成设计报告2合 计7五成绩评定正文1、 系统的需求分析和功能设计需求分析:该学生成绩管理系统的开发是为了能够让用户方便、快速的查找有关于一些学生的基本信息。同时该学生成绩管理系统的建立也要要求能够节约用户时间和节约系统资源等。该系统是由以下几部分组成:系统管理、学生管理、课程管理、成绩管理和信息管理。在系统管理功能中有退出功能;学生成绩管理功能中有增加学生、修改学生和删除学生;课程管理功能中有增加课程、修改课程和删除课程;成绩管理功能中成绩增加和成绩修改;信息管理功能中学生信息查询、课程信息查询和成绩查询。在查询功能中还有一些子功能。功能设计:1.系统功能结构学生成绩管理系统分为3大功能模块,分别为:学生信息管理、课程管理、成绩管理。系统各个部分及其包括的具体功能模块如图1所示。学生成绩管理系统学生信息管理课程信息管理成绩信息管理信息查询学生信息修改学生信息删除课程信息添加课程信息修改课程信息删除成绩信息添加成绩信息修改成绩信息删除学生信息查询课程信息查询成绩信息查询按学号查询按姓名查询按性别查询按专业查询按班级查询按课程名查询按任课老师查询按科目查询图1 系统功能结构图2.数据库设计(1) 数据库概念结构设计局部e-r图 学生实体图:共有6中属性,包括学号、姓名、性别、出生日期、专业、籍贯等6种属性,如图2所示。学生学号姓名籍贯专业性别出生日期图2学生实体图课程实体图,课程信息实体共有3种属性,包括课程号,课程名,任课教师等3种属性,如图3所示。课程课程号任课教师课程名图3课程实体图成绩信息学号考试成绩课程名成绩实体图,成绩信息实体共有3种属性,包括学生学号,课程名称,平考试成绩,成绩信息实体图如图4所示。 图4成绩信息实体图系统e-r图如图5所示11nn学生学号姓名籍贯专业出生日期性别课程信息选课课程名课程号任课教师成绩信息课程名学号成绩考试(2) 数据库逻辑结构设计本系统采用access数据库,各数据表结构如下:学生信息表: 如表1所示表1 学生信息表课程信息表: 如表2所示表2 课程信息表成绩信息表: 如表3所示表3 成绩信息表2、源程序及注释12(1)增加学生代码中主要代码如下:public void actionperformed(actionevent e) if(e.getsource()=clearinfo) /设置清空按钮功能 snum.settext(); 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=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=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.executeupdate(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).修改学生代码中主要部分代码如下:public 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=new 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=microsoft 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.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); / 执行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(); /调用xiugai()方法 (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);/建立连接statement 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.close(); /关闭语句 catch(exception e) public static void main(string arg) /创建主函数new scstudent(); /调用scstudent()方法3、运行示例及结果分析(1).主界面结果分析:该界面是学生成绩管理系统的主界面,从这界面可以看出有几个功能系统。(2).添加界面结果分析:在学生信息中输入相应的信息后按增加按钮就会出现恭喜你,学生信息添加成功。 如果在输入信息时,没有输入相应的学号和姓名,则会出现相应的提示框提示学号和姓名不能为空。(3).修改界面结果分析:在信息框中输入课程号,按确定按钮则会跳出相应的课程信息框,如果数据库中有这一课程号,则会把相应的信息显示出来,否则只会显示课程号。(4).删除界面结果分析:在信息框中输入要删除的学生学号按确定按钮,如果所输入的学号在数据库中存在,则会跳出学生删除成功提示框,否则按确定按钮无效。(5).查询界面结果分析:此结果会从所有的显示数据中被提取出来,并不是只显示查询结果。4、调试和运行程序过程中产生的问题及采取的措施(1).在调试程序时在定义公共类是出现问题,导致错误的原因是类名和java文件名不同,只要public去掉或把java文件名修改成与类名一致。(2).在调试课程增加程序时,调试结果没有显示错误,但在运行时增加功能没有实现,导致错误的原因可能是数据库问题,查找数据库代码和数据库中相应的表发现课程表中没有xm这一字段,代码中出现了,删除这一字段即可。(3).在调试主函数代码时会出现一些找不到符号的问题,有可能时你调用的子函数不在同一个文件下,也有可能是你调用的子函数不存在,还有可能是子函数没有调试和运行。要想解决问题只要把相应的java文件放在同一个文件下或创建相应的子函数还可以把那些子函数调试和运行一边,再调试主函数即可。(4).在调试和运行后界面中出现的文字不全和文本框大小与窗体大小不搭调,导致的原因是标签和文本框大小没有设置好。只要重新设置一下大小即可。5、对系统相关功能的讨论、分析,改进设想该学生成绩管理系统的建立主要分为系统管理、学生管理、课程管理、成绩管理和信息管理。在这几个系统功能中有些功能的实现是运用继承jframe类和实现监听器actionlistener来实现的。为了更好的实现功能可以创建构造函数来实现初始化。同时也可以创造方法通过方法调用来实现相应的功能。为了进一步完善学生成绩管理系统可以有以下改进设想:1).在信息查询系统功能中增加补考信息查询菜单项,再补考信息查询菜单中设置补考学生信息查询和成绩及格学生信息查询子菜单项。在补考学生信息查询中添加补考是否通过信息查询。2).在信息查询系统功能中添加按学期查询,在这个查询中把学生这一学期的所有信息都显示在界面上。3).在主界面中增加获奖信息系统功能项,在这中添加获奖信息,修改获奖信息,删除获奖信息和获奖信息查询。在获奖信息查询中添加按等级查询和按竞赛查询。在按等级查询中只要等级名后按查询按钮就会显示此等级是否通过等这样的信息;在按竞赛查询中输入竞赛名,则会弹出你有没有参加此竞赛框,如有则按确定按钮,则会显示出此同学获讲情况。4).在主界面中添加评价信息系统功能项,此功能主要是为了实现一些人对学生的评价。在这项中分别添加辅导员评价、任课教师评价和同学评价。在辅导员评价中只要输入学生的学号按确定按钮就会跳出相应的评价信息;在任课教师评价中输入学生学号后按确定按钮,则会跳出要你输入课程名信息框,输入课程名后,在按确定按钮则会跳出课程名和任课教师名点击查询则会显示出相应的信息;在同学评价中只要输入学生学号即可。6、总结这次的课程设计任务是开发学生成绩管理系统,在开发的过程中可以看出自己对java知识学到的很少,这次的课程设计能够让我学到很多java知识,同时也有利于期末考试。因为该系统的建立几乎用到了java这学期所学的所有知识。这等于让我复习了一边java知识。在创建学生成绩管理系统时,要想把界面布局好看些首先要会设置标签和文本框大小位置,在设置这时用setbounds( ),在这括号中有四个数字分别表示垂直、水平、长度和高度。同时为了防止误操作一些按钮和文本框可以利用setenabled(false)来把按钮和文本框禁用。要想使该学生成绩管理系统实现添加、修改、删除和查询功能时就必须与数据库连接起来。用以下代码实现数据库的连接:class.forname(sun.jdbc.odbc.jdbcodbcdriver); string url=”jdbc:odbc:d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级下册第一单元3 荷花教案
- 人教版九年级上册第四单元《课题3 水的组成》教学设计
- 非计划再次手术知识培训
- 工业固体废物规范处理培训
- 合规考试信贷练习试题及答案
- 2024-2025学年七年级下学期道德与法治期中模拟试卷(二)(统编版2024新教材含答案解析)
- 2025年苏教版小学数学小升初模拟考试测试卷及答案(共五套)
- 【八下RJ数学】安徽省合肥市庐江县汤池镇初级中学2023-2024学年八年级数学下学期期中模拟测试卷
- 采购合同诉讼重点基础知识点
- 大气环境生态规划重点基础知识点
- 中学2021年秋季开学疫情防控工作方案及要求4篇
- 体格检查-腹部检查(临床诊断课件)
- 2025年叉车司机操作证考试题库
- DB11-T 1448-2017 城市轨道交通工程资料管理规程
- 【MOOC】《学术交流英语》(东南大学)章节中国大学慕课答案
- 2025年鼎和财产保险股份有限公司招聘笔试参考题库含答案解析
- 第一单元 从感知到物联 第1课开启物联网之门 说课稿2024-2025学年 人教版新教材 初中信息技术八年级上册
- 性病防治工作计划
- DBJ33T 1300-2023 建筑施工现场安全防护设施设置技术规程
- 医院培训课件:《电击除颤-电复律》
- 2025年教科版科学五年级下册教学计划(含进度表)
评论
0/150
提交评论