1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 利用C语言结构体实现学生成绩录入系统

利用C语言结构体实现学生成绩录入系统

时间:2019-07-26 08:08:02

相关推荐

利用C语言结构体实现学生成绩录入系统

利用C语言结构体实现学生成绩录入系统

##功能介绍

密码功能嵌入于主函数中,初始密码为:123456(可根据需要修改)

输入1可以调用add函数对学生的基本信息以及成绩进行输入

输入2则调用print函数打印学生成绩单

输入3可以根据学号匹配学生并对其成绩进行修改

输入4可以对当前所有学生的总成绩进行排序

输入5则可以计算当前学生平均分

输入6可以打印出成绩单中所有存在不及格科目的学生

输入7可以根据学号查找学生成绩

输入8则为退出系统

源码如下:

#include<stdio.h>#include<string.h>#include<stdlib.h> void print(); char ID[57][13]; //学号为字符串char name[57][8];//姓名为字符串 char sexual[57][3]; //性别为字符型 char Class[57][25]; //班级为字符型char age[57][3]; //年龄为字符型float average[57]; //平均成绩为实型 float cscore[57];//大学语文float mscore[57];//高等数学 float escore[57];//英语成绩char temp[13];//临时数组int i=0;void add(){printf("Score entry\n");//成绩录入printf("Please enter student ID:");scanf("%s",&ID[i]);//输入学号 getchar();//消除回车 printf("Please enter name:");scanf("%s",&name[i]);//输入姓名 getchar();//消除回车 printf("Please enter class:");scanf("%s",&Class[i]);//输入班级 getchar();//消除回车 printf("Please enter sexual:");scanf("%s",&sexual[i]);//输入性别 getchar();//消除回车 printf("Please enter age:");scanf("%s",&age[i]);//输入年龄 getchar();//消除回车 printf("Please enter College Chinese score:");scanf("%f",&cscore[i]);//输入大学语文成绩 getchar();//消除回车printf("Please enter Advanced mathematics score:");scanf("%f",&mscore[i]);//输入高等数学成绩 getchar();//消除回车printf("Please enter College English score:");scanf("%f",&escore[i]);//输入英语成绩 getchar();//消除回车average[i]=(cscore[i]+mscore[i]+escore[i])/3;i++;print();}void print() {int j=0;printf("ID\t\tName\tClass\t\tGender\tAge\tChinse\tMath\tEnglish\t\tAverage\n");for(;j<i;j++){//printf("%s",ID[j]);printf("%s\t%s\t%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t\t%.2f\n",ID[j],name[j],Class[j],sexual[j],age[j],cscore[j],mscore[j],escore[j],average[j]);}}void Modify(){int j=0;printf("Please enter student ID:");scanf("%s",&temp);getchar();for(;j<i;j++){if(strcmp(temp,ID[j])==0){break;}}if(j==i){printf("Enter error!\n");}else{printf("Please enter College Chinese score:");scanf("%f",&cscore[j]);//输入大学语文成绩 getchar();//消除回车printf("Please enter Advanced mathematics score:");scanf("%f",&mscore[j]);//输入高等数学成绩 getchar();//消除回车printf("Please enter College English score:");scanf("%f",&escore[j]);//输入英语成绩 getchar();//消除回车average[j]=(cscore[j]+mscore[j]+escore[j])/3;print();}}void rank(){int j,k;for(j=0;j<i;j++)//冒泡排序 {for(k=0;k<i-1;k++){if(strcmp(ID[k],ID[k+1])>0){strcpy(ID[i+1],ID[k]);//交换学号 strcpy(ID[k],ID[k+1]);strcpy(ID[k+1],ID[i+1]);strcpy(name[i+1],name[k]);//交换姓名 strcpy(name[k],name[k+1]);strcpy(name[k+1],name[i+1]);strcpy(Class[i+1],Class[k]);//交换班级 strcpy(Class[k],Class[k+1]);strcpy(Class[k+1],Class[i+1]);strcpy(sexual[i+1],sexual[k]);//交换性别 strcpy(sexual[k],sexual[k+1]);strcpy(sexual[k+1],sexual[i+1]);strcpy(age[i+1],age[k]);//交换年龄 strcpy(age[k],age[k+1]);strcpy(age[k+1],age[i+1]);cscore[i+1]=cscore[k];//交换语文成绩 cscore[k]=cscore[k+1];cscore[k+1]=cscore[i+1];mscore[i+1]=mscore[k];//交换数学成绩 mscore[k]=mscore[k+1];mscore[k+1]=mscore[i+1];escore[i+1]=escore[k];//交换英语成绩 escore[k]=escore[k+1];escore[k+1]=escore[i+1];average[i+1]=average[k];//交换平均分average[k]=average[k+1];average[k+1]=average[i+1];} }}print();}void Average(){int j;float temp;for(j=0;j<i;++j){temp=temp+average[j];}temp=temp/i;printf("Average score: %.2f\n",temp);}void Failed(){int j,k;int temp;k=0;int failed[30];for(j=0;j<i;++j){if(cscore[j]<60||mscore[j]<60||escore[j]<60){failed[k]=j;++k;}}printf("ID\t\tName\tClass\t\tGender\tAge\tChinse\tMath\tEnglish\t\tAverage\n");for(j=0;j<k;j++){temp=failed[j];printf("%s\t%s\t%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t\t%.2f\n",ID[temp],name[temp],Class[temp],sexual[temp],age[temp],cscore[temp],mscore[temp],escore[temp],average[temp]);}}void search(){int j=0;printf("Please enter student ID:");scanf("%s",&temp);getchar();for(;j<i;j++){if(strcmp(temp,ID[j])==0){break;}}if(j==i){printf("Enter error!\n");}else{printf("%s\t%s\t%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t\t%.2f\n",ID[j],name[j],Class[j],sexual[j],age[j],cscore[j],mscore[j],escore[j],average[j]);}}int main() //定义函数 {int ch,count;char password[7];char key[6]={'1','2','3','4','5','6'};count=0;while(ch!=8){while(1){printf("Please enter password:");scanf("%s",&password);getchar();if(count>2){break;}if(strcmp(password,key)==0){printf("**************************************************\n");printf("Performance Management System.\n"); //成绩管理系统printf("1、Score entry\n");//成绩录入 printf("2、Print transcrip\n");//打印成绩单 printf("3、Modify grades\n");//修改成绩 printf("4、Grade ranking\n");//排序 printf("5、Average score\n");//平均分 printf("6、Failed student\n");//不及格学生 printf("7、Search\n");//不及格学生 printf("8、Quit\n");printf("**************************************************\n");printf("Welcome to use the product inquiry system!\n");break; }else if(strcmp(password,key)!=0) {printf("Error!\n");count++;}}if(count>2){printf("Illegal login!\n");break;}printf("Please enter a number:");scanf("%d",&ch);getchar(); switch(ch) {case 1:add();break;//调用add函数添加学生成绩 case 2:print();break;//调用print函数打印成绩单 case 3:Modify();break;//修改成绩 case 4:rank();break;//排序 case 5:Average();break;//平均分 case 6:Failed();break;//不及格学生case 7:search();break; //查找学生 case 8:printf("Thanks for using! \n");break;default:printf("Enter error!\n");continue;}}return 0;}

### 注意事项:源码仅供参考!!!请不要照搬,对学习没有帮助!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。