#include<stdio.h>
#include<string.h>
typedef struct student
{
int num;
char name[100];
float score;
}stu;
stu s[100];//结构体数组
void menu(void);//功能菜单
int xuehao_chazhao(int num);//检测学号是否冲突,不冲突返回1,冲突返回0
void add_stu(void);//增加学生信息count++
void dele_stu(void); //删除学生信息count--
void change_stu(void); //改变学生信息
void chazhao_stu(void); //查找学生信息
void look_allstu(void); //查看全部学生信息
int find_stu(int num);//寻找学生是否存在,按学号进行检索
int find_stu_i(int num);//寻找学生是否存在,并返回所在位置
int i;//菜单选择开关
int count=0;//系统人数累计
int main()
{
menu();
while(1)
{
printf("当前系统总学生人数为:%d人 \n",count);
printf("请输入想操作项目:");
scanf("%d",&i);
switch(i)
{
case 0:look_allstu();break;
case 1:add_stu() ;break;
case 2:dele_stu();break;
case 3:change_stu();break;
case 4:chazhao_stu(); break;
case 5:printf("欢迎您再次使用改系统,再见!\n");return 0;
}
}
}
void menu(void)//功能菜单
{
printf("*************************************************\n\n");
printf("操作号\t对应功能描述 *************************/\n");
printf("-------------------------------------------------/\n");
printf(" 0\t查看全部信息\t*************************/\n");
printf("-------------------------------------------------/\n");
printf(" 1\t增加学生信息\t*************************/\n");
printf("-------------------------------------------------/\n");
printf(" 2\t删除学生信息\t*************************/\n");
printf("-------------------------------------------------/\n");
printf(" 3\t修改学生信息\t*************************/\n");
printf("-------------------------------------------------/\n");
printf(" 4\t查找学生信息\t*************************/\n");
printf("-------------------------------------------------/\n");
printf(" 5\t退出学生系统\t*************************/\n");
printf("-------------------------------------------------/\n\n");
}
void add_stu(void) //增加学生信息
{
p1:printf("请输入需要增加的学生学号:");
scanf("%d",&s[count].num);
getchar();
// printf("输入学号后count当前值是:%d\n",count);
printf("请输入需要增加的学生姓名:");
gets(s[count].name);
// printf("输入姓名后count当前值是:%d\n",count);
printf("请输入需要增加的学生成绩:");
scanf("%f",&s[count].score);
getchar();
printf("输入成绩后count当前值是:%d\n",count);
printf("该生学号%d\t该生姓名%s\t该生成绩%.2f\n",s[count].num,s[count].name,s[count].score);
count++;//系统学生人数加1
// printf("三者都输入完成后count当前值是:%d\n",count);
// else if(xuehao_jc(s[count].num)==0)
// {
// printf("该生学号和系统中学生发生冲突\n");
// goto p1;
// }
printf("是否继续增加学生信息?:('Y'/'N')");
if(getchar()=='Y')
{
goto p1;
}
else
{
printf("欢迎下次使用此功能--------------\n");
}
}
void dele_stu(void) //删除学生信息
{
char KEY;
int i;
int num;
printf("请输入输入要删除的学生学号: \n");
scanf("%d",&num);
getchar();
i=find_stu_i(num);
if(find_stu(num)==1)
{
printf("改学生信息为: \n");
printf("学号:%d\n",s[i].num);
printf("姓名:%s\n",s[i].name);
printf("成绩:%.2f\n",s[i].score);
}
printf( "你确认要删除改同学的信息吗?(Y/N):");
scanf( "%c",&KEY);
if (KEY=='Y'|| KEY=='y')
{
for (i=i;i<count;i++)
{
s[i].num=s[i+1].num;
strcpy(s[i].name,s[i+1].name); //姓名挪动
s[i].score=s[i+1].score;
}
count--;//
}
}
void change_stu(void) //改变学生信息
{
char KEY;
int i;
int num;
int m;
printf("请输入待修改的学生学号:");
scanf("%d",&num);
getchar();
i=find_stu_i(num);
if(find_stu(num)==1)
{
printf("改学生信息为: \n");
printf("学号:%d\n",s[i].num);
printf("姓名:%s\n",s[i].name);
printf("成绩:%.2f\n",s[i].score);
printf( "你确认要修改该同学的信息吗?(Y/N):");
scanf( "%c",&KEY);
if (KEY=='Y'|| KEY=='y')
{
printf("请选择要修改的内容的编号修改全部0、修改学号1、修改名字2、修改成绩3)");
scanf("%d",&m);
switch(m)
{
case 0:
{
printf("请重新输入该学生全部信息:\n");
printf("学号:\n");
scanf("%d",&s[i].num);
getchar();
printf("姓名:\n");
scanf("%s",s[i].name);
printf("成绩:\n");
scanf("%f",&s[i].score);
}
break;
case 1:
{
printf("请输入需要修改的学生学号:");
scanf("%d",&s[i].num);
getchar();
}
break;
case 2:
{
printf("请输入需要修改的学生姓名:");
gets(s[i].name);
}
break;
case 3:
{
printf("请输入需要增加的学生成绩:");
scanf("%f",&s[i].score);
getchar();
}
break;
}
}
}
else
printf("没有该学生信息!\n");
}
void chazhao_stu(void) //查找学生信息
{
int flag;
int num;
int i;
p2: printf("请输入要查找同学的学号:\n");
scanf("%d",&num);
getchar();
for(i=0;i<count;i++)
{
if(s[i].num==num)
{
printf("查找成功!\n");
printf("改学生的学号为:%d\n",s[i].num);
printf("该学生的姓名为:%s\n",s[i].name);
printf("该学生的成绩为:%.2f\n",s[i].score);
flag=1;
break;
}
else
flag=0;
}
if(flag==0)
printf("未找到此人此人\n");
printf("是否继续查找学生信息?:('Y'/'N')");
if(getchar()=='Y')
{
goto p2;
}
else
{
printf("欢迎下次使用此功能--------------\n");
}
}
int find_stu(int num) //查找学生信息
{
int flag;
int i;
for(i=0;i<count;i++)
{
if(s[i].num==num)
{
flag=1;
break;
}
else
flag=0;
}
return flag;
}
int find_stu_i(int num) //查找某个学生的下标
{
int i;
for(i=0;i<count;i++)
if(s[i].num==num)
return i;
return -1;
}
void look_allstu(void) //查看全部学生信息
{
for(i=0;i<count;i++)
{
printf("学号%6d\t姓名%5s\t成绩%.2f\t\n",s[i].num,s[i].name,s[i].score);
}
}
初出茅庐的小李第14篇博客之嵌入式c语言实现一个简单学生管理系统
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.