📄 wancheng1.c
字号:
for(i=0;i<n-1;i++)
{ flag=1;
p2=head;
p1=p2->next;
for(j=0;j<n-i-1;j++)
{ if(p2->english<p1->english)
{ t=p2->num;
p2->num=p1->num;
p1->num=t;
strcpy(b,p2->name);
strcpy(p2->name,p1->name);
strcpy(p1->name,b);
x=p2->sex;
p2->sex=p1->sex;
p1->sex=x;
x=p2->age;
p2->age=p1->age;
p1->age=x;
strcpy(b,p2->major);
strcpy(p2->major,p1->major);
strcpy(p1->major,b);
x=p2->english;
p2->english=p1->english;
p1->english=x;
x=p2->math;
p2->math=p1->math;
p1->math=x;
x=p2->program;
p2->program=p1->program;
p1->program=x;
x=p2->amount;
p2->amount=p1->amount;
p1->amount=x;
flag=0;
}
p2=p1;
p1=p1->next;
}
if(flag) break;
}print(head);
}
void order_MATH(struct student *head,int n) /*按数学成绩排序*/
{char b[20];int x;
int i,j,flag;
int num,t;
struct student *p1,*p2;
for(i=0;i<n-1;i++)
{ flag=1;
p2=head;
p1=p2->next;
for(j=0;j<n-i-1;j++)
{ if(p2->math<p1->math)
{ t=p2->num;
p2->num=p1->num;
p1->num=t;
strcpy(b,p2->name);
strcpy(p2->name,p1->name);
strcpy(p1->name,b);
x=p2->sex;
p2->sex=p1->sex;
p1->sex=x;
x=p2->age;
p2->age=p1->age;
p1->age=x;
strcpy(b,p2->major);
strcpy(p2->major,p1->major);
strcpy(p1->major,b);
x=p2->english;
p2->english=p1->english;
p1->english=x;
x=p2->math;
p2->math=p1->math;
p1->math=x;
x=p2->program;
p2->program=p1->program;
p1->program=x;
x=p2->amount;
p2->amount=p1->amount;
p1->amount=x;
flag=0;
}
p2=p1;
p1=p1->next;
}
if(flag) break;
}print(head);
}
void order_PRO(struct student *head,int n) /*按C语言成绩排序*/
{char b[20];int x;
int num,t;
int i,j,flag;
struct student *p1,*p2;
for(i=0;i<n-1;i++)
{ flag=1;
p2=head;
p1=p2->next;
for(j=0;j<n-i-1;j++)
{ if(p2->program<p1->program)
{ t=p2->num;
p2->num=p1->num;
p1->num=t;
strcpy(b,p2->name);
strcpy(p2->name,p1->name);
strcpy(p1->name,b);
x=p2->sex;
p2->sex=p1->sex;
p1->sex=x;
x=p2->age;
p2->age=p1->age;
p1->age=x;
strcpy(b,p2->major);
strcpy(p2->major,p1->major);
strcpy(p1->major,b);
p2->english=p1->english;
p1->english=x;
x=p2->math;
p2->math=p1->math;
p1->math=x;
x=p2->program;
p2->program=p1->program;
p1->program=x;
x=p2->amount;
p2->amount=p1->amount;
p1->amount=x;
flag=0;
}
p2=p1;
p1=p1->next;
}
if(flag) break;
}print(head);
}
void order_sum(struct student *head,int n) /*按总成绩排序*/
{char b[20];
int x;
int i,j,flag;
int num,t;
struct student *p1,*p2;
for(i=0;i<n-1;i++)
{ flag=1;
p2=head;
p1=p2->next;
for(j=0;j<n-i-1;j++)
{ if(p2->amount<p1->amount)
{ t=p2->num;
p2->num=p1->num;
p1->num=t;
strcpy(b,p2->name);
strcpy(p2->name,p1->name);
strcpy(p1->name,b);
x=p2->sex;
p2->sex=p1->sex;
p1->sex=x;
x=p2->age;
p2->age=p1->age;
p1->age=x;
strcpy(b,p2->major);
strcpy(p2->major,p1->major);
strcpy(p1->major,b);
p2->english=p1->english;
p1->english=x;
x=p2->math;
p2->math=p1->math;
p1->math=x;
x=p2->program;
p2->program=p1->program;
p1->program=x;
x=p2->amount;
p2->amount=p1->amount;
p1->amount=x;
flag=0;
}
p2=p1;
p1=p1->next;
}
if(flag) break;
}print(head);
}
/* 显示全部记录函数*/
void print(struct student *head)
{ /* 统计记录条数*/
struct student *p; /*移动指针*/
clrscr();
p=head; /*初值为头指针*/
printf("\n STUDENT\n\n");
printf("___________________________________________________________________________\n");
printf("| 学号 | 姓名 | 性别 | 年龄 | 专业 | 英语 | 数学 | C语言 | 总分 \n");
printf("___________________________________________________________________________\n");
while(p!=NULL)
{
n++;
printf("| %d | %s | %d | %d | %s | %d | %d | %d | %d \n",
p->num,p->name,p->sex,p->age,p->major,p->english,p->math,p->program,p->amount);
putchar('\n');
p=p->next;
}
printf("___________________________________________________________________________\n");
printf(" END\n");
}
main()/*主函数*/
{
/*struct student *head;*/
int Menu=0;
int submenu=0;/*表示菜单项,主菜单,子菜单*/
printf("\n\t\t********Students information manage system.********\n");
while(Menu!=11)
{
submenu=0;
printf("\
\n\
1>.学生信息录入。\n\
2>.修改学生信息。\n\
3>.删除学生信息。\n\
4>.排序。\n\
5>.查找学生信息。\n\
6>.增加学生信息。\n\
7>.成绩统计。\n\
8>.保存文件。\n\
9>.读取文件。\n\
10>.显示学生记录\n\
11>.退出系统。\n");
printf("\n输入命令执行菜单:");
scanf("%d",&Menu);
switch(Menu)
{
case 1:
clrscr();
create();
getch();
break;
case 2:
clrscr();
correct(head);
print(head);
getch();
break;
case 3:
clrscr();
delet(head);
getch();
break;
case 4:
clrscr();
while(submenu!=5)
{
printf("\t****排序****\n\
1>.按英语成绩排序。\n\
2>.按数学成绩排序。\n\
3>.按C语言程序设计排序。\n\
4>.按总分排序。\n\
5>.返回主菜单。\n");
printf("\n\t输入命令执行菜单:");
scanf("%d",&submenu);
switch(submenu)
{case 1:
clrscr();
order_ENG(head,n);
getch();
break;
case 2:
clrscr();
order_MATH(head,n);
getch();
break;
case 3:
clrscr();
order_PRO(head,n);
getch();
break;
case 4:
clrscr();
order_sum(head,n);
getch();
break;
case 5:
break;
default:
break;
}
}
break;
case 5:
clrscr();
search(head);
getch();
break;
case 6:
clrscr();
add(head);
getch();
break;
case 7:
clrscr();
while(submenu!=4)
{
printf("\t****统计****\n\
1>.英语成绩统计。\n\
2>.数学成绩统计。\n\
3>.C语言成绩统计。\n\
4>.返回主菜单。\n");
printf("\n\t输入命令执行菜单:");
scanf("%d",&submenu);
switch(submenu)
{case 1:
clrscr();
C_ENG(head);
getch();
break;
case 2:
clrscr();
C_MATH(head);
getch();
break;
case 3:
clrscr();
C_PRO(head);
getch();
break;
case 4:
break;
default:
break;
}
}
break;
case 8:
clrscr();
save();
getch();
break;
case 9:
clrscr();
op();
break;
case 10:
clrscr();
print(head);
getch();
break;
case 11:
exit(0);
default:
break;
}
}
printf("End************Student information mange system****\n");
printf("\t\t\t\t\t\tPress any key to exit...");
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -