#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語言實現一個簡單學生管理系統
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.