[C] 结构体测试程序 -- 学生信息管理系统
2012-07-09 01:20
483 查看
1. 菜单功能
2. 添加学生信息功能
3. 学生姓名列表
4. 所有学生详细列表功能
5. 按姓名查找功能
6. 按年龄查找功能
7. 按姓别查找功能
8. 按身高查找功能
9. 删除学生信息功能
10. 退出功能
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(); } } }
相关文章推荐
- 小程序:学生信息管理系统--C语言版本
- 第九周阅读程序简单的学生信息管理系统
- 第十周课后实践:阅读程序--学生信息管理系统
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统?
- 第九周项目零:阅读程序(1):简单C++学生信息管理系统
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统
- python下学生管理系统:从文件中读取30位学生的信息(含邮箱),并实现简单的增、删、查找、统计(邮箱使用人数)。---附程序哦!
- PB学习笔记之二pb程序系统分析学生信息管理系统
- 学生信息管理系统简易版(结构体)
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统?
- 【C项目】 文件,结构体,链表,排序, 学生信息管理系统
- 第九周 课后实践:阅读程序——(1)简单的学生信息管理系统
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统
- 基于linux socket 简单学生信息管理系统server程序
- 自己写的第一个程序————学生信息管理系统
- 基于linux socket 简单学生信息管理系统client程序
- 程序阅读:简单C++学生信息管理系统
- 《C++语言基础》程序阅读——学生信息管理系统
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统
- 第九周阅读程序一:学生信息管理系统