1、软件工程课程设计汇报题目:_学生成绩管理系统 _专业班级:_ 计算机系计科102班_姓名:_ _学号:_ _同组姓名: _ _成绩评定指导老师:年月日目录第1章 绪论2第2章 系统分析32.1 系统目标32.2 功效要求32.3 可行性研究方法32.4 系统可行性分析3第3章 需求分析43.1 引言43.2 任务概述43.2.1 编写目标43.2.2 背景43.3 功效需求43.3.1 管理功效部分43.3.1.1 管理员功效43.3.1.2 学生功效43.4 数据流图53.5 学生成绩管理系统逻辑结构图53.6 用例6第4章 概要设计84.1设计目标84.2 编写目标84.3 任务概述84.
2、4 总体设计94.4.1 系统设计思想94.4.2 学生成绩管理系统次序图104.5 接口设计11第5章 具体设计125.1 根本任务125.2 程序步骤图125.3 具体设计说明14第六章 软件测试16第七章 试验结果截图显示18第八章 程序源代码20第九章 试验总结28第十章 参考文件28第1章 绪论伴随互联网发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了关键作用。服务教学、提升教学水平和教学结果查询是校园网建设关键目标和关键价值,本系统立足于校园实际,争取做出一个方便快捷成
3、绩管理系统,实现成绩信息管理。该项目关键是服务于学生成绩管理方面,深入方便老师工作和学生成绩查询,从而从侧面达成提升学校管理质量。它含有使用范围广,实用性强,使用简单,所花经费少等优点。关键功效有两个方面:管理员,登陆,进入系统,能够进行管理员操作,进行学生信息及成绩信息编辑、查询、删除、修改、添加、排序等操作。学生,登陆,进入系统,能够进行查询等操作。软件系统目标:(1)本系统含有很强可靠行,能够对录入学生信息进行效验,对数据进行修改、删除,要求多种权限。(2)本系统中模块含有很强可续性,能够方便管理人员修改和维护。(3)本系统操作方便、灵活、简单。(4)本系统可高效、快速查询到学生基础信息
4、。第2章 系统分析2.1 系统目标 学生用户和管理员用户能够进入不一样管理模块,而且只有密码输入正确才能进入功效模块,学生用户只能查询学生信息,管理员用户能够对学生成绩实施多种操作。2.2 功效要求1. 性能:学生成绩增加、删除、修改,排序及查询2. 输入:学生管理员密码3. 输出:学生成绩信息4. 基础数据步骤和处理步骤:事务事务管理员学生成绩管理系统学生图2-1 基础数据和处理步骤5. 安全和保密要求:登录系统时,需验证密码;不一样身份登录者,含有不一样使用权限。2.3 可行性研究方法关键为对现有成绩管理系统分析和研究比较方法。2.4 系统可行性分析可行性分析是为了清除了解系统开发是否能够
5、实际进行,是否能够带来一定效益,是否值得实现。所以进行可行性分析是很必需,从下面多个方面来进行分析。1. 技术可行性:设置不一样权限,提升了数据安全性。2. 运行可行性:本系统作为一个小型学生成绩管理系统,所花费资源很小。 已经有软件和硬件配置均能满足需要。3. 经济可行性:服务端及用户端支出使用原有设备即可。不过对软件有一次性软件费用支出和定时性软件维护支出。软件使用后,能够降低人力支出和维护。4. 法律可行性:本软件属项目组开发,符正当律各项要求。5. 使用可行性:软件针对学校和学院,对使用人员没有特殊限制,管理老师、学生等均可使用。界面友好,操作简单,能够确保大多数用户使用该系统要求。2
6、.5 结论经过可行性一系列分析可得出结论,在现有条件下,系统开发方案是可行。开发条件含有,能够开始进行实际开发。第3章 需求分析3.1 引言 伴随互联网发展,利用INTERNET技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设一个平台在完成资源共享、互联网访问、教务管理、电子设备等方面发挥了关键作用。服务教学、提升教学水平和效果是校园网将设关键目标和关键价值,本系统立足于校园实际,着眼于未来发展,实现信息资源共享。该项目关键是服务于教学方面,深入方便老师工作和学生学习,从而从侧面达成提升学校教学方面“软件”质量。3.2 任务概述3.2.1 编写目标 处理学校对学生信息进行处
7、理时,对多种数据需求,而且能够有利于学校方面对学生管理。关键处理学生系你想查询困难等问题。确定学生信息管理系统功效需求,数据需求及软、硬件需求。确定学生成绩管理系统所能实现功效,本系统中关键是对数据进行操作,如学生信息及成绩增加,删除,修改,查看,排序等功效。3.2.2 背景 这次待开发系统名称为:学生成绩管理系统 此次项目任务完成者:刘瑶、李纳、谢千玲、周石花 用户:管理老师,学生3.3 功效需求3.3.1 管理功效部分 从业务步骤图能够看出,学生成绩挂历系统分为大两个方面:管理员模块,学生模块,其关键管理功效有: 3.3.1.1 管理员功效 管理员进入学生成绩管理关键功效是:实现对学生信息
8、及成绩添加,删除,修改,查询和排序等基础功效。 3.3.1.2 学生功效 学生进入学生成绩管理系统关键功效是:每个学生登录系统后能够查询自己个人信息和成绩信息,查询时候能够经过姓名也能够经过学号查询,同时学生登录时需要密码。3.4 数据流图 图 3-1 数据流顶层图 图3-2 数据流细化图3.5 学生成绩管理系统逻辑结构图 用户操作 学生成绩管理系统 业务逻辑 数据存放 图3-3 逻辑结构图3.6 用例关键参与者及用例表3-1 表3-1 学生成绩管理系统用例表参与者用例编号用例 管理员1登录2浏览信息3按成绩排序4查询5对学生成绩增、删、改学生1登录2浏览信息3查找成绩 用例图 图3-4 学生
9、成绩系统用例图3.7 类图 图3-5 类图初步设计第4章 概要设计4.1设计目标 概要设计师软件开发过程中一个阶段就,在这个阶段需要完成部分明确事情。概要设计阶段基础目标是回复“概括说,系统应该怎样实现?”。经过这个阶段,确定系统组成模块。本学生成绩管理系统由管理员、学生两个大模块组成。每个模块又由自己子模块组成。4.2 编写目标基于现在学生越来越多,老师工作量越来越大。伴伴随网络信息化,学生成绩管理也必需前进一个愈加进步时代。那就是用网络来管理学生成绩,实现一个电子管理学生成绩平台,减轻老师负担,也便利教务处管理工作。在本系统中,学生能够选课,退课,查询成绩;老师在期中期末时候给学生打分,并
10、按百分比计算,提交之前能够修改学生成绩;管理员能够对老师、学生、课程信息进行增、删、查、改,而且能够公布公告,新闻。假如学生,老师,管理员想进入这个系统,必需优异行登录,新用户要注册,能够进行个人信息维护,如密码修改等。4.3 任务概述4.3.1 目标(1) 本系统含有很强可靠行,能够对录入学生成绩,对学生成绩进行修改、删除,而且能够对学生成绩进行排序。(2)本系统中模块含有很强可续性,能够方便管理人员修改和维护。(3)本系统操作方便、灵活、简单。(4)本系统可高效、快速查询到学生基础信息。4.3.2 需求概述学生成绩管理系统是为方便老师学生实时掌握成绩、课程等相关信息,学生能够方便快捷查询自
11、己成绩而研发系统,意在大幅度节省老师和学生们时间,提升教务系统办事效率。4.4 总体设计4.4.1 系统设计思想 总模块软件结构 图4-1 学生成绩管理系统主模块依据上面需求分析,能够将这个系统分为以下模块:学生子模块和管理员子模块学生成绩管理系统管理员子模块学生子模块学生成绩排序浏览学生成绩修改学生信息删除学生成绩查询个人成绩图4-2 学生成绩管理系统层次图表4-1 模块功效学生子模块学生能够在该模块中查询自己成绩管理员子模块管理员能够再此模块中浏览学生成绩,对学生成绩信息进行管理,而且能够对学生成绩进行排序。4.4.2 学生成绩管理系统次序图 图4-3 学生成绩信息次序图4.4.3 学生成
12、绩管理系统协作图 图4-4 学生成绩信息协作图4.4.4 学生成绩管理系统状态图 图4-5 学生成绩信息状态图4.5 接口设计4.5.1 外部接口和用户界面在用户界面部分,依据需求分析结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,而且要注意到界面布局,应突出显示关键和犯错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽可能向这一方向靠拢。在设计语言上,已决定使用Visual C+进行编程。总来说,系统用户界面应作到可靠性、简单性、易学习和使用。4.5.2 内部接口内部接口方面,各模块之间采取函数调用、参数传输、返回值方法进行信息传输。具体参数结
13、构将在下面数据结构设计内容中说明。接口传输信息将是以数据结构封装了数据,以参数传输或返回值形式在各模块间传输。第5章 具体设计5.1 根本任务依据软件工程基础原理,具体设计阶段根本任务是确定应该怎样具体实现所要求系统,也就是说,经过这个阶段设计工作,应该得出对目标系统正确描述,具体来说就是把经过总体设计得到各个模块具体加以描述。5.2 程序步骤图1. 系统主程序步骤图图5-1 主程序步骤图2. 学生登录模块图5-2 学生用户步骤图3. 管理员管理步骤图图5-3 管理员管理步骤图4. 系统类图 图5-4 成绩管理系统类图5.3 具体设计说明管理模块包含以下内容:界面设计用户登陆:该系统依据用户身
14、份实现了不一样功效,用户登陆时需要选择一个登陆方法(默认情况下是学生),系统再依据用户选择登陆方法到对应表中去搜索。比如,登陆时选择了老师登陆方法,系统将会在老师信息表中搜索是否存在和该用户输入相符信息,假如存在则进入老师主页,不然提醒用户输入有误,请重新输入。学生用户界面1.根据学号查找学生能够查询自己指定学号查询成绩,方便学生了解成绩情况。2.根据学生姓名查找学生能够查询自己指定姓名查询成绩,方便学生了解本身情况。管理员界面1.增加学生成绩管理员能够增加某个学生某门科目标成绩。2.显示学生成绩管理员能够显示全部学生全部科目标成绩。3.排序统计成绩管理员能够依据学生成绩进行排序和统计。4.查
15、找学生成绩管理员能够查询某个学生成绩。5.删除学生成绩管理员能够删除某个学生成绩。6.修改学生成绩管理员能够修改学生成绩。第六章 软件测试测试用例设计表6-1用例编号C001测试对象“学生登录”功效用例目标测试学生登录系统功效是否正确实现输入/动作预期输出/结果实际结果选择学生登录,输入错误密码提醒“输入错误密码,请重新输入”提醒“输入错误密码,请重新输入”选择学生登录,输入密码,输入错误名字提醒“无法找到该学生”提醒“无法找到该学生”选择学生登录,输入账号,输入密码,单击登录进入学生登录子系统进入学生登录子系统 表6-2 用例编号C002测试对象“管理员登录”子系统界面用例目标测试管理员登录
16、子系统界面功效是否正确实现输入/动作预期输出/结果实际结果选择管理员登录,输入错误密码提醒“输入错误密码,请重新输入”提醒“输入错误密码,请重新输入”选择管理员登录,输入密码进入管理员登录子系统进入管理员登录子系统观察界面是否正确显示操作按钮显示“增加学生成绩”,“显示学生成绩”,“排序统计成绩”,“查找学生成绩,“删除学生成绩”,“修改学生信息”显示“增加学生成绩”,“显示学生成绩”,“排序统计成绩”,“查找学生成绩,“删除学生成绩”,“修改学生信息” 表6-3 用例编号C003测试对象“管理员登录”子系统增加学生成绩功效用例目标测试“管理员登录”子系统增加学生成绩功效是否正确实现输入/动作
17、预期输出/结果实际结果在“老师登录”子系统中选择增加学生成绩功效显示要增加学生姓名和学号和各科成绩显示要增加学生姓名和学号和各科成绩 表 6-4 用例编号C004测试对象“管理员登录”子系统排序统计学生成绩功效用例目标测试“管理员登录”子系统排序统计学生成绩功效是否正确实现输入/动作预期输出/结果实际结果在“管理员登录”子系统中选择排序查询功效显示排序成功显示排序成功 表6-5 用例编号C005测试对象“管理员登录”子系统显示学生成绩功效用例目标测试“管理员登录”子系统显示学生成绩功效是否正确实现输入/动作预期输出/结果实际结果在“老师登录”子系统中选择显示学生成绩功效显示全部学生姓名和学号和
18、各科成绩显示全部学生姓名和学号和各科成绩第七章 试验结果截图显示7.1代码运行以后主界面 图7-17.2学生模块显示 图7-2 图7-37.3 管理员模块显示 图 7-4第八章 程序源代码# include # include #include /用getch(); #include using namespace std; /Student类 class Student public: char name20; char Id20; int Cnum; /C+课程得分 int Mnum; /汇编课程得分 int Enum; /嵌入式操作系统课程得分 int sum; /总分 Student
19、* Next; void Input() coutname; coutId; coutCnum; coutMnum; coutEnum; sum=Cnum+Mnum+Enum; void ReadFile(istream & in) innameIdCnumMnumEnumsum; void Show() cout姓名:nameendl学号:IdendlC+:Cnumendl 汇编:Mnumendl嵌入式操作系统:Enumendl总成绩:sumendlendlNext;p!=End;p=p-Next) p-Show(); coutInput(); End-Next=new Student; E
20、nd=End-Next; cout添加成功!endl; coutNext!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p-Next-name,name)return p; return NULL; Student *FindID(char * Id) for(Student * p=Head;p-Next!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p-Next-Id,Id)return p; return NULL; ; /结构函数 Studentmassage:Studentmassage(
21、) Head=new Student; Head-Next=new Student; End=Head-Next; in.open(sort.txt); if(!in) cout这是一个新系统,无学生信息。请先输入。ReadFile(in); if(End-name0=0)break; End-Next=new Student; End=End-Next; in.close(); /析构函数 Studentmassage:Studentmassage() Save(); for(Student * temp;Head-Next!=End;) temp=Head-Next; Head-Next=
22、Head-Next-Next; delete temp; delete Head,End; /菜单 void Studentmassage:ShowMenu() cout*endl; cout 学 生 成 绩 管 理 系 统 endl; cout endl; cout 1.增加学生成绩 endl; cout 2.显示学生成绩 endl; cout 3.排序统计成绩 endl; cout 4.查找学生成绩 endl; cout 5.删除学生成绩 endl; cout 6.修改学生信息 endl; cout 0.安全退出系统 endl; coutnttntt请选择:; /查找函数 void Stu
23、dentmassage:Find() char name20 ,Id10; int x; Student * p=NULL; coutntt*n; couttt 1.按学生姓名查找ntt 2.按学生学号查找; coutx; switch(x) case 1:coutname; if(p=FindItem(name) p-Next-Show(); cout输入任意字符!继续; getch(); else couttt没有找到该姓名学生!nendl; cout输入任意字符!继续; getch(); break; case 2: coutId; if(p=FindID(Id) p-Next-Show
24、(); cout输入任意字符!继续; getch(); else couttt没有找到该学好学生!nendl; cout输入任意字符!继续; getch(); break; /修改信息 void Studentmassage:ModifyItem() /修改信息 char name20; Student * p=NULL; coutname; if(p=FindItem(name) couttt已找到学生信息,请输入新信息!Next-Input(); cout修改成功!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; cout输入任意字符!
25、继续; getch(); /删除信息 void Studentmassage:RemoveItem() / 删除信息 char name20; Student * p=NULL,*temp=NULL; couttt请输入要删除学生姓名:name; if(p=FindItem(name) temp=p-Next; p-Next=p-Next-Next; delete temp; couttt删除成功!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; coutname,p1-name); strcpy(temp-Id,p1-Id); temp-
26、Cnum=p1-Cnum; temp-Mnum=p1-Mnum; temp-Enum=p1-Enum; temp-sum=p1-sum; strcpy(p1-name,p2-name); strcpy(p1-Id,p2-Id); p1-Cnum=p2-Cnum; p1-Mnum=p2-Mnum; p1-Enum=p2-Enum; p1-sum=p2-sum; strcpy(p2-name,temp-name); strcpy(p2-Id,temp-Id); p2-Cnum=temp-Cnum; p2-Mnum=temp-Mnum; p2-Enum=temp-Enum; p2-sum=temp-
27、sum; /学生登录模块 void student()int k; coutk;if(k!=1)do cout k;while(k!=1);/管理员登录模块 void manager()int k;coutk;if(k!=2)do cout k;while(k!=2);coutNext;p!=End;p=p-Next) n+; return n; / void Studentmassage:Sort()/对目前链表进行排序 cout Sorting.endl; Student *p=NULL,*p1=NULL,*k=NULL; int n=Studentmassage:ListCount();
28、 if(nNext;p!=End;p=p-Next) for(k=p-Next;k!=End;k=k-Next) if(p-sumk-sum) Studentmassage:Swap(p,k); cout 排序完成!Next;p!=End;p=p-Next) outnametIdtCnumt MnumtEnumtsumn; out.close(); /主函数 int main() int x, i,j; bool quit=false; Studentmassage Grade; coutttendl; for(i=0;i3;i+) couttttttttt endl; couttt0学生用户
29、(学生只能读取学生信息) endl;couttt1管理员用户 endl;for(i=0;i3;i+) couttttttttt endl; coutttnendl; coutj;switch(j)case 0:student();Grade.Find(); break; case 1: manager();while(!quit) system(cls); Grade.ShowMenu(); cinx; switch(x) case 0:quit=true;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.Sort();break; case 4:Grade.Find();break; case 5:Grade.RemoveItem();break; case 6:Grade.ModifyItem();break; break; return 0;第九章 试验总结此次课程设计,我们小组依据老师所给选题,我们选择是学生成绩管理系统。小组依据讨论然后分工进行系统分析、需求分析