顺序表的学生成绩管理系统设计与实现.docx

上传人:b****6 文档编号:8656019 上传时间:2023-02-01 格式:DOCX 页数:18 大小:178.51KB
下载 相关 举报
顺序表的学生成绩管理系统设计与实现.docx_第1页
第1页 / 共18页
顺序表的学生成绩管理系统设计与实现.docx_第2页
第2页 / 共18页
顺序表的学生成绩管理系统设计与实现.docx_第3页
第3页 / 共18页
顺序表的学生成绩管理系统设计与实现.docx_第4页
第4页 / 共18页
顺序表的学生成绩管理系统设计与实现.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

顺序表的学生成绩管理系统设计与实现.docx

《顺序表的学生成绩管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《顺序表的学生成绩管理系统设计与实现.docx(18页珍藏版)》请在冰豆网上搜索。

顺序表的学生成绩管理系统设计与实现.docx

顺序表的学生成绩管理系统设计与实现

长春建筑学院《数据结构》课程设计(论文)

顺序表的学生成绩管理系统设计与实现

Ordertableofstudentachievementmanagement

systemdesignandimplementation

年级:

学号:

姓名:

专业

指导老师:

二零一三年十二月

摘要

随着社会的发展,学校的规模不断的扩大,日常教学活动中提取相关信息,以反映教学情况。

传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。

使用计算机可以高速,快捷地完成以上工作。

在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。

学生成绩管理系统以计算机为工具,通过对学生成绩管理所需的信息管理,把管理人员和老师从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。

信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。

计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。

为了适应现代社会人们高度强烈的时间观念,学生成绩管理系统软件为教学办公室带来了极大的方便。

该软件是以C语言为实现语言,其功能

在系统内部有源代码直接完成。

通过操作目录,管理者和老师可以了解本软件的基本工作原理。

管理者和老师只需输入一些简单的汉字、数字,即可达到自己管理学生成绩的目标。

关键字:

成绩管理系统c语言数据结构

Abstract

Withthedevelopmentofthesociety,theschoolscaleunceasinglyexpands,thedailyteachingactivitiestoextractrelevantinformation,toreflecttheteachingsituation.Traditionalwayofmanualoperation,pronetolossofdata,statisticalerrors,highlaborintensity,andtheslowspeed.Usingthecomputercanbehighspeed,quicklycompletetheabovework.Afterthecomputernetworking,datatransmissionontheInternet,canrealizedatasharing,avoidduplicationofeffort,standardizeteachingmanagement,soastoimprovethemanagementefficiencyandlevel.Studentachievementmanagementsystembymeansofcomputer,throughtheinformationneededforthestudentperformaneemanagementinthemanagement,themanagementandteachersfromcomplicateddataprocessing,makeitshavemoreenergytoengageintheresearchandimplementationofthepolicyoftheeducationaladministrationteachingplanexecutionandtheteachingqualitysupervisionandinspection,soastoimprovethequalityofteachingcomprehensively.

Theinformationsocietythehigh-tech,goodsofcontracthighbenefit,maketheapplicationofcomputerhasspreadtoallareasofeconomicandsociallife.Althoughcomputerandhumanrelationsmoreandmoreclose,andbecausethecomputeroperationisnotconvenienttocontinuewithmanuallabor.Inordertoadapttomodernsocietypeoplehighlystrongtimeconcept,studentachievementmanagementsystemsoftwarefortheteachingofficehasbroughtgreatconvenience.ThesoftwarebasedonCIanguageimplementationIanguage,itsfunctionwithinthesystemhavethesourcecodedirectlytofinish.Bymanipulatingthedirectory,administratorsandteacherscanunderstandthebasicworkingprincipleofthissoftware.AdministratorsandteachersonlyneedtoinputsomesimpleChinesecharacters,Numbers,canachievetheirmanagementgoalofthestudent'sgrade.

keywords:

achievementmanagementsystem,cIanguage,datastructure

摘要I•…

ABSTRACT.II

第1章绪论-1-

1.1需求分析-.1-

1.2实验目的-.1-

1.3实验内容.-..1-

第2章系统总体设计-2-

2.1基本要求-2-

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(!

L->elem)

exit(OVERFLOW);

L->length=O;

L->listsize=List_INIT_SPACE;

printf("有几位同学:

\n");

scanf("%d",&n);

for(i=0;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;

L->listsize+=List_INC_SPACE;}

else

exit(OVERFLOW);}

printf("

请输入第%昭同学的信息:

\n”,i+1);

printf("

学号(15)\n");

scanf("%16s",L->elem[L->length].number);

printf("

姓名(15)\n");

scanf("%16s",L->elem[L->length].name);

printf("

性别(男:

M女:

F)\n");

scanf("%16s",L->elem[L->length].sex);

printf(”成绩\n");

scanf("%10d",&L->elem[L->length].score);

L->length++;}

printf("%d

名学生信息如下:

\n",L->length);

printf("

学号(15)姓名(15)性别(男:

M女:

F)成绩\n");

for(i=0;ilength;i++)printf("%-16s%-16s%-16s%-10d\n",L->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')

{if(L->length==L->listsize)

{newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype));

if(newbase)

{L->elem=newbase;

L->listsize+=List_INC_SPACE;}

elseexit(OVERFLOW);}

printf("请输入要插入的同学的信息:

\n");

printf("学号(15)\n");

scanf("%16s",newelem.number);

printf("姓名(15)\n");

scanf("%16s",newelem.name);

printf("性别(男:

M女:

F)\n");

scanf("%16s",newelem.sex);

printf("成绩\n");

scanf("%10d",&newelem.score);

printf("要插入到第几个位置:

");

scanf("%d",&i);

while(i<1||i>L->length+1)

{printf("不能插入到第%d个位置!

\n只能插入第1到第%介位置上!

\n请重

新输入要插入的位置:

"丄->length+1);

scanf("%d",&i);}

L->length++;

for(j=L->length-1;j>i-2;j--)

{for(k=0;k<16;k++)

{L->elem[j].name[k]=L->elem[j-1].name[k];

L->elem[j].number[k]=L->elem[j-1].number[k];

L->elem[j].sex[k]=L->elem[j-1].sex[k];}

L->elem[j].score=L->elem[j-1].score;}

j++;

for(k=0;k<16;k++)

{L->elem[j].name[k]=newelem.name[k];

L->elem[j].number[k]=newelem.number[k];

L->elem[j].sex[k]=newelem.sex[k];}

L->elem[j].score=newelem.score;

printf(”是否还要输入?

(YorN)");

getchar();

scanf("%c",&sign);

if(sign=='n'||sign=='N')

sign='n';}

printf("%d名学生信息如下:

\n",L->length);

printf(”学号(15)姓名(15)性别(男:

M女:

F)成绩\n");

for(i=0;ilength;i++)

printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L-

>elem[i].score);}

3.3查找学生信息

intfindlist(sqlist*L)

{intj;chari[16];

printf("1.按学号查找\n2.按姓名查找\n请选择:

”);

scanf("%d",&j);

if(j==1)

{printf("请输入学号:

");

scanf("%s",i);

if(!

strcmp(i,L->elem[j].number))//i==L->elem[j].number用数组函数

returnj+1;

return0;}

else

{printf("请输入姓名:

");

scanf("%s",i);

for(j=0;jlength;j++)

if(!

strcmp(i,L->elem[j].name))//用数组函数

returnj+1;

return0;}}

3.4删除学生信息

intdelnode(sqlist*L)

{intj;chari[10];

printf("1.按学号删除\n2.按姓名删除\n请选择:

");

scanf("%d",&j);

if(j==1)

{printf("请输入学号:

");

scanf("%s",i);

for(j=0;jlength;j++)

if(!

strcmp(i,L->elem[j].number))//i==L->elem[j].number用数组函数

{for(;jlength;j++)

L->elem[j]=L->elem[j+1];

L->length--;

return1;}

return0;}

else

{printf("请输入姓名:

”);

scanf("%s",i);

for(j=0;jlength;j++)

if(!

strcmp(i,L->elem[j].name))//用数组函数

{for(;jlength;j++)

L->elem[j]=L->elem[j+1];//L->elem[j]以后的向前挪

L->length--;

return1;}

return0;}}

3.5输出学生信息

voidprintlist(sqlist*L)

{inti;

printf("%d名学生信息如下:

\n",L->length);

printf("学号(15)姓名(15)性别(男:

M女:

F)成绩\n");

for(i=0;ilength;i++)printf(%16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L-

>elem[i].score);}

3.6修改学生信息

voidreviselist(sqlist*L)

{inti,x,a=0;charname[16];charsex[16];charnumber[16];intscore;

printf("请选择你要改的同学的姓名");

seanf("%16s",name);

printf(”请选择你要改的同学的信息\n");

printf("1.修改学生的姓名\n");

printf("2.修改学生的学号\n");

printf("3.修改学生的性别\n");

printf("4.修改学生的成绩\n");

seanf("%d",&x);

switeh(x)

{ease1:

for(i=0;ilength;i++)

{if(stremp(name,L->elem[i].name)==O)

{printf("请输入新名字");

scanf("%16s",name);

strcpy(L->elem[i].name,name);

a=1;}}

if(a==0)

break;

printf("对不起你要改的名字不存在\n");

ease2:

for(i=0;ilength;i++)

{if(stremp(name,L->elem[i].name)==O)

{printf(”请输入新学号”);

scanf("%16s",number);

strcpy(L->elem[i].number,number);

a=1;}}

if(a==0)

printf("对不起你要改的名字不存在\n”);break;

case3:

for(i=0;ilength;i++)

{if(strcmp(name,L->elem[i].name)==O)

{printf("请输入新性别");

scanf("%16s",sex);

strcpy(L->elem[i].sex,sex);

a=1;}}

if(a==0)

printf("对不起你要改的名字不存在\n”);break;

case4:

for(i=0;ilength;i++)

{if(strcmp(name,L->elem[i].name)==O)

{printf("请输入新成绩");

scanf("%d",score);

L->elem[i].score=score;

a=1;}}

if(a==O)

break;}

printf("对不起你要改的名字不存在\n”);

3.7退出学生信息管理系统

voidtuichu(sqlist*L)

{if(!

L->elem)

free(L->elem);

printf("\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模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1