 #include<stdio.h>#include<stdlib.h>#include<string.h>#include "math.h"#define N 81 int count=0; typedef struct student { char name[10]; char number[10]; float math; float english; float shugou; };void input(struct student *p); void sort(struct student *p); void find(struct student *p); void change(struct student *p); void del(struct student *p); void baocun(struct student *p);
main(){ char h; struct student stud[N]; do { printf("\n"); printf(" 学生成绩管理系统 \n"); printf("1.输入/增加学生成绩\n"); printf("2.按总分排榜\n"); printf("3.查找学生信息\n"); printf("4.修改学生信息\n"); printf("5.删除学生信息\n"); printf("6.退出\n"); printf("7.保存\n"); printf("请输入功能选择编号(1-7):"); scanf("%c",&h); switch(h) { case'1': input(stud); break; case'2': sort(stud); break; case'3': find(stud); break; case'4': change(stud); break; case'5': del(stud); break; case'7': baocun(stud); break; } }while(h!='6'); printf("\n---------------------欢迎使用成绩管理系统-----------------------\n\n"); }/****************************输入**************************/
void input(struct student *p) { char ch; do { system("cls"); printf("\n输入第%d个学生的信息:\n输入学生姓名:",count+1); scanf("%s",p[count].name); printf("\n输入学生学号:"); scanf("%s",p[count].number); printf("\n输入数学成绩:"); scanf("%f",&p[count].math); printf("\n输入英语成绩:"); scanf("%f",&p[count].english); printf("\n输入数据结构成绩:"); scanf("%f",&p[count].shugou); count++; printf("\n是否继续输入(y/n)\n"); fflush(stdin); ch=getchar(); }while(ch=='y'||ch=='Y'); }/***************************总分排行**************************/void sort(struct student *p) { int i,j,k; struct student t; system("cls"); if(count==0) printf("无学生成绩,请先录入学生信息\n"); else { for(i=0;i<count-1;i++) { k=i; for(j=i+1;j<count;j++) if((p[k].math+p[k].english+p[k].shugou)<(p[j].math+p[j].english+p[j].shugou)) k=j; if(k!=i) { t=p[k]; p[k]=p; p=t; } } printf("\n总分排榜:\n\n"); printf("\t姓名 学号 数学 英语 数构 总分 名次\n"); for(j=0;j<count;j++) printf("\t%-6s %-4s %-6.1f %-6.1f %-6.1f %-6.1f %-5d\n", p[j].name,p[j].number,p[j].math,p[j].english,p[j].shugou,p[j].math+p[j].english+p[j].shugou, j+1); } printf("\n回车键返回主程序\n"); fflush(stdin); getchar();}/****************************查找**************************/void find(struct student *p) { int j; char name[10]; char number[10]; system("cls"); printf("\n请输入要查找的学生资料:\n"); printf("\n学生姓名:"); scanf("%s",name); printf("\n学生学号:"); scanf("%s",number); for(j=0;j<count;j++) { if((strcmp(name,p[j].name)==0)&&(strcmp(number,p[j].number)==0)) { printf("\n\t姓名 学号 数学 英语 数构 总分\n"); printf("\t%-6s %-4s %-6.1f %-6.1f %-6.1f %-6.1f\n", p[j].name,p[j].number,p[j].math,p[j].english,p[j].shugou,p[j].math+p[j].english+p[j].shugou); break; } } if(j>=count) printf("\n未找到该学生纪录,请核对后重新查找!\n"); fflush(stdin); printf("\n回车键返回上一功能菜单\n"); getchar();}
来自搜搜问问 |