版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 山东理工大学课程实训报告数据库实训题目:学生成绩管理信息系统学 院: 计算机科学与技术学院 班 级: 软件1304 姓 名: 郭江涵 学号 131105721xx 指导教师: xx 总评成绩指导教师签名2016年 01 月 04日 2016年 01 月10日实训成绩评定表1.设计报告部分 (30分) 封面设计符合要求(3分); 报告格式符合要求(7分); 功能叙述完备,错别字少,章节段落分布合理,无抄袭或雷同现象(10分); 排版质量高,图片处理且效果好(10分)。2. 设计内容部分得分点及分数数据流图、e-r图和数据库关系图数据流图15e-r图15数据库关系图20合计50得分点及分数程序设
2、计说明书简要程序设计流程图代码20合计203.成绩评定综合评语 指导教师签名: 年 月 日目 录第一章概述1第二章 系统分析2第三章 数据库设计4第四章 系统实现7第五章 结束语19第一章 概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。随着信息时代的发展,对于学生信息的管理已经不再局限于纸上的那些繁琐的记录,而是通过电脑软件程序对学生的信息进行管理,这样不但可以简化管理的复杂度,还可以提高管理过程中的准确性,因此有必要设计一款专门针对于学生信
3、息管理的一个程序,于是设计了此学生信息管理系统。该应用程序能够对每个学生的相关信息进行注册、储存、修改和删除等操作。该系统要求按身份登陆,即学生、教师、管理员等不同身份进行访问。该程序便于操作,面向广大群体,条理清晰,容易理解,容易修改。学生信息管理系统,从字面来看主要是对学生信息的资料进行管理,但实际上,核心却是系统与管理人员的交互,如何能把如此多的信息登记尽可能的进行操作上的精简是我们的一大难题。与其进行繁琐的操作,让操作标的简洁才是我们工作的重点.程序上是分为java窗体程序和数据库两大部分,主要进行数据库的调用,设计需要满足以下的需求:1.学生的信息的资料,应该包括学生的学号、姓名、所
4、属学院、所属专业、所属班级、家庭地址,并且系统还能够修改输入错误的学生个人信息记录。2.可以对学生的选课进行管理,包括可选课程和个人已选课信息,并进行相应的选课操作。3. 可以对课程进行管理,课程管理包括增加课程和删除课程,该课程包括任课教师和所属专业。4. 根据学号、姓名、班级查询学生信息。根据课程、专业、学分查询课程的相关信息。5.系统使用权限管理方式。根据工作流程,系统有2种角色:管理员、学生和教师。管理员允许对课程信息、教师信息、学生信息的管理。学生可以进行选课和查看课程信息的操作。教师可以查看本人所售课程的学生信息。第二章 系统分析1.系统需求:1. 使用友好的全屏幕用户界面,菜单驱
5、动,多窗口。2. 数据维护功能,通过窗体实现录入、添加和修改所有表的内容。3. 查询统计功能,设置多种查询方式,实现对学生的基本信息、考试成绩情况等 进行查询。4. 系统维护功能,适当的加入系统密码管理、数据备份等帮助功能。2.输入的形式和输入值的范围形式:输入学生的学号,姓名,年龄,性别,出生年月,地址,电话,e-mail。输入一个学生信息一个回车。用输入的学号p1-num来控制输入,当输入的学号为0时,用break跳出循环。即if(p1-num=0)break。输入值的范围:学号、年龄为整型 long num; int age; 姓名为字符串型15个字节char name15; 性别为字符
6、串型,10个字节char sex10; 出生为字符串型,20个字节char chushen20; 地址为字符串型,30个字节char dizhi30;邮箱为字符串型,输入11位数字char email11。3.输出的形式输出是以表格的形式输出,即表格的每一行都能显示第一个学生的信息,第二行是显示第二个学生的信息4.课题实现:首先建立数据库,然后创建数据表,设置主键以及各种约束,学生属性主要包括姓名,学号,性别,年龄,学院,联系电话,家庭住址。其中学号为主键,车号设立唯一性约束,将数据库拥有者更改为sa,密码设置为123。该应用程序包含了管理员模块(包含学生管理子模块和课程管理子模块)、教师模块
7、、学生模块和公共模块。管理员模块是系统的核心,学生管理子系统实现对学生信息的添加、修改、删除操作,以输入条件进行条件查询。课程管理子系统实现对课程的添加,添加时为其分配任课教师、上课时间、地点和课程详细信息,实现对课程的修改、删除,查看某个课程的详细信息等。教师模块实现查看自己所教授的课程、课程有哪些学生选修,以及利用本系统提交学生的成绩。学生模块实现学生的选课,查看、修改自己的选课信息。公有模块实现用户的身份验证,密码修改,退出系统等功能。在学生管理子系统包括学生信息和选课信息,要求对学生信息和选课信息的添加、删除、修改和查询,该模块中当学生修改信息时,对相关的组件添加了事件,相应的jcom
8、bobox添加了itemstatechange的相关事件,对其进行了三级联动设计,利用形式参数进行传递一个int型的值,当点击相应的jcombobox时启动下一个相关的组件应用。在课程查询时应用相应的jscorllpane组件显示所查询的相关信息。整个学生管理系统的数据都是在数据库有存储信息的,因此在应用程序中要应用相应的sql server语句来对数据库添加、删除、修改相应信息。sql server语句主要有update、insert、select语句。运用frm窗体编辑窗口程序,建立frm窗体,插入标签以及按钮,设置按钮触发功能,然后运用drivermanager.registerdriv
9、er(new sqlserverdriver();con = drivermanager.getconnection(strconn, sa, 123);语句链接数据库内容。loginframe界面主要为jtextfield,利用jtextfield的gettext属性获取文本框里输入的相应的内容,然后应用sql server的select的语句来查询并验证密码是否与数据库一致,如若不一致则弹出一个messagebox的信息提示框提示输入正确的密码。在验证密码是应用了equals关键字,equals主要应用于字符的比较,而等号(=)主要应用于数据的比较。mainframe界面主要jmenu和j
10、menuitem组件,完成了主界面的菜单栏,并分别对每个jmenuitem添加了一个事件监听器,使点击时显示每个相应的item界面,以便于对信息的操作。学生信息管理主要包括学生信息和选课信息,完成了相应的信息注册、修改、查询和选课查询操作。学生信息注册包含姓名、学号、省份证号、所属学院及专业和班级、家庭住址等信息。数据库的student表也添加了相应的列。在学生信息注册和修改页面还应用了jcombobox的三级联动,使用参数传递,获取相应的jcombobox的getselectedindex来控制显示的内容。班级信息录入和班级信息管理对各个班级的信息进行管理的界面,主要有jcombobox的二
11、级联动和jradiobutton组件的应用。班级信息管理界面中声明了displaybuttongroup用于控制三个jradiobutton组件。用不同的方式查询班级信息,当点击修改时弹出一个修改的jframe界面。第三章 数据库设计1.数据库设计1).学生学籍表 如图3.1.1字段名称标识名称数据类型空否字段说明userid学号varcha(16)否主键 uername姓名varcha(16)可空sex性别char(4)可空birthday出生日期datetime可空class班级char(20)可空图3.1.12).课程信息表如图3.1.2字段名称标识名称数据类型空否字段说明course课
12、程号char(16)否主键coursenanme课程名称char(16)可空coursetime课时char(16)可空fen学分char(10)可空type类型char(10)可空year年度nchar(10)可空图3.1.23).学生成绩表字段名称标识名称数据类型空否字段说明name学生姓名char(16)可空class班级char(16)可空id学号char(16)否主键usually平时成绩int (5)可空finally期末成绩int (5)可空图3.1.3学生成绩表2.数据库关系图1).数据流图 如图3.2.1图3.2.12).数据e-r图 如图3.2.2图3.2.23).数据库关
13、系图 如图3.2.3图3.2.3第四章 系统实现 1、打开系统会提示选择操作事项。如图4.1图4.1主界面 2、选择查询操作后可查询学生和课程以及成绩信息。如图4.2由以下代码实现:public class selectall extends javax.swing.jframe datatoper dt; /* creates new form selectall */ public selectall() initcomponents(); dt=new datatoper(); dm=new defaulttablemodel(); dm.addcolumn(课程信息); dm.addc
14、olumn(成绩信息); dm.addcolumn(学生信息) table.setmodel(dm); 图4.2查询信息界面3、选择系统维护,可进入数据备份界面,如图4.3由以下代码实现:private void jbutton1actionperformed(java.awt.event.actionevent evt) int result = 0;file file = null;string path = null;jfilechooser filechooser = new jfilechooser();filesystemview fsv = filesystemview.getf
15、ilesystemview(); system.out.println(fsv.gethomedirectory(); /得到桌面路径filechooser.setcurrentdirectory(fsv.gethomedirectory();filechooser.setdialogtitle(请选择要进行备份的文件夹.);filechooser.setapprovebuttontext(确定);filechooser.setfileselectionmode(jfilechooser.files_only); component chatframe = null;result = file
16、chooser.showopendialog(chatframe);if (jfilechooser.approve_option = result) path=filechooser.getselectedfile().getpath();system.out.println(path: +path); connection conn = connect.getconnection(); try statement statement = conn.createstatement(); statement.executeupdate(use master); string sql=backu
17、p database bankserver to disk=+path+ with format,init; statement.executeupdate(sql); joptionpane.showmessagedialog(this, 数据库备份成功, 系统提示, joptionpane.no_option); catch(sqlexception e) system.out.println(数据库备份失败); e.printstacktrace(); 图4.3系统信息4、 选择课程查询可查询课程信息。如图4.4由以下代码实现:private void jbutton1actionper
18、formed(java.awt.event.actionevent evt) try string str=select * from course; resultset res=dt.selectinfo(str); dm=new defaulttablemodel(); dm.addcolumn(课程编号); dm.addcolumn(课程名称); dm.addcolumn(课程类型); dm.addcolumn(学时); dm.addcolumn(学分); table.setmodel(dm); while(res.next() vector v=new vector(); result
19、setmetadata da=res.getmetadata(); for(int i=1;ida.getcolumncount()+1;i+) v.add(res.getstring(i); dm.addrow(v); / todo add your handling code here: catch (sqlexception ex) logger.getlogger(selectall.class.getname().log(level.severe, null, ex); 图4.4课程查询信息 5、选择成绩查询,可进入成绩查询界面。如图4.5有以下代码实现private void jb
20、utton2actionperformed(java.awt.event.actionevent evt) try string str=select * from score; resultset res=dt.selectinfo(str); dm=new defaulttablemodel(); dm.addcolumn(成绩编号); dm.addcolumn(课程编号); dm.addcolumn(期末成绩); dm.addcolumn(补考成绩); dm.addcolumn(是否重修); table.setmodel(dm); while(res.next() vector v=ne
21、w vector(); resultsetmetadata da=res.getmetadata(); for(int i=1;ida.getcolumncount()+1;i+) v.add(res.getstring(i); dm.addrow(v); / todo add your handling code here: catch (sqlexception ex) logger.getlogger(selectall.class.getname().log(level.severe, null, ex); 图4.5 成绩查询界面6、选择学生信息查询可进入学生查询界面。如图4.6有以下
22、代码实现private void jbutton3actionperformed(java.awt.event.actionevent evt) try string str=select * from students; resultset res=dt.selectinfo(str); dm=new defaulttablemodel(); dm.addcolumn(学生编号); dm.addcolumn(学生姓名); dm.addcolumn(性别); dm.addcolumn(出生日期); dm.addcolumn(所属班级); dm.addcolumn(所属学院); dm.addco
23、lumn(联系电话); dm.addcolumn(所在地址); table.setmodel(dm); while(res.next() vector v=new vector(); resultsetmetadata da=res.getmetadata(); for(int i=1;ida.getcolumncount()+1;i+) v.add(res.getstring(i); dm.addrow(v); / todo add your handling code here: catch (sqlexception ex) logger.getlogger(selectall.clas
24、s.getname().log(level.severe, null, ex); 图4.6学生信息查询界面7、在主界面中选择学生信息录入,可进入录入学生信息界面。如图4.7由以下代码实现:private void jbutton1actionperformed(java.awt.event.actionevent evt) boolean flagb; try / todo add your handling code here: string sql=insert into students values(+this.jtxt1.gettext()+,+this.jtxt2.gettext(
25、)+,+this.jtxt3.gettext()+,+this.jtxt4.gettext()+,+this.jtxt5.gettext()+,+this.jtxt6.gettext()+,+this.jtxt7.gettext()+,+this.jtxt8.gettext()+); datatoper oper=new datatoper(); flagb=oper.addinfo(sql); if(flagb=true) joptionpane.showmessagedialog(this, 学生信息录入成功, 系统信息, joptionpane.no_option); else jopt
26、ionpane.showmessagedialog(this, 系统信息录入失败, 系统信息, joptionpane.error_message); catch (sqlexception ex) logger.getlogger(addstuinfo.class.getname().log(level.severe, null, ex); 图4.7 录入学生信息界面8、在主界面中选择学生信息修改或删除,都可进入修改或删除学生信息界面。如图4.8由以下代码实现: private void jbutton5actionperformed(java.awt.event.actionevent e
27、vt) / todo add your handling code here: boolean flag; string sql=update students set realname=+this.jtxt2.gettext()+,sex=+jtxt3.gettext()+,brithday=+jtxt4.gettext()+,class=+jtxt5.gettext()+,school=+jtxt6.gettext()+,tell=+jtxt7.gettext()+,addres=+jtxt8.gettext()+ where stuid=+stuid+; datatoper oper=n
28、ew datatoper(); try flag=oper.delupinfo(sql); if(flag=true) joptionpane.showmessagedialog(this, 更新成功!, 系统信息, joptionpane.no_option); else joptionpane.showmessagedialog(this, 更新失败!, 系统信息, joptionpane.error_message); catch(sqlexception e) e.printstacktrace(); 图4.8 修改或删除学生信息界面9、在主界面中选择课程信息录入,可进入录入课程信息界
29、面。如图4.9图4.9录入课程信息界面10、在主界面中选择课程信息修改或删除,都可进入修改删除课程信息信息界面。如图4.10图4.10 修改删除课程信息界面11、在主界面中选择学生成绩录入,可进入录入学生成绩界面。如图4.11图4.11 录入学生成绩界面12、在主界面中选择成绩信息修改或删除,都可进入修改删除成绩信息信息界面。如图4.12图4.12 修改删除成绩信息界面13、在主界面中选择退出,进入退出系统界面。如图4.13由以下代码实现:rivate void jmenu7mouseclicked(java.awt.event.mouseevent evt) / todo add your handling code here: int i=joptionpane.showconfirmdialog(this, 是否退
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年水利工程运行维护考核试题冲刺卷
- 2025年职业教育教师专业能力测试试题及真题
- 双语教育学生语言能力试题及真题
- 企业内训师培训需求评估反馈收集测试试题
- 计量技术领域注册师资格认证考试改革试题冲刺卷
- 2026年南昌理工学院单招综合素质考试题库带答案详解(预热题)
- 2026年北京市单招职业倾向性测试题库含答案详解(巩固)
- 2026年信阳学院单招职业倾向性测试题库带答案详解(b卷)
- 2026年厦门华厦学院单招职业倾向性考试题库附参考答案详解(黄金题型)
- 2026年南京铁道职业技术学院单招职业技能考试题库附参考答案详解(达标题)
- 2026年春季学期校长在全体教职工开学大会上的工作报告与展望
- 2025-2026学年北京市朝阳区高三(上期)期末考试英语试卷(含答案)
- 2026年人口迁徙对房地产市场的动态影响
- 外委生产安全管理制度
- 教师数字素养提升对中等职业教育教学实践的影响研究教学研究课题报告
- 2026天津农村商业银行招聘面试题及答案
- 上海医院招人面试题目及答案
- 无人机展厅设计
- 企业年度报告及财务报表制作模板
- 2025年公务员与事业单位类公文写作与处理模拟试题
- 2025年及未来5年中国商用车车联网行业市场运营现状及投资规划研究建议报告
评论
0/150
提交评论