C语言学籍管理系统源代码
C语言学籍管理系统,整理一份,供大家参考,具体内容如下
#include#include #include #defineN100 voidmycreat(); voidmynewcreat(); voidmydisplay(); voidmyretake(); voidmyselect(); voidmynumsort(); voidmysort(); voidmyprint1(); voidmyprint2(); voidmyprint3(); voidmyfenduan(); structstudent { charname[10]; intgrade[5]; doubleave; charnum[10]; }; voidmyprint1() { charchoose='\0',yes_no='\0'; do { system("cls"); printf("|---------------------------|\n"); printf("|请输入选项编号(0-4)|\n"); printf("|---------------------------|\n"); printf("|1----------录入成绩|\n"); printf("|2----------统计成绩|\n"); printf("|3----------处理学籍|\n"); printf("|4----------显示数据|\n"); printf("|0----------退出系统|\n"); printf("|---------------------------|\n"); printf(""); choose=getche(); switch(choose) {case'1':mycreat();break; case'2':myprint2();break; case'3':myprint3();break; case'4':mydisplay();break; case'0':break; default:printf("\n%c为非法选项!\n",choose); } if(choose=='0') { printf("\n"); printf("感谢您的使用!\n"); break; } printf("\n要继续选择吗(Y/N)?\n"); do {yes_no=getch(); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y'); } voidmyprint2() { charchoose='\0',yes_no='\0'; do { system("cls"); printf("|-----------------------------------|\n"); printf("|请输入选项编号(0-4)|\n"); printf("|-----------------------------------|\n"); printf("|1----------按学号排序|\n"); printf("|2----------计算平均分并排序|\n"); printf("|3----------统计分数段|\n"); printf("|4----------返回|\n"); printf("|0----------退出系统|\n"); printf("|-----------------------------------|\n"); printf(""); choose=getche(); switch(choose) {case'1':mynumsort();break; case'2':mysort();break; case'3':myfenduan();break; case'4':myprint1();break; case'0':break; default:printf("\n%c为非法选项!\n",choose); } if(choose=='0') { printf("\n"); printf("感谢您的使用!\n"); break; } printf("\n要继续选择吗(Y/N)?\n"); do {yes_no=getch(); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y'); } voidmyprint3() { charchoose='\0',yes_no='\0'; do { system("cls"); printf("|---------------------------------------|\n"); printf("|请输入选项编号(0-4)|\n"); printf("|---------------------------------------|\n"); printf("|1----------生成并打印补考通知单|\n"); printf("|2----------生成并打印退学通知单|\n"); printf("|3----------生成并打印新名册|\n"); printf("|4----------返回|\n"); printf("|0----------退出系统|\n"); printf("|---------------------------------------|\n"); printf(""); choose=getche(); switch(choose) {case'1':myretake();break; case'2':myselect();break; case'3':mynewcreat();break; case'4':myprint1();break; case'0':break; default:printf("\n%c为非法选项!\n",choose); } if(choose=='0') { printf("\n"); printf("感谢您的使用!\n"); break; } printf("\n要继续选择吗(Y/N)?\n"); do {yes_no=getch(); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y'); } voidmycreat() { inti=1,j=0; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("d:\\yuan.dat","w"); if(fp==NULL) { printf("打开文件失败!\n"); return; } system("cls"); printf("注意:输入学号时请将所有位数保持一致不足位用0补齐。例如最大学号为1000则均保持4位有效数字。"); printf("\n请输入第1个记录:\n"); printf("学号(用#结束输入):"); do { gets(temp.num); }while(strcmp(temp.num,"")==0); printf("姓名(用#结束输入):"); gets(temp.name); printf("请输入高数英语物理编程马哲5组成绩(用#结束输入):"); for(j=0;j<=4;j++) { scanf("%d",&temp.grade[j]); } while(temp.num[0]!='#'&&temp.name[0]!='#'&&temp.grade[0]!='#') { fprintf(fp,"%23s%15s",temp.num,temp.name); for(j=0;j<=4;j++) { fprintf(fp,"%5d",temp.grade[j]); } fprintf(fp,"\n"); i++; printf("\n请输入第%d个记录:\n",i); printf("学号(用#结束输入):"); do { gets(temp.num); }while(strcmp(temp.num,"")==0); printf("姓名(用#结束输入):"); gets(temp.name); printf("请输入高数英语物理编程马哲5组成绩(用#结束输入):"); for(j=0;j<=4;j++) { scanf("%8d",&temp.grade[j]); } } fclose(fp); } voidmynumsort() { inti=0,j=0,k=0,n=0,grade=0,num=0,m=0,ww; structstudenttemp[N]={0}; structstudenta; FILE*fp=NULL; FILE*fq=NULL; fp=fopen("d:\\yuan.dat","r"); if(fp==NULL) { printf("\n打开文件失败!\n"); return; } system("cls"); while(feof(fp)==0) { ww=fscanf(fp,"%23s%15s",temp[n].num,temp[n].name); if(ww==-1)break; for(j=0;j<5;j++) { fscanf(fp,"%d",&temp[n].grade[j]); } n++; } printf("n=%d",n); fclose(fp); printf("\n"); for(i=0;i 0) k=j; a=temp[i]; temp[i]=temp[k]; temp[k]=a; } for(k=0;k =90) b[j]=b[j]+1; elseif(temp[i].grade[j]>=80) c[j]=c[j]+1; elseif(temp[i].grade[j]>=70) d[j]=d[j]+1; elseif(temp[i].grade[j]>=60) e[j]=e[j]+1; elsef[j]=f[j]+1; } } printf("各门课、各分数段学生的人数\n"); printf("________________________________________________________\n"); printf("|90分以上|80~89分|70~79分|60~69分|60分以下\n"); printf("--------------------------------------------------------\n"); printf("高数_____%d________%d_________%d________%d_________%d___\n",b[0],c[0],d[0],e[0],f[0]); printf("__________________________________________________\n"); printf("英语_____%d________%d_________%d________%d_________%d___\n",b[1],c[1],d[1],e[1],f[1]); printf("__________________________________________________\n"); printf("物理_____%d________%d_________%d________%d_________%d___\n",b[2],c[2],d[2],e[2],f[2]); printf("__________________________________________________\n"); printf("编程_____%d________%d_________%d________%d_________%d___\n",b[3],c[3],d[3],e[3],f[3]); printf("__________________________________________________\n"); printf("马哲_____%d________%d_________%d________%d_________%d___\n",b[4],c[4],d[4],e[4],f[4]); printf("__________________________________________________\n"); fclose(fp); } voidmydisplay() {intn=0,j=0,k=0,m=0,ww; structstudenttemp[N]={0}; FILE*fp=NULL; fp=fopen("d:\\yuan.dat","r"); if(fp==NULL) { printf("打开文件失败!\n"); return; } system("cls"); while(feof(fp)==0) { ww=fscanf(fp,"%23s%15s",temp[n].num,temp[n].name); if(ww==-1)break; for(j=0;j<5;j++) { fscanf(fp,"%d",&temp[n].grade[j]); } n++; } for(k=0;k =1&&s[i]<=3) {printf("\n"); printf("学号%10s姓名%10s\n",temp[i].num,temp[i].name); if(temp[i].grade[0]<60) printf("%10s您的高数成绩为%6d,需要补考,请于2011年2月26日上午9点在教学楼5023教室进行补考考试\n",temp[i].name,temp[i].grade[0]); if(temp[i].grade[1]<60) printf("%10s您的英语成绩为%6d,需要补考,请于2011年2月27日上午9点在教学楼5023教室进行补考考试\n",temp[i].name,temp[i].grade[1]); if(temp[i].grade[2]<60) printf("%10s您的物理成绩为%6d,需要补考,请于2011年2月28日上午9点在教学楼5023教室进行补考考试\n",temp[i].name,temp[i].grade[2]); if(temp[i].grade[3]<60) printf("%10s您的编程成绩为%6d,需要补考,请于2011年2月26日下午3点在教学楼5023教室进行补考考试\n",temp[i].name,temp[i].grade[3]); if(temp[i].grade[4]<60) printf("%10s您的马哲成绩为%6d,需要补考,请于2011年2月28日下午3点在教学楼5023教室进行补考考试\n",temp[i].name,temp[i].grade[4]); } } for(e=0;e 3) { printf("\n"); printf("学号%10s姓名%10s由于您不及格的科目为%d门(多于3门),因此退学。\n",temp[i].num,temp[i].name,s[i]); if(temp[i].grade[0]<60) printf("%15s您的高数成绩为%6d,为不及格。\n",temp[i].name,temp[i].grade[0]); if(temp[i].grade[1]<60) printf("%15s您的英语成绩为%6d,为不及格。\n",temp[i].name,temp[i].grade[1]); if(temp[i].grade[2]<60) printf("%15s您的物理成绩为%6d,为不及格。\n",temp[i].name,temp[i].grade[2]); if(temp[i].grade[3]<60) printf("%15s您的编程成绩为%6d,为不及格。\n",temp[i].name,temp[i].grade[3]); if(temp[i].grade[4]<60) printf("%15s您的马哲成绩为%6d,为不及格。\n",temp[i].name,temp[i].grade[4]); } } } voidmynewcreat() { inti=0,k=0,s[5]={0},z[5]={0},v=0,n=0,m=0,j=0,p=0,c=0,ww; structstudenttemp[N]={0}; FILE*fp=NULL; FILE*fq=NULL; fp=fopen("d:\\yuan.dat","r"); if(fp==NULL) { printf("打开文件失败!\n"); return; } while(feof(fp)==0) { ww=fscanf(fp,"%23s%15s",temp[n].num,temp[n].name); if(ww==-1)break; for(j=0;j<5;j++) { fscanf(fp,"%d",&temp[n].grade[j]); } n++; } while(i<=n) { for(k=0;k<5;k++) { if(temp[i].grade[k]<60) s[i]=s[i]+1; } for(v=0;v<5;v++) { if(temp[i].grade[v]==0) z[i]++; } if(z[i]==5) { break; } if(s[i]<=3) { i++; } if(s[i]>3) { for(c=i;c<=n;c++) { temp[c]=temp[c+1]; } s[i]=0; } } printf("\n"); printf("删除已退学的学生后,学生名册为:"); printf("\n"); for(p=0;p 有时间整理整理学过的,温故知新。
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。