C语言:结构体测试程序 -- 学生信息管理系统
1. 菜单功能
2. 添加学生信息功能
3. 学生姓名列表
4. 所有学生详细列表功能
5. 按姓名查找功能
6. 按年龄查找功能
7. 按姓别查找功能
8. 按身高查找功能
9. 删除学生信息功能
10. 退出功能
- /*
- *1. 菜单功能
- *2. 添加学生信息功能
- *3. 学生姓名列表
- *4. 所有学生详细列表功能
- *5. 按姓名查找功能
- *6. 按年龄查找功能
- *7. 按姓别查找功能
- *8. 按身高查找功能
- *9. 删除学生信息功能
- *10. 退出功能
- *
- * */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /*定义一个学生信息结构体*/
- struct student
- {
- char name[20];
- int age;
- int sex;
- int height;
- };
- /*定义全局变量*/
- int i;
- struct student stu[100];
- /*添加用户*/
- struct student addstu(void)
- {
- struct student stu;
- char name[20];
- printf("\n");
- printf("Add a student:\n");
- printf("------------------------------\n");
- printf("input name:\n");
- scanf("%s", name);
- strcpy(stu.name, name);
- printf("input age:\n");
- scanf("%d", &stu.age);
- printf("input sex(0:male;1:female)\n");
- scanf("%d", &stu.sex);
- printf("input height:\n");
- scanf("%d", &stu.height);
- printf("------------------------------\n\n");
- return stu;
- }
- /*显示用户信息*/
- void showstu(struct student stu)
- {
- printf("------------------------------\n");
- printf("Name: %s\n", stu.name);
- printf("Age: %d\n", stu.age);
- printf("Sex(0:male;1:female): %d\n:", stu.sex);
- printf("Height: %d\n", stu.height);
- printf("------------------------------\n\n");
- }
- /*删除用户
- *
- *说明:
- *依用户名来查找需要删除的用户,
- *找到相对应的用户信息后,
- *将它后面一位学生的信息赋值给它,
- *依次将后面的的学生信息都向前移一位,
- *这样就算是删掉了一位用户
- * */
- void delstu()
- {
- char name[20];
- int j,k,t;
- t=0;
- printf("please input a name:\n");
- scanf("%s", name);
- for(j=0;j<i;j++)
- {
- if(!strcmp(stu[j].name, name))
- {
- if(j==i) //如果删除的是最后一次,直接将i减一就行
- {
- i--;
- t++;
- }
- else
- {
- for(k=j;k<i-1;k++)
- {
- stu[k] = stu[k+1]; /*如果删除的不是最后一次,依次将后面用户赋值给前一次用户*/
- }
- t++;
- i--;
- }
- }
- }
- if(t==0)
- {
- printf("------------------------------\n");
- printf("There is not such student!\n\n");
- printf("------------------------------\n]n");
- }
- else
- {
- printf("------------------------------\n");
- printf("删除成功!\n");
- printf("------------------------------\n\n");
- }
- }
- /*依姓名查找学生信息*/
- void selbyname()
- {
- char name[20];
- int j,t;
- t=0;
- printf("please input a name:\n");
- scanf("%s", name);
- for(j=0;j<i;j++)
- {
- if(!strcmp(stu[j].name, name))/*strcmp()比较后,如果相同返回0,而我们需要的是1,所以取反*/
- {
- showstu(stu[j]);
- t++;
- }
- }
- if(t==0)
- {
- printf("------------------------------\n");
- printf("There is no such student!\n");
- printf("------------------------------\n\n");
- }
- }
- /*依年龄查找学生信息*/
- void selbyage()
- {
- int j,k,t,n;
- n=0;
- printf("input a top age:\n");
- scanf("%d", &j);
- printf("input a bottom age:\n");
- scanf("%d", &k);
- for(t=0;t<i;t++)
- {
- if(stu[t].age > k && stu[t].age < j)
- {
- showstu(stu[t]);
- n++;
- }
- }
- if(n==0)
- {
- printf("------------------------------\n");
- printf("There is no such student!\n\n");
- printf("------------------------------\n\n");
- }
- }
- /*依姓别查找学生信息*/
- void selbysex()
- {
- int j,k,n;
- n=0;
- printf("input sex:\n");
- scanf("%d", &j);
- for(k=0;k<i;k++)
- {
- if(stu[k].sex == j)
- {
- showstu(stu[k]);
- n++;
- }
- }
- if(n==0)
- {
- printf("------------------------------\n");
- printf("There is no such student!\n\n");
- printf("------------------------------\n\n");
- }
- }
- /*依身高查找学生信息*/
- void selbyheight()
- {
- int j,k,m,n;
- n=0;
- printf("input a top height:\n");
- scanf("%d", &j);
- printf("input a bottom height:\n");
- scanf("%d", &k);
- for(m=0;m<i;m++)
- {
- if(stu[m].height < j && stu[m].height > k)
- {
- showstu(stu[m]);
- n++;
- }
- }
- if(n==0)
- {
- printf("------------------------------\n");
- printf("There is no such a student!\n\n");
- printf("------------------------------\n\n");
- }
- }
- /*菜单功能,供用户选择*/
- int menu()
- {
- int m;
- printf("Please select a menu:\n");
- printf(" 1. Add a student.\n");
- printf(" 2. List all studnet name.\n");
- printf(" 3. List all informations of students.\n");
- printf(" 4. Select a student by name.\n");
- printf(" 5. Select students by age.\n");
- printf(" 6. Select students by sex.\n");
- printf(" 7. Select sutdnets by height.\n");
- printf(" 8. Delete a student.\n");
- printf(" 9. Exit.\n");
- scanf("%d", &m);
- if(m==9)
- {
- printf("------------------------------\n");
- printf("Beybey!\n");
- printf("------------------------------\n\n");
- exit(1);
- }
- if(m<1 || m>9)
- {
- printf("------------------------------\n");
- printf("error, input again!\n");
- printf("------------------------------\n\n");
- return;
- }
- else
- {
- return m;
- }
- }
- /*主程序*/
- main()
- {
- int j,k;
- i=0;
- while(1)
- {
- j = menu();
- if(j==1)
- {
- stu[i] = addstu();
- i++;
- }
- if(j==2)
- {
- printf("\n");
- for(k=0;k<i;k++)
- {
- printf("%d. %s\n", k, stu[k].name);
- }
- }
- if(j==3)
- {
- printf("\n");
- for(k=0;k<i;k++)
- {
- showstu(stu[k]);
- }
- }
- if(j==4)
- {
- selbyname();
- }
- if(j==5)
- {
- selbyage();
- }
- if(j==6)
- {
- selbysex();
- }
- if(j==7)
- {
- selbyheight();
- }
- if(j==8)
- {
- delstu();
- }
- }
- }
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20