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