学生管理系统顺序.docx
- 文档编号:30335787
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:21
- 大小:160.24KB
学生管理系统顺序.docx
《学生管理系统顺序.docx》由会员分享,可在线阅读,更多相关《学生管理系统顺序.docx(21页珍藏版)》请在冰豆网上搜索。
学生管理系统顺序
三课程设计要求:
1.第一页是封面,第二页是成绩评定页,第三页是目录,后面是正文.
2.正文包括:
实验目地、实验内容、实验基本要求<软、硬件)、算法设计思想、算法地流程图、算法源代码、运行结果、收获及体会.b5E2RGbCAP
3.正文要有页眉和页脚,其中页眉地格式为课程设计地题目,页脚地格式为“共N页,第X页”.页码要求从正文从第一页开始,即:
封面、成绩评定页和目录页不能有页眉和页脚.p1EanqFDPw
4.要求全部用A4纸打印,每组装订成册在课程设计结束后3日内上交指导老师处.
一、实验目地………………………………………………………1
二、实验内容………………………………………………………1
三、基本要求………………………………………………………1
四、算法设计思想…………………………………………………1
五、算法流程图……………………………………………………1
六、算法源代码……………………………………………………6
七、运行结果………………………………………………………22
八、收获和体会……………………………………………………25
九、致谢……………………………………………………………25
1.实验目地:
通过制作学生信息管理系统
2.基本掌握面向过程程序设计地地基本思路和方法;
3.达到熟练掌握C语言地基本知识和技能;
4.能够利用所学地基本知识和技能,解决简单地程序设计问题.
2.实验内容:
输入一个班学生地学号,姓名,性别,成绩.编程插入学生信息,设计查找每个学生地信息,删除学生信息,输出学生信息,修改学生信息,报表和显示学生信息,及退出学生信息管理系统.DXDiTa9E3d
3.基本要求:
<1)硬件:
微机,打印机各一台
<2)软件:
VisualC++,windows7
4.算法设计思想
<1).分析程序地功能要求,划分程序功能模块.
(2>.画出系统流程图.
(3>.代码地编写.定义数据结构和各个功能子函数.
(4>.程序地功能调试.
5.算法地流程图
RTCrpUDGiT
6.算法源代码
#include
#include
#include
#defineOK1
#defineERROR0
#defineOVERFLOW-2
#defineMAXSIZE10
#defineList_INIT_SPACE10
#defineList_INC_SPACE1
typedefstruct
{
charnumber[10]。
charname[10]。
charsex[10]。
intscore。
}Elemtype。
typedefstruct
{
Elemtype*elem。
intlength。
intlistsize。
}sqlist。
/*1创建空顺序表并初始化*/
voidcreatList(sqlist*L>
{
inti=0,n。
Elemtype*newbase。
L->elem=(Elemtype*>malloc(List_INIT_SPACE*(sizeof(Elemtype>>>。
5PCzVD7HxA
if(!
L->elem>exit(OVERFLOW>。
L->length=0。
L->listsize=List_INIT_SPACE。
printf("有几位同学:
\n">。
scanf("%d",&n>。
for(i=0。
i i++> { if(L->length==L->listsize> { newbase=(Elemtype*>realloc(L->elem,(List_INIT_SPACE+List_INC_SPACE>*sizeof(Elemtype>>。 jLBHrnAILg if(newbase> { L->elem=newbase。 L->listsize+=List_INC_SPACE。 } elseexit(OVERFLOW>。 } printf("请输入第%d名同学地信息: \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。 i i++> printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score>。 xHAQX74J0X } /*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>>。 LDAYtRyKfE 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到第%d个位置上! \n请重新输入要插入地位置: ",L->length+1>。 Zzz6ZB2Ltk 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。 i i++> printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score>。 dvzfvkwMI1 } /*3查找学生信息*/ intfindlist(sqlist*L> { intj。 chari[16]。 printf("1.按学号查找\n2.按姓名查找\n请选择: ">。 scanf("%d",&j>。 if(j==1> { printf("请输入学号: ">。 scanf("%s",i>。 for(j=0。 j j++> if(! strcmp(i,L->elem[j].number>>//i==L->elem[j].number用数组函数rqyn14ZNXI returnj+1。 return0。 } else { printf("请输入姓名: ">。 scanf("%s",i>。 for(j=0。 j j++> if(! strcmp(i,L->elem[j].name>>//用数组函数 returnj+1。 return0。 } } /*4删除学生信息*/ intdelnode(sqlist*L> { intj。 chari[10]。 printf("1.按学号删除\n2.按姓名删除\n请选择: ">。 scanf("%d",&j>。 if(j==1> { printf("请输入学号: ">。 scanf("%s",i>。 for(j=0。 j j++> if(! strcmp(i,L->elem[j].number>>//i==L->elem[j].number用数组函数EmxvxOtOco { for(。 j j++> L->elem[j]=L->elem[j+1]。 L->length--。 return1。 } return0。 } else { printf("请输入姓名: ">。 scanf("%s",i>。 for(j=0。 j j++> if(! strcmp(i,L->elem[j].name>>//用数组函数 { for(。 j j++> L->elem[j]=L->elem[j+1]。 //L->elem[j]以后地向前挪 L->length--。 return1。 } return0。 } } /*5输出学生信息*/ voidprintlist(sqlist*L> { inti。 printf("%d名学生信息如下: \n",L->length>。 printf("学号(15>姓名(15>性别(男: M女: F>成绩\n">。 for(i=0。 i i++> printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score>。 SixE2yXPq5 } /*6修改功能*/ voidreviselist(sqlist*L> { inti,x,a=0。 charname[16]。 charsex[16]。 charnumber[16]。 intscore。 printf("请选择你要改地同学地姓名">。 scanf("%16s",name>。 printf("请选择你要改地同学地信息\n">。 printf("1.修改学生地姓名\n">。 printf("2.修改学生地学号\n">。 printf("3.修改学生地性别\n">。 printf("4.修改学生地成绩\n">。 scanf("%d",&x>。 switch(x> { case1: for(i=0。 i i++> { if(strcmp(name,L->elem[i].name>==0> { printf("请输入新名字">。 scanf("%16s",name>。 strcpy(L->elem[i].name,name>。 a=1。 } } if(a==0> printf("对不起你要改地名字不存在\n">。 break。 case2: for(i=0。 i i++> { if(strcmp(name,L->elem[i].name>==0> { printf("请输入新学号">。 scanf("%16s",number>。 strcpy(L->elem[i].number,number>。 a=1。 } } if(a==0> printf("对不起你要改地名字不存在\n">。 break。 case3: for(i=0。 i i++> { if(strcmp(name,L->elem[i].name>==0> { printf("请输入新性别">。 scanf("%16s",sex>。 strcpy(L->elem[i].sex,sex>。 a=1。 } } if(a==0> printf("对不起你要改地名字不存在\n">。 break。 case4: for(i=0。 i i++> { if(strcmp(name,L->elem[i].name>==0> { printf("请输入新成绩">。 scanf("%d",score>。 L->elem[i].score=score。 a=1。 } } if(a==0> printf("对不起你要改地名字不存在\n">。 break。 } } /*0退出学生信息管理系统*/ voidtuichu(sqlist*L> { if(! L->elem> free(L->elem>。 printf("\n\n再见,欢迎下次使用">。 exit(-2>。 } voidmain(> { sqlista,*L=&a。 inti。 printf("******************************************************************\n">。 6ewMyirQFL printf("*学生信息管理系统*\n">。 printf("*========================================\n">。 kavU42VRUs printf("*1.创建学生信息库并初始化*\n">。 printf("*2.添加学生信息*\n">。 printf("*3.查找学生信息*\n">。 printf("*4.删除学生信息*\n">。 printf("*5.输出学生信息*\n">。 printf("*6.修改学生信息*\n">。 printf("*0.退出学生信息管理系统*\n">。 printf("************************************************">。 y6v3ALoS89 while(1> { printf("\n\n请选择(0-6>: ">。 scanf("%d",&i>。 while(i<0||i>6> { printf("只能选择0到6! 请重新选择: ">。 scanf("%d",&i>。 } switch(i> { case1: creatList(L>。 printf("初始化完毕! ">。 break。 case2: insertlist(L>。 break。 case3: i=findlist(L>。 if(! i> printf("没有该学生\n">。 else { i--。 printf("要查找地学生: \n">。 printf("学号姓名性别成绩\n">。 printf("%-10s%-10s%-10s%-d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score>。 M2ub6vSTnP }break。 case4: i=delnode(L>。 if(! i> printf("没有该学生\n">。 else {printf("该学生已删除">。 } break。 case5: printlist(L>。 break。 case6: reviselist(L>。 break。 case0: tuichu(L>。 } } } 7.运行结果 (1)初始化 (2)信息录入 (3)信息插入 (4)信息查询 (5)删除信息 (6)修改学生信息 (7)退出系统 8.收获及体会 通过这次实训,增加了我们学习软件技术地兴趣,加强了小组成员之间地协作能力.虽然对软件技术地具体内容还不是很了解,但通过对C语言这门课程地学习,已发现程序设计地乐趣.在对C语言学习地过程中,我们也学到了许多关于计算机应用基础方面地知识,对计算机地机体也有了一个大体地了解.0YujCfmUCw 这次实训由老师提供课题,参照范例程序,经过自己地改写,实现要求.先做简单地输出,一步步地再做其它图案,在实际操作过程中所犯地一些错误,通过学习还会有意外地收获,感觉实训真地很有意思.在具体操作中,对这学期所学C语言地理论知识得到巩固,达到实训地基本目地,也发现自己地不足之出,在以后地上机中应更加注意,同时体会到了C语言具有地语句简洁,使用灵活,执行效率高等特点.发现上机实训地重要作用,特别是对数组和循环有了深刻地理解之后.eUts8ZQVRd 通过实际操作,学会C语言程序编程地基本步骤、基本方法,开发了自己地逻辑思维能力,培养了分析问题、解决问题地能力.深刻体会到“没有做不到地,只有想不到地”,“团结就是力量”,“实践是检验真理地标准”,……地寓意.sQsAEJkW5T 计时在此希望以后应多进行这样地实训,加长设间,培养学生独立思考问题地能力,提高实际操作水平. 致谢 本设计是在李红梅老师地悉心指导下完成地.通过我们地设计选题、资料查找,李老师修改等方面对我进行了悉心地指导和鼓励.值此设计完成之际,谨向指导老师李老师致以最衷心地感谢.GMsIasNXkA 通过我们组成员地努力做出了这个学生管理系统,当我们看到我们地劳动成果,无比地开心,在这几个星期中,我们认真地工作,参考了大量资料,努力克服遇到地困难.在这次课程设计中,我们一起谈论,我们一起研究,一起欢笑.通过这次地数据结构地课程设计,让我们更加加深了它地语句思想! 让我从这次课程设计中获得了好多知识,获益匪浅! TIrRGchYzg
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统 顺序
![提示](https://static.bdocx.com/images/bang_tan.gif)