顺序表的学生成绩管理系统设计与实现Word文档下载推荐.docx
- 文档编号:21792222
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:178.51KB
顺序表的学生成绩管理系统设计与实现Word文档下载推荐.docx
《顺序表的学生成绩管理系统设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《顺序表的学生成绩管理系统设计与实现Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
2.2算法设计思想-2-
2.3设计要求-2-
第三章系统详细设计-3-
3.1创建空顺序表并初始化-.3-
3.2向顺序表中插入元素..4-
3.3查找学生信息-.7-
3.4删除学生信息-.8-
3.5输出学生信息.-..9-
3.6修改学生信息-9-
3.7退出学生信息管理系统.-..12-
第四章总体设计-13-
4.1设计概述-.13-
4.2系统总流程图及功能模块划分-.13-
4.2.1学生信息查询模块-14-
4.2.2学生信息查询模块-15-
第五章系统测试-16-
5.1实验结果.-..16-
实验总结-20-
收获与心得-21-
致谢-22-
参考文献-23-
引言:
为了提高高校学生信息的管理效率,方便对学生信息进行管理、学校里面的学生和管理员方便去管理和查询学生信息,如再要进行查询,就得在众多的学生信息中查找自己的成绩信息,面对学院大量的学生信息,怎么可以即时而方便的管理,学生只要登录本系统就可以查找到自己的成绩信息,而管理员也方便去管理每学期的学
生的成绩信息。
建立一个学生信息管理系统,使学生信息管理工作规范化,系统化,程序化,避免学生管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改学生信息是必须而且十分迫切的工作。
。
1.1需求分析
学生管理系统功能的信息量大,数据安全性和保密性要求最高。
本功能实现对专
业信息、学生信息、教师信息情况信息的管理和统计、课程信息和成绩信息查看及维护。
系统管理员可以浏览、查询、学生的基本信息,能添加、删除和修改学生信息,
这部分功能应该由系统管理员执行,但是,删除某条专业基本信息记录时,应实现对
该专业的相关信息也级联删除。
并且还应具有查询,并打印输出的功能
1.2实验目的
1.掌握顺序表的建立。
2.掌握顺序表的基本操作。
3.掌握顺序查找的基本算法
1.3实验内容
利用顺序表实现学生成绩管理系统,具体功能:
输入、输出、插入、除、查找、修改、退出,并能在屏幕上输出操作前后的结果'
第2章系统总体设计
2.1基本要求
1.硬件:
微机和打印机一台各
2.软件:
VisualC++windows7
2.2算法设计思想
1)分析程序的功能要求,划分程序功能模块
2)画出系统流程
3)代码的编写,定义数据结构和各个功能子函数
4)程序的功能调试
2.3设计要求
1.写出系统需求分析,并建模。
2.编程实现,界面友好。
3.输出操作前后的结果。
4.提供测试报告
第三章系统详细设计
3.1创建空顺序表并初始化
voidcreatList(sqlist*L)
{inti=0,n;
Elemtype*newbase;
L->
elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemtype)));
if(!
elem)
exit(OVERFLOW);
length=O;
listsize=List_INIT_SPACE;
printf("
有几位同学:
\n"
);
scanf("
%d"
&
n);
for(i=0;
i<
n;
i++)
{if(L->
length==L->
listsize)
{newbase=(Elemtype*)realloc(L->
elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemty
pe));
if(newbase)
{L->
elem=newbase;
listsize+=List_INC_SPACE;
}
else
printf("
请输入第%昭同学的信息:
\n”,i+1);
学号(15)\n"
%16s"
L->
elem[L->
length].number);
姓名(15)\n"
length].name);
性别(男:
M女:
F)\n"
length].sex);
printf(”成绩\n"
%10d"
&
length].score);
length++;
%d
名学生信息如下:
length);
学号(15)姓名(15)性别(男:
F)成绩\n"
length;
i++)printf("
%-16s%-16s%-16s%-10d\n"
elem[i].number,L->
elem[i].name,L->
elem[i].sex,L-
>
elem[i].score);
}
3.2向顺序表中插入元素
voidinsertlist(sqlist*L)
{inti,j,k;
charsign='
y'
;
Elemtype*newbase;
Elemtypenewelem;
while(sign!
='
n'
)
{newbase=(Elemtype*)realloc(L->
elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype));
elseexit(OVERFLOW);
请输入要插入的同学的信息:
学号(15)\n"
scanf("
newelem.number);
newelem.name);
性别(男:
M女:
newelem.sex);
成绩\n"
,&
newelem.score);
要插入到第几个位置:
"
i);
while(i<
1||i>
length+1)
{printf("
不能插入到第%d个位置!
\n只能插入第1到第%介位置上!
\n请重
新输入要插入的位置:
丄->
length+1);
for(j=L->
length-1;
j>
i-2;
j--)
{for(k=0;
k<
16;
k++)
elem[j].name[k]=L->
elem[j-1].name[k];
elem[j].number[k]=L->
elem[j-1].number[k];
elem[j].sex[k]=L->
elem[j-1].sex[k];
elem[j].score=L->
elem[j-1].score;
j++;
for(k=0;
elem[j].name[k]=newelem.name[k];
elem[j].number[k]=newelem.number[k];
elem[j].sex[k]=newelem.sex[k];
elem[j].score=newelem.score;
printf(”是否还要输入?
(YorN)"
getchar();
%c"
sign);
if(sign=='
n'
||sign=='
N'
sign='
n'
%d名学生信息如下:
printf(”学号(15)姓名(15)性别(男:
i++)
elem[i].name,L->
3.3查找学生信息
intfindlist(sqlist*L)
{intj;
chari[16];
1.按学号查找\n2.按姓名查找\n请选择:
”);
j);
if(j==1)
{printf("
请输入学号:
%s"
i);
strcmp(i,L->
elem[j].number))//i==L->
elem[j].number用数组函数
returnj+1;
return0;
请输入姓名:
for(j=0;
j<
j++)
elem[j].name))//用数组函数
}}
3.4删除学生信息
intdelnode(sqlist*L)
{intj;
chari[10];
1.按学号删除\n2.按姓名删除\n请选择:
{printf("
elem[j].number))//i==L->
elem[j].number用数组函数
{for(;
elem[j]=L->
elem[j+1];
length--;
return1;
//L->
elem[j]以后的向前挪
}}
3.5输出学生信息
voidprintlist(sqlist*L)
{inti;
学号(15)姓名(15)性别(男:
i++)printf(%16s%-16s%-16s%-10d\n"
3.6修改学生信息
voidreviselist(sqlist*L)
{inti,x,a=0;
charname[16];
charsex[16];
charnumber[16];
intscore;
请选择你要改的同学的姓名"
seanf("
name);
printf(”请选择你要改的同学的信息\n"
1.修改学生的姓名\n"
2.修改学生的学号\n"
3.修改学生的性别\n"
4.修改学生的成绩\n"
x);
switeh(x)
{ease1:
{if(stremp(name,L->
elem[i].name)==O)
请输入新名字"
name);
strcpy(L->
elem[i].name,name);
a=1;
}}
if(a==0)
break;
对不起你要改的名字不存在\n"
ease2:
{printf(”请输入新学号”);
number);
elem[i].number,number);
a=1;
对不起你要改的名字不存在\n”);
break;
case3:
{if(strcmp(name,L->
请输入新性别"
sex);
elem[i].sex,sex);
case4:
{if(strcmp(name,L->
请输入新成绩"
score);
elem[i].score=score;
if(a==O)
对不起你要改的名字不存在\n”);
3.7退出学生信息管理系统
voidtuichu(sqlist*L)
{if(!
free(L->
elem);
\n\n再见,欢迎下次使用"
exit(-2);
第四章总体设计
4.1设计概述
根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。
把这些模块结合起来组成一个整体。
逐一实现各个功能。
4.2系统总流程图及功能模块划分
经过对系统的需求分析,学生信息管理系统主要划分为三个部分:
学生信息查询,学生信息管理,学生成绩录入三个功能模块。
如图4.2系统的总体结构。
图4.2系统的总体结构
4.2.1
学生信息查询模块
学生信息查询:
学生可以根据学号、姓名、专业进行查询。
如图322学生
信息查询模块结构。
图421学生信息管理模块结构
4.2.2学生信息查询模块
4.2.2
如图学生信息查询模块结构。
图4.2.2学生信息管理模块结构第5章系统测试
第五章系统测试
1•在调试过程中出现了很多次的程序错误,警告和不能运行。
在很多次的调试和重新改写之后,才可以用。
2.VisualC++确实是一门需要极其细心和耐心的课程,尤其在程序设计的过程中不可有一丝的马虎大意,否则将会花很大力气去改正。
3.调试过程中最常见的便是代码输入错误,如字母大小写、顺序颠倒、符号的半/全角使用等一些问题,都是在调试过程中逐一改正的。
5.1实验结果
-P|xl
1■初始化
VD:
\SSXT\Debu£
\xTX.exe*
学生信息管理系统
2.输入
3插入
C:
\DociiMentsand.Settii&
csXstud\文本文档.exc
104215ms王舒初妬化龙毕I
I-盘择
暑领入要播入的同学的信息’
1842157126姓<
15>
程别甥出女:
F〉
n
咸绩
性别甥:
H女:
F>虑绩
M9H
n92
F9S
n?
5
鈿△劉菱几个位置,电?
否丫茕输M<
¥
of2N愛祚矗息如下;
学号姓名"
5)1»
421&
?
103何业耳
1A42157104孔畚磊
1042157119主辭
1H4215712M昊
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 学生 成绩管理系统 设计 实现