📄 chenhan.c
字号:
system("cls");
printf("\n ----------------------------------学号排序---------------------------\n");
printf("\n排名 学号 姓名 性别 出生年月日\n");
for(i=0;i<sum;i++)
{ for(j=i+1;j<sum;j++)
{if(pm[i].number>pm[j].number)
x=pm[i];pm[i]=pm[j];pm[j]=x;
y=sm[i];sm[i]=sm[j];sm[j]=y;
z=jc[i];jc[i]=jc[j];jc[j]=z;
}
}
for(i=1;i<sum;i++)
printf("%d %ld %s %s %d/%d/%d\n",i,pm[i].number,pm[i].name,pm[i].sex,pm[i].birthyear,pm[i].birthmonth,pm[i].birthday);
PRINT1;
}
/*按成绩排序*/
scores_order(int sum)
{ int i,j,choice;PM x;SM y;JC z;
system("cls");
printf("\n 请选择排序方式:\n");
printf("\n 1.语言成绩排序\n");
printf("\n 2.数学成绩排序\n");
printf("\n 3.物理成绩排序\n");
printf("\n 4.总成绩排序\n");
printf("\n 5.平均成绩排序\n");
scanf("%d",&choice);
flushall();
system("cls");
switch(choice)
{ case 1: { printf("\n -----------------------------------语言成绩排序-----------------------------\n");
printf("\n排名 学号 姓名 语言成绩 数学成绩 物理成绩\n");
for(i=0;i<sum;i++)
{ for(j=i+1;j<sum;j++)
{if(sm[i].language<sm[j].language)
x=pm[i];pm[i]=pm[j];pm[j]=x;
y=sm[i];sm[i]=sm[j];sm[j]=y;
z=jc[i];jc[i]=jc[j];jc[j]=z;
}
}
for(i=1;i<sum;i++)
printf("%d %ld %s %d %d %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli);
PRINT1;
break;
}
case 2: { printf("\n -----------------------------------数学成绩排序-----------------------------\n");
printf("\n排名 学号 姓名 语言成绩 数学成绩 物理成绩\n");
for(i=0;i<sum;i++)
{ for(j=i+1;j<sum;j++)
{if(sm[i].math<sm[j].math)
x=pm[i];pm[i]=pm[j];pm[j]=x;
y=sm[i];sm[i]=sm[j];sm[j]=y;
z=jc[i];jc[i]=jc[j];jc[j]=z;
}
}
for(i=1;i<sum;i++)
printf("%d %ld %s %d %d %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli);
PRINT1;
break;
}
case 3:{ printf("\n -----------------------------------物理成绩排序-----------------------------\n");
printf("\n排名 学号 姓名 语言成绩 数学成绩 物理成绩\n");
for(i=0;i<sum;i++)
{ for(j=i+1;j<sum;j++)
{if(sm[i].wuli<sm[j].wuli)
x=pm[i];pm[i]=pm[j];pm[j]=x;
y=sm[i];sm[i]=sm[j];sm[j]=y;
z=jc[i];jc[i]=jc[j];jc[j]=z;
}
}
for(i=1;i<sum;i++)
printf("%d %ld %s %d %d %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli);
PRINT1;
break;
}
case 4: { printf("\n -----------------------------------总成绩排序-----------------------------\n");
printf("\n排名 学号 姓名 语言成绩 数学成绩 物理成绩 总成绩 \n");
for(i=0;i<sum;i++)
sm[i].zong=sm[i].language+sm[i].math+sm[i].wuli;
for(i=0;i<sum;i++)
{ for(j=i+1;j<sum;j++)
{if(sm[i].zong<sm[j].zong)
x=pm[i];pm[i]=pm[j];pm[j]=x;
y=sm[i];sm[i]=sm[j];sm[j]=y;
z=jc[i];jc[i]=jc[j];jc[j]=z;
}
}
for(i=1;i<sum;i++)
printf("%d %ld %s %d %d %d %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli,sm[i].zong);
PRINT1;
break;
}
case 5: { printf("\n -----------------------------------平均成绩排序-----------------------------\n");
printf("\n排名 学号 姓名 语言成绩 数学成绩 物理成绩 平均成绩\n");
for(i=0;i<sum;i++)
sm[i].jun=(sm[i].language+sm[i].math+sm[i].wuli)/3.0;
for(i=0;i<sum;i++)
{ for(j=i+1;j<sum;j++)
{if(sm[i].math<sm[j].math)
x=pm[i];pm[i]=pm[j];pm[j]=x;
y=sm[i];sm[i]=sm[j];sm[j]=y;
z=jc[i];jc[i]=jc[j];jc[j]=z;
}
}
for(i=1;i<sum;i++)
printf("%d %ld %s %d %d %d %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli,sm[i].jun);
PRINT1;
break;
}
}
}
yearold_order()
{;}
name_order()
{;}
order_message(int sum)
{ int choice;
system("cls");
printf("\n 请选择查询方式:\n");
printf("\n 1.按学号排序\n");
printf("\n 2.按成绩排序\n");
printf("\n 0.返回主菜单\n");
scanf("%d",&choice);
flushall();
switch(choice)
{ case 0: break;
case 1: num_order(sum);break;
case 2: scores_order(sum);break;
}
}
/*统计模块*/
/*个人分数统计*/
scores_count(int sum2)
{ long num;int i,flag2,choice2;float n;
do
{ system("cls");
printf("\n 请输入学号:");
scanf("%ld",num);
flushall();
system("cls");
for(i=0;i<sum2;i++)
if(num==pm[i].number)
{ printf("\n 请选择统计项目:");
printf("\n 1.总成绩\n");
printf("\n 2.平均成绩\n");
printf("\n 0.退出\n");
if(choice2==0)
break;
scanf("%d",&choice2);
flushall();
switch(choice2)
{case 1: {n=sm[i].language+sm[i].math+sm[i].wuli;
printf("\n 总成绩为:%d\n",n);break;
}
case 2: {n=(sm[i].language+sm[i].math+sm[i].wuli)/3.0;
printf("\n 平均成绩为:%d\n",n);break;
}
}
PRINT4;
PRINT1;
PRINT5;
printf("\n 是否继续?(Y/N)\n");
choice2=getch();
}
if(choice2=='Y'||choice2=='y')
flag2=1;
else flag2=0;
}while(flag2==1);
}
/*优秀与及格统计*/
zong_count(int sum2)
{ int i,choice1,choice2,j=0,m;float k;
printf("\n 请选择统计项目:\n");
printf("\n 1.及格人数\n");
printf("\n 2.优秀人数\n");
scanf("%d",&choice1);
flushall();
system("cls");
switch(choice1)
{ case 1: {m=60;
printf("\n 请选择统计项目:\n");
printf("\n 1.语言及格人数\n");
printf("\n 2.数学及格人数\n");
printf("\n 3.物理及格人数\n");
break;
}
case 2: {m=80;
printf("\n 请选择统计项目:\n");
printf("\n 1.语言优秀人数\n");
printf("\n 2.数学优秀人数\n");
printf("\n 3.物理优秀人数\n");
break;
}
}
scanf("%d",&choice2);
flushall();
system("cls");
printf("\n%d %d%%",j,k);
switch(choice2)
{case 1: {for(i=0;i<sum2;i++)
if(sm[i].language>=m)
{j++;
PRINT2;
PRINT3;
printf("语言成绩:%d\n ",sm[i].language);
}
k=j*100.0/sum2;
switch(choice1)
{case 1: printf("\n\n语言及格人数为:%d\n\n及格率:%d%%",j,k);break;
case 2: printf("\n\n语言优秀人数为:%d\n\n优秀率:%d%%",j,k);break;
}
break;
}
case 2: {for(i=0;i<sum2;i++)
if(sm[i].math>=m)
{j++;
PRINT2;
PRINT3;
printf("数学成绩:%d\n ",sm[i].math);
}
k=j*100.0/sum2;
switch(choice1)
{case 1: printf("\n\n数学及格人数为:%d\n\n及格率:%d%%",j,k);break;
case 2: printf("\n\n数学优秀人数为:%d\n\n优秀率:%d%%",j,k);break;
}
break;
}
case 3: {for(i=0;i<sum2;i++)
if(sm[i].wuli>=m)
{j++;
PRINT2;
PRINT3;
printf("物理成绩:%d\n ",sm[i].wuli);
}
k=j*100.0/sum2;
switch(choice1)
{case 1: printf("\n\n物理及格人数为:%d\n\n及格率:%d%%",j,k);break;
case 2: printf("\n\n物理优秀人数为:%d\n\n优秀率:%d%%",j,k);break;
}
break;
}
}
}
count_message(int sum1)
{ int choice1;
printf("\n 请选择统计项目:\n");
printf("\n 1.个人总分及平均分统计\n");
printf("\n 2.及格和优秀统计\n");
printf("\n 0.退出\n");
scanf("%d",&choice1);
flushall();
system("cls");
switch(choice1)
{ case 1: scores_count(sum1);break;
case 2: zong_count(sum1);break;
case 0: break;
}
printf("\n 按任意键返回主菜单!\n");
bioskey(0);
}
/*主程序*/
main()
{ float arg,*p=&arg;
int choice,sum;
sum=read_message();
password(sum);
do
{ system("cls");
printf("\n\n\n *********学生信息管理系统*********\n\n");
printf(" 1.录入学生信息\n\n");
printf(" 2.显示学生信息\n\n");
printf(" 3.修改学生信息\n\n");
printf(" 4.查询学生信息\n\n");
printf(" 5.添加学生信息\n\n");
printf(" 6.删除学生信息\n\n");
printf(" 7.排序学生信息\n\n");
printf(" 8.统计学生信息\n\n");
printf(" 0.退出\n\n");
scanf("%d",&choice);
flushall();
switch(choice)
{ case 1: input_message(sum);break;
case 2: output_message(sum);break;
case 3: change_message(sum);break;
case 4: inquire_message(sum);break;
case 5: new_message(sum);break;
case 6: delete_message();break;
case 7: order_message(sum);break;
case 8: count_message(sum);break;
case 0: break;
}
}while(choice!=0);
save_message(sum);
printf("\n-----------以上信息已保存!-------------\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -