#include <stdio.h>
#include <string.h>
int Menu(void);
void Add(void);
void Printf(void);
void pdd(void);
void dsm(void);
void lb(void);
void lbw(void);
struct STU{
char name[20];
int id;
float score;
};
struct STU stu[100];//定义一个结构体数组
int count=0;
int main()
{
while(1)
{
int res = Menu();
switch(res)
{
case 1:Add();break;
case 2:pdd();break;
case 3:lb();break;
case 4:dsm();break;
case 5:lbw();break;
case 6:Printf();break;
case 0:return 0;
}
}
return 0;
}
/******
函数功能:添加学生信息
用学号判断该学生是否已存在:
不存在,添加
存在,结束
******/
void Add(void)
{
printf("请输入要添加的学号:\n");
int num,i;
scanf("%d",&num);
for(i=0;i<count;i++)
{
if(num == stu[i].id)
{
printf("该学号已被添加,返回主菜单\n");
return;
}
}
stu[i].id = num;
printf("请输入要添加的姓名:\n");
scanf("%s",stu[i].name);
printf("请输入要添加的成绩:\n");
scanf("%f",&stu[i].score);
count++;
printf("添加学生信息成功\n");
}
/******
函数功能:打印学生信息
******/
void Printf(void)
{
printf("当前系统有%d名学生\n",count);
printf("学号\t姓名\t成绩\n");
for(int i=0;i<count;i++)
{
printf("%d\t%s\t%.2f\n",stu[i].id,stu[i].name,stu[i].score);
}
}
int Menu(void)//菜单函数
{
printf("**********学生管理系统**********\n");
printf("*********1.添加学生信息**********\n");
printf("*********2.删除学生信息**********\n");
printf("*********3.修改学生信息**********\n");
printf("*********4.查找学生信息**********\n");
printf("*********5.排序学生信息**********\n");
printf("*********6.遍历学生信息**********\n");
printf("**********0.退出系统***********\n");
printf("请输入要完成的操作:\n");
int num;
scanf("%d",&num);
return num;
}
/******
函数功能:删除学生信息
******/
void pdd(void)
{
printf("请输入要删除的学号:\n");
int num,i;
scanf("%d",&num);
for(i=0;i<count;i++)
{
if(num == stu[i].id)
{
printf("%d\t%s\t%.2f\n",stu[i].id,stu[i].name,stu[i].score);
printf("是否确认!1 or 0\n");
int j;
scanf("%d",&j);
if(j=1)
{
for(int m=num;m<count;m++)
//stu[i].id=0;
//strcpy(stu[i].name,"0");
//stu[i].score=0.00;
{
stu[m-1]=stu[m];
}
count--;
printf("删除成功\n");
}
return;
}
}
}
/******
函数功能:查找学生信息
******/
void dsm(void)
{
printf("请输入要查找的学号:\n");
int num,i;
scanf("%d",&num);
for(i=0;i<count;i++)
{
if(num == stu[i].id)
{
printf("%d\t%s\t%.2f\n",stu[i].id,stu[i].name,stu[i].score);
return;
}
}
}
/******
函数功能:修改学生信息
******/
void lb(void)
{
printf("请输入学号:\n");
int num,i;
scanf("%d",&num);
for(i=0;i<count;i++)
{
if(num == stu[i].id)
{
printf("%d\t%s\t%.2f\n",stu[i].id,stu[i].name,stu[i].score);
printf("是否修改!1 or 0\n");
int j;
scanf("%d",&j);
if(j=1)
{
printf("请输入要修改的姓名:\n");
scanf("%s",stu[i].name);
printf("请输入要修改的成绩:\n");
scanf("%f",&stu[i].score);
printf("添加学生信息成功\n");
}
return;
}
}
}
/******
函数功能:排序学生信息
******/
void lbw(void)
{
struct STU tmp;
int num,i,j;
for(i=1;i<count;i++)
{
for(j=0;j<count-1;j++)
{
if(stu[j].score<stu[j+1].score)
{
tmp = stu[j];
stu[j]= stu[j+1];
stu[j+1]= tmp;
}
}
}
}