C程序设计作业电子版 成绩管理.doc_第1页
C程序设计作业电子版 成绩管理.doc_第2页
C程序设计作业电子版 成绩管理.doc_第3页
C程序设计作业电子版 成绩管理.doc_第4页
C程序设计作业电子版 成绩管理.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计作业电子版 单科课程成绩管理1 源代码和注释 #include /*引用库函数*/#include#include#include typedef struct /*定义结构体数组*/ char num10; /*学号*/ char name20; /*姓名*/ int score3; /*成绩*/ int add; /*总分*/Student;Student stu80; /*结构体数组变量*/ int menu_select() /*菜单函数*/ char c; do system(cls); /*运行前清屏*/ printf(tt*Students Grade Management System*n); /*菜单选择*/ printf(tt | 1. Input Records |n); printf(tt | 2. Display All Records |n); printf(tt | 3. Sort1 |n); printf(tt | 4. Insert a Record |n); printf(tt | 5. Delete a Record |n); printf(tt | 6. Query |n); printf(tt | 7. Sort2 |n); printf(tt | 8. Statistic |n); printf(tt | 9. Write to a Text file |n); printf(tt | 0. Quit |n); printf(tt*n); printf(tttGive your Choice(0-9):); c=getchar(); /*读入选择*/ while(c9); return(c-0); /*返回选择*/ int Input(Student stud,int n) /*输入若干条记录*/int i=0,j=0; char sign,x10; /*x10为清除多余的数据所用*/ while(sign!=n&sign!=N) /*判断*/ printf(tttstudents num:); /*交互输入*/ scanf(ttt%s,studn+i.num); printf(tttstudents name:); scanf(ttt%s,studn+); printf(tttstudents scores(平时成绩、期中成绩和期末成绩):); scanf(ttt%d,%d,%d,&studn+i.scorej,&studn+i.score+j,&studn+i.score+j); studn+i.add=studn+i.scorej*20/100+studn+i.score+j*20/100+studn+i.score+j*60/100; gets(x); /*清除多余的输入*/ printf(tttany more records?(Y/N); scanf(ttt%c,&sign); /*输入判断*/ i+; return(n+i); void Display(Student stud,int n) /*显示所有记录*/ int i; printf(ttt-n); /*格式头*/ printf(tttnumber name scores addn); printf(ttt-n); for(i=1;i1&i%10=0) /*每十个暂停*/ printf(ttt-n); /*格式*/ printf(ttt); system(pause); printf(ttt-n); printf(ttt); system(pause); void Sort1_by_num(Student stud,int n) /*按学号排序*/ int i,j,*p,*q,s; char t10; for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;j0) strcpy(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(studj.num,t); strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(,t); p=studj+1.score; q=studj.score; s=*p; *p=*q; *q=s; s=*(p+1); *(p+1)=*(q+1); *(q+1)=s; s=*(p+2); *(p+2)=*(q+2); *(q+2)=s; p=&studj+1.add; q=&studj.add; s=*p; *p=*q; *q=s; int Insert_a_record(Student stud,int n) /*插入一条记录*/char x10,i=0; /*清除多余输入所用*/ printf(tttstudents num:); /*交互式输入*/ scanf(ttt%s,studn.num); printf(tttstudents name:); scanf(ttt%s,); printf(tttstudents scores:); scanf(ttt%d,%d,%d,&studn.scorei,&studn.score+i,&studn.score+i); stun.add=studn.scorei*20/100+studn.score+i*20/100+studn.score+i*60/100; gets(x); n+; Sort_by_num(stud,n); /*调用排序函数*/ printf(tttInsert Successed!n); /*返回成功信息*/ return(n); int Delete_a_record(Student stud,int n) /*按姓名查找,删除一条记录*/ char s20; int i=0,j; printf(ttttell me his(her) name:); /*交互式问寻*/ scanf(%s,s); while(strcmp(,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(tttnot find!n); /*返回失败信息*/ return(n); for(j=i;jn-1;j+) /*删除操作*/ strcpy(studj.num,studj+1.num); strcpy(,studj+1.name); for(n=0;n3;n+) studj.scoren=studj+1.scoren; stuj.add=stuj+1.add; printf(tttDelete Successed!n); /*返回成功信息*/ return(n-1); void Query_a_record(Student stud,int n) /*查找并显示一个记录*/ char s20,j=0; int i=0; printf(tttinput his(her) name:); /*交互式输入*/ scanf(ttt%s,s); while(strcmp(,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(tttnot find!n); /*输入失败信息*/ return; printf(ttthis(her) number:%sn,studi.num); /*输出该学生信息*/ printf(ttthis(her) scores:%d,%d,%dn,studi.scorej,studi.score+j,studi.score+j); printf(ttthis(her) add:%d,stui.add);void Sort2_by_add(Student stud,int n) /*按总分排序*/ int i,j,*p,*q,s; char t10; for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;j0) strcpy(t,studj+1.add); strcpy(studj+1.add,studj.add); strcpy(studj.add,t); strcpy(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(studj.num,t); strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(,t); p=studj+1.score; q=studj.score; s=*p; *p=*q; *q=s; s=*(p+1); *(p+1)=*(q+1); *(q+1)=s; s=*(p+2); *(p+2)=*(q+2); *(q+1)=s; void Statistic(Student stu,int n) /*输出各分数段人数*/ int a=0,b=0,c=0,d=0,e=0; for(i=0;in;i+) if(stui.add=60&stui.add=70&stui.add=80&stui.add=90&stui.add=100) e+; printf(add scores60 %dn60=add scores70 %dn70=add scores80 %dn80=add scores90 %dn90=add scores100 %dn,a,b,c,d,e);void WritetoText(Student stud,int n) /*将所有记录写入文件*/ int i=0; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ printf(tttWrite Records to a Text Filen); /*输入文件名*/ printf(tttInput the filename:); scanf(ttt%s,filename); if(fp=fopen(filename,w)=NULL) /*打开文件*/ printf(tttcannt open the filen); system(pause); return; fprintf(fp,%dn,n); /*循环写入数据*/ while(in) fprintf(fp,%-16s%-15s%dn,studi.num,,studi.score0,studi.score1,studi.score2,stui.add); i+; fclose(fp); /*关闭文件*/ printf(Successed!n); /*返回成功信息*/ void main() /*主函数*/ int n=0; for(;) switch(menu_select() /*选择判断*/ case 1: printf(tttInput Recordsn); /*输入若干条记录*/ n=Input(stu,n); break; case 2: printf(tttDisplay All Recordsn); /*显示所有记录*/ Display(stu,n); break; case 3: printf(tttSort1n); Sort1_by_num(stu,n); /*按学号排序*/ printf(tttSort1 Suceessed!n); printf(ttt); system(pause); break; case 4: printf(tttInsert a Recordn); n=Insert_a_record(stu,n); /*插入一条记录*/ printf(ttt); system(pause); break; case 5: printf(tttDelete a Recordn); n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/ printf(ttt); system(pause); break; case 6: printf(tttQueryn); Query_a_record(stu,n); /*查找并显示一个记录*/ printf(ttt); system(pause); break; case 7: printf(tttSort2n); Sort2_by_add(stu,n); /*按总分排序*/ printf(ttt); system(pause); break; case 8: printf(tttStatisticn); Statistic(stu,n); printf(ttt); system(pause); break; case 9: printf(tttWrite to a Text filen); WritetoText(stu,n); /*循环写入数据*/ printf(ttt); system(pause); break; case 0: printf(tttHave a Good Luck,Bye-bye!n); /*结束程序*/ printf(ttt); system(pause); exit(0); 2. 编译链接生成的目标文件-Configuration: fjhj- Win32 Debug- Compiling. ykyuk.cpp c:program filesmicrosoft visual studiomyprojectsfjhjjhgjhj.cpp(317) : warning C4244: = : conversion from double to float, possible loss of data Linking.3. 可执行文件 -Configuration: fjhj - Win32 Debug-Compiling.jhgjhj.cppc:program filesmicrosoft visual studiomyprojectsfjhjjhgjhj.cpp(317) : warning C4244: = : conversion from double to float, possible loss of dataLinking.fjhj.exe - 0 error(s), 0 warning(s)4. 测试过程中所生成的文本文件 *Students Grade Management System* | 1. Input Records | | 2. Display All Records | | 3. Sort | | 4. Insert a Record | | 5. Delete a Record | | 6. Query | | 7. Statistic | | 8. Add Records from a Text File| | 9. Write to a Text file | | 0. Quit | * Give your Choice(0-9):1 Input Records students num:1234567 students name:asdsaf students score:56 any more records?(Y/N)y students num:23452 students name:das students score:78 any more records?(Y/N)y students n

温馨提示

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

评论

0/150

提交评论