结构体作业

来源:互联网 发布:2016中国留学生数据 编辑:程序博客网 时间:2024/05/16 17:05

#include<stdio.h>
#include<string.h>
struct data
 {
  int year;
  int mouth;
  int day;
 };
 struct acmer
 {
  char name[30];
  char num[20];
  char tel[20];
  int solved;
  struct data birthday;
 };
 struct acmer str[100];
 struct acmer temp;
void tongji(int n)
{
 int f=0,i,m;
 printf("统计分数>n的同学,请输入n的值:");
 scanf("%d",&m);
 for(i=0;i<n;i++)
 {
  if(str[i].solved>m)
  {
   f=1;
   printf("%s %s %s %d %d.%d.%d\n",str[i].name,str[i].num,str[i].tel,str[i].solved,str[i].birthday.year,str[i].birthday.mouth,str[i].birthday.day);
  }
 }
 if(f==0)printf("没有符合条件的同学!\n");
}
void chazhao(int n)
{
 int m,i,f=0;
 char ming[30],hao[30];
 printf("请输入查找类别编号:\n");
 printf("1.按姓名查找。\n");
 printf("2.按学号查找。\n");
 scanf("%d",&m);
 if(m==1)
 {
  printf("请输入要查找学生的姓名:\n");
  scanf("%s",ming);
  for(i=0;i<n;i++)
   if(strcmp(ming,str[i].name)==0)
   {
    f=1;
    printf("%s %s %s %d %d.%d.%d\n",str[i].name,str[i].num,str[i].tel,str[i].solved,str[i].birthday.year,str[i].birthday.mouth,str[i].birthday.day);
   }
   if(f==0)printf("没有该名字的同学!\n");
 }
 if(m==2)
 {
  printf("请输入要查找学生的学号:\n");
  scanf("%s",hao);
  for(i=0;i<n;i++)
   if(strcmp(hao,str[i].num)==0)
   {
    f=1;
    printf("%s %s %s %d %d.%d.%d\n",str[i].name,str[i].num,str[i].tel,str[i].solved,str[i].birthday.year,str[i].birthday.mouth,str[i].birthday.day);
   }
   if(f==0)printf("没有该学号的同学!\n");
 }
}
void xiugai(int n)
{
 int m,i,t,f=0;
 char tp[30],after[30];
 printf("请输入要修改同学的姓名:\n");
 scanf("%s",tp);
 for(i=0;i<n;i++)
  if(strcmp(tp,str[i].name)==0)
  {
   f=1;
   t=i;
   printf("修改前的信息为:\n");
   printf("%s %s %s %d %d.%d.%d\n",str[i].name,str[i].num,str[i].tel,str[i].solved,str[i].birthday.year,str[i].birthday.mouth,str[i].birthday.day);
  }
  if(f==0)printf("没有该名字的同学!\n");
  printf("请输入要修改的内容编号:\n");
  printf("1.姓名\n2.学号\n3.手机号\n4.解题数\n5.出生年份\n6.出生月份\n7.出生日\n");
  scanf("%d",&m);
  if(m==1)
  {
   printf("请输入修改后的姓名:\n");
   scanf("%s",after);
   strcpy(str[t].name,after);
   printf("修改后的信息为:\n");
   printf("%s %s %s %d %d.%d.%d\n",str[t].name,str[t].num,str[t].tel,str[t].solved,str[t].birthday.year,str[t].birthday.mouth,str[t].birthday.day);
  }
  else if(m==2)
  {
   printf("请输入修改后的学号:\n");
   scanf("%s",after);
   strcpy(str[t].num,after);
   printf("修改后的信息为:\n");
   printf("%s %s %s %d %d.%d.%d\n",str[t].name,str[t].num,str[t].tel,str[t].solved,str[t].birthday.year,str[t].birthday.mouth,str[t].birthday.day);
  }
  else if(m==3)
  {
   printf("请输入修改后的手机号:\n");
   scanf("%s",after);
   strcpy(str[t].num,after);
   printf("修改后的信息为:\n");
   printf("%s %s %s %d %d.%d.%d\n",str[t].name,str[t].num,str[t].tel,str[t].solved,str[t].birthday.year,str[t].birthday.mouth,str[t].birthday.day);
  }
  else if(m==4)
  {
   printf("请输入修改后的解题数:\n");
   scanf("%d",&f);
   str[t].solved=f;
   printf("修改后的信息为:\n");
   printf("%s %s %s %d %d.%d.%d\n",str[t].name,str[t].num,str[t].tel,str[t].solved,str[t].birthday.year,str[t].birthday.mouth,str[t].birthday.day);
  }
  else if(m==5)
  {
   printf("请输入修改后的出生年份:\n");
   scanf("%d",&f);
   str[t].birthday.year=f;
   printf("修改后的信息为:\n");
   printf("%s %s %s %d %d.%d.%d\n",str[t].name,str[t].num,str[t].tel,str[t].solved,str[t].birthday.year,str[t].birthday.mouth,str[t].birthday.day);
  }
  else if(m==6)
  {
   printf("请输入修改后的出生月份:\n");
   scanf("%d",&f);
   str[t].birthday.mouth=f;
   printf("修改后的信息为:\n");
   printf("%s %s %s %d %d.%d.%d\n",str[t].name,str[t].num,str[t].tel,str[t].solved,str[t].birthday.year,str[t].birthday.mouth,str[t].birthday.day);
  }
  else if(m==7)
  {
   printf("请输入修改后的出生日:\n");
   scanf("%d",&f);
   str[t].birthday.day=f;
   printf("修改后的信息为:\n");
   printf("%s %s %s %d %d.%d.%d\n",str[t].name,str[t].num,str[t].tel,str[t].solved,str[t].birthday.year,str[t].birthday.mouth,str[t].birthday.day);
  }
   
}
void paixu(int n)
{
 int i,j;
 char tp[30];
 printf("请输入排序方式编号:\n1.做题数目由多到少。\n2.做题数目由少到多。");
 scanf("%d",&j); 
 for(i=0;i<n-1;i++)
  for(j=0;j<n-1-i;j++)
   if(str[j].solved>str[j+1].solved)
   {
    temp=str[j];
    str[j]=str[j+1];
    str[j+1]=temp;
   }
 if(j==1)
 {
  printf("按做题数目由多到少排序结果为:\n");
  for(i=n-1;i>=0;i--)
   printf("%s %s %s %d %d.%d.%d\n",str[i].name,str[i].num,str[i].tel,str[i].solved,str[i].birthday.year,str[i].birthday.mouth,str[i].birthday.day);
 }
 else
 {
  printf("按做题数目由少到多排序结果为:\n");
  for(i=0;i<n;i++)
   printf("%s %s %s %d %d.%d.%d\n",str[i].name,str[i].num,str[i].tel,str[i].solved,str[i].birthday.year,str[i].birthday.mouth,str[i].birthday.day);
 }
}
void main()
{
 int n,i,m;
 printf("请输入人数:");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  printf("请输入第%d个人的:姓名,学号,手机号,做题数,出生日期的年,月,日:\n",i+1);
  scanf("%s %s %s %d%d%d%d",str[i].name,str[i].num,str[i].tel,&str[i].solved,&str[i].birthday.year,&str[i].birthday.mouth,&str[i].birthday.day);
 }
 while(1)
 {
  printf("\n\n\n\n\n请输入想要实现的功能编号:\n");
  printf("1.统计做题数大于n的人数。\n");
  printf("2.查找。\n");
  printf("3.修改学生信息。\n");
  printf("4.按做题数目进行排序。\n");
  printf("5.结束程序。\n");
  scanf("%d",&m);
  if(m==1)tongji(n);
  else if(m==2)chazhao(n);
  else if(m==3)xiugai(n);
  else if(m==4)paixu(n);
  else if(m==5)break;
 }
}

0 0
原创粉丝点击