软件工程学生成绩管理系统_第1页
软件工程学生成绩管理系统_第2页
软件工程学生成绩管理系统_第3页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、成绩评定指导教师:软件工程课程设计报告题 目:学生成绩管理系统专业班级:_计算机系计科 102 班姓 名:学号:同组姓名:目录第 1 章 绪论 3第 2 章 系统分析 42.1 系统目标 42.2 功能要求 42.3 可行性研究方法 42.4 系统可行性分析 4第 3 章 需求分析 53.1 引言 53.2 任务概述 53.2.1 编写目的 53.2.2 背景 53.3 功能需求 63.3.1 管理功能部分 63.3.1.1 管理员功能 63.3.1.2 学生功能 63.4 数据流图 63.5 学生成绩管理系统逻辑结构图 73.6 用例 7第 4 章 概要设计 104.1 设计目标 104.2

2、 编写目的 104.3 任务概述 104.4 总体设计 114.4.1 系统设计思想 114.4.2 学生成绩管理系统顺序图 124.5 接口设计 14第 5 章 详细设计 165.1 根本任务 165.2 程序流程图 165.3 详细设计说明 18第六章软件测试 21第七章实验结果截图显示 24第八章程序源代码 27第九章实验总结 42第十章参考文献 42第 1 章 绪论随着互联网的发展,利用 INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作 为学校信息化建设的一个平台在完成资源共享、 互联网访问、 教务管理、电子备课等方面发挥了重要 作用。服务教学、 提高教学水平和教

3、学结果查询是校园网建设的核心目标和核心价值, 本系统立足于 校园实际, 争取做出一个方便快捷的成绩管理系统, 实现成绩信息的管理。 该项目主要是服务于学生 成绩管理方面, 进一步方便教师的工作和学生的成绩查询, 从而从侧面达到提高学校的管理质量。 它 具有使用范围广,实用性强,使用简单,所花经费少等优点。主要功能有两个方面:管理员,登陆,进入系统, 可以进行管理员操作, 进行学生信息及成绩信息的编辑、 查询、删除、 修改、添加、排序等操作。学生,登陆,进入系统,可以进行查询等操作。软件系统目标:(1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规 定各种权限。(

4、2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。(3)本系统操作方便、灵活、简单。(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功能需求

8、3.3.1管理功能部分从业务流程图可以看出,学生成绩挂历系统分为大的两个方面:管理员模块,学生模块,其 主要管理功能有:3.3.1.1管理员功能管理员进入学生成绩管理的主要功能是:实现对学生信息及成绩的添加,删除,修改, 查询和排序等基本功能。3.3.1.2学生功能学生进入学生成绩管理系统的主要功能是:每个学生登录系统后可以查询自己的个人信息以及 成绩信息,查询的时候可以通过姓名也可以通过学号查询,同时学生登录时需要密码。图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)本系统具有很强的可靠行,可以对录入的学生的成绩,对学生成绩进行修改、删除,并且可

11、以 对学生成绩进行排序。(2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。(3)本系统操作方便、灵活、简单。(4)本系统可高效、快速的查询到学生的基本信息。4.3.2 需求概述学生成绩管理系统是为方便教师学生实时掌握成绩、课程等相关信息,学生可以方便快捷的查询自己的成绩而研发的系统,旨在大幅度节约教师和学生们时间,提升教务系统办事效率。4.4总体设计4.4.1系统设计思想总模块软件结构图4-1学生成绩管理系统主模块根据上面的需求分析,可以将这个系统分为以下模块:学生子模块和管理员子模块查 询 个 人 成 绩图4-2学生成绩管理系统层次图表4-1模块功能学生子模块学生可以在该模

12、块中查询自己的成绩管理员子模块管理员可以再此模块中浏览学生的成绩,对学生的成绩信息进行管理,并 且可以对学生的成绩进行排序。4.4.2学生成绩管理系统顺序图咸绩管理顺序国叫戟师登陆.畀面学生成第ii- rQ 录 登rT4返回成绩信.乩5:返回成給信息i&:返回成集悟恿图4-3学生成绩信息顺序图4.4.3学生成绩管理系统协作图:教师誉成6】返回廉匝录-7输入孝牛信.1:登陆界m:数据库61W访问*返回成绩信-图4-4学生成绩信息协作图4.4.4学生成绩管理系统状态图4.5接口设计4.5.1外部接口与用户界面在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到

13、简 单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合 理化,考虑到用户多对 WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使 用Visual C+进行编程。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。4.5.2内部接口内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输第5章详细设计5.1根本任务依据软件工程的基本原理,详细设计阶段的根本任务是确定应该怎样具体实现所要求

14、的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述, 具体来说就是把经过总体设计 得到的各个模块详细的加以描述。5.2程序流程图1. 系统主程序流程图图5-1主程序流程图2. 学生登录模块图5-2学生用户流程图3.管理员管理流程图图5-3管理员管理流程图4.系统类图图5-4成绩管理系统类图5.3详细设计说明管理模块包括以下内容:界面设计用户登陆:该系统根据用户的身份实现了不同的功能,用户登陆时需要选择一种登陆方式(默认情况下是学生),系统再根据用户选择的登陆方式到相应的表中去搜索。例如,登陆时选择了教师登陆方式,系统将会在教师信息表中搜索是否存在与该用户的输入相符的信息,如

15、果存在则进入教师主页,否则提示用户输入有误,请重新输入。学生用户界面1. 按照学号查找学生可以查询自己指定的学号查询成绩,方便学生了解成绩情况。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代码运行之后的主界面so §CXK § § cxw80 CXM § so cx

19、w§ 80 CXW so §80 so §8080§T_itJ)o©o©©®o§§©O©O©©OKS so?.-_!§Rs >._ § T 伴户 户用 曲贝 生理 #4官 0 1 i 晴选择;图7-17.2学生模块显示憑逹葬醐找请输入要查找的学拄的姓名;请选律1姓名:lina学号禺C + + :26汇编汚嵌入式操作系统:1总成绩:32图7-2g凋鋼饕找请输入要查找的学生的学号:23a f 2ln3 操:3:1:226:5式绩名口冇

20、+:编入成图7-3*= 建增加学生成绩 =二= 囂显示学生成绩 =* 証排序铳计成绩 = 飪查找学生成绩 =:=* 5.W学生成绩 = 修改学生信息 =:= 孔安全退出系统 =7.3管理员模块显示学生成绩管理系统图7-4第八章 程序源代码# include <fstream># include <string.h>#include <conio.h>/ 用 getch();#include<iostream>using namespace std;/Student 类class Stude ntpublic:char name20;char Id

21、20;int Cnum;/C+ 课程得分int Mnum;/汇编课程得分int Enum;/嵌入式操作系统课程得分int sum;/总分Student * Next;void Input()cout<<"tt请输入学生的姓名: "cin>>name;cout<<"tt请输入学生的学号: "cin>>Id;cout<<"tt请输入 C+ 课程的成绩:" cin>>Cnum;cout<<"tt请输入汇编课程的成绩:" cin>&g

22、t;Mnum;cin>>Enum;cout<<"tt 请输入嵌入式操作系统课程的成绩:sum=Cnum+Mnum+Enum;void ReadFile(istream & in) in»n ame»ld»C num»Mnum >>E num >>sum;void Show()cout<<" 姓名 :"<<name<<endl<<" 学号 :"<<ld<<endl<<&

23、quot;C+:"<<Cnum<<endl"<<Enum<<endl<<" 总 成<<" 汇 编 :"<<Mnum<<endl<<" 嵌 入 式 操 作 系 统绩:"<<sum<<e ndl<<e ndl<<e ndl;/Stude ntmassage 类class Studentmassagepublic:Studentmassage();Studentmassage(

24、);void ShowMenu();void Find();void Save();void Modifyltem();void Removeltem();void Swap(Student *,Student *);void Sort();int ListCount();void Display()"; getch();for(Student * p=Head->Next;p!=End;p=p->Next)p->Show(); cout<<" 输入任意字符!继续void AddItem()End->Input();End->Nex

25、t=new Student;End=End->Next;cout<<" 添加成功 !"<<endl;cout<<"输入任意字符!继续”;getch();private:Student * Head,* End;ifstream in;ofstream out;Student *FindItem(char * name)for(Student * p=Head;p->Next!=End;p=p->Next)/ 匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p->Next->name,

26、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;/构造函数Stude ntmassage:Stude ntmassage()Head=new Student;Head->Next=new Student;End=Head->Next;in.open("sort.txt&

27、quot;);if(!in)cout<<" 这是一个新系统,无学生信息。请先输入。 "<<endl;elsewhile(!in.eof()End->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

28、;Head->Next=Head->Next->Next;delete temp;delete Head,End;/菜单void Studentmassage:ShowMenu()cout<<"*"<<endl;cout<<""<<endl;cout<<" = "<<endl;cout<<" = 1.增加学生成绩 "<<endl;cout<<" = 2.显示学生成绩 "&

29、lt;<endl;cout<<" = 3.排序统计成绩 "<<endl;cout<<" = 4.查找学生成绩 "<<endl;cout<<" = 5.删除学生成绩 "<<endl;cout<<" = 6.修改学生信息 "<<endl;cout<<" = 0.安全退出系统 "<<endl;cout<<"nttntt请选择: "生成绩管理系学统

30、/查找函数void Studentmassage:Find()char name20 ,Id10;int x;Student * p=NULL;cout<<"ntt*n"cout<<"tt 1.按学生的姓名查找 ntt 2.按学生学号查找 "cout<<"ntt*n请选择: "cin>>x;switch(x)case 1:cout<<"tt 请输入要查找的学生的姓名: if(p=FindItem(name)p->Next->Show();cout<

31、<"输入任意字符!继续”;getch();elsecout<<"tt 没有找到该姓名的学生! cout<<"输入任意字符!继续"getch();break;case 2:cout<<"tt 请输入要查找的学生的学号 if(p=FindID(Id)p->Next->Show();"cin>>name;"<<'n'<<endl;" cin>>Id;getch();elsecout<<&quo

32、t;tt 没有找到该学好的学生! "<<'n'<<endl;cout<<"输入任意字符!继续”;getch();break;/修改信息void Studentmassage:ModifyItem()/修改信息char name20;Student * p=NULL;cout<<"tt 请输入要修改的人的姓名 :";cin>>name;if(p=FindItem(name)cout<<"tt 已找到学生的信息,请输入新的信息 !"<<en

33、dl;p->Next->Input();cout<<" 修改成功! "<<endl;getch();elsecout<<"tt 没有找到 !"<<endl;cout<<"输入任意字符!继续getch();/删除信息/ 删除信息:"<<endl;cin>>name;void Studentmassage:RemoveItem()char name20;Student * p=NULL,*temp=NULL;cout<<"

34、tt 请输入要删除的学生的姓名if(p=FindItem(name)temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"tt 删除成功 !"<<endl;getch();elsecout<<"tt 没有找到 !"<<endl;cout<<"输入任意字符!继续”;getch();/void Studentmassage:Swap(Student *p1, Student *p2)/ 交换两个 combox 变

35、量的数据域 Student *temp=new Student;strcpy(temp->name,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->

36、;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->sum;/学生登录模块void student()int k; cout<<" 请输入你的密码 :" cin>>k;if(k!=

37、1)do cout << ", 输入错误,请重新输入密码 " cin >> k;while(k!=1);/管理员登录模块void manager()int k;cout<<" 请输入你的密码 :"cin>>k;if(k!=2)do cout << " 输入错误,请重新输入密码 " cin >> k;while(k!=2);cout<<" 登录成功 !"/int Studentmassage:ListCount()/ 统计当前链表的记

38、录总数,返回一个整数if(! Head) return 0;int n=0;for(Student * p=Head->Next;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();if(n<2)return;for(p=Head->Next;p!=End;p=p-

39、>Next)for(k=p->Next;k!=End;k=k->Next)if(p->sum>k->sum) Studentmassage:Swap(p,k); cout <<" 排序完成! "<<endl;getch(); return;/保存函数void Studentmassage:Save()out.open("sort.txt");for(Student *p=Head->Next;p!=End;p=p->Next)out<<p->name<<

40、"t"<<p->Id<<"t"<<p->Cnum<<"t"<<p->Mnum<<"t"<<p->Enum<<"t"<<p->sum<<'n'out.close();/主函数int main()int x, i,j;bool quit=false;Studentmassage Grade;cout<<"tt §§§§§§§§§§§§§§&

温馨提示

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

评论

0/150

提交评论