c语言学籍标准管理系统实验报告_第1页
c语言学籍标准管理系统实验报告_第2页
c语言学籍标准管理系统实验报告_第3页
c语言学籍标准管理系统实验报告_第4页
c语言学籍标准管理系统实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

试验汇报课程程序设计基础试验名称课内试验共5页系别

计算机系专业班级

姓名学号试验题目:使用C编程实现一个学籍管理系统1.程序设计和分析程序实现功效1.提供基础菜单选项,能依据不一样选项实施不一样操作;2.对学生信息进行录入信息、删除学生信息、查询信息、学生信息排序、学生信息统计输出操作;数据类型学生信息:结构体数组学生学号、班级、姓名:字符串数组学生三个成绩及总分:浮点型变量用户选项、计数器:整形变量各个功效模块:被调函数主函数主函数主界面——主界面——功效选择退出输出排序查找删除录入退出输出排序查找删除录入2.程序设计中存在问题和处理思绪存在问题:从调用函数返回主函数后无法再次调用主函数。全程使用数组而没用指针。不会编写退出程序指令。部分基础性语法错误。处理思绪:在被调函数中使用return;语句,在主函数中利用while(1)循环,使每次返回主函数均可再次调用主函数。再设置一个指向结构体指针,利用该指针自增输出结构体。在用户选择为退出程序时,在跳出switch函数后再利用一个break;语句跳出while循环,读取return0;语句,退出程序。利用编译器中build功效进行语法筛查。3.试验总结收获:知道了编写程序前计划好关键算法关键性。对于调用函数有了更清楚认识,能够愈加熟练地利用return语句。愈加了解结构体,熟悉了结构体指针、结构体数组。熟练掌握输入输出语句。学会分块编译程序,调试程序愈加熟练。不足:对于指针了解不足,没有用指针做成链表进行函数间调用。尚存在部分基础性语法错误,这要经过复习书本、上机试验来消亡这些错误。对于调用函数掌握不足,能够尝试着做部分带返回值函数。4.源代码清单#include<stdio.h>#include<string.h>structStudent{charid[10];charcla[10];charname[10];floatscore1;floatscore2;floatscore3;floatsum;}stu[3],mark,temp,*p;/*学生信息结构体数组,mark用来标识待删除学生信息,temp用来交换,*p指向结构体数组*/intchoice,i,j;charstr1[10],str2[10]={"no"};//用以判定是否继续voidhomepage()//输出主页面并获取用户选项{ printf("1.input\n2.delete\n3.select\n4.order\n5.output\n6.quit\npleaseinputyouroption\n"); scanf("%d",&choice);}voidinput()//输入学生信息{for(i=0;;i++,p++) { printf("id");scanf("%s",&stu[i].id);printf("class");scanf("%s",&stu[i].cla);printf("name");scanf("%s",&stu[i].name);printf("score1");scanf("%f",&stu[i].score1);printf("score2");scanf("%f",&stu[i].score2);printf("score3");scanf("%f",&stu[i].score3);stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;printf("continue?\n");scanf("%s",str1);if(strcmp(str1,str2)==0)break;}return;}voiddel()//用指针将数据输出,将用户想找到学生信息进行标识{charfind[10];scanf("%s",find);for(i=0,p=stu;i<3,p<stu+3;i++,p++){if((strcmp(stu[i].name,find)!=0)&&(strcmp(stu[i].id,find)!=0)){printf("%s,%s,",p->id,p->cla);printf("%s,",p->name);printf("%4.1f,%4.1f,%4.1f,",p->score1,p->score2,p->score3);printf("%5.1f\n",p->sum);}if((strcmp(stu[i].name,find)==0)||(strcmp(stu[i].id,find)==0))mark=stu[i];}printf("continue?\n");scanf("%s",str1);if(strcmp(str1,str2)==0)return;elsedel();}voidselect()/*用find字符串数组查找用户期望查找信息,利用num作为计数器来判定是否查找到*/{charfind[10];scanf("%s",find);intnum=0;for(i=0,p=stu;i<3,p<stu+3;i++,p++){if((strcmp(stu[i].id,find)==0)||(strcmp(stu[i].cla,find)==0)){printf("%s,%s,",p->id,p->cla);printf("%s,",p->name);printf("%4.1f,%4.1f,%4.1f,",p->score1,p->score2,p->score3);printf("%5.1f\n",p->sum);num=num+1;}}if(num==0){printf("thereisnoeligiblestudent");return;}if(num!=0){printf("continue?\n");scanf("%s",str1);if(strcmp(str1,str2)==0)return;elseselect();}}voidorder()//先以班级字符串大小为标准排序,再以总分大小排序,直接交换结构体{for(i=0;i<2;i++){for(j=0;j<(2-i);j++){if(strcmp(stu[j].cla,stu[j+1].cla)>0){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}for(i=0;i<2;i++){for(j=0;j<(2-i);j++){if(stu[j].sum>stu[j+1].sum){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}for(i=0,p=stu;i<3,p<stu+3;i++,p++){if((strcmp(stu[i].name,)!=0)){printf("%s,%s,",p->id,p->cla);printf("%s,",p->name);printf("%4.1f,%4.1f,%4.1f,",p->score1,p->score2,p->score3);printf("%5.1f\n",p->sum);}}return;}voidoutput()//依据上面结果输出学生信息{for(i=0,p=stu;i<3,p<stu+3;i++,p++){if((strcmp(stu[i].name,)!=0)){printf("%s,%s,",p->id,p->cla);printf("%s,",p->name);printf("%4.1f,%4.1f,%4.1f,",p->score1,p->score2,p->score3);printf("%5.1f\n",p->sum);}}return;}intmain(){while(1)/*每次调用函数返回时若为真,则进入循环体、进入主界面,若用户选择为6退出,则跳出循环*/{homepage();switch(choice){case1:input();bre

温馨提示

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

评论

0/150

提交评论