您的位置:首页 > 其它

[C] 结构体测试程序 -- 学生信息管理系统

2012-07-09 01:20 483 查看
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();
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐