用C语言编学生成绩管理系统_第1页
用C语言编学生成绩管理系统_第2页
用C语言编学生成绩管理系统_第3页
用C语言编学生成绩管理系统_第4页
用C语言编学生成绩管理系统_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生成绩管系统实验报一、实内容实名:学生成绩管理系统实目:利用所学的三种程序基本结构以及数组户自定义函数进行一个简单管理系统的设计,进一步理解和掌握语的语法以及种基本程序结构的综合应用。通过程序中涉及的排序、查找、求和等操作加深对算法、程序设计思路、常用程序设计技巧的理解与掌握,逐步培养学生的程序开发能力。实验的基本要求:学号(字符串名字符串学绩(整型序计成绩(整型计程序完成以下五项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。二、算说明将数学成绩、程序设计成绩、姓名、学号分别设一个数组,其中姓名和学号是二维数组,其他是一维数组,并设为全局变量方便使用。分别将各个功能以及菜单等功能设置为函数,介时调用。主函数中运行菜单函数。菜单函数中提供选择用句调用函数。新建数据build(文导入的方式导入数据。添加数据(面出现相应信息并提示输入。输入完成后用if语选是否再添加数据。如果选择是则继续调用add函数,否则调用函继续选择其他功能。用全局变量来算增加的次数。删除数据ridswith语句选是按姓名删除还是按学号删除或者返回主菜单姓名则输入想要删除的对象for语句找到对象后用stremp赋的方法将下一个信息往上一个位置移动,达到覆盖要删除的信息的效果。最后用for循输出。按学号删除也是同理。用全局变量m计算删除的次数排序arrange句选择是按数学成绩arr_math()程序设计成绩还是总分arr_total()按学成绩排序时用冒泡序的方法排列数学成绩时其他的姓名、学号的信息的下标也随着数学成绩的下标变动,最后用f语一起输出。按程序设以及总分的具体算法也是同理。每个程序后调用arrange()返回上级子菜单以便继续操作。(语选择是按学号学成绩、程序设计成绩s_design()、总分查。按学号则是输入学号,用if语句查找,输出该位置所对应的成绩以及姓名。按姓名成绩查找也是同理。按成绩查找时用到标,找到至少一个flag=1输,否则输出不存在。并重新调用(函数返回上级子菜单。、退出。三、程清单#include<stdio.h>N5M100inti,j,m=N-1,k,choice;/*全局变量*intmath[M];intdesign[M];name[50][M];code[50][M];intvoidprint()/*菜单函数*{voidbuild();voidvoidarrange();voidsearch();voidrid();

欢迎使用学生成绩管理系统\n");新建数据添数据\n3.除数据\n4.序\n5.询\退出\请择:");switch(choice){add();break;search();break;}}voidbuild()/*新建数据*/{;;;;np=fopen("d:code.txt","r");/*入文件*for(i=0;i<N;i++)cp=fopen("d:name.txt","r");for(i=0;i<N;i++)fscanf(cp,"%s",name[i]);mp=fopen("d:math.txt","r");for(i=0;i<N;i++)fscanf(mp,"%d",&math[i]);dp=fopen("d:design.txt","r");for(i=0;i<N;i++)for(i=0;i<N;i++)total[i]=math[i]+design[i];printf("号姓

数学

程序设计

总分\n");for(i=0;i<N;i++)printf("%s%4s%4d%4d%4d\n",code[i],name[i],math[i],design[i],total[i]);printf("功!\n");print();}voidadd()/*添加数据函数*{charselect;printf("输入信"printf("输入学号:");printf("输入姓名:");scanf("%s",name[m]);printf("输入数学成绩:printf("输入程序设计成绩:[m]=math[m]+design[m];for(i=0;i<=m;i++)printf("%s%s%d%d\n",code[i],name[i],math[i],design[i],total[i]);printf("否继续Y/N?getchar();scanf("%c",&select);if(select=='y'||select=='Y')add();print();}voidname_rid()/*按名删除函*{rid();m--;printf("入您要删除姓名scanf("%s",name2);if(strcmp(name2,name[i])==0){for(j=i;j<=m;j++){strcpy(code[j],code[j+1]);strcpy(name[j],name[j+1]);math[j]=math[j+1];design[j]=design[j+1];}}for(i=0;i<=m;i++)printf("%s%s%4dprintf("否继续Y/N?");getchar();scanf("%c",&select);if(select=='y'||select=='Y')name_rid();rid();}voidcode_rid()/*按学号删除函*{rid();m--;NO[10];intprintf("入您要删除的学号:scanf("%s",&NO);if(strcmp(NO,code[i])==0){for(j=i;j<=m;j++){strcpy(name[j],name[j+1]);math[j]=math[j+1];design[j]=design[j+1];}}for(i=0;i<=m;i++)printf("%s%s%4dprintf("否继续Y/N?");getchar();scanf("%c",&select);if(select=='y'||select=='Y')code_rid();rid();}voidrid()/*删除数据总函数*{int按姓名按学\返回主菜\选择:switch(select)3:print();default:break;}}void/*按数学成绩排序函数*{arrange();intif(math[i]<math[i+1]){math[i]=math[i+1];strcpy(str1,name[i]);strcpy(name[i],name[i+1]);strcpy(name[i+1],str1);strcpy(code[i],code[i+1]);}printf("数学成绩排\n");for(i=0;i<=m;i++)printf("%s%s%4d\n",code[i],name[i],math[i]);}voidarr_design()/*按序设计成绩排*{voidarrange();int{temp1=design[i];design[i]=design[i+1];strcpy(str1,name[i]);strcpy(name[i],name[i+1]);strcpy(name[i+1],str1);strcpy(code[i],code[i+1]);}printf("程序设计成绩排\n");for(i=0;i<=m;i++)printf("%s%s%4d\n",code[i],name[i],design[i]);}voidarr_total()/*按分排*{voidarrange();intfor(j=0;j<=m;j++){temp1=total[i];strcpy(code[i],code[i+1]);strcpy(str1,name[i]);strcpy(name[i],name[i+1]);strcpy(name[i+1],str1);}printf("分排序/n");for(i=0;i<=m;i++)printf("%s%s}voidarrange()/*排序的总函数*{int数学成绩排序\程设计成绩排\n3.分排序返主菜单\switch(select){1:arr_math();break;2:arr_design();break;3:arr_total();break;4:print();break;}}voids_code()/*按号查找函数*{search();NO[10];intflag=0;printf("输入学号:");scanf("%s",NO);for(i=0;i<=m;i++)if(strcmp(NO,code[i])==0){flag=1;printf("%s%s%4d%4d\n",code[i],name[i],math[i],design[i],total[i]);}if(flag==0)不在\n欢继续使用!{printf("欢继使用!\n");search();}}voids_name()/*按姓名查找函*{flag=0;printf("输入姓名:");scanf("%s",name2);for(i=0;i<=m;i++)if(strcmp(name2,name[i])==0){flag=1;printf("%s%s%4d\n",code[i],name[i],math[i],design[i],total[i]);}if(flag==1)欢继续使用\n");search();}{printf("不在\欢继续使用\n");search();}}void/*按数学成绩查找*{voidintmark,flag=0;printf("输入数学成绩:for(i=0;i<=m;i++)if(mark<=math[i]){printf("%s%s%4d%4d\n",code[i],name[i],math[i],design[i],total[i]);}if(flag==0){printf("不在\欢迎继续使用\n");search();}}void/*程序设计成绩查找*{voidintmark,flag=0;printf("输入程序设计成绩:for(i=0;i<=m;i++){printf("%s%s%4d\n",code[i],name[i],math[i],design[i],total[i]);}if(flag==0){printf("不在\欢迎继续使用\n");search();}}voids_total()/*按总分查找*/{voidintmark,flag=0;printf("输入总分:");for(i=0;i<=m;i++){printf("%s%s%4d%4d\n",code[i],name[i],math[i],design[i],total[i]);}if(flag==0)不存在欢迎继续使用!\n");search();}}voidsearch()/*查总函数*{intprintf("1.学查询\姓名查询\数学成绩查询\程序设计成绩查询n5.总分查询\n6.返回主菜单\n");switch(select){1:s_code();break;3:s_math();break;6:print();break;}}void/*函数*{print();}四、运结果运行界面,显示“欢迎您使用学生成绩管理系统供菜单,供选择。新建数据:输出按序号排列的学生姓名、成绩。添加数据:输入相关信息后,界面输出添加后的学号、姓名、成绩(数学,程序设计和总分)列表。并提示成功,要求选择是否继续,若继续则继续先前输出的提示信息,否则返回显示主菜单。删除数据:输入相关信息后,界面输出删除后的学号、姓名、成绩(数学,程序设计和总分)列表。并提示成功,提供选择是否继续。若继续则继续先前输出的提示信息,否则返回上级子菜单。排序。界面要求选择按数学成绩还是程序设计成绩排序,或者返回主菜单。选择数学成绩后输数学成绩,最后显示数学成绩的、从高到低排列的各个学生的学号和学成绩。程序设计也是类似。排序完成后,提示成功并返回上级子菜单,继续操作。、查询。界面要求选择按学号、姓名、数学成绩,程序设计成绩还是总分查询。输学号后输出该学号所对应的学生姓名和各个成绩名查找是类似的数学成绩查找则是输入数学成绩则输出大与该分数的有人的学号以及相应的姓名和成绩序计成绩和总分查找类似。所有查找若找不到就显示“不存在后提示成功,要求选择是否结束操作还是返回主菜单。、退出。退出后显示“感谢您使用学生成绩管理系统五、分与思考刚开始拿到题目时,感觉很棘手。但是慢慢分析后,我发现一切都是可以解决的。我和其他人不一样别是分步试完成而我是全部编好再进行调试运行大批的错误提示让我迷茫了。首先第一个问题,函数调用时我写上了如b(total[]name[]code[]发现是错的,查书之后才发现是不对的应该是(,total,namecode且为全局变量更简洁;还有第93行中的运行的时候是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论