软件工程 学生成绩管理系统DOC.docx

上传人:b****6 文档编号:16040853 上传时间:2023-07-10 格式:DOCX 页数:28 大小:57.44KB
下载 相关 举报
软件工程 学生成绩管理系统DOC.docx_第1页
第1页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第2页
第2页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第3页
第3页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第4页
第4页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第5页
第5页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第6页
第6页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第7页
第7页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第8页
第8页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第9页
第9页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第10页
第10页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第11页
第11页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第12页
第12页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第13页
第13页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第14页
第14页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第15页
第15页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第16页
第16页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第17页
第17页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第18页
第18页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第19页
第19页 / 共28页
软件工程 学生成绩管理系统DOC.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件工程 学生成绩管理系统DOC.docx

《软件工程 学生成绩管理系统DOC.docx》由会员分享,可在线阅读,更多相关《软件工程 学生成绩管理系统DOC.docx(28页珍藏版)》请在冰点文库上搜索。

软件工程 学生成绩管理系统DOC.docx

软件工程学生成绩管理系统DOC

软件工程课程设计报告

题  目:

_____学生成绩管理系统____

专业班级:

___计算机系计科102班___

姓  名:

____________________

学  号:

_____________

同组姓名:

______

     ___________________

目  录

第1章绪论2

第2章系统分析3

2.1系统目标3

2.2功能要求3

2.3可行性研究方法3

2.4系统可行性分析3

第3章需求分析4

3.1引言4

3.2任务概述4

3.2.1编写目的4

3.2.2背景4

3.3功能需求4

3.3.1管理功能部分4

管理员功能4

学生功能4

3.4数据流图5

3.5学生成绩管理系统逻辑结构图5

3.6用例6

第4章概要设计8

4.1设计目标8

4.2编写目的8

4.3任务概述8

4.4总体设计9

4.4.1系统设计思想9

4.4.2学生成绩管理系统顺序图10

4.5接口设计11

第5章详细设计12

5.1根本任务12

5.2程序流程图12

5.3详细设计说明14

第六章软件测试16

第七章实验结果截图显示18

第八章程序源代码20

第九章实验总结28

第十章参考文献28

第1章绪论

随着互联网的发展,利用INTERNET技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。

服务教学、提高教学水平和教学结果查询是校园网建设的核心目标和核心价值,本系统立足于校园实际,争取做出一个方便快捷的成绩管理系统,实现成绩信息的管理。

该项目主要是服务于学生成绩管理方面,进一步方便教师的工作和学生的成绩查询,从而从侧面达到提高学校的管理质量。

它具有使用范围广,实用性强,使用简单,所花经费少等优点。

主要功能有两个方面:

管理员,登陆,进入系统,可以进行管理员操作,进行学生信息及成绩信息的编辑、查询、删除、修改、添加、排序等操作。

学生,登陆,进入系统,可以进行查询等操作。

软件系统目标:

(1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。

(2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。

(3)本系统操作方便、灵活、简单。

(4)本系统可高效、快速的查询到学生的基本信息。

第2章系统分析

2.1系统目标

学生用户和管理员用户可以进入不同的管理模块,并且只有密码输入正确才能进入功能模块,学生用户只能查询学生信息,管理员用户可以对学生成绩实行各种操作。

2.2功能要求

1.性能:

学生成绩的增加、删除、修改,排序及查询

2.输入:

学生管理员密码

3.输出:

学生成绩信息

4.基本的数据流程和处理流程:

事务事务

管理员学生成绩管理系统学生

图2-1基本数据和处理流程

5.安全与保密要求:

登录系统时,需验证密码;不同身份的登录者,具有不同的使用权限。

2.3可行性研究方法

主要为对现有成绩管理系统的分析和研究比较的方法。

2.4系统可行性分析

可行性分析是为了清除的了解系统开发是否能够实际进行,是否能够带来一定效益,是否值得实现。

因而进行可行性分析是非常必要的,从下面几个方面来进行分析。

1.技术可行性:

设置不同权限,提高了数据的安全性。

2.运行可行性:

本系统作为一个小型的学生成绩管理系统,所耗费的资源非常的小。

已有软件和硬件配置均能满足需要。

3.经济可行性:

服务端及客户端的支出使用原有设备即可。

但是对软件有一次性软件费用支出和定期性软件维护支出。

软件使用后,能够减少人力的支出和维护。

4.法律可行性:

本软件属项目组开发,符合法律的各项规定。

5.使用可行性:

软件针对学校以及学院,对使用人员没有特殊限制,管理老师、学生等均可使用。

界面友好,操作简单,能够保证大多数用户使用该系统的要求。

2.5结论

通过可行性的一系列分析可得出结论,在现有的条件下,系统的开发方案是可行的。

开发条件具备,可以开始进行实际开发。

第3章需求分析

3.1引言

随着互联网的发展,利用INTERNET技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子设备等方面发挥了重要作用。

服务教学、提高教学水平和效果是校园网将设的核心目标和核心价值,本系统立足于校园实际,着眼于未来发展,实现信息资源的共享。

该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面的“软件”质量。

3.2任务概述

3.2.1编写目的

解决学校对学生信息进行处理时,对各种数据的需求,并且能够有助于学校方面对学生的管理。

主要解决学生系你想查询困难等问题。

确定学生信息管理系统功能的需求,数据需求及软、硬件需求。

确定学生成绩管理系统所能实现的功能,本系统中主要是对数据进行操作,如学生信息及成绩的增加,删除,修改,查看,排序等功能。

3.2.2背景

这次待开发的系统名称为:

学生成绩管理系统

本次项目任务的完成者:

刘瑶、李纳、谢千玲、周石花

用户:

管理老师,学生

3.3功能需求

3.3.1管理功能部分

从业务流程图可以看出,学生成绩挂历系统分为大的两个方面:

管理员模块,学生模块,其主要管理功能有:

3.3.1.1管理员功能

管理员进入学生成绩管理的主要功能是:

实现对学生信息及成绩的添加,删除,修改,查询和排序等基本功能。

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学生成绩系统用例图

3.7类图

图3-5类图的初步设计

第4章概要设计

4.1设计目标

概要设计师软件开发过程中的一个阶段就,在这个阶段需要完成一些明确的事情。

概要设计阶段的基本目的是回答“概括的说,系统应该如何实现?

”。

通过这个阶段,确定系统的组成模块。

本学生成绩管理系统由管理员、学生两个大模块组成。

每个模块又由自己的子模块组成。

4.2编写目的

基于现在的学生越来越多,老师的工作量越来越大。

伴随着网络信息化,学生成绩管理也必须迈进一个更加进步的时代。

那就是用网络来管理学生成绩,实现一个电子管理学生成绩的平台,减轻老师的负担,也便利教务处的管理工作。

在本系统中,学生可以选课,退课,查询成绩;老师在期中期末的时候给学生打分,并按百分比计算,提交之前可以修改学生的成绩;管理员可以对教师、学生、课程的信息进行增、删、查、改,并且可以发布公告,新闻。

如果学生,教师,管理员想进入这个系统,必须先进行登录,新用户要注册,可以进行个人信息的维护,如密码的修改等。

4.3任务概述

4.3.1目标

(1)本系统具有很强的可靠行,可以对录入的学生的成绩,对学生成绩进行修改、删除,并且可以对学生成绩进行排序。

(2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。

(3)本系统操作方便、灵活、简单。

(4)本系统可高效、快速的查询到学生的基本信息。

4.3.2需求概述

学生成绩管理系统是为方便教师学生实时掌握成绩、课程等相关信息,学生可以方便快捷的查询自己的成绩而研发的系统,旨在大幅度节约教师和学生们时间,提升教务系统办事效率。

4.4总体设计

4.4.1系统设计思想

总模块软件结构

图4-1学生成绩管理系统主模块

根据上面的需求分析,可以将这个系统分为以下模块:

学生子模块和管理员子模块

图4-2学生成绩管理系统层次图

表4-1模块功能

学生子模块

学生可以在该模块中查询自己的成绩

管理员子模块

管理员可以再此模块中浏览学生的成绩,对学生的成绩信息进行管理,并且可以对学生的成绩进行排序。

4.4.2学生成绩管理系统顺序图

图4-3学生成绩信息顺序图

4.4.3学生成绩管理系统协作图

图4-4学生成绩信息协作图

4.4.4学生成绩管理系统状态图

图4-5学生成绩信息状态图

4.5接口设计

4.5.1外部接口与用户界面

在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。

在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。

外观上也要做到合理化,考虑到用户多对WINDOW风格较熟悉,应尽量向这一方向靠拢。

在设计语言上,已决定使用VisualC++进行编程。

总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。

4.5.2内部接口

内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。

具体参数的结构将在下面数据结构设计的内容中说明。

接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。

第5章详细设计

5.1根本任务

依据软件工程的基本原理,详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,具体来说就是把经过总体设计得到的各个模块详细的加以描述。

5.2程序流程图

1.系统主程序流程图

图5-1主程序流程图

2.学生登录模块

图5-2学生用户流程图

3.管理员管理流程图

图5-3管理员管理流程图

4.系统类图

图5-4成绩管理系统类图

5.3详细设计说明

管理模块包括以下内容:

界面设计

用户登陆:

该系统根据用户的身份实现了不同的功能,用户登陆时需要选择一种登陆方式(默认情况下是学生),系统再根据用户选择的登陆方式到相应的表中去搜索。

例如,登陆时选择了教师登陆方式,系统将会在教师信息表中搜索是否存在与该用户的输入相符的信息,如果存在则进入教师主页,否则提示用户输入有误,请重新输入。

学生用户界面

1.按照学号查找

学生可以查询自己指定的学号查询成绩,方便学生了解成绩情况。

2.按照学生姓名查找

学生可以查询自己指定姓名查询成绩,方便学生了解自身情况。

管理员界面

1.增加学生成绩

管理员可以增加某个学生的某门科目的成绩。

2.显示学生成绩

管理员可以显示所有学生所有科目的成绩。

3.排序统计成绩

管理员可以根据学生成绩进行排序和统计。

4.查找学生成绩

管理员可以查询某个学生的成绩。

5.删除学生成绩

管理员可以删除某个学生的成绩。

6.修改学生成绩

管理员可以修改学生的成绩。

第六章软件测试

测试用例设计

表6-1

用例编号

C001

测试对象

“学生登录”功能

用例目的

测试学生登录系统的功能是否正确实现

输入/动作

预期输出/结果

实际结果

选择学生登录,输入错误密码

提示“输入错误密码,请重新输入”

提示“输入错误密码,请重新输入”

选择学生登录,输入密码,输入错误名字

提示“无法找到该学生”

提示“无法找到该学生”

选择学生登录,输入账号,输入密码,单击登录

进入学生登录子系统

进入学生登录子系统

表6-2

用例编号

C002

测试对象

“管理员登录”子系统界面

用例目的

测试管理员登录子系统界面的功能是否正确实现

输入/动作

预期输出/结果

实际结果

选择管理员登录,输入错误密码

提示“输入错误密码,请重新输入”

提示“输入错误密码,请重新输入”

选择管理员登录,输入密码

进入管理员登录子系统

进入管理员登录子系统

观察界面是否正确显示操作按钮

显示“增加学生成绩”,“显示学生成绩”,“排序统计成绩”,“查找学生成绩,“删除学生成绩”,“修改学生信息”

显示“增加学生成绩”,“显示学生成绩”,“排序统计成绩”,“查找学生成绩,“删除学生成绩”,“修改学生信息”

表6-3

用例编号

C003

测试对象

“管理员登录”子系统增加学生成绩功能

用例目的

测试“管理员登录”子系统增加学生成绩功能是否正确实现

输入/动作

预期输出/结果

实际结果

在“教师登录”子系统中选择增加学生成绩功能

显示要增加的学生的姓名和学号和各科成绩

显示要增加的学生的姓名和学号和各科成绩

表6-4

用例编号

C004

测试对象

“管理员登录”子系统排序统计学生成绩功能

用例目的

测试“管理员登录”子系统排序统计学生成绩功能是否正确实现

输入/动作

预期输出/结果

实际结果

在“管理员登录”子系统中选择排序查询功能

显示排序成功

显示排序成功

表6-5

用例编号

C005

测试对象

“管理员登录”子系统显示学生成绩功能

用例目的

测试“管理员登录”子系统显示学生成绩功能是否正确实现

输入/动作

预期输出/结果

实际结果

在“教师登录”子系统中选择显示学生成绩功能

显示所有学生的姓名和学号和各科成绩

显示所有学生的姓名和学号和各科成绩

第七章实验结果截图显示

7.1代码运行之后的主界面

图7-1

7.2学生模块显示

图7-2

图7-3

7.3管理员模块显示

图7-4

第八章程序源代码

#include

#include

#include//用getch();

#include

usingnamespacestd;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

classStudent

{

public:

charname[20];

charId[20];

intCnum;//C++课程得分

intMnum;//汇编课程得分

intEnum;//嵌入式操作系统课程得分

intsum;//总分

Student*Next;

voidInput()

{

cout<<"\t\t请输入学生的姓名:

";cin>>name;

cout<<"\t\t请输入学生的学号:

";cin>>Id;

cout<<"\t\t请输入C++课程的成绩:

";cin>>Cnum;

cout<<"\t\t请输入汇编课程的成绩:

";cin>>Mnum;

cout<<"\t\t请输入嵌入式操作系统课程的成绩:

";cin>>Enum;

sum=Cnum+Mnum+Enum;

}

voidReadFile(istream&in)

{in>>name>>Id>>Cnum>>Mnum>>Enum>>sum;}

voidShow()

{

cout<<"姓名:

"<

"<

"<

<<"汇编:

"<

"<

"<

}

};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

classStudentmassage

{

public:

Studentmassage();

~Studentmassage();

voidShowMenu();

voidFind();

voidSave();

voidModifyItem();

voidRemoveItem();

voidSwap(Student*,Student*);

voidSort();

intListCount();

voidDisplay()

{

for(Student*p=Head->Next;p!

=End;p=p->Next)

p->Show();cout<<"输入任意字符!

继续……";getch();

}

voidAddItem()

{

End->Input();

End->Next=newStudent;

End=End->Next;

cout<<"添加成功!

"<

cout<<"输入任意字符!

继续……";

getch();

}

private:

Student*Head,*End;

ifstreamin;

ofstreamout;

Student*FindItem(char*name)

{

for(Student*p=Head;p->Next!

=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空

if(!

strcmp(p->Next->name,name))returnp;

returnNULL;

}

Student*FindID(char*Id)

{

for(Student*p=Head;p->Next!

=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空

if(!

strcmp(p->Next->Id,Id))returnp;

returnNULL;

}

};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

Studentmassage:

:

Studentmassage()

{

Head=newStudent;

Head->Next=newStudent;

End=Head->Next;

in.open("sort.txt");

if(!

in)

cout<<"这是一个新系统,无学生信息。

请先输入。

"<

else

{

while(!

in.eof())

{

End->ReadFile(in);

if(End->name[0]=='\0')break;

End->Next=newStudent;

End=End->Next;

}

in.close();

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

Studentmassage:

:

~Studentmassage()

{

Save();

for(Student*temp;Head->Next!

=End;)

{

temp=Head->Next;

Head->Next=Head->Next->Next;

deletetemp;

}

deleteHead,End;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage:

:

ShowMenu()

{

cout<<"********************************************************************************"<

cout<<"〓〓〓〓〓〓〓〓〓〓☆学生成绩管理系统☆〓〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓★★★★★★★★★★★★★★★★★〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆1.增加学生成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆2.显示学生成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆3.排序统计成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆4.查找学生成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆5.删除学生成绩☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆6.修改学生信息☆★〓〓〓〓〓〓〓〓〓"<

cout<<"〓〓〓〓〓〓〓〓〓★☆0.安全退出系统☆★〓〓〓〓〓〓〓〓〓"<

cout<<"\n\t\t\n\t\t请选择:

";

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage:

:

Find()

{

charname[20],Id[10];

intx;

Student*p=NULL;

cout<<"\n\t\t*********************************\n";

cout<<"\t\t※1.按学生的姓名查找\n\t\t※2.按学生学号查找";

cout<<"\n\t\t*********************************\n请选择:

";

cin>>x;

switch(x)

{

case1:

{cout<<"\t\t请输入要查找的学生的姓名:

";cin>>name;

if(p=FindItem(name))

{

p->Next->Show();

cout<<"输入任意字符!

继续……";

getch();

}

else

{

cout<<"\t\t没有找到该姓名的学生!

"<<'\n'<

cout<<"输入任意字符!

继续……";

getch();

}

}break;

case2:

{

cout<<"\t\t请输入要查找的学生的学号:

";cin>>Id;

if(p=FindID(Id))

{

p->Next->Show();

cout<<"输入任意字符!

继续……";

getch();

}

else

{

cout<<"\t\t没有找到该学好的学生!

"<<'\n'<

cout<<"输入任意字符!

继续……";

getch();

}

}break;

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage:

:

ModifyItem()//修改信息

{

charname[20];

Student*p=NULL;

cout<<"\t\t请输入要修改的人的姓名:

";cin>>name;

if(p=FindItem(name))

{

cout<<"\t\t已找到学生的信息,请输入新的信息!

"<

p->Next->Input();

cout<<"修改成功!

"<

cout<<"输入任意字符!

继续……";

getch();

}

else

{

cout<<"\t\t没有找到!

"<

cout<<"输入任意字符!

继续……";

getch();

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

voidStudentmassage:

:

RemoveItem()

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2