学习学生管理系统之初级

#include <stdio.h>
#include <string.h>
void menu();
int add();
int dele();
int change();
int seek();
int xianshi(char m);
//结构体
struct student
{
int num;
char name[10];
float score;
};
struct student stu[100];//变成全局变量,以便操作时,实时更新
int count=0;//录入的学生人数
/************************************
函数名称:int main()
函数功能:主函数
函数返回值:无参有返
函数成员:
**************************************/
int main()
{ int i,j,z;
while(1)
{
printf(“当前学生信息管理系统有%d人\n”,count);
menu();
printf(“请选择方式:”);
scanf("%d",&i);
switch(i)
{
case 1:add();break;
case 2:dele();break;
case 3:change();break;
case 4:seek();break;
case 5:
printf(“请确认是否退出:0–是 1–否”);
scanf("%d",&j);
if(j0)
{
printf("\n欢迎下次使用");
return 0;
}
case 0:
for(i=0;i<count;i++)
{
printf(“学号:%d\t”,stu[i].num);
printf(“姓名:%s\t”,stu[i].name);
printf(“成绩:%.2f\t”,stu[i].score);
printf("\n");
}
printf(“是否离开该界面:0–是 1–否\n”);
scanf("%d",&z);
if(z
0)
return 0;
else break;
}
}

}
void menu()
{
printf("******************\n");
printf(“1.添加学生信息\n”);
printf(“2.删除学生信息\n”);
printf(“3.修改学生信息\n”);
printf(“4.查看学生信息\n”);
printf(“5.退出学生管理系统\n\n”);
}
/************************************
函数名称:int add()
函数功能:进行添加
函数返回值:无参有返
函数成员:
**/
int add()
{
int i,j;
p1: printf(“请输入学号:”);
scanf("%d",&stu[count].num);
for(i=0;i<count;i++)
{
if(stu[i].num==stu[count].num)
{
printf(“该学号以存在\n\n”);
goto p1;
break;
}
}
printf(“请输入姓名:”);//姓名可以相同,没必要进行在进行判断
scanf("%s",stu[count].name);
printf(“请输入成绩:”);
scanf("%f",&stu[count].score);
count++;
printf(“是否继续添加:0–是 1–否\n”);
scanf("%d",&j);
switch(j)
{
case 0:return 0;
case 1:add();break;
}
}
/

函数名称:int dele()
函数功能:进行删除
函数返回值:无参有返
函数成员:hao -学号
ming-姓名
**/
int dele()
{
int i,j,hao;
char ming[100];
printf(“请输入删除方式:0–学号 1–姓名\n”);
scanf("%d",&i);
switch(i)
{
case 0:
printf(“请输入学号:”);
scanf("%d",&hao);
for(i=0;i<count;i++)
{
if(haostu[i].num)
{
while(i<count)
{
stu[i].num=stu[i+1].num;
strcpy(stu[i].name,stu[i+1].name);
stu[i].score=stu[i+1].score;
i++;
}
}
}
if(i
count)
{
printf(“该学生不存在\n\n”);break;
}
else
{
count–;
break;
}
case 1:
printf(“请输入姓名:”);
scanf("%s",ming);
for(i=0;i<count;i++)
{
if(mingstu[i].name)
{
while(i<count)
{
stu[i].num=stu[i+1].num;
strcpy(stu[i].name,stu[i+1].name);
stu[i].score=stu[i+1].score;
i++;
}
}
}
if(i
count)
{
printf(“该学生不存在\n\n”);break;
}
else
{
count–;
break;
}
}
printf(“是否继续删除:0–是 1–否\n”);
scanf("%d",&j);
switch(j)
{
case 0:return 0;
case 1:dele();break;
}
}
/

函数名称:int change()
函数功能:进行修改
函数返回值:无参有返
函数成员:num -学号
ch-xianshi()函数的返回值
**************************************/
int change()
{
int i,j,ch,num;
printf(“请输入学号:”);//修改时,需要查找修改人的学号,然后找到该学生,在进行相关修改
scanf("%d",&num);
ch=xianshi(num);
printf("\n");
printf(“请输入修改内容:0–学号 1–姓名 2–成绩\n”);
scanf("%d",&i);
switch(i)
{
case 0:
printf(“请输入修改的学号:”);
scanf("%d",&stu[ch].num);
break;
case 1:
printf(“请输入修改的姓名:”);
scanf("%s",stu[ch].name);break;
case 2:
printf(“请输入修改的成绩:”);
scanf("%f",&stu[ch].score);break;
}

printf("是否继续修改:0--是  1--否\n");
scanf("%d",&j);
switch(j)
{
	case 0:return 0;
	case 1:change();break;
}

}
/************************************
函数名称:int seek();
函数功能:进行查找
函数返回值:无参有返
函数成员:num -学号
score-成绩
name[100]-姓名
***/
int seek()
{
int i,j;
int num,score;
char name[100];
printf(“请输入查找方式:0–学号 1–姓名 2–成绩\n”);
scanf("%d",&i);
switch(i)
{
case 0:printf(“请输入学号:”);scanf("%d",&num);xianshi(num);break;
case 1:printf(“请输入姓名:”);scanf("%s",name);xianshi((name));break;
case 2:printf(“请输入成绩”);scanf("%f",&score);xianshi(score);break;
}
printf("\n");
printf(“是否继续查找:0–是 1–否\n”);
scanf("%d",&j);
switch(j)
{
case 0: return 0;
case 1:seek();break;
}
}
/

函数名称:int xianshi(char m);
函数功能:进行查找时根据学号或者是成绩或姓名进行显示
函数返回值:有参有返
函数成员:flag 标志显示从开始到结尾是否到最后
**************************************/
int xianshi(char m)
{
int i,flag=0;
int xuhao;
for(i=0;i<count;i++)
{
if(mstu[i].num||m*(stu[i].name)||mstu[i].score)
{
xuhao=i;
printf(“学号:%d\t”,stu[i].num);
printf(“姓名:%s\t”,stu[i].name);
printf(“成绩:%.2f\t”,stu[i].score);
flag++;
}
}
if(i
count&&flag==0)
printf(“该学生不存在\n\n”);
else
return xuhao;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值