1南京理工大学数据库课程设计作者:学号:学院(系):计算机科学与工程学院专业:网络工程题目:学生成绩管理系统衷宜2013年9月指导老师:2目录一、概述·················································3二、需求分析··············································4三、系统设计···············································9四、系统实施··············································15五、系统测试·············································29六、收获和体会··········································33七、附录················································34八、参考文献···········································343一、概述1、项目背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。目前随着个大高校的扩招,在校学生数量庞大。拥有一款好的学习成绩管理系统软件,对于加强对在校生的成绩管理起到积极作用。并且,可以为在校生随时查阅自己的成绩信息、教师录入成绩、管理员进行信息维护等提供方便,为学校节省大量人力资源本系统就是为了管理好学生成绩信息而设计的。2、编写目的首先,学生成绩管理是一个学校不可缺少的部分,它的内容对于学校的管理者和学生以及学生家长来说都至关重要,所以一个良好的学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用.作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。例:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高管理者管理的效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件。因此,开发设计这样一套学生成绩管理软件成为很有必要的事情。其次,初步掌握软件开发的流程,熟悉delphi与SQL的使用方法,达到能够较好的运用两者制成能实现初步功能的管理系统,锻炼自己的动手能力,同时,在合作中更好的与同学交流,这些都是必要的。最后,自己动手编程序,能更好的提升对本专业的爱好,初步了解本专业的发展方向,为将来的毕业与找工作奠定基础。3、软件定义该学生管理管理信息系统是基于Internet/Intranet及C++技术,建立以以数据库为后台核心应用、以服务为目的信息平台,对资源进行科学的加工整序和管理维护,为教学和科学研究提供文献信息保障和提高管理学生成绩的效率而设计的4系统。4、开发环境本系统采用windows7,XP作为操作平台,前台开发工具采用delphi7.0,数据库管理采用SQLSERVER2008。二、需求分析1、问题的提出为了提高高校学生成绩信息的管理效率,方便学生和教师对学生成绩信息进行查询、方便学校里面管理员去管理和查询学生信息,建立一个学生成绩管理系统,使学生信息管理工作规范化,系统化,程序化,避免学生成绩管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。本次课程设计题目为《学生成绩管理系统》,涉及成绩管理系统的登录界面、老师对学生成绩的查询、学生对学生成绩的查询、教务员对学生成绩的增删改查统计等内容。本功能实现对学生信息、教师信息情况信息的管理和统计、课程信息和成绩信息查看及维护。2、系统的业务功能分析学生成绩管理系统应当将学生与教务员区分开来,因为增、删、改、统计的权限应当只有教务员才拥有,学生只能查询与自己相关的记录,老师查询自己所授课程的记录,而教务员则录入数据,进行增删改与统计。另外,在日常学习生活中,为了方便老师和同学了解情况,需要提供平均分、最高(低)分、排名等供老师和学生查询。具体分析:按照教师,学生,管理员三种角色设计系统功能。①学生要能够查询自己所学课程的成绩,查看自己不同课程的成绩、GPA以及排名,查看个人信息、修改个人登录密码等。②教师要实现对自己所教授课程中所有学生成绩的查询、以及对自己所教班上同学的各分数段成绩单人数成绩的查询(排序功能),个人资料的修改和修改个人登录密码等。③管理员要能够实现对管理员、教师、学生基本信息的增加、删除、修改、查询以及实现对学生成绩的增加、删除(按学号、按班级、按课程号、按院系)、修改、查询(按学号、按班级、按课程号、按院系)和数据统计分析以及对结果5提供打印功能等。3、系统业务流程分析学生管理系统系统登录管理员教师学生菜单信息管理成绩管理帮助个人信息修改密码退出教师信息管理员信息成绩查询学生信息成绩管理显示制作人和版本成绩统计成绩管理菜单帮助菜单成绩管理帮助个人信息显示制作人和版本个人信息成绩查询修改密码退出显示制作人和版本成绩查询退出修改密码登陆次数必须小于三64、完成的功能系统的功能模块划分《学生成绩管理系统》包括八个模块:系统登录、学生基本信息管理、教师基本信息管理、管理员基本信息管理、学生成绩信息查询、学生成绩信息管理,学生成绩信息统计,系统退出。1、系统登录模块(1)用户人员在登录界面中输入用户名与密码。(2)通过用户名与数据库里的用户表相比配,将学生、教师与管里员区分开,三者各自进入自己的页面,初始密码为:000000,登录成功后,可以修改密码。(3)三者拥有各自权限,分别拥有不同的功能。2、学生基本信息管理:管理员对所有学生信息进行增删改查,学生只能查询自己的基本信息。3、教师基本信息管理:管理员对所有教师信息进行增删改查,学生只能查询自己的基本信息。4、管理员基本信息管理:管理员对所有管理员信息进行增删改查。5、学生成绩信息查询:管理员查询功能:可以按学号、班级、院系、教师工号等对学生成绩分别进行查询、查某门课程的排名、最高分、最低分、绩点、不及格人数等、查某班级某科目分数段的人数。教师查询功能:查询所教课程的最高分、最低分、各分数段人数、不及格人数等。学生查询功能:查某学生所学课程的排名、最高分、最低分、绩点、不及格人数等。6、学生成绩信息管理:管理员对学生成绩进行增删改查。7、学生成绩信息统计:按学号、班级、院系、教师工号等分别进行统计,并对结果提供打印能。8、退出程序:退出该程序。5、数据流程图数据流图76、数据字典(1).数据流①学院信息,包括学院编号,学院名称等信息。②班级信息,包括班级编号,学院编号等信息。③学生信息,包括学生编号,学生姓名,性别,班级,联系方式等信息。④教师信息,包括教师工号,教师姓名,性别,学院编号,联系方式等信息。⑤管理员信息,包括管理员编号,管理员姓名,性别等信息。⑥用户信息,包括用户名,登录密码等信息。⑦课程信息,包括课程号,课程名称,学分,学时,教师工号等信息。(2).数据存储①成绩表信息,包括学生编号,课程编号,课程绩点,课程成绩等信息。②课程安排信息,包括课程编号,课程名称,教师工号等信息。管理员学生成绩管理系统学生教师信息管理(操作员、教师、学生)成绩管理(增删改查)成绩统计、打印查询个人信息查询课程成绩情况查询个人成绩、GPA查询个人信息8E/R图:classclassnameclassnoGPAcnodepartidsexsnoownstnocnocnamegradesnamestudentphonescoredepartidsnogradeofStudyofcoursecnameownsuserownstnamephoneteachofteacherusernameusernocreditctimeownstnoadministrorownsdepartidsexownsdepartmentownsownsadmininoadmininame9三、系统设计1、数据表:(1)、数据库的关系模式:student(sno,sname,sex,classno,departed,phone);teacher(tno,tname,departid,sex,phone);course(cno,cname,credit,ctime,tno);score(sno,sname,cno,cname,grade,GPA);administror(adminino,adimniname,sex);department(departed,departname);class(departed,classno,classname);user(userno,password);(2)、表的物理设计:表一学生信息表studentCreatetablestudent(snochar(10)primarykey,snamechar(20)notnulldefault‘Noname’,sexchar(10)notnull,classnochar(10)foreignkeyreferencesclass(classno),departidchar(10)foreignkeyreferencesdepartment(departid),phonechar(20)属性名数据类型是否为主键是否为空说明缺省值snochar(10)YesNOTNULL学号snamechar(20)noNOTNULL姓名Nonamesexchar(10)noNOTNULL性别classnochar(10)noNOTNULL班级号(外键)departidchar(10)noNOTNULL院系号(外键)phonechar(20)noNULL联系方式10);表二教师信息表teacher属性名数据类型是否为主键是否为空说明缺省值tnochar(10)YesNOTNULL教师工号tnamechar(10)noNOTNULL教师姓名Nonamedepartidchar(10)noNOTNULL院系号(外键)sexchar(10)noNOTNULL性别phonechar(11)noNULL联系方式Createtablestudent(tnochar(10)primarykey,tnamechar(10)notnulldefault‘Noname’,sexchar(10)notnull,departidchar(10)forgeinkeyrefrencesdepartment(departid),phonechar(20));表三课程信息表course属性名数据类型是否为主键是否为空说明缺省值cnochar(10)YesNOTNULL课程号cnamechar(20)noNOTNULL课程名creditchar(10)noNOTNULL学分ctimechar(10)noNOTNULL学时数tnochar(10)YesNOTNULL教师工号Createtablestudent(cnochar(10),cnamechar(20)notnull,credichar(10)notnull,11ctimechar(10)notnull,tnochar(10),primarykey(cno,tno));表四学生成绩表score属性名数据类型是否为主键是否为空说明缺省值snochar(10)YesNOTNULL学号snamechar(20)noNOTNULL姓名Nonamecnochar(10)YesNOTNULL课程号cnamechar(20)noNOTNULL课程名gradechar(10)noNOTNUL