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