学生信息管理系统说明书

更新时间:2024-05-09 00:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

合 肥 师 范 学 院

(本 科)

课程设计说明书

课 程 数据结构 题 目 学生信息管理系统 姓 名 俞雪峰、刘超、石富强、汪洋

学 号 1310421007、1310421115、1310421057、1310421011 专业班级 2013级软件工程(1)班 指导教师 王群芳 完成日期

2014 年 12 月 28号

目 录

1 引 言........................................................................................................................4

1.1 问题的提出............................................................................................................................4 1.2国内外研究的现状.................................................................................................................4 1. 3任务与分析............................................................................................................................4

2 程序的主要功能 ...................................................................................................................5

2.1创建功能.................................................................................................................................5 2.2显示功能.................................................................................................................................5 2.3查找功能.................................................................................................................................5 2.4排序功能.................................................................................................................................5 2.5添加功能.................................................................................................................................5 2.6修改功能.................................................................................................................................5 2.7删除功能.................................................................................................................................5 2.8退出系统.................................................................................................................................5

3 程序运行平台............................................................................................................6 4 总体设计...................................................................................................................................10 5 程序类的说明..........................................................................................................11 6 模块分析...................................................................................................................................13

6.1 创建模块...............................................................................................................................13 6.2 显示模块...............................................................................................................................13 6.3 查找模块...............................................................................................................................14 6.4 排序模块...............................................................................................................................15 6.5 添加模块...............................................................................................................................16 6.6 修改模块...............................................................................................................................17 6.7 删除模块...............................................................................................................................18 6.8退出模块................................................................................................................................20

7 系统测试 ..................................................................................................................................20 8 结论..........................................................................................................................26 致谢..............................................................................................................................28 参考文献......................................................................................................................28

2

摘 要

随着计算机的普及,网络时代的到来,社会信息化程度不断提高,信息管理与信息系统越来越受人们所青睐,由此产生信息总量的剧增,信息更新速度的加快,使得管理的负担越来越重。如何快速查找学生的信息,成为摆在所有管理工作者面前的一大难题。本系统为学校学生信息管理系统,该系统进行了深入的分析和研究,提出了学生信息管理的理论依据和实现的方法。该系统分析了学生的基本信息,利用c++的类与对象的关系编程实现了对每个学生信息的基本管理系统,该系统具有对学生信息的显示、添加、查找、修改和删除等功能。

关键词:管理系统;计算机;学生;信息;功能

3

1 引 言

1.1 问题的提出

在现代化的学生信息管理中,学生信息管理系统有着十分重要的作用,然而,用大型软件系统来于学校的小型事件,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种学校的学生成绩管理自然有十分重要作用。某学校出于这种目的制作了这个学生信息管理系统。

1.2国内外研究的现状

信息管理是学校管理的一个重要内容,随着时代的进步,学校也逐渐变得庞大起来.如何管理好学校内部学生的信息,成为学校管理中的一个大的问题.在这种情况下,一个可以规范化,自动化的学生信息管理系统就显的非常必要.

最初的信息管理,都是靠人力来完成的.当学校人数比较小的时候,人力可以完成,随着学生人数越来越多,学校依然维持着用人力进行管理,必然会造成工作效率低,工作错误增高的问题.

学生信息管理系统就是把分散的学生信息实行统一,集中,规范的收集管理,建立分类编号管理,电脑存储查询以及防火,防潮,防蛀防盗等现代化,专业化的管理系统,为学校解除后顾之忧.

学生信息管理系统为学校提供学生信息查询,录入,修改,删除等功能.

1.3任务与分析

任务:

本课题主要的任务是定义学生类Student,其中包含学生姓名、学号、性别或更多门课程的成绩以及对这些成员的操作,然后要定义Student的对象数组,录入学生信息并显示到屏幕,同时保存到文件;可以从文件读取数据并查询、修改和统计学生信息。并且,在录入信息前要有提示信息,屏幕输出和文件存取时可使用>>、<<运算符重载或用I/O流对象引用作参数的成员函数实现。 分析:

要完成上面的任务,首先根据要解决的问题是分析设计类图,然后抽象出各个类的数据成员和函数成员,然后进行详细编码,在主函数中创建类的对象,调用适当的成员函数或全局函数实现相应的功能。最后再对软件进行测试。

4

2 程序的主要功能

2.1创建功能

录入学生基本信息,包括学号,姓名,性别,年龄,数据结构成绩。

2.2显示功能

显示所有学生的主要信息包括学号,姓名,性别,年龄,数据结构成绩。

2.3查找功能

根据你键入的学生姓名,显示其学号,性别,年龄,数据结构成绩等详细信息,或者键入的学生学号,显示姓名,性别,年龄,数据结构成绩等详细信息!

2.4排序功能

对学生的基本信息,包括学号,姓名,性别,年龄,数据结构成绩等进行排序处理,排序包括插入排序,冒泡排序和选择排序。

2.5添加功能

添加学生基本信息,包括学号,姓名,性别,年龄,数据结构成绩等。

2.6修改功能

对学生的基本信息进行修改,包括学号,姓名,性别,年龄,数据结构成绩等。

2.7删除功能

能够对一个学生的信息进行删除可按照信息位置进行删除。

2.8退出系统

能够安全退出学生成绩管理系统。

5

3 程序运行平台

VC++6.0。

具体操作如下:

(1).进入visusal c++6.0开发环境。单击Next TipA按钮可显示下一条信息,单 击Close按钮关闭如图3.1所示的帮助窗口,进入visusal c++6.0开发环境主窗口。

图3.1 开发窗口

(2).创建一个visual c++项目。在开发环境主窗口中选择File/new菜单项,单击Projects选项卡,选择Win32 Console Application,在Project Name文本框中输入“学生信息管理系统”,在Location文本框中输入要保存的路径,单击OK按钮完成该对话框的设置,如图3.2所示。在弹出的对话框中选择An Empty Project单选钮,并单击Finish按钮,在弹出的对话框中单击OK按钮,如图3.3所示。完成“学生成绩管理系统”的创建。

6

图3.2 输入名称

图3.3 创建项目

(3).编辑并建立C++源程序。选择Project Add To Project New菜单项,在弹出的对话框的File选项卡中选择C++ Source File选择,在File文本框中输入文件名“学生信息管理系统”,如图3.4所示,其他选项选择默认值。单击OK按钮,弹出如图3.5所示的编辑窗口,在该窗口中进行源代码的输入。

7

图3.4 输入文件名

图3.5 编译源代码

(4).编译并运行程序。在完成源代码的编辑后,选择File Save保存所编辑的源程序文件。选择Build Compile学生成绩管理系统.cpp编译源程序。如图3.6所示。

8

图3.6 运行程序

(5)选择Build Compile学生成绩管理系统.exe连接学生成绩管理系统程序,如果有错误显示,则排除这些错误直到没有,那样就已经建立了学生成绩管理系统.exe可执行文件。选择Build Execute.exe,运行学生成绩管理系统程序,其结果如图3.7所示。

图3.7 运行结果

9

4 总体设计

整个程序的主要结构设计如下图4.1所示。

主函数 Student类 声明类 创建功能 显示功能 查找功能 排序功能 添加功能 删除功能 修改功能 退出功能 图4.1 结构设计

10

5 程序类的说明

5.1 Student类的声明:

typedef struct

{ int id; char name[50]; char sex[50]; int age;

int SGscore;

}elemtype; typedef struct { elemtype data[maxsize+1];

int len;

}student;

5.2 声明类:

void creat(L); void display(L); int search(L);

void sort_SGscore1(L); void sort_SGscore2(L); void sort_SGscore3(L); int delet(L,i); void modify(L);

void creat(student &L)

11

6 模块分析

6.1 创建模块

系统将提示用户输入新的学生的信息,插入在顺序表中。 其示意图如下:

调用creat函数 输入学生信息

图6.1 创建示意图

其代码如下:

void creat(student &L) { int i;

cout<<\请输入所记录的学生总数:\ cin>>L.len;

for(i=1;i<=L.len;i++) { cout<<\请输入学生的学号、姓名、性别、年龄、数构成绩:\

cin>>L.data[i].id>>L.data[i].name>>L.data[i].sex>>L.data[i].age>>L.data[i].SGscore; }}

6.2 显示模块

显示模块将输出所有学生的成绩等信息。 其示意图如下:

调用display函 显示学生信息

图6.2 创建示意图

12

其代码如下:

void display(student &L) {

for(int i=1;i<=L.len;i++) { cout<<\该学生的学号、姓名、性别、年龄、数构成绩\ cout<

6.3查找模块

首先由用户输入要查找的学生学号或者姓名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的学生信息。 其示意图如下:

调用search函数

按学号查找 按姓名查找 输出学生信息

图6.3 查找示意图

13

其代码如下: int search(student &L) {

int i,j; int num1; char num2[5];

cout<<\退出查找系统\

cout<<\按学号查找\ cout<<\按姓名查找\ while(1)

{

cout<<\请选择(0-2)\cin>>j; while(j<0||j>2) { } switch(j) { case 0: return 0; case 1:

cout<<\请输入学生学号:\cin>>num1; for(i=1;i<=L.len;i++)

if(L.data[i].id==num1) {

cout<<\找到了该同学!\

cout<<\只能选择0-2,请重新选择:\cin>>j;

14

cout<<\该同学的学号、姓名、性别、年龄、数构成绩为:

\

cout<<\\

\ \

\

\

}

else if(i==L.len)

cout<<\未查到!\return i;

case 2:

cout<<\请输入学生姓名:\cin>>num2; for(i=1;i<=L.len;i++)

if(strcmp(L.data[i].name,num2)==0) {

cout<<\找到了该同学!\

cout<<\该同学的学号、姓名、性别、年龄、数构成绩为:

\

cout<<\\

\ \

\

\ }

}

}

}

else if(i==L.len)

cout<<\未查到!\return i;

15

6.4排序模块

对保存的学生信息按数据结构成绩依次进行排序,包括插入排序,冒泡排序,选择排序。其示意图如下: 调用sort_SGscore1函数 调用sort_SGscore2函数 调用sort_SGscore3函数 输出学生信息排序结果 图6.4 排序示意图 其代码如下:

void sort_SGscore1(student &L) { int i,j;

for (i=2;i<=L.len;i++) { L.data[0]=L.data[i];

for(j=i-1; L.data[0].SGscore

void sort_SGscore2(student L) { int i,j; for(i=1;i<=L.len;i++) { int noswap=1; for(j=L.len;j>=i+1;j--)

16

if(L.data[j].SGscore

void sort_SGscore3(student L) { int i,j; for(i=1;i<=L.len;i++) { int min=i; for(j=i+1;j<=L.len;j++) if(L.data[j].SGscore

6.5添加模块

在原有信息基础上添加其他的学生信息。其示意图如下:

调用Sert函数 输入要添加的学生信息 图6.5 添加示意图

17

其代码如下:int insert(student &L) {

int i=0; elemtype S; i=L.len;

cout<<\请输入插入学生的学号、姓名、性别、年龄、数构成绩:\ cin>>S.id>>S.name>>S.sex>>S.age>>S.SGscore; if (L.len==maxsize )

{ cout<<\表已满,无法插入!\ return 0; } for(i=L.len;i>=1&& L.data[i].id>S.id;i--) L.data[i+1]=L.data[i]; L.data[i+1]=S; L.len++;

cout<<\插入成功!\ return 1; }

6.6删除模块

首先由用户输入要删除的单个学生信息位置,然后调用删除函数,删除该名学生的信息。其示意图如下:

输入要删除的信息位置 调用delete函数 删除学生信息 图6.6 删除示意图

其代码如下:int delet(student &L,int i) { int j;

if (L.len

{ cout<<\表无此位置,无法删除!\ return 0; } for(j=i;j<=L.len;j++)

18

L.data[j]=L.data[j+1];

L.len--; return 1; }

6.7修改模块

首先由用户输入要修改的学生的学号或姓名,然后调用修改函数,对学生信息进行修改,包括学号,姓名,性别,年龄,数据结构成绩。其示意图如下:

输入要修改学生的学号或姓名 调用modify函数 修改学生信息 图6.7 修改示意图

其代码如下:

void modify(student &L) { int i,x,a=0; int id; char name[50]; char sex[50]; int age; int SGscore; cout<<\请选择你要修改的学生学号\ cin>>id; cout<<\请输入你要修改的学生信息\ cout<<\修改学生学号\ cout<<\修改学生姓名\ cout<<\修改学生性别\ cout<<\修改学生年龄\ cout<<\修改学生数构成绩\ cin>>x;

19

switch(x)

{ case 1: for(i=0;i

cout<<\请输入新学号\ cin>>id; L.data[i].id=id; a=1; } } if(a=0) cout<<\对不起你要改的名字不存在\ break; for(i=0;i>name; strcpy(L.data[i].name,name); a=1; } } if(a=0) cout<<\对不起你要改的名字不存在\ break; for(i=0;i>sex; strcpy(L.data[i].sex,sex); a=1; } } if(a=0) cout<<\对不起你要改的名字不存在\ break;

20

case 4:

for(i=0;i>age; L.data[i].age=age; a=1; } } if(a=0) cout<<\对不起你要改的名字不存在\ break; case 5: for(i=0;i>SGscore; L.data[i].SGscore=SGscore; a=1; } } if(a=0) cout<<\对不起你要改的名字不存在\ break; } }

6.8退出模块

首先由用户选择退出程序选项,由系统调用退出模块的程序,达到退出系统的目的。

21

7 系统测试

首先进入VC++6.0,打开工程学生信息管理系统.dsw,然后进入源程序,接着选择Build下的Execute学生信息管理系统.exe即可运行程序。在程序开始时如图7.1所示。

图7.1 进入系统

图7.1表示已经成功进入学生信息管理系统。

22

图7.2 创建功能

图7.2表示实现了程序的创建功能。

图7.3 显示功能

图7.3表示实现了程序的显示功能。

23

图7.4 查找功能

图7.4表示实现了程序的查找功能。

图7.5 排序功能

图7.5表示实现了程序的排序功能。

24

图7.6 添加功能

图7.6表示实现了程序的添加功能。

图7.7 删除功能

图7.7表示实现了程序的删除功能。

25

图7.8 修改功能 图7.8表示实现了程序的修改功能。

图7.9 退出系统

图7.9表示实现了程序的退出功能。 通过上述测试,本系统实现了对学生一系列信息的显示功能,能够显示已有学生的信息;实现了对学生的添加功能,能够添加另外学生的信息;实现了对已有学生信息的查找功能,能够根据学生的姓名或学号来查找学生的信息;实现了对学生信息的修改,删除等功能,同时能够避对没有的学生进行准确的判断。

26

8 结论

系统是以Visual C++6.0为开发工具编的程序。本系统实现了对学生信息的显示,添加,查找,修改和删除的功能。第一周结束的时候,我们感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,到了第二周,我由不得不再次陷入困境。在整个程序的编写过程中。最难的就是修改和删除这两个模块,这也是我们第二周要解决的重点问题。开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,在百度的帮助之下,完成了修改和删除。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最后,两个程序相互组合,互补,最后大功告成。虽然设计时完成了,但是我觉得其中还是由一些不足之处:

1. 重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。 2. 选择单一。本系统设计的程序中,设计的删除模块只是把学生的信息进行全部删除,并没有删除个别信息的选择。

整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。

短短的两周课程设计结束了,但是这段时间里,我们又学到了更多C ++的知识,如:类等,我们认识到要想学好计算机就要重视实践操作,不仅仅是学习C++语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我们会更加注视实践操作,使自己便好地学好计算机。同时,我们也发现我的好多不足之处,我们也被提醒以后办事的时候要认真,仔细,考虑周全。

经过本次课程设计,我们看到了团队精神和互帮互助的重要性。这一点会让我们终生受益。通过两周的课程设计,我们觉得自己肚子里的墨水多了,收获也挺大的,这四周另人终生难忘啊!

27

致谢

在这次课程设计的撰写过程中,我们得到了许多人的帮助。首先,我门要感谢我们的网络在课程设计上提供给我的帮助,并多次帮助我们开拓视角,帮我们解决了许多技术上的难题,让我们能够把系统做得更加完善,这是我们能顺利完成这次课程设计的主要原因。更重要的是,在此期间,我们不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,我们要感谢帮助过我的同学,他们也为我们解决了不少我不太明白的设计上的难题。同时也感谢学院为我们提供良好的做课程设计的环境。最后,再一次感谢所有在设计中曾经帮助过我们的良师益友和同学。

参考文献

[1].严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2002.

[2].严蔚敏,吴伟民.数据结构习题集(c语言版)[M].北京:清华大学出版社,2003.

[3].胡学钢.数据结构导论复习与考试指导[M].北京:高等教育出版社,1999.

28

本文来源:https://www.bwwdw.com/article/nobg.html

Top