利用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;
}
### 注意事项:
源码仅供参考!!!请不要照搬,对学习没有帮助!

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

  1. c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现

    宋福英 摘  要: 中国高校为保证学生信息安全,各分院的学生信息都在一个相对封闭的闭环内共享.中国高校在校生人数逐年递增,给高校的信息管理带来不小压力.C语言兼具高级语言和汇编语言的特点,简洁.紧凑. ...

  2. c语言结构体编辑学生成绩管理,【C语言】结构体的应用以及学生成绩管理系统的设计...

    一.结构体 数组中的各元素是属于同一个类型的.有时需要将不同类型的数据组合成一个整体,以便于引用.如,一个学生的学号.姓名.性别.年龄.成绩.家庭地址等项.这些项都与某一学生相联系.如果分别定义为互相 ...

  3. c语言——结构体数组——学生成绩表

    例题详解: 1. 在主函数中定义结构体数组,struct student stutable[10]; struct student {int stunum;//学号char name[20];//姓名 ...

  4. 【C语言基础】练习:结构体统计学生成绩,快递费用计算

    每日练习一:结构体统计学生成绩 题目要求:有3名学生,每个学生的数据包括学号.姓名.3门课的成绩,从键盘输入3个学生的数据,打印出每个学生的平均成绩,以及最高分学生的数据(包括学号.姓名.3门课的成绩 ...

  5. java录入学生信息_java实现学生成绩录入系统

    本文为大家分享了java实现学生成绩录入系统,供大家参考,具体内容如下 1.学生类,包括学生的姓名和各科成绩 public class Score { public String name; publ ...

  6. 利用c语言结构体和union实现类似c++的public,private的实现

    最近在看strongswan源代码,看到strongswan的代码框架很有意思,用C语言实现类的思想.当我们编写完一个模块,我们需要提供的是H的文件给其他模块使用,我们希望H文件中就只能包含一些公有函 ...

  7. 【c语言课程设计】基于单链表与结构体的学生奖学金评定系统(菜单操作)

    编写C程序,实现以下功能: 1)每名学生信息包括:学号(8个字符).姓名(最多20个字符).5门课程成绩(整型).总成绩(整型). 2)声明结构体类型用以保存学生信息. 3)从键盘读入全班同学的信息( ...

  8. 利用C语言结构体解决“各个国家体育竞赛获奖排名”问题

    一.题目描述:      输入一个正整数N代表国家个数,紧接着输入国家名称,该国家获得金牌数目,获得银牌数目,获得铜牌数目.然后根据输入输出国家获奖排名,排名规则是首先按金牌排名,如果金牌相同则比较银 ...

  9. 利用c语言结构体实现通讯录

    用结构体实现一个 可以用来存储1000个人的信息的通讯录,每个人的信息包括: 姓名.性别.年龄.电话.住址 程序如下: #include<stdio.h> #include<stri ...

最新文章

  1. pytorch手写数字识别验证四流网络
  2. Java学习之if-else简单方法小程序
  3. strcpy和memcpy的区别 | strcpy和strncpy的区别
  4. ios开发人员mac空间不够用的解决办法
  5. Recordset.State 属性
  6. 人工智能来了 微智全景首款刷脸支付终端亮相
  7. 设置电脑屏保全屏显示时间,酷!
  8. php 设置允许跨域请求
  9. react:customize-cra修改webpack配置
  10. Android 音视频开发-FFmpeg 命令
  11. 由闷骚书生与假正经小姐的古典爱情故事说起
  12. 输出二叉树中从每个叶子结点到根结点的路径
  13. macOS配置MAVEN环境变量执行source .bash_profile报错.bash_profile: not valid in this context: /xxx/xxx
  14. matlab仿真培训班,Matlab/Simulink进行微网系统仿真建模培训
  15. SLA,SLO和SLI工程师指南
  16. EOS智能合约开发系列(18): 狼人杀游戏的`eosio.code`
  17. SVN 已提交版本回退
  18. mysql 共享nfs,服务器之间搭建NFS共享文件 - 老牛博客
  19. 日期函数months_between的用法
  20. 计算机组装维修考点,计算机维修工(基础知识)—教材

热门文章

  1. Latex 生成参考文献 及 无法生成参考文献原因
  2. 苹果A15继续挤牙膏,却嘲讽安卓旗舰不如老掉牙的A13
  3. 【网络】计算机网络参考模型
  4. Apple的浏览器-Safari
  5. 《花开半夏》--7 谢幕(1)
  6. Zend Studio 11 汉化补丁安装不行解决方案
  7. python培训推荐米犀学院小班教学
  8. ESP32的WIFI的STA模式调控ESP32蓝牙和WIFI发射功率
  9. arcgis读取oracle数据库,arcgis连接Oracle数据库
  10. Google发布2008全球火炬接力报道路线图