结构体作业
1.定义一个acmer结构体,包括以下信息:姓名,学号,手机号,做题数,出生日期,其中出生日期date也是一个结构体,包括年、月、日
2.建立结构体数组,实现对多个同学的信息输入,输出
3.实现简单的统计功能,比如统计做题数大于150的同学并输出其完整信息
4.实现查找功能,包括按姓名、学号查找
5.实现信息修改功能
6.按做题数目进行排序(选作)
7.其他功能可以自由扩展,多多益善 ^_^
8.程序一个函数实现一个功能
9.代码测试成功后贴在论坛上,大家互相学习借鉴
2.建立结构体数组,实现对多个同学的信息输入,输出
3.实现简单的统计功能,比如统计做题数大于150的同学并输出其完整信息
4.实现查找功能,包括按姓名、学号查找
5.实现信息修改功能
6.按做题数目进行排序(选作)
7.其他功能可以自由扩展,多多益善 ^_^
8.程序一个函数实现一个功能
9.代码测试成功后贴在论坛上,大家互相学习借鉴
#include
#include
#include
int input();//实现学生信息的输入
int output();//实现学生信息的输出
int find();//实现学生信息的查找
int correct();//实现学生信息的修改
int sort();//实现学生成绩的排序并输出做题数超过150的学生的具体信息
int d = 0;//用于统计学生的人数,便于输出学生的信息
int find_num();//用于学号查找
int find_name();//用于姓名查找
struct date
{
int year;
int month;
int day;
};
struct acmer
{
char name[20];
char number[20];
char sex[2];
char phonenumber[11];
int sloved;
struct date birthday;
}stu[100];
struct acmer *p=stu;
main()
{
int n;
printf("请按键选择功能:\n");
printf("1、输入同学们的信息\t\t\t\t\t2、输出同学们的信息\n");
printf("3、查找某同学的信息\t\t\t\t\t4、修改某同学的信息\n");
printf("5、统计做出150道题的同学并输出其具体信息\t\t6、清屏\n");
scanf("%d",&n);
switch(n)
{
case 1: input();break;
case 2: output();break;
case 3: find();break;
case 4: correct();break;
case 5: sort();break;
case 6: system("cls");return main();
}
return 0;
}
int input()
{
*p = stu[0];
printf("请输入学生的学号:");
scanf("%s",p->number);
printf("请输入学生的姓名:");
scanf("%s",p->name);
printf("请输入学生的性别(男/女):");
scanf("%s",p->sex);
printf("请输入学生的做题数:");
scanf("%d",&p->sloved);
printf("请输出学生的出生日期(年月日):");
scanf("%d %d %d",&p->birthday.year,&p->birthday.month,&p->birthday.day);
printf("请输入学生的手机号:");
scanf("%s",p->phonenumber);
printf("是否需要继续输入(1/0):");
int c;
scanf("%d",&c);
switch(c)
{
case 1: d++;p++;return input();
case 0: d++;return main();
}
}
int output()
{
printf("学生 学号\t姓 名\t性别\t做题数\t出生年月日\t手 机 号\n");
printf("----------\t----------\t--\t----\t---- -- --\t-----------\n");
for(int i = 0;inumber,p->name,p->sex,p->sloved,p->birthday.year,p->birthday.month,p->birthday.day,p->phonenumber);break;}
}
if(f) printf("查找出错!未找到相关同学信息!");
printf("是否需要返回主菜单(1/0):");
int c;
scanf("%d",&c);
switch(c)
{
case 1: printf("\n");return main();
case 0: break;
}
}
int find_name()//用于姓名查找
{
int f;
char str[20];
printf("请输入学生姓名:");
scanf("%s",&str);
for(int i =0;inumber,p->name,p->sex,p->sloved,p->birthday.year,p->birthday.month,p->birthday.day,p->phonenumber);break;}
}
if(f) printf("查找出错!");
printf("是否需要返回主菜单(1/0):");
int c;
scanf("%d",&c);
switch(c)
{
case 1: printf("\n");return main();
case 0: break;
}
}
int correct()
{
int f;
char str[20];
printf("请输入要修改信息的学生的学号:");
scanf("%s",&str);
for(int i =0;inumber);
printf("请输入学生的姓名:");
scanf("%s",p->name);
printf("请输入学生的性别(男/女):");
scanf("%s",p->sex);
printf("请输入学生的做题数:");
scanf("%d",&p->sloved);
printf("请输出学生的出生日期(年月日):");
scanf("%d %d %d",&p->birthday.year,&p->birthday.month,&p->birthday.day);
printf("请输入学生的手机号:");
scanf("%s",p->phonenumber);
printf("修改成功!");
break;
}
}if(f) printf("未找到相关同学信息!");
printf("是否需要返回主菜单(1/0):");
int c;
scanf("%d",&c);
switch(c)
{
case 1: printf("\n");return main();
case 0: break;
}
}
int sort()
{
int f,n,i;
printf("想要查看超过多少分的人");
scanf("%d",&n);
for(i = 0;in)
{
f = 0;
printf("%s\t%s\t\t%s\t%d\t%d\t%d %d\t%s\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].sloved,stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day,stu[i].phonenumber);
}
}
if(f) printf("很可惜哎!没有人做题超过%d",n);
printf("是否需要返回主菜单(1/0):");
int c;
scanf("%d",&c);
switch(c)
{
case 1: printf("\n");return main();
case 0: break;
}
}