67,732
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
struct MyStruct
{
int stunum; //学号
int great[3]; //成绩
char name[10]; //姓名
float ave; //平均成绩
int flag; //标志
}stu[1000];
int many=0; //获取录入学生的个数
//函数声明
void initial(); //初始界面
void Administrator(); //登录界面
void pubpil(); //介绍
void AdminInter(); // 登录界面
void pupInter(); //介绍界面
void scanfstu(); //输入学生信息
void printstu(); //输出学生信息
void sort(); //成绩排序
void find(); //查找学生信息
void amend(); //修改信息
void space(); //删除信息
void initial()
{
printf("*欢迎进入学生成绩管理系统*\n\n");
printf(" *请选择模式*\n\n");
printf(" 1.登录界面\n");
printf(" 2.介绍界面\n");
}
//登录界面
void AdminInter()
{
printf("*欢迎进入登录界面*\n\n");
printf(" *请选择具体服务*\n\n");
printf(" 1.输入学生信息\n");
printf(" 2.输出学生信息\n");
printf(" 3.学生成绩排序\n");
printf(" 4.查找学生信息\n");
printf(" 5.修改学生信息\n");
printf(" 6.删除学生信息\n");
printf(" 7.退出系统\n");
}
//输入学生信息
void scanfstu()
{
printf("*欢迎进入学生信息输入功能*\n\n");
printf("请输入学生的学号:");
scanf("%d",&stu[0].stunum);
printf("请输入学生的姓名:");
scanf("%s",stu[0].name);
printf("请输入学生的第一门成绩:");
int great;
float num=0;
while(1)
{ scanf("%d",&great);
if(great>100||great<0)
printf("请重新输入!!");
else
break;
}
num=num+great;
stu[many].great[0]=great;
printf("请输入学生的第二门成绩:");
while(1)
{ scanf("%d",&great);
if( great>100||great<0)
printf("请重新输入!!");
else
break;
}
num=num+great;
stu[many].great[1]=great;
printf("请输入学生的第三门成绩:");
while(1)
{ scanf("%d",&great);
if(great>100||great<0)
printf("请重新输入!!");
else
break;
}
num=num+great;
stu[many].great[2]=great;
stu[many].flag=1; //正常数据的标志
num=num/3;
stu[many].ave=num;
many++;
printf("\n该学生成绩已经录入,是否录入其他学生成绩?\n");
printf("\n1.继续\n");
printf("\n2.退出\n");
printf("\n请选择:");
int temp;
scanf("%d",&temp);
while(1)
{
if(temp==1)
{
system("cls");
scanfstu();
break;
}
else if(temp==2)
{
system("cls");
Administrator();
break;
}
else
{
printf("非法输入,重新选择");
}
}
}
//输出学生信息
void printstu()
{
printf(" *欢迎进入学生信息输出功能*\n\n");
printf("学号 姓名 第一门 第二门 第三门 平均分\n");
for(int i=0;i<many;i++)
{
printf("%6d",stu[i].stunum);
printf("%10s",stu[i].name);
printf("%8d",stu[i].great[0]);
printf("%8d",stu[i].great[1]);
printf("%8d",stu[i].great[2]);
printf("%9.2f",stu[i].ave);
printf("\n");
}
printf("请按任意键返回管理操作界面:");
getch();
system("cls");
Administrator();
}
//成绩排序
void sort()
{
int k;
printf(" *欢迎进入学生成绩排序功能*\n\n");
printf("学号 姓名 第一门 第二门 第三门 平均分\n");
for(int i=0;i<many;i++)
{
for(int j=0;j<many;j++) //min
{
if(stu[j].flag==1) //判断成绩是否输出
{ k=j;
if(stu[k].ave>stu[j].ave)
{
k=j;
}
}
}
stu[k].flag=2;
printf("%6d",stu[k].stunum);
printf("%10s",stu[k].name);
printf("%8d",stu[k].great[0]);
printf("%8d",stu[k].great[1]);
printf("%8d",stu[k].great[2]);
printf("%10.2f",stu[k].ave);
printf("\n");
}
for(int i=0;i<many;i++)
if(stu[i].flag==2)
stu[i].flag=1;
printf("请按任意键返回管理操作界面:");
getch();
system("cls");
Administrator();
}
//查找学生信息
void find()
{
printf(" *欢迎进入查找功能*\n\n");
printf("请输入要查找学生的姓名:");
char temp[10];
while(1)
{
scanf("%s",temp);
int i;
for(i=0;i<many;i++)
{
if(stu[i].flag==1)
{
if(strcmp(temp,stu[i].name)==0)
{
printf("%6d",stu[i].stunum);
printf("%10s",stu[i].name);
printf("%8d",stu[i].great[0]);
printf("%8d",stu[i].great[1]);
printf("%8d",stu[i].great[2]);
printf("%9.2f",stu[i].ave);
printf("\n");
break;
}
}
}
if(i==many)
printf("该学生不存在");
else
break;
}
printf("请按任意键返回管理操作界面:");
getch();
system("cls");
Administrator();
}
//修改信息
void amend()
{
printf(" *欢迎进入进入修改学生信息功能功能*\n\n");
printf("请输入你要修改的学生的学号:");
int temp,i;
while(1)
{
for(i=0;i<many;i++)
{
scanf("%d",&temp);
if(stu[i].flag==1)
{
if( temp==stu[i].stunum)
{
printf("*请选择要修改的数据");
printf(" 1.修改名字\n");
printf(" 2.修改学号\n");
printf(" 3.修改第一门成绩\n");
printf(" 4.修改第二门成绩\n");
printf(" 5.修改第三门成绩\n");
printf("请选择:");
int p;
scanf("%d",&p);
switch(p)
{
case 1:
{
printf("请输入新名字:");
scanf("%s",stu[i].name);
printf("名字修改完成");
break;
}
case 2:
{
printf("请输入新学号:");
scanf("%d",&stu[i].stunum);
printf("学号修改完成");
break;
}
case 3:
{
printf("请输入新的第一门成绩:");
scanf("%d",&stu[i].great[0]);
printf("第一门成绩修改完成");
break;
}
case 4:
{
printf("请输入新的第二门成绩:");
scanf("%d",&stu[i].great[1]);
printf("第二门成绩修改完成");
break;
}
case 5:
{
printf("请输入新的第三门成绩:");
scanf("%d",&stu[i].great[2]);
printf("第三门成绩修改完成");
break;
}
}
stu[i].ave=(stu[i].great[0]+ stu[i].great[1]+stu[i].great[2])/3;
break;
}
}
}
if(i==many)
printf("该学生不存在,请重新输入:");
else
break;
}
printf("请按任意键返回管理操作界面:");
getch();
system("cls");
Administrator();
}
//删除信息
void space()
{
printf(" *欢迎进入学生信息删除功能*\n\n");
printf("请输入你需要删除的学生的学号:");
int temp;
scanf("%d",&temp);
while(1)
{
int i;
for(i=0;i<many;i++)
{
if(stu[i].flag==1) //判断该数据是否被删除
{
if(temp==stu[i].stunum)
{
stu[i].flag=0; //表示该数据已被删除
break;
}
}
}
if(i==many)
printf("该学生不存在,请重新输入:");
else
break;
}
printf("该学生信息已删除!!");
printf("请按任意键返回管理操作界面:");
getch();
system("cls");
Administrator();
}
//登录界面
void Administrator()
{
AdminInter();
while(1)
{
printf("请输入你需要进行的操作序号:");
int temp;
scanf("%d",&temp);
switch(temp)
{
case 1:
{
system("cls");
scanfstu();
break;
}
case 2:
{
system("cls");
printstu();
break;
}
case 3:
{
system("cls");
sort();
break;
}
case 4:
{
system("cls");
find();
break;
}
case 5:
{
system("cls");
amend();
break;
}
case 6:
{
system("cls");
space();
break;
}
case 7:
{
exit(0);
}
}
}
}
//介绍
void pubpil()
{
printf("本程序由学生鬲宇航耗时半天完成");
getch();
}
int main()
{
initial();
while(1)
{
printf("请输入你需要进入的模式:");
int temp;
scanf("%d",&temp);
if(temp==1)
{ system("cls");
Administrator();
break;
}
else if(temp==2)
{ system("cls");
pubpil();
break;
}
else
{
printf("没有该选项,请重新输入!!");
}
}
return 0;
}