该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*.研究生初试录取 主界面以菜单的形式展现,用户可以按不同的键执行不同的操作,即调用不同的函数; ...... 用不同的函数实现,除以下模块,还可设计其他功能模块:
1)输入记录:输入研究生的信息,包括学生姓名,准考证号,4门课程(政治、数学、外语、专业基础课)成绩; 录取分数要求总分达到310分;每门课的最低分要求达到40分;
2)输出记录:输出信息;
3)查询记录:可根据准考证号查找记录;
4)统计:统计初试合格的人数;
5)排序:按总分由高到低的顺序输出合格考生的信息。 */
#include
#include
#include
#define N 50
struct student{
char name[10];
int id; float score[4];
float sum;
};
struct student defa={"0",0,0,0,0,0,0};
int list();
int enter(struct );
void print(struct );
int sta(struct,int );
void search(struct student stu[] ,int n);
int s(struct,struct ,struct,struct,int );
//菜单函数
int list(){
int i=1,c;
printf("******************菜单功能*********************\n");
printf(" 1.输入\n");
printf(" 2.输出\n");
printf(" 3.查询\n");
printf(" 4.统计合格\n");
printf(" 5.排序\n");
printf(" 6.退出\n"); printf("****************************************************\n");
do{ printf("请输入你所选功能(1~6):"); scanf("%d",&c);
}while(c<0||c>6);
return c; }
//输入
//输入研究生的信息,包括学生姓名,准考证号,4门课程(政治、数学、外语、专业基础课)成绩;
int enter(struct student stu[])
{ int count;
float sum=0;
system("cls");
printf("\n请输入研究生信息条数: ");
scanf("%d",&count);
for(int i=0;i
{ printf("\n记录号:%d\n",i+1);
printf("学生姓名 准考证号 1.政治 2 数学 3外语 4专业基础课\n ");
scanf("%d%s",&stu[i].id,stu[i].name);
for(int j=0;j<4;j++){
printf("(%d): ",j+1);
scanf("%f",&stu[i].score[j]);
sum+=stu[i].score[j]; }
stu[i].sum=sum; sum=0; }
return count; }
//输出信息
void print(struct student stu[],int n){ int i; system("cls");
printf("\n******************研究生信息*********************\n");
printf("学生姓名 准考证号 政治 数学 外语 专业基础 总分 \n"); printf("****************************************************\n");
for(i=0;i
printf("%s %d %.2f %.2f %.2f %.2f %.2f\n",stu[i].name,stu[i].id,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum); }
}
//查询记录
void search( student stu[],int n){
int s;
int i;
system("cls");
printf("请输入查找准考证号:\n");
scanf("%d",&s);
getchar();
for(i=0;i
if(s==stu[i].id)
{ system("cls");
printf("\n******************查询记录*********************\n"); printf("学生姓名 准考证号 政治 数学 外语 专业基础 总分\n"); printf("%s %d %.2f %.2f %.2f %.2f %.2f\n",stu[i].name,stu[i].id,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum); printf("------------------------------------------------------------------\n"); } else printf("无此学生\n"); }
//4.统计合格
//录取分数要求总分达到310分;每门课的最低分要求达到40分;
int sta(student stu[],int n){
system("cls");
int num=0;
for(int i=0;i
if(stu[i].sum>=310&&stu[i].score[0]>=40&&stu[i].score[1]>=40&&stu[i].score[2]>=40&&stu[i].score[3]>=40)
num++; }
printf("总计初试合格人数: %d\n",num); return num; }
//排序
int s(student stu[],student sort[],student t[],student o[],int n)
{ system("cls");
int i,j,count=0;
for( i=0;i
{ if(stu[i].sum>=310&&stu[i].score[0]>=40&&stu[i].score[1]>=40&&stu[i].score[2]>=40&&stu[i].score[3]>=40)
{ count++; o[i]=stu[i];}
else o[i]=defa; }
for(i=0;i
for(j=i;j
if(o[j].sum
t[j]=o[j+1];o[j+1]=o[j];o[j]=t[j]; }
}
for(i=0;i
sort[i]=o[i]; printf("*****************合格名单(排序)*************************\n");
printf("学生姓名 准考证号 政治 数学 外语 专业基础 总分\n");
for(i=0;i
printf("-------------------------------------------------------\n"); } return n; }
int main(){ int length;
struct student stu[N],sort[N],t[N],o[N];
for(;;){
switch(list())
{ case 1:length=enter(stu);break;
case 2:print(stu,length);break;
case 3:search(stu,length);break;
case 4:length=sta(stu,length);break;
case 5:length=s(stu,sort,t,o,length);break;
case 6:system("cls");printf("已退出\n");exit(0);break; }
printf("按回车键返回主菜单...\n");
getchar(); }
return 0;
}