第一篇:学生成绩管理系统分析报告
学生成绩管理系统分析报告
一、可行性分析报告
基于互联网的学生成绩管理系统,在学生成绩的规范管理、科学统计和快速查询方面具有较大的实用意义,提高了信息的开放性和快速性。使学生信息更加系统化,信息更加精确化。使管理人员管理更加方便,能够改动部分信息,最大化的满足工作的需求。
1.系统简述:
目标系统的名称:学生成绩管理系统 用户名称:XXXX大学 学生成绩信息管理系统 学生成绩管理系统是整个学校工作系统的重要组成部分,其内
容对于学校管理者和学生至关重要,所以学生成绩管理系统应该为用户提供所需要的信息以及方便的管理平台。现代成绩查询系统理论已经不拘泥于传统的理论基础,不强调对教学活动的严密控制,放弃了繁琐的设计模式,开始注重教学设计的关系性和灵活性,并且提供人性化的服务,这些优点能够极大的提高学生成绩查询的效率,从而更加有利于学生的管理和提高学生的主动性。
第二篇:学生课程管理系统分析报告
题目:学生课程管理系统分析报告姓名:严高峰
学院:数理信息学院
专业:计算机科学与技术时间:2010年1月21日
学生课程管理系统分析报告
一、目标
1.提高学生选课和成绩管理工作的效率,围绕此管理所需要的学生个人信息、课程和任课教师信息、所选课程信息进行管理及维护。
2.学生可以通过此系统进行个人信息、考试成绩查询以及完成选课功能。系统开发的总体任务是实现学生选课和成绩管理的系统化、规范化。
二、系统的总体设计
1、使用工具:Microsoft Visual Studio 2005、Dreamweaver 8.0、ps、FLASH等。
2、使用技术:ASP.NET、Javascript、css等。
3、系统功能描述
(1)功能包括:管理员的操作功能和学生的操作功能
(2)功能细述
★ 管理员的操作功能。管理员权限最大,可以对学生、班级、课程等情况进行统一的管理,细分如下:
①学生信息的浏览;学生信息的添加;学生信息的修改、删除。② 班级管理信息的浏览;班级管理信息的添加;班级管理信息的修改、删除。
③ 教师信息的添加;教师权限的修改;管理员可将教师的权限设为管理员。
④ 学校基本课程的浏览;学校基本课程的添加;学校基本课程修改、删除。
⑤ 学校对所设课程进行教师分配。
⑥ 学生成绩信息的浏览与统计,可按成绩具体范围(如系、班级等)、课号、、统计内容方面对成绩进行统计;学生成绩信息的添加;学生成绩信息的修改、删除。
⑦ 学生选课信息的管理,包括修改与删除;学生选课人数的统计。⑧ 为了保证系统的安全性,除了管理员(教师)用户,不允许其他用户进入该模块。
★ 学生的操作功能。学生只是利用此系统进行与自己有关的信息查
询、输入等,不能操作和修改其他信息,学生所具有的操作功能如下:
① 浏览个人基本信息;学生登录系统后,修改个人信息,为了保证系统的安全性,学生只能修改个人密码;浏览课程信息,进行选课等。
② 学生利用此系统选修课程,在选课过程中,学生可查询待选课程的基本信息及教师情况,并可浏览截止当前选此课的人数;浏览个人的选课情况;浏览个人成绩信息。
三、系统性能
一般的性能需求是指相互消息传递顺利,协议分析正确,界面友好,运行时间满足使用需要,安全性得到完全保证。就实际情况,在高系统配置、高网络带宽很容易得到保证的情况下,我们最需要考虑的性能需求就是系统安全性问题。要限定相应的目录访问,如其他用户不能随意访问管理员目录。进行了认证与授权。尤其要注意认证,在此使用forms验证,简单地说就是确定谁是特定用户,并针对安全性验证该用户的身份。在识别用户之后,就要利用一种方法向用户授权,从而能够使用系统的特定功能。也就是说,需要一种方法来决定允许特定用户进行什么样的操作。在配置文件Web.config中进行了相关的设置。
第三篇:学生成绩管理报告
宁波大红鹰学院
项目名称:项目组长:项目成员:班级名称:专业名称:完成时间:信息工程学院
课 程 设 计 报 告
学生成绩管理系统
黄轮
蔡萍萍、邵芬芬、雷骁 09计科1、09计科2
计算机科学与技术
2010.11.3
信息工程学院制
目 录
1课程设计过程概述 ……………………………………………………………………….1 2课程设计题目描述和基本设计要求……………………………………………………...1 2.1课程设计题目描述……………………………………………………………………..1 2.2基本设计要求…………………………………………………………………………..1.3系统需求分析与设计………………………………………………………………………1 3.1系统需求分析…………………………………………………………………………..1 3.2其他需求分析…………………………………………………………………………..1 3.3系统设计………………………………………………………………………………..1 4各功能模块设计……………………………………………………………………………1 4.1学生成绩管理系统录入学生成绩模块设计…………………………………………..1 4.2求各门课程的平均分模块设计………………………………………………………..2.4.3求各门课程的最高分模块设计………………………………………………………..3 4.4求各门课程的最低分模块设计………………………………………………………..4 4.5查询所有学生信息的模块设计………………………………………………………..5 4.6查询个别学生成绩的模块设计………………………………………………………..5 4.7退出系统的模块设计……………………………………………………………….….6 5系统总代码……………………………………………………………………………..…..7 6课程设计总结……………………………………………………………………………...10.6.1遇到的问题及解决办法……………………………………………………………….10 6.2心得体会……………………………………………………………………………….10.学生成绩管理系统
1课程设计过程概述
在2010年11月,我们进行了JAVA课程的第一个课程设计学生成绩管理系统,要求我们在课后完成,并且及时接受答辩。这次课程设计的主要目的是结合Java程序设计课程,培养我们的思维,提高用Java编程的实际动手能力并增强大家对JavaZ这门课程的了解。这次课程设计的主要内容是独立用Java语言开发一个小的应用程序,学生成绩管理系统,从而深刻体会Java的应用性及其作用。
2课程设计题目描述和基本设计要求
2.1课程设计题目描述
我们设计的是学生成绩管理系统。主要用到的是做一个学生成绩管理的界面,可以在很短的时间内存储学生信息,并且及时查到某个学生的相关信息。2.2基本设计要求
(1)系统安全、灵活、可靠;
(2)功能齐全;
(3)操作方便、简单,界面友好;
3系统需求分析与设计
3.1系统需求分析
功能目标:
输入班级n个同学的学号,姓名,四科成绩(应用数学、大学英语、Java程序设计、计算机应用基础)
计算出每个学生四门课的平均成绩,并输出。
输出全组各科平均分,最高分和最低分。 输入姓名查询成绩
3.2其他需求分析
技能要求:
通过定义学生类,建立学生对象,学会运用面向对象思想进行程序设计。
通过对学生信息的输入/输出,初步掌握Java基本输入/输出方法。 通过菜单处理,掌握字符界面的菜单处理能力。 了解复杂问题的分析、设计、规划的一般流程。
3.3系统设计
要求学生成绩管理系统用字符界面实现、也可用图形界面实现,并能实现客户端的查阅。
4各功能模块设计
4.1学生成绩管理系统录入学生成绩模块设计
录入学生的成绩,可以方便用户管理更多的信息 主要的功能代码:
case 1:
for(i=0;i System.out.print(“请输入该生的学号:”);s[i].num=in.skip(“n”).nextLine();System.out.print(“请输入该生的姓名:”);s[i].name=in.nextLine();System.out.print(“请输入该生的应用数学成绩:”);s[i].Math_1=in.nextDouble();System.out.print(“请输入该生的英语成绩:”);s[i].English=in.nextDouble();System.out.print(“请输入该生的java成绩:”);s[i].Java_1=in.nextDouble();System.out.print(“请输入该生的计算机成绩:”);s[i].Computer=in.nextDouble(); } break;图1 4.2求各门课程的平均分模块设计 在这一界面我们要通过已有的数据,得出各门学科的平均分 主要的功能代码: case 2: double Math_1sum=0,Englishsum=0,Java_1sum=0,Computersum=0;double Math_1pj=0,Englishpj=0,Java_1pj=0,Computerpj=0;for(i=0;i Englishsum=Englishsum+s[i].English;Java_1sum=Java_1sum+s[i].Java_1;Computersum=Computersum+s[i].Computer;} Math_1pj=Math_1sum/i;Englishpj=Englishsum/i;Java_1pj=Java_1sum/i;Computerpj=Computersum/i;System.out.println(i+“位同学应用数学的平均分为:”+Math_1pj);System.out.println(i+“位同学英语的平均分为:”+Englishpj);System.out.println(i+“位同学Java的平均分为:”+Java_1pj);System.out.println(i+“位同学计算机的平均分为:”+Computerpj);break; 图2 4.3求各门课程的最高分模块设计 在聊天界面中,用户可以得出各门课程的最高分 主要的界面代码为: case 3: double Math_1max=0,Englishmax=0,Java_1max=0,Computermax=0;for(i=0;i if(s[i].Math_1>Math_1max) Math_1max=s[i].Math_1;if(s[i].English>Englishmax) Englishmax=s[i].English;if(s[i].Java_1>Java_1max) Java_1max=s[i].Java_1;if(s[i].Computer>Computermax)Computermax=s[i].Computer; } System.out.println(“应用数学最高分:”+Math_1max);System.out.println(“英语最高分:”+Englishmax);System.out.println(“Java最高分:”+Java_1max);System.out.println(“计算机最高分:”+Computermax);break;图3 4.4求各门课程的最低分模块设计 主要是能得出各门课程的最低分 主要的界面代码为: case 4: double Math_1min=120,Englishmin=120,Java_1min=120,Computermin=120;for(i=0;i Math_1min=s[i].Math_1;if(s[i].English Englishmin=s[i].English; if(s[i].Java_1 Java_1min=s[i].Java_1;if(s[i].Computer } System.out.println(“应用数学最低分:”+Math_1min);System.out.println(“英语最低分:”+Englishmin);System.out.println(“Java最低分:”+Java_1min);System.out.println(“计算机最低分:”+Computermin);break; 图4 4.5查询所有学生信息的模块设计 主要是为了快速的查出所有学生的信息 主要的界面代码为: case 5: for(i=0;i System.out.print(“姓名:”+s[i].name);System.out.print(“应用数学:”+s[i].Math_1);System.out.print(“英语:”+s[i].English);System.out.print(“Java:”+s[i].Java_1);System.out.println(“计算机:”+s[i].Computer);} break;图5 4.6查询个别学生成绩的模块设计 主要是为了快速的查出个别学生的信息 主要的界面代码为: case 6: System.out.print(“请输入要查找的姓名:”);int j=0;String name=in.skip(“n”).nextLine();for(i=0;i System.out.println(“学号:”+s[i].num); System.out.println(“姓名:”+s[i].name); System.out.println(“应用数学:”+s[i].Math_1); System.out.println(“英语:”+s[i].English); System.out.println(“Java:”+s[i].Java_1); System.out.println(“计算机:”+s[i].Computer); j=s.length;} } if(j==0) System.out.println(“没有你要查找的人,请确认后再查找!”); 图6 break; 查无此人的情况下: 4.7退出系统的模块设计 当查询结束的时候可以顺利的退出。 主要的界面代码为: case 7: System.out.println(“byebye!”); System.exit(0);default: System.out.println(“您输入的数字有误,应为1~7”);图7 5系统总代码 import java.util.*;class Student{ String num; String name;double Math_1,English,Java_1,Computer; } public class StudentMassage{ public static void main(String[] args){ Student[]s=new Student[3];int i;for(i=0;i } while(true){ System.out.println(“**********学生成绩管理系统**********”);System.out.println(“1.录入学生成绩”);System.out.println(“2.求各门课程的平均分”); System.out.println(“3.求各门课程的最高分”);System.out.println(“4.求各门课程的最低分”);System.out.println(“5.查询所有学生信息”);System.out.println(“6.查询个别学生成绩”);System.out.println(“7.退出系统”);System.out.print(“请选择:”);Scanner in=new Scanner(System.in);int x=in.nextInt(); switch(x){ case 1: for(i=0;i System.out.println(“请输入第”+(i+1)+“个学生的成绩信息”); System.out.print(“请输入该生的学号:”); s[i].num=in.skip(“n”).nextLine();System.out.print(“请输入该生的姓名:”);s[i].name=in.nextLine();System.out.print(“请输入该生的应用数学成绩:”);s[i].Math_1=in.nextDouble();System.out.print(“请输入该生的英语成绩:”);s[i].English=in.nextDouble();System.out.print(“请输入该生的java成绩:”);s[i].Java_1=in.nextDouble();System.out.print(“请输入该生的计算机成绩:”);s[i].Computer=in.nextDouble();} break;case 2: double Math_1sum=0,Englishsum=0,Java_1sum=0,Computersum=0;double Math_1pj=0,Englishpj=0,Java_1pj=0,Computerpj=0; for(i=0;i Math_1sum=Math_1sum+s[i].Math_1;Englishsum=Englishsum+s[i].English;Java_1sum=Java_1sum+s[i].Java_1;Computersum=Computersum+s[i].Computer;} Math_1pj=Math_1sum/i;Englishpj=Englishsum/i;Java_1pj=Java_1sum/i;Computerpj=Computersum/i;System.out.println(i+“位同学应用数学的平均分为:”+Math_1pj);System.out.println(i+“位同学英语的平均分为:”+Englishpj);System.out.println(i+“位同学Java的平均分为:”+Java_1pj);System.out.println(i+“位同学计算机的平均分为:”+Computerpj);break;case 3: double Math_1max=0,Englishmax=0,Java_1max=0,Computermax=0;for(i=0;i Math_1max=s[i].Math_1;if(s[i].English>Englishmax) Englishmax=s[i].English;if(s[i].Java_1>Java_1max) Java_1max=s[i].Java_1;if(s[i].Computer>Computermax)Computermax=s[i].Computer; } System.out.println(“应用数学最高分:”+Math_1max);System.out.println(“英语最高分:”+Englishmax);System.out.println(“Java最高分:”+Java_1max);System.out.println(“计算机最高分:”+Computermax);break;case 4: double Math_1min=120,Englishmin=120,Java_1min=120,Computermin=120; for(i=0;i Math_1min=s[i].Math_1; if(s[i].English Englishmin=s[i].English;if(s[i].Java_1 Java_1min=s[i].Java_1;if(s[i].Computer } System.out.println(“应用数学最低分:”+Math_1min);System.out.println(“英语最低分:”+Englishmin);System.out.println(“Java最低分:”+Java_1min);System.out.println(“计算机最低分:”+Computermin); } } } } break;case 5: for(i=0;i System.out.print(“学号:”+s[i].num); System.out.print(“姓名:”+s[i].name); System.out.print(“应用数学:”+s[i].Math_1); System.out.print(“英语:”+s[i].English); System.out.print(“Java:”+s[i].Java_1); System.out.println(“计算机:”+s[i].Computer);} break;case 6: System.out.print(“请输入要查找的姓名:”);int j=0;String name=in.skip(“n”).nextLine();for(i=0;i if(s[i].name.equals(name)){ System.out.println(“学号:”+s[i].num); System.out.println(“姓名:”+s[i].name); System.out.println(“应用数学:”+s[i].Math_1); System.out.println(“英语:”+s[i].English); System.out.println(“Java:”+s[i].Java_1); System.out.println(“计算机:”+s[i].Computer); j=s.length;} } if(j==0)System.out.println(“没有你要查找的人,请确认后再查找!”);break;case 7: System.out.println(“byebye!”); System.exit(0);default: System.out.println(“您输入的数字有误,应为1~7”);6课程设计总结 6.1遇到的问题及解决办法 在此次课程设计中,我遇到了一些问题,如:不能很好的将C语言的代码转化成Java语言,对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误,而且要在短时间内用Java语言来设计一个具体的系统是一个较大的挑战;自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。 对于以上的问题,自己有清楚的认识,首先必须要对计算机产生兴趣,多阅读相关的书籍,多跟精通此方面的老师和同学交流、像他们学习。还有就是应该多动手编程。6.2心得体会 由于对java这门课还未深入了解,这是第一次小组合作设计程序,刚开始我们对它真的是很无措的,不知道该从哪里入手;经过指导老师的部分讲解和演示,我们茅塞顿开,着手开始编写代码,可是写着写着就出现问题了,程序实现不了,也改不出错误;后来无意中一位组员将字体改变了一下,程序错误变少了。检查一发现我们程序中字体错竟占绝大部分。再想想,这是因为我们写的过程中不够仔细,对细节问题还不够注重,以致最后的程序出现大批量的错误。不过在我们的后续检查中,这一问题已经完全解决了。当然,写的过程中遇到的问题肯定不止这样的,但最后在指导师与我们齐心协力的修改后,这些难题将不是问题了。程序完成后,我们真的很开心,虽然困难重重,但我们最终还是有了一个很好的结束啊。 这个实验让我们对java有更进一步的了解,也让我们对它产生了极大地兴趣,希望我们以后两次的实验也能顺利完成。 系统分析报告 ——首都经济贸易大学学生学籍和选课信息管理系统一、引言 1.系统名称 首都经济贸易大学学生学籍和选课信息管理系统。 2.系统目标 本系统立足于教务处的角度,面向全校同学和老师,对全学校的学生和课程做统一管理,以实现管理的科学化,系统化,自动化,最大限度的为老师和同学们提供方便,节约人力、物力等各方面资源。彻底杜绝以前那种老师工作量大,工作步骤繁琐,学生有问题不知道找哪里解决的现象,而且消灭由于信息冗余而造成的数据不一致,和数据查询困难的问题。 3.系统功能 本系统主要包括两大功能模块:学生学籍管理和选课管理。 其中学生学籍管理系统仅面向教务处管理人员,也就是说只有他有权对信息进行操作.又包括:新生信息输入、教务信息输入和个人信息查询修改三个功能模快。在第一模块可以有教务处管理人员输入新生的姓名、性别、院系、生日、籍贯、电话、家庭住址等信息;第二模块管理学籍变更(休学、复学、退学、升学、毕业)和奖惩情况;第三个模块用来查询和修改学生个人信息。通过这一功能模块,教务处可以实现对全校学生信息从入学到毕业的全程管理,而且此项工作除了每年的新生信息录入,完全可以由一个人全权负责。而新生信息录入这项工作可以留给勤工俭学的同学来完成。虽然要负一些劳务费,但远比用老师来人工管理然后付给他们工资节省的多。 另一大功能模块——选课管理系统。既面向教务处,又面向教师和学生。不同的人,不同的身份操作的权限也不同。作为教师,他可以向教务处申请增加、删除、修改课程信息,并随时了解选修本课的学生名单,还可以输入并分析考试成绩。作为教务处管理员,它的权限是最宽的。他可以对教师提出的课程设置申请进行审批,同时对教学进行安排(包括时间和教室分配、选课结果管理)。作为学生,他可以查询可以选什么课,已有多少学分,还差多少学分。最后进行选课,在学期末还可以随时进行成绩查询。 4.系统背景 一方面,在时下这个飞速发展的信息社会中,直到今天仍然没有一套完善可行的学生信息管理系统出现在学校里。每年,从大专生、本科生到硕士生、博士生,几千人的入学、升学、毕业,全要由教务处和各系老师人工管理。信息量之巨大,工作量之繁重,是难以想象的。因此,学校和各个系都要安排多名教师专门负责学生学籍管理,浪费了大量的人力资源。然而,即使这样,管理仍然谈不上井井有条。举一个最简单的真实例子,一个同学的姓名在花名册里印错了,就一错错了三年,一直没能改正。同学想去改,却不知道是应该找系里,还是去找教务处。还有,当学生的基本信息,比如家庭住址、电话等变更后,无法及时在档案中修改,使得老师与同学无法联系沟通。 而另一方面,当我们还是高中生的时候就听说大学实行的是“学分制”,也就是说,我们不必再天天按照老师安排的课程去学习,而是可以在一些必修课之外,随意选择我们喜爱和感兴趣的课去学习。但是,当我们真正步入校园之后才发现,这里仍然是所谓的“学年制”,即每学期的课程都是学校安排的,学生没有选择的自由,而且课程的安排由于各方面诸多的原因经常有不适之处,尤其是先行课的问题。另外,每学期考完试,同学们都要一次又一次的往系里跑,大家挤在一个小小的布告栏前面,在几张A4纸上寻找自己的名字和成绩。虽然从去年开始,全学校也改成了“学分制”,但整个选课过程的管理从我们学生的角度来看,变得更加混乱。同学们不知道每学期有什么课可以选,哪些是选修,哪些是必修,哪些是专业课;也不确定每门课多少学分,自己已经修了多少学分;更不用说考虑一下哪门课要先学,哪门课要后学,哪些课属于一系列。所以说,大部分同学都是为了“选课”而选课,完全没有实现鼓励同学发展个性,学各自之所爱的效果。不仅如此,每当选课的时候,同学们忙,老师更忙,学校和系里都需要投入大量的人力、物力对整个选课过程进行管理。 最后,从社会这方面讲,虽然我们有四层的图书馆,有先进的实验室,有多个可以同时容纳百人上机的“奔腾4”机房,但是学校的软件系统也是衡量该学校整体水平的一个重要因素。比如我们周围的兄弟学校——北京工业大学,它就有着比较完善的学生信息管理系统。同学坐在家里动一动鼠标,就能查询到自己各方面的资料,包括选课、成绩、个人信息等。相比之下,我们在这个方面就落后了。因此我们急待弥补这个空缺,使我们的整体管理水平上一个档次,与如今这个高科技的信息社会接轨,作时代的领头人。 二、业务流程分析 在本系统的系统分析阶段,我们主要是对学校的学籍和教学管理进行多方面的调查和研究,从而抽象出我们系统的业务流程图,数据流程图以及数据字典。接下来,我们将通过本系统的业务流程图,数据流程图以及数据字典来进一步说明其功能。 三、数据流程分析 顶图: 中图: 底图: D1 数据字典 数据元素 数据结构 数据流 数据存储 处理过程 四、实施计划 1.工作任务的分解 本系统分为两大功能模块,一为学籍管理子系统,主要由朱奕,韩峥,武蒙负责,另一为选课管理子系统,主要由李伟,李小尧,郑晓负责。而整个系统调试由朱奕,李伟,李小尧负责。 2.进度 分析员:XXXXX 为方便编程采用C++实现,同C类似,区别不大: (1)学号为负数时结束输入: #include“stdafx.h” #define NULL 0 #include #include #include using namespace std; //声明结构体类型 typedef struct stnode { int id;//学号 char name[16];//姓名 intclass[4];//课程成绩数组 float ave;//学生个人所有课程的平均成绩struce stnode *next;//指针域 }Students; // 函数原型声明 void PrintFailStudent(Student*head); void PrintSuccessStudent(Student*head);void DeleteLink(Student*head); Student*input_data(); void main() { Student*head=input_data(); Student*input_data();//调用input_data函数,录入学生信息 PrintFailStudent(head);//调用PrintFailStudent函数,存在不及格的学生 void PrintSuccessStudent(Student*head);//打印平均分90分以上的学生 DeleteLink(head);//调用DeleteLink函数,释放内存 } // { int id;// 定义一个整数变量,存放学号 string name;//学生姓名 int class;//课程号 int scores;//各科成绩 int totl_score;//各科总成绩 Student *head=NULL, *temp;// 定义两个结构体指针 cout<<”开始录入学生成绩:”; while(1){cout<<“请输入学生学号:”;cin>>id;// 输入学号 if(id<0){// 学号为负数时结束录入break;录入学生信息 Student*input_data() } temp=new Student;// 向内存动态申请一个结构体结点 cout<<“请输入学生姓名:”; for(int a=0;a<=sizeof(a[0]);a++){temp->id=id;// 将输入的学号存入结构体结点的学号成员变量temp->name=name;// 存入学生姓名 cout<<“请输入学生课程”+a+”的成绩:”; cin>>scores;// 输入学号 totl_score=totl_score+scores;//总成绩 temp->class[a]=scores;// 课程1的成绩录入} ave=totl_score/sizeof(a[0]); } // 打印不及格学生信息 void PrintFailStudent(Student*head) { cout<<”存在不及格学生信息:”; cout<<“学号”< id< } } // 打印90平均分学生 void PrintSuccessStudent(Student*head){ } // 释放链表中的所有到结点 void DeleteLink(Student*head){ } Student*p;while(head!=NULL)// 头指针非空时循环 {} p=head;// 记住当前头指针 head=head->next;//当前头指针移到下一个结点 delete p;// 删除结点 for(Student*p=head;p!=NULL;p=p->next)cout<<”平均分为90分以上的学生学号:”+p->id;if(p->ave>=90){}第四篇:学生学籍系统分析报告
第五篇:学生成绩管理