C语言-学生成绩管理系统实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学生成绩管理系统实验报告㈠实验名称:学生成绩管理系统㈡实验目的:1)利用所学的三种程序基本结构以及数组、用户自定义函数进行一个简单管理系统的设计,进一步理解和掌握c语言的语法以及三种基本程序结构的综合应用。2)通过程序中设计到的排序、查找、求和等操作加深对算法、程序设计思路、常用程序设计技巧的理解与掌握,逐步培养学生的程序开发能力。㈢实验要求:设某班有n位同学,每位同学的数据包括一下内容:学号(长整型)、姓名(字符号)、数学成绩(整型)、程序设计成绩(整型)。设计程序完成以下5项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。㈣算法内容:①程序运行,利用printf函数显示主菜单,并提示输入相应的数字来进行相关操作。显示主菜单如下:1.新建数据2.添加数据3.删除数据4.排序5.查询6.退出②若输入1,则进入新建数据界面。根据提示依次输入学生人数、学生的学号、姓名、数学成绩和程序设计程序。S1:输入学生人数n,S2:0-i,(把0放在变量i中)S3:输入第i+1个学生的数据(学号,姓名,学数学成绩,程序设计成绩)S4:i+1-iS5:若in,返回S2,否则继续S6:0=iS7:输出第i+1个学生数据S8:i+1=i若iN,返回s6否则结束算法③输入2,进入添加数据界面。S1:原有学生人数n加1,即n+1=nS2:输入学生数据S3:0-iS4:输出第i+1个学生的数据S5:若in返回S4,否则结束算法④输入3进入删除数据界面。S1:输入要删除的学生学号mS2:0-i,0-jS3:若学生的学号stu[i].num,转到S6,否则继续S4:i+1-iS5:若in,返回S3,否则输出“输出的学号不存在”算法接速S6:n-1-nS7:把要删除的数据覆盖stu[i].num=stu[j].num;stu[i].name=stu[j].name;stu[i].math=stu[j].math;stu[i].C=stu[j].C;j++;S8:若in,返回S7,否则继续S9:0-iS10:输出第i+1个学生的数据S11:若in返回S10,否则结束算法⑤输入4,进入排序界面。按三种方式排序本质一样一下用数组a[50]代表S1:0-iS2:i+1-jS3:若a[i]a[j],第i+1个学生数据与第j+1个学生数据进行交换S4:j+1-jS5:若jn,n为学生原有人数,返回S3S6:i+1-iS7:若in-1,返回S2s8:输出学生数据,算法结束⑥输入5,进入查询界面。1)按学号和名字方法一样(以按学号为例)S1:输入要查询的学生的学号置于a[10]中S2:0-iS3:若stu[i].num=a[10],输出该生数据并结束S4:i+1-iS5:若in返回S3否则输出“学号不存在”,算法结束(2)按数学、程序设计、总分查询(以数学为例)S1:输入最低分数线mS2:0-i,0-jS3:若std[i].math=m,转到S6S4:i+1-iS5:若in,返回S3S6:strcpy(e[j],stu[i].num);strcpy(b[j],stu[i].name);c[j]=stu[i].math;d[j]=stu[i].C;(其中数组e,b,c,d是二维数组)S7:j+1-j,返回S3S8:0-iS9:输出学生数据S10:i+1-iS11:ij,返回S9,否则算法结束⑦输入6,结束,退出程序㈤程序清单#includestring.h#includestdio.h#defineN50intn;structstudent{charnum[10];charname[20];intmath,C,sum;}stu[N];voidput1(){voidput2();put2();printf(\t\t\t\t学生成绩管理系统\n\t\t\t\t-----------------------\n);printf(\t\t\t\t|1.新建数据|\n);printf(\t\t\t\t|2.添加数据|\n);printf(\t\t\t\t|3.删除数据|\n);printf(\t\t\t\t|4.排序|\n);printf(\t\t\t\t|5.查询|\n);printf(\t\t\t\t|6.退出|\n);put2();printf(\n);}voidput2(){printf(********************************************************************************\n);}voidput3(){printf(学号姓名数学程序设计总分\n);}voidput4(){printf(操作结果如下:\n);}voidget(inti){printf(\t\t\t请输入学号:);scanf(%s,stu[i].num);printf(\t\t\t请输入姓名:);scanf(%s,stu[i].name);printf(\t\t\t请输入数学成绩:);scanf(%d,&stu[i].math);printf(\t\t\t请输入程序设计成绩:);scanf(%d,&stu[i].C);printf(\n);}voidbuild(){printf(\n\t\t\t新建数据\n);inti;printf(\n\t\t\t请输入学生人数:);scanf(%d,&n);printf(\n);for(i=0;in;i++)get(i);printf(\n);put4();put2();put3();for(i=0;in;i++)printf(%-6s%-6s%4d%8d%8d\n,stu[i].num,stu[i].name,stu[i].math,stu[i].C,stu[i].math+stu[i].C);put2();}voidadd(){printf(\n\t\t\t添加数据\n\n);inti;n=n+1;get(n-1);put4();put2();put3();for(i=0;in;i++)printf(%-6s%-6s%4d%8d%8d\n,stu[i].num,stu[i].name,stu[i].math,stu[i].C,stu[i].math+stu[i].C);put2();}voiddelet(){charstr[10];inti,j=0,k=0;printf(\n\t\t\t删除数据\n\n);printf(\t\t\t请输入要删除的学生的学号:);scanf(%s,str);for(i=0;in;i++){if(strcmp(str,stu[i].num)==0)k++;else{stu[j].num=stu[i].num;stu[j].name=stu[i].name;stu[j].math=stu[i].math;stu[j].C=stu[i].C;j++;}}if(k==0)printf(\t\t\t输入的学号不存在\n);else{put4();put2();put3();n=n-1;for(i=0;in;i++)printf(%-6s%-6s%4d%8d%8d\n,stu[i].num,stu[i].name,stu[i].math,stu[i].C,stu[i].math+stu[i].C);put2();}}voidsort_1(inta[]){inti,j,k,m,t;charstr[20];for(i=0;in-1;i++)for(j=i+1;jn;j++)if(a[i]a[j]){strcpy(str,stu[i].num);strcpy(stu[i].num,stu[j].num);strcpy(stu[j].num,str);strcpy(str,stu[i].name);strcpy(stu[i].name,stu[j].name);strcpy(stu[j].name,str);t=stu[i].math;stu[i].math=stu[j].math;stu[j].math=t;t=stu[i].C;stu[i].C=stu[j].C;stu[j].C=t;}put4();put2();put3();for(i=0;in;i++)printf(%-6s%-6s%4d%8d%8d\n,stu[i].num,stu[i].name,stu[i].math,stu[i].C,stu[i].math+stu[i].C);put2();}voidsort(){inti,q;intmat[N],c[N],su[N];loot:for(i=0;in;i++){mat[i]=stu[i].math;c[i]=stu[i].C;su[i]=stu[i].math+stu[i].C;}printf(\n\t\t\t成绩排序\n\n);put2();printf(\t\t\t1.数学成绩排序\n\t\t\t2.程序设计排序\n\t\t\t3.总分排序\n\t\t\t4.返回主菜单\n);put2();printf(\t\t\t请选择排序方式序号1-4:);scanf(%d,&q);if(q==1){sort_1(mat);printf(\t\t\t\n\n);gotoloot;}elseif(q==2){sort_1(c);printf(\t\t\t\n\n);gotoloot;}elseif(q==3){sort_1(su);printf(\t\t\t\n\n);gotoloot;}elseif(q==4);}voidseek_num(){charstr[10];inti,k=0;printf(\t\t\t请输入学号:);scanf(%s,str);for(i=0;in;i++)if(strcmp(str,stu[i].num)==0){put4();put2();put3();printf(%-6s%-6s%4d%8d%8d\n,stu[i].num,stu[i].name,stu[i].math,stu[i].C,stu[i].math+stu[i].C);put2();break;}if(i==n)printf(\t\t\t输入的学号不存在);}voidseek_name(){charstr[10];inti,k=0;printf(\t\t\t请输入姓名:);scanf(%s,str);for(i=0;in;i++)if(strcmp(str,stu[i].name)==0){put4();put2();put3();printf(%-6s%-6s%4d%8d%8d\n,stu[i].num,stu[i].name,stu[i].math,stu[i].C,stu[i].math+stu[i].C);put2();break;}if(i==n)printf(\t\t\t输入的姓名不存在);}voidseek_1(inta[N]){inti,m,j=0,k;chare[50][50],b[50][50];intc[50],d[50];printf(\t\t\t请输入分数下线:);scanf(%d,&m);for(i=0;in;i++)if(a[i]=m){strcpy(e[j],stu[i].num);strcpy(b[j],stu[i].name);c[j]=stu[i].math;d[j]=stu[i].C;j++;}put4();put2();put3();for(i=0;ij;i++)printf(%-6s%-6s%4d%8d%8d\n,e[i],b[i],c[i],d[i],c[i]+d[i]);put2();}voidseek(){inti,q;intmat[N],c[N],su[N];for(i=0;in;i++){mat[i]=stu[i].math;c[i]=stu[i].C;su[i]=stu[i].mat

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功