JAVA学生成绩管理系统课程设计报告_第1页
JAVA学生成绩管理系统课程设计报告_第2页
JAVA学生成绩管理系统课程设计报告_第3页
JAVA学生成绩管理系统课程设计报告_第4页
JAVA学生成绩管理系统课程设计报告_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖南工业大学课程设计资料袋计算机与通信学院学院(系、部)2016-2017 学年第 1 学期课程名称数据结构指导教师文志诚职称 讲师学生姓名孙浩专业班级软件工程1501 班 学号题目成 绩起止日期2016 年 12 月 18日 2016 年 12 月 23 日录清单序号材料名称资料数量备注1课程设计任务书12课程设计说明书13源程序(电子文档)1456湖南工业大学课程设计任务书2016-2017 学年第 1 学期计算机与通信学院(系、部)软件工程专业 1501 班级课程名称:数据结构设计题目:完成期限:自2016 年 12 月 18 日至 2016 年 12 月 26 日共 1内 容 及 任

2、务一、设计的任务及主要技术参数使用java 设计一个能够符合课程设计要求的系统二、设计任务三、设计工作量进度安排起止日期工作内容需求分析概要设计详细设计调试分析、测试结果主要参考资料指 导 教 师 (签字) :年 月系( 教 研 室 )主 任( 签字) :年 月数据结构程序设计(java 语言)课程设计设计说明书学生成绩管理系统起止日期:2016 年 12 月 18 日 至 2016 年 12 月 23 日学 生 姓 名孙浩班级软 件 工 程 1501 班学号成绩指 导 教 师 (签 字 )计算机与通信学院2016年12 月 23 日1 需求分析系统的具体任务该系统的具体任务就是设计一个学生成

3、绩的数据库管理系统,由计算机来代替人工执行一系列诸如增加新学生成绩信息、删除学生成绩信息、学生资料、查询、修改等的处理操作,以方便管理人员的管理信息工作。本设计以客户为中心,界面要美观大方,操作尽量简单明了,且要有良好的容错性,在用户出现误操作时能及时给出警告并修改。在现有的技术和资金的情况下完全可以设计出这套功能完善的应用软件。系统开发目的建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。实现学生成绩信息管理工作流程的系统化、规范化和自动化。系统环境需求编程语言:JAVAJava + Eclipse + SQL server 数据库开发工具:Eclipse

4、SDK( 英文版 )SQL 2000(中文版)运行环境:Windows xp 或 windows 20002 概要设计总体功能需求系统登录包括管理员、教师和学生三种类型的登录。1. 录入学生信 息(初始化)在系统中不存在任何对象时,实现该功能。具体功能为:1:检测文件系统/ 数据库中是否存在相关文件/ 表;2: 若不存在相关文件/ 表, 则要求用户录入学生信息,并序列化或通过JDBC存储到文件/表;3: 若已存在相关文件/ 表, 则反序列化或通过JDBC读取到程序中。注意:学生纪录不允许重复,判断的关键字为学号2. 添加学生记 录往已有的学生纪录添加新的学生纪录。具体功能为:1:要求用户从键盘

5、输入一个或多个学生信息;2:输入完成后序列化或JDBC存储到文件/表。注意:学生纪录不允许重复,判断的关键字为学号3. 删除学生记 录在已有的学生纪录中删除一个或多个学生纪录。具体功能为:1:要求用户输入欲删除的学生的学号;2:删除学生记录;3:更新到文件/ 表。4. 修改学生记 录在已有的学生记录中修改某学生的相关信息。具体功能为:1:要求用户输入欲修改的学生的学号;2:判断该学生是否存在于记录中;3:若学生记录存在,提供修改学生信息功能。5. 查看学生记 录查看单个学生记录。具体功能为:1:输入学生学号;2:若该学生存在,打印该学生相关信息。查看多个学生记录。具体功能为:1:打印出所有学生

6、的记录;2: 能分别按学号、姓名、性别、年龄和分数进行排序。6. 退出系统退出系统。初始化流程描述:1:初始化系统执行对对象进行序列化2:反序列化获得对象业务规则说明:1:进入系统第一步必须序列化。2:获得反序列化的对象,如果文件不存在兴建一个,单必须是需要的对象类型。添加学生流程描述:1:要求用户从键盘输入一个或多个学生信息;2:输入完成后序列化到文件/表。3:学生纪录不允许重复,判断的关键字为学号规则说明:1:从菜单选择添加学生,获得容器对象。2:进入添加页面提示添加属性。3:性别限制男女。4:科目成绩可变性。课程可自动调节5:学号作为唯一标示符:不能出现重复学号。必须是数字组成。6 :添

7、加完成后把容器对象序列化到文件删除学生记录业务流程描述:1:要求用户输入欲删除的学生的学号;2:删除学生记录;3:更新到文件/ 表。业务规则说明:1:传递一个容器对象。2:给定一个学生学号删除一个学生信息2:遍历容器是否有输入学号的学生信息。如果存在,提示是否删除。如果没有重新输入。3:如果删除成功返回一个容器对象,序列化到文件。修改学生记录业务流程描述:1:要求用户输入欲修改的学生的学号;2:判断该学生是否存在于记录中;3:若学生记录存在,提供修改学生信息功能。业务规则说明:1:传递一个容器对象给修改方法。2:给定一个欲修改学生的学号3 :遍历容器是否有输入学号的学生信息。如果存在学生对象,

8、继续下一步。如果没有重新输入。4:通过判断知道存在学生对象后遍历获得学生对象。5:提示要修改的类容提示旧的信息添加新的信息6 :修改后获得容器对象,序列化到文件查看学生记录业务流程描述:1:输入学生学号;2:若该学生存在,打印该学生相关信息。查看多个学生记录。具体功能为:1:打印出所有学生的记录;2:能分别按学号、姓名、性别、年龄和分数进行排序。业务规则说明:1:输入选项获得查看方式,获得容器对象。2:全部查看显示获得全部学生信息3 :查看特定学生。输入学生学号;判断学生是否存在如果存在显示单个学生,如果不存在提示不存在,重新输入。退出系统提示是否退出3 系统分析系统开发流程HIPO图是美国I

9、BM公司发明的“层次图加输入 /处理 /输出图” 的英文缩写。根据系统的模块层次结构可得到系统HIPO图,本软件的HIPO图如图所示。图 系统HIPO图模块是数据说明、可执行语句等程序对象的集合。是可以单独被命名的而且可通过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。模块化就是将程序划分成若干个模块,每个模块完成一个子功能,把这些模块集合起来组成一个整体,可以完成指定的功能满足问题的要求。模块化设计不仅降低了系统的复杂性,使得系统容易修改,而且推动了系统各个部分的并行开发,从而提高了软件的生产效率。以下为成绩管理的IPO表,如图所示:图 成绩管理IPO表系统模块设计系统用例图用例

10、图主要用来图示化系统的主事件流程,它主要用来描述需求,即希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,是设计系统分析阶段的起点,设计人员根据需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系。系统总体用例图本系统包括三类角色:教师、管理员和学生。教师可以进行分报表,记录分数和更新分数的操作,管理员可以查看分数和进行成绩的总报表,学生可以查看个人成绩。同时系统还可以加载分数和保存分数。其系统总体用例图如图所示:图 系统总体用例图学生信息用例图学生信息管理模块包括三类角色,可分别根据自己的权限对个人信息进行增加、删除和修改等操作。其用例图如图所示

11、:图 学生信息用例图管理员信息用例图管理员信息管理模块包括两种角色,根据不同的权限可以添加管理员、查看管理员、删除管理员,还包括登录,管理员信息用例图如图所示:图 管理员信息用例图系统结构模块分析用户管理模块添加用户,删除用户:public void managementUser(String sa) interFram = new JInternalFrame(sa, true, true, true, true);(0, 0, , ;();(true);jkjkjk = new 管理用户();(jkjkjk);add(interFram, ;开始是添加添加用显示用户返回否删除用显用示户返回

12、用户管理流程图增加学生信息模块对学生信息进行增加:public void addC(String sa) interFram = new JInternalFrame(sa, true, true, true, true);(0, 0, , ;();(true);jkjkjk1 = new 信息 ();(jkjkjk1);add(interFram, ;stu 学生 extends JPanel JTable table;JScrollPane scroll;String rili = new String1003;String str1, str2, str3;Object name = &

13、quot; 学号 ", " 学科 ", " 成绩 " ;Connection con;int lyl, lwc;Statement sql;ResultSet rs;图 学生信息增加流程图修改学生信息模块对学生的成绩及信息进行修改:String rili = new String1004;JButton f = JButton(" 修改信息");学生信息视图表() try con = ("jdbc:odbc:qyl", "", "");sql = ,rs = (&q

14、uot;select * fromWHERE SNO = " + "'"+ qyl + "'");int i = 0;while () rilii0 = (1);rilii1 = (2);rilii2 = (3);rilii3 = (4); i+;String oldvalue = (), ().toString();int row = ();int column = ();if(column=0)int n = (jk, " 您选择删除"+ rilirow1+"("+rilirow2+&

15、quot;b)"+"成 绩n 是否继续 ", " 提示对话框",;if (n = String del = "DELETE FROM SC WHERE CNO = " +"'"+rilirow1+"'" ;图修改学生成绩流程图综合查询模块class 查询 extends JPanel JTable table;JScrollPane scroll;String rili = new String1005;Object name = " 学号 ", &

16、quot; 姓名 ", " 性别 ", " 年龄 ", " 系别 " ;int lht, lyl, lwc;Connection con;String oldvalue = null;Statement sql;String str1, str2, str3, str4, str5;ResultSet rs;存储过程及触发器:触发器:删除S 表中的数据以后SC表中的相应的数据也被删除CREATE TRIGGER delS_SC ON S FOR DELETEAS declare SNO_DEL char(12) select

17、 SNO_DEL =SNO from deleted delete from SCwhere SNO=SNO_DEL触发器:更新S 表中的SNO后 SC表中的也相应改变CREATE TRIGGER UptateS_SC ON SFOR UPDATEAS IF UPDATE(SNO)BEGINDECLARE SNO_NEW CHAR(12),SNO_OLD CHAR(12) SELECT SNO_NEW = SNO FROM INSERTEDSELECT SNO_OLD =SNO FROM DELETEDUPDATE SC SET SNO =SNO_NEW WHERE SNO =SNO_OLD

18、END触发器:删除C表中的信息后SC表中的相应信息也会被删除掉CREATE TRIGGER delC_SC ON C FOR DELETEAS declare CNO_DEL char(2)select CNO_DEL =CNO from deleteddelete from SCwhere CNO=CNO_DEL触发器:更新C表中的信息后SC表中的相应信息也会随着改变CREATE TRIGGER UptateC_SC ON CFOR UPDATEAS IF UPDATE(CNO)BEGINDECLARE SNO_NEW CHAR(12),SNO_OLD CHAR(12)SELECT SNO_

19、NEW = CNO FROM INSERTEDSELECT SNO_OLD =CNO FROM DELETEDUPDATE SC SET CNO =SNO_NEW WHERE CNO =SNO_OLD END触发器:删除T 表中的教师信息后TC表中的相应信息也会别删掉CREATE TRIGGER delT_TC ON TFOR DELETEAS declare SNO_DEL char(12) select SNO_DEL =TNO from deleted系统程序流程图管理员登录模块管理员登录的流程是:如果管理员存在,则直接输入账号密码,系统判断账号密码是否正确,如果输入不正确,重新输入,直

20、到输入正确之后才可以进入系统;当管理员不存在时,作者选择注册,根据个人详细情况输入个人信息,系统将会判断输入的信息是否正确,直到输入的信息正确之后才注册成功,然后输入注册的账号密码登录系统,系统仍会判断账号密码是否正确,直到输入正确的账号密码才会进入系统。其流程图如图所示:图 管理员登录流程图成绩管理模块成绩管理的流程是:管理员输入账号密码之后,系统判断输入账号密码是否正确,不正确,重新输入直到正确才可以进入后台管理系统,选择成绩管理,选择要进行审核的成绩,进行编辑修改,之后再进一步审核,确定成绩是否录用,如果是存储成绩,则会显示在系统前台的首页。其流程图如图所示:图 成绩管理流程图系统过程设

21、计过程设计的任务不是具体地编写程序,而是要设计出程序的“蓝图”,程序员根据这个蓝图写出实际的代码。因此, 过程设计的结果基本上决定了最终的程序代码的质量。在软件的生命周期中,实际上对于长期使用的软件系统而言,人读程序的时间可能比写程序的时间还要长得多。因此,衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是要看它是否容易阅读和理解。过程设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。结构程序设计技术是实现上述目标的关键技术,因此是过程设计的逻辑基础。N-S 图是一种符合结构化程序设计原则的图形描述工具,又称之为盒图。它有以下特点

22、:1) 功能域明确,可以从盒图上一眼就看出来。2)不可能任意转移控制。3)很容易确定局部和全程数据的作用域。4)很容易表明嵌套关系,也可以表示模块的层次结构。系统前台的N-S图,如图所示:图 系统前台N-S图PAD 是问题分析图(Problem Analysis Diagram )的英文缩写,它用二维树形结构的图来表示程序的控制流,是一种用结构化程序设计思想表现程序逻辑结构的图形工具,将这种图翻译成程序代码比较容易。PAD图的主要优点如下:( 1)使用表示结构化控制的PAD符号所设计出来的程序必然是结构化程序。( 2) PAD图描述的程序结构十分清晰。图中最左面的竖线是程序的主线,即第一层结构

23、。随着程序层次增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线,PAD图中竖线的总条数就是程序的层次数。( 3)用PAD 图表现程序逻辑易读、易懂、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左到右顺序执行,遍历所有结点。( 4)有利于提高软件的可靠性和软件生产率。容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可以省去人工编码的工作,有利于提高软件的可靠性和软件生产率。( 5)既可用于表示程序逻辑,也可用于描述数据结构。( 6) PAD 图的符号支持自顶向下、逐步求精方法的使用。开始设计者可以定义一个抽象的程序,

24、随着设计工作的深入而使用def 符号逐步PAD图,如图所示:进入系统成绩Def 教师选择操作Def查看退出操作系统前台PAD图数据库设计数据库表设计逻辑结构设计的任务是把概念结构设计阶段设计好的E-R 图转换成与选用的DBMS产品所支持的数据模型相符合的逻辑结构。E-R 图所需解决的问题是如何确定实体和实体间的关系,如何确定这些关系模式的属性和码。数据库中两实体间1: n 联系转换为一个与 n 端对应的关系模式合并的关系模式的方法是将联系的属性与1 端的码加入n 端作为属性,主码为n 端实体的主码。以下为本系统中部分表的简单介绍。1 、管理员基本信息表包含管理员编号、管理员姓名、管理员密码,设

25、计时注意AdminID 设为主键,如表所示:表 管理员基本信息表字段名数据类型说明AdminIDInt管理员编号NameVarchar(10)管理员姓名PasswordVarchar(10)管理员密码2、学生基本信息表包含的信息是学生编号、学生姓名、学生性别、学生年龄、家庭住址、联系电话等信息,设计时注意ID 字段设为主键,设为Int 类型,如表所示:表 学生基本信息表字段名数据类型说明IDInt学生编号NameVarchar(10)学生姓名SexChar(10)性别AgeInt年龄AddressVarchar(50)家庭住址PhoneChar(15)联系电话3、教师基本信息表包含教师编号、教

26、师姓名、教师年龄、家庭住址、联系电话、所教科目等信息,设计时注意ID 字段设为主键,设为Int表 教师基本信息表类型,如表所示:字段名数据类型说明IDInt教师编号ONameVarchar(10)教师姓名AgeInt年龄AddressVarchar(50)家庭住址PhoneChar(15)联系电话ObjectVarchar(15)所教科目4、成绩基本信息表包括学生编号、科目类型、任课教师、所得分数,ID 设为主键,如表所示:表 成绩基本信息信息表字段名数据类型说明IDInt学生编号OTypeVarchar(10)科目类型ONameVarchar(10)任课教师Gradeint所得分数4 系统测

27、试首先进入NETBEAN, S打开工程,然后进入源程序,接着选择Build 下的 Execute 即可 , 也可以不打开工程,直接双击person 文件夹下的debug或 release 子文件夹下的文件即可运行程序。1. 系统登录界面,如图所示。图 图图2. 系统主界面,如图所示。图3. 增加学生信息界面,如图所示。图4. 修改学生信息界面,如图所示。图5. 查找学生信息界面,如图所示。图5 结论本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的

28、使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。目前, 学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。本系统在开发过程中,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部

29、分进行重新分析、设计、实施。继 C+之后学习Java 程序设计语言会感觉很轻松,因为Java 与 C+语法类似,并把 C+中一些较低级和较难以理解的功能都去掉了,如多继承、指针等, 同时 Java 增强了部分功能,如 “ +” 运算符的重载。对于初学Java 的人而言,难点是 Java 中的 引用、初始化一个类过程等。总的来说,Java 其易于学习、高效率的执行方式、平台无关性、分布式与高安全性及其丰富的API 文档和类库等特点都说明Java 是程序设计语言的伟大进步的表现。可以说这么说,本次课程设计综合考察了我们对Java 程序设计知识的掌握熟练程度和实际运用能力。其间, 涉及到了Java

30、中的绝大多数的知识点,如 Java 图形用户界面设计、Java 的异常处理机制、Java 中的多线程程序设计、Java 输入输出流等。程序实现的关键在于功能的合理划分以及各个包或者类之间的通讯问题,只要分析清楚这两点,剩下的就是按部就班的写代码了。所以设计是关键。功能实现了,再就是如何对程序进行性能优化的问题。如有的类需要多个对象实例,这时我们就可以使用Singleton 模式产生唯一的对象实例,如“文件分割合并器”中MyWindowListener 类; 文件操作中加入缓冲机制;对与图像可以使用使用双缓冲区等等。学习 Java,我推荐使用 “六步走”的方法,循序渐进:第一步是安装好JDK,写

31、一个Hello World。 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java 程序员的地方:一个是CLASSPAT的问题,H其实从原理上来说,是要搞清楚JRE的 ClassLoader 是如何加载Class 的;另一个问题是package 和 import 问题, 如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习 Java 和使用JDK的最大障碍。推荐看一下王森的 Java 深度历险, 对这两个问题进行了深入的探讨。第二步是学习Java 的语法。第三步是学习Java 的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖

32、,Java 的异常处理机制。第四步就是熟悉Java 的类库。 第五步,Java Web 编程。第六步,J2EE编程。总之 , 作为一门程序设计语言,Java 的学习务必要做到多看多写多想多请教。多看,看高手、大师的程序,借鉴其解题思路和程序架构;多写,学习程序设计很重要的就是要自己亲自动手写代码,切忌犯眼高手低的弊病,而且这样记忆非常深刻;多想,程序调试中出现一些“莫明其妙”的问题,为什么会这样而不是那样;多请教:程序设计说到底是要彻底搞清设计该语言的人的思想,遇到问题想不通应该请教同学、老师等。这样可达到事半功倍的目的。6 参考文献1. 黄晓东JAVA课程设计案例精编(第二版)M 中国水利电

33、出版社,20052. 徐迎晓JAVA语法及网络应用设计。清华大学出版社。3. 技术交流网站CSD:网址N:7 附件:import .*;import .*;import .*;public class extends Applet implements ActionListener Vector StuInf=new Vector();StudentInf SI;String xm;String bj;int i,j,xh,cj;static int mid;Label prompt1=new Label(" 学生成绩管理系统");Label prompt2=new Lab

34、el("用户:");Label prompt3=new Label("密码:");Label prompt4=new Label("班级:");Label prompt5=new Label("成绩:");TextField input1=new TextField(8);TextField input2=new TextField(8);TextField input3=new TextField(8);TextField input4=new TextField(8);Button btn1=new Butto

35、n("登录");Button btn2=new Button("增加");Button btn3=new Button("修改");Button btn4=new Button("删除");public void init()setLayout(new GridLayout(6,3);add(new Label();add(prompt1);add(new Label();add(prompt2);add(input1);add(new Label();add(prompt3);add(input2);add(bt

36、n1);add(prompt4);add(input3);add(new Label();add(prompt5);add(input4);add(new Label();add(btn2);add(btn3);add(btn4);(false);(false);(false);(false);(false);(false);(false);(this);(this);(this);(this);public void actionPerformed(ActionEvent e)if()=" 登录 ")String a,b;a=();b=();("");

37、if("12")=true)&&("12")=true)("姓名:");("学号:");(true);(true);(true);(true);(true);(true);(true);(false);(false);(" 查询 ");(" 登录成功");();else(" 用户名或密码错");if()=" 增加 ")boolean scucss=true;tryXingMing();catch(EmptyException as)(" 姓名不能为空");scucss=false;tryxh=();catch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论