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();
}
}
}