C语言实现学生成绩管理系统课程设计
目录
- 设计要求
- 完整代码
- 运行结果
本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下
设计要求
设计学生成绩管理系统
要求如下:
1.输入学生信息
2.统计学生成绩
3.查找并显示学生成绩
4.按姓名查找,修改学生资料
5.显示所有学生名单
6.查找并删除学生信息
7.输出个科目成绩最高的学生
完整代码
#include<stdio.h> #include<ctype.h> #include<stdlib.h> #include<string.h> struct Student { int cls; char namee[10]; char number[10]; int chinese; int english; int computer; int math; }stud1[100]; int menu() { char a; while(a>'8'||a<'0') { system("cls"); printf("***** 学生成绩管理系统 *******\n"); printf(" 1.输入学生信息\n"); printf(" 2.统计学生成绩\n"); printf(" 3.查找并显示学生成绩\n"); printf(" 4.按姓名查找,修改学生资料\n"); printf(" 5.显示所有学生名单\n"); printf(" 6.查找并删除学生信息\n"); printf(" 7.输出个科目成绩最高的学生\n"); printf(" 0.退出系统\n"); printf("************************************\n"); printf("请选择(0-8)\n"); a=getchar();//键盘敲的字符赋给a } return(a-'0'); } /******************************************/ int Input(Student stud[],int n) //输入数据 定义输入数据函数 { int i=0; char sign,x[10]; for(;sign !='n'&&sign !='N';) { printf(" 姓名:"); scanf("%s",stud[n+i].namee); printf(" 班级:"); scanf("%d",&stud[n+i].cls); printf(" 学号:"); scanf("%s",stud[n+i].number); printf(" 语文:"); scanf("%d",&stud[n+i].chinese); printf(" 数学:"); scanf("%d",&stud[n+i].math); printf(" 英语:"); scanf("%d",&stud[n+i].english); printf(" 计算机:"); scanf("%d",&stud[n+i].computer); gets(x); printf("还有要输入的信息吗?(y/n)"); scanf("%c",&sign); i++; } return(n+i); } void Sort(Student stud[], int n)//根据平均分排序(冒泡法) { int i,j; struct Student tmp; for (i=0;i<n;i++) { for (j=1;j<n-i;j++) { if ((stud[j-1].chinese+stud[j-1].english+stud[j-1].computer+stud[j-1].math)<(stud[j].chinese+stud[j].english+stud[j].computer+stud[j].math)) { tmp=stud[j-1]; stud[j-1]=stud[j]; stud[j]=tmp; } } } } /***************统计数据*******/ void Display(Student stud[], int n) { Sort(stud,n); int i; printf(" 班级 学号 姓名 语文 数学 英语 计算机 总分 平均分\n"); for(i=1;i<n+1;i++) { int s=stud[i-1].chinese+stud[i-1].math+stud[i-1].english+stud[i-1].computer; printf("%7d,%7s,%7s,%7d,%7d,%7d,%7d,%7d,%7d\n",stud[i-1].cls,stud[i-1].number,stud[i-1].namee,stud[i-1].chinese,stud[i-1].math,stud[i-1].english,stud[i-1].computer,s,s/4); if(i>1 && i%10==0) { system("pause"); } } system("pause"); int a; printf("语文不及格的有:班级 姓名 学号 成绩\n"); for(a=0;a<n;a++) { if(stud[a].chinese<60) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].chinese); } printf("数学不及格的有:班级 姓名 学号 成绩\n"); for(a=0;a<n;a++) { if(stud[a].math<60) printf(" %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].math); } printf("英语不及格的有:班级 姓名 学号 成绩\n"); for(a=0;a<n;a++) { if(stud[a].english<60) printf(" %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].english); } printf("计算机不及格的有:班级 姓名 学号 成绩\n"); for(a=0;a<n;a++) { if(stud[a].computer<60) printf(" %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].computer); } system("pause"); } /************查找学生显示其信息*******************/ void Query(Student stud[],int n) { char namee[20]; printf(" 输入其姓名:\n"); scanf("%s",namee); int i=0; while(strcmp(stud[i].namee,namee)!=0&&i<n) i++; if(i==n) { printf("\t\t\t没有发现该学生的资料!\n"); return; } printf(" 学号:%s\n",stud[i].number); printf(" 班级:%d\n",stud[i].cls); printf(" 语文:%d\n",stud[i].chinese); printf(" 英语:%d\n",stud[i].english); printf(" 数学:%d\n",stud[i].math); printf(" 计算机:%d\n",stud[i].computer); } /************删除学生信息*********/ int Delete(Student stud[],int n) { char s[20]; int i=0,j; printf(" 请输入要删除的学生的姓名:\n"); scanf("%s",s); while(strcmp(stud[i].namee,s)!=0&&i<n) i++; if(i==n) { printf("\t\t\t没有发现该学生资料!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy(stud[j].number,stud[j+1].number); strcpy(stud[j].namee,stud[j+1].namee); stud[j].cls=stud[j+1].cls; stud[j].chinese=stud[j+1].chinese; stud[j].math=stud[j+1].math; stud[j].english=stud[j+1].english; stud[j].computer=stud[j+1].computer; } printf(" 当前信息已删除成功!"); return(n-1); } /****************修改信息**********************/ int Revise(Student stud[],int n) { int i=0; char na[10]; scanf("%s",na); while(strcmp(stud[i].namee,na)!=0&&i<n) i++; if(i==n) { printf("\t\t\t没有发现该学生的资料!\n"); } printf("修改班级:\n"); scanf("%d",&stud[i].cls); printf("修改学号:\n"); scanf("%s",stud[i].number); printf("修改语文成绩:\n"); scanf("%d",&stud[i].chinese); printf("修改英语成绩:\n"); scanf("%d",&stud[i].english); printf("修改数学成绩:\n"); scanf("%d",&stud[i].math); printf("修改计算机成绩:\n"); scanf("%d",&stud[i].computer); printf("修改成功\n"); return(n); } /***************************************显示学生名单**************************************/ void show(Student stud[],int n) { for(int i=0;i<n;i++) { printf(" %s\n",stud[i].namee); } system("pause"); } // void SercherH(Student stud[],int n)//搜索成绩最高者输出 { int a; int max ; printf("语文成绩最高为:班级 姓名 学号 成绩\n"); max=stud[0].chinese; for(a=1;a<n;a++) { if(stud[a].chinese>max) max=stud[a].chinese; } for(a=0;a<n;a++) { if(max==stud[a].chinese) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].chinese); } printf("数学成绩最高为:班级 姓名 学号 成绩\n"); max=stud[0].math; for(a=1;a<n;a++) { if(stud[a].math>max) max=stud[a].math; } for(a=0;a<n;a++) { if(max==stud[a].math) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].math); } printf("英语成绩最高为:班级 姓名 学号 成绩\n"); max=stud[0].english; for(a=1;a<n;a++) { if(stud[a].english>max) max=stud[a].english; } for(a=0;a<n;a++) { if(max==stud[a].english) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].english); } printf("计算机成绩最高为:班级 姓名 学号 成绩\n"); max=stud[0].computer; for(a=1;a<n;a++){ if(stud[a].computer>max) max=stud[a].computer;} for(a=0;a<n;a++) { if(max==stud[a].computer) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].computer);} system("pause");} /*****************主函数调用*****************/ int main() { int n1=0; for(;;) { switch(menu()){ case 1: printf(" 输入学生资料\n"); n1=Input(stud1,n1);break; case 2: printf(" 输出所有学生资料\n"); Display(stud1,n1);break; case 3: int r;printf(" 查找学生\n"); Query(stud1,n1); system("pause");break; case 4: int p;printf(" 修改学生资料\n"); printf(" 输入你要修改的学生的姓名:"); n1=Revise(stud1,n1); system("pause");break; case 5: printf(" 显示所有学生名单:\n"); show(stud1,n1); system("pause");break; case 6: printf(" 查找并删除学生信息\n"); int o; n1=Delete(stud1,n1); system("pause");break; case 7: int l;SercherH(stud1,n1);break; case 0: system("pause");break; } } }
运行结果
后面的需要执行哪项功能,就输入对应数字就可以!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)