主题:帮忙改一下“排序”
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10 /* 最大学生人数,实际请更改*/
struct student
{
char code[21]; /* 学号 */
char name[21]; /* 姓名 */
int age; /* 年龄 */
char sex[3]; /* 性别 */
char time[21]; /* 出生年月 */
char add[30]; /* 家庭地址 */
char tel[21]; /* 电话号码 */
char mail[30]; /* 电子邮件地址 */
}stu[N];
int k=1,n; /* 定义全局变量 */
void input();/* 函数声明 */
void seek();
void del();
void display();
void menu();
void sorting()
void main()
{ while(k)
menu();
}
/* 建立学生信息 */
void input()
{
FILE *fp;
int i=0;
if ((fp=fopen("学生信息","r"))==NULL)
{ printf("cannot open file\n");
exit(0);
}
while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)
{
i++;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}
/*查询学生信息*/
void seek()
{int i,item,flag;
char s1[21];
printf("------------------\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
printf("3.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
scanf("%d",&item);
flag=0;
switch(item)
{
case 1:
printf("请输入要查询的学生的学号:\n");
scanf("%s",&s1);
for(i=0;i<N;i++)
if(strcmp(stu[i].code,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该学号不存在!\n"); break;
case 2:
printf("请输入要查询的学生的姓名:\n");
scanf("%s",&s1);
for(i=0;i<N;i++)
if(strcmp(stu[i].name,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该姓名不存在!\n"); break;
case 3:return;
default:printf("请在1-3之间选择\n");
}
}
}
/*删除学生信息*/
void del()
{ int i,j,flag=0;
char s1[21];
printf("请输入要删除学生的学号:\n");
scanf("%s",&s1);
for(i=0;i<N;i++)
if(strcmp(stu[i].code,s1)==0)
{ flag=1;
for(j=i;j<N-1;j++)
stu[j]=stu[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{ printf("删除成功,显示结果请选择菜单4\n");
n--;
}
}
/*显示当前学生信息*/
void display()
{ int i;
printf("所有学生的信息为:\n");
for(i=0;i<n;i++)
{
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
}
/*排序*/
void sorting()
{
int j,i,t;
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(stu[i].code>stu[i+1].code)
{
t=stu[i];
stu[i]=stu[i+1];
stu[i+1]=t;
}
printf("the sorted numbers :\n");
for(i=0;i<10;i++)
printf("%d",stu[i]);
printf("\n");
}
void menu()/* 界面 */
{ int choose;
printf("*****系统功能菜单*****\n");
printf("----------------------\n");
printf("1.读入学生信息\n");
printf("2.查询学生信息\n");
printf("3.按学号删除信息\n");
printf("4.显示当前信息\n");
printf("5.排序\n");
printf("6.退出系统\n");
printf("----------------------\n");
printf("请选择菜单编号:");
scanf("%d",&choose);
switch(choose)
{
case 1:input();break;
case 2:seek();break;
case 3:del();break;
case 4:display();break;
case 5:sorting();break;
case 6:k=0;break;
default:printf("请在1-6之间选择\n");
}
}
#include<stdlib.h>
#include<string.h>
#define N 10 /* 最大学生人数,实际请更改*/
struct student
{
char code[21]; /* 学号 */
char name[21]; /* 姓名 */
int age; /* 年龄 */
char sex[3]; /* 性别 */
char time[21]; /* 出生年月 */
char add[30]; /* 家庭地址 */
char tel[21]; /* 电话号码 */
char mail[30]; /* 电子邮件地址 */
}stu[N];
int k=1,n; /* 定义全局变量 */
void input();/* 函数声明 */
void seek();
void del();
void display();
void menu();
void sorting()
void main()
{ while(k)
menu();
}
/* 建立学生信息 */
void input()
{
FILE *fp;
int i=0;
if ((fp=fopen("学生信息","r"))==NULL)
{ printf("cannot open file\n");
exit(0);
}
while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)
{
i++;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}
/*查询学生信息*/
void seek()
{int i,item,flag;
char s1[21];
printf("------------------\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
printf("3.退出本菜单\n");
printf("------------------\n");
while(1)
{ printf("请选择子菜单编号:");
scanf("%d",&item);
flag=0;
switch(item)
{
case 1:
printf("请输入要查询的学生的学号:\n");
scanf("%s",&s1);
for(i=0;i<N;i++)
if(strcmp(stu[i].code,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该学号不存在!\n"); break;
case 2:
printf("请输入要查询的学生的姓名:\n");
scanf("%s",&s1);
for(i=0;i<N;i++)
if(strcmp(stu[i].name,s1)==0)
{ flag=1;
printf("该学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 分别为:\n");
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该姓名不存在!\n"); break;
case 3:return;
default:printf("请在1-3之间选择\n");
}
}
}
/*删除学生信息*/
void del()
{ int i,j,flag=0;
char s1[21];
printf("请输入要删除学生的学号:\n");
scanf("%s",&s1);
for(i=0;i<N;i++)
if(strcmp(stu[i].code,s1)==0)
{ flag=1;
for(j=i;j<N-1;j++)
stu[j]=stu[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{ printf("删除成功,显示结果请选择菜单4\n");
n--;
}
}
/*显示当前学生信息*/
void display()
{ int i;
printf("所有学生的信息为:\n");
for(i=0;i<n;i++)
{
printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,
stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
}
/*排序*/
void sorting()
{
int j,i,t;
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(stu[i].code>stu[i+1].code)
{
t=stu[i];
stu[i]=stu[i+1];
stu[i+1]=t;
}
printf("the sorted numbers :\n");
for(i=0;i<10;i++)
printf("%d",stu[i]);
printf("\n");
}
void menu()/* 界面 */
{ int choose;
printf("*****系统功能菜单*****\n");
printf("----------------------\n");
printf("1.读入学生信息\n");
printf("2.查询学生信息\n");
printf("3.按学号删除信息\n");
printf("4.显示当前信息\n");
printf("5.排序\n");
printf("6.退出系统\n");
printf("----------------------\n");
printf("请选择菜单编号:");
scanf("%d",&choose);
switch(choose)
{
case 1:input();break;
case 2:seek();break;
case 3:del();break;
case 4:display();break;
case 5:sorting();break;
case 6:k=0;break;
default:printf("请在1-6之间选择\n");
}
}