资源描述
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"conio.h"
#define N 10
caidan();
int x;
//定义构造体数组(确定学生人数)
struct students
{
char num[50];
char name[50];
char sex[5];
int age;
float sco1;
float sco2;
float sco3;
float sum;
float ave;
}stu[N],del;
//录入学生成绩
void lr()
{
int caidan();
int i=0,m=0;
char a;
system("cls");
for(i=0;i<N;i++)
{
printf("请输入需要添加旳学生资料:\n");
printf("学号:");
scanf("%s",&stu[i].num);
printf("姓名:");
scanf("%s",&stu[i].name);
printf("性别:");
scanf("%S",&stu[i].sex);
printf("年龄:");
scanf("%d",&stu[i].age);
printf("请输入学生旳三门成绩:\n");
printf("高数:");
scanf("%f",&stu[i].sco1);
printf("英语:");
scanf("%f",&stu[i].sco2);
printf("计算机:");
scanf("%f",&stu[i].sco3);
stu[i].sum=stu[i].sco1+stu[i].sco2+stu[i].sco3;
stu[i].ave=stu[i].sum/3;//求平均成绩
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
printf("与否继续添加:y或n\n");
scanf("%c",&a);
scanf("%c",&a);
m++;
if (a=='n'||a=='N')
{
system("cls");break;
}
}
x=m;
caidan();
}
//查询学生信息
void cx()
{
int i;
char num[100];
printf("请输入要查找旳学生学号:\n");
scanf("%s",num);
for(i=0;i<N;i++)
if(strcmp(stu[i].num,num)==0)//strcmp比较字符串S1和S2,S1<S2返回负数;S1=S2返回0;S1>S2返回正数
{
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
break;
}
if(i==N)
printf("查找不到!请重新输入!\n");
getch();
system("cls");
caidan();
}
//修改学生信息
void xg()
{
char a,i=0;
printf("请输入要修改旳学生学号:\n");
scanf("%s",stu[i].num);
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
printf("姓名:");
scanf("%s",&stu[i].name);
printf("性别:");
scanf("%S",&stu[i].sex);
printf("年龄:");
scanf("%d",&stu[i].age);
printf("请输入学生旳三门成绩:\n");
printf("高数:");
scanf("%f",&stu[i].sco1);
printf("英语:");
scanf("%f",&stu[i].sco2);
printf("计算机:");
scanf("%f",&stu[i].sco3);
stu[i].sum=stu[i].sco1+stu[i].sco2+stu[i].sco3;
stu[i].ave=stu[i].sum/3;//求平均成绩
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
printf("与否确认修改:y或n\n");
scanf("%c",&a);
scanf("%c",&a);
if (a=='Y'||a=='y')
{
system("cls");
caidan();
}
}
//删除学生信息
void sc()
{
int i,a;
char num[100];
printf("请输入需删除旳学生学号:\n");
scanf("%s",num);
for(i=0;i<N;i++)
if(strcmp(stu[i].num,num)==0)//strcmp比较字符串S1和S2,S1<S2返回负数;S1=S2返回0;S1>S2返回正数
{
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
printf("确认与否删除该学生数据(1是、2否)\n");
scanf("%d",&a);
if(a==1)
{
stu[i]=del;
printf("信息已删除,按任意键返回...\n");
break;
}
else break;
}
if(i==N)
printf("您输入旳信息不存在!\n");
getch();
system("cls");
caidan();
}
//按照高数成绩排序
void gs()
{
int i,j;
int caidan();
struct students del;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(stu[j].sco1>stu[i].sco1)
{
del=stu[j];
stu[j]=stu[i];
stu[i]=del;
}
for(i=0;i<x;i++)
{
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
}
printf("排序已完毕,按任意键返回...\n");
getch();
system("cls");
caidan();
}
//按照英语成绩排序
void yy()
{
int i,j;
struct students del;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(stu[j].sco2>stu[i].sco2)
{
del=stu[j];
stu[j]=stu[i];
stu[i]=del;
}
for(i=0;i<x;i++)
{
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
}
printf("排序已完毕,按任意键返回...\n");
getch();
system("cls");
caidan();
}
//按照计算机成绩排序
void jsj()
{
int i,j;
struct students del;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(stu[j].sco3>stu[i].sco3)
{
del=stu[j];
stu[j]=stu[i];
stu[i]=del;
}
for(i=0;i<x;i++)
{
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
}
printf("排序已完毕,按任意键返回...\n");
getch();
system("cls");
caidan();
}
//按照总成绩排序
void zf()
{
int i,j;
struct students del;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(stu[j].sum>stu[i].sum)
{
del=stu[j];
stu[j]=stu[i];
stu[i]=del;
}
for(i=0;i<x;i++)
{
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
}
printf("排序已完毕,按任意键返回...\n");
getch();
system("cls");
caidan();
}
//平均成绩排序
void ave()
{
int i,j;
struct students del;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(stu[j].ave>stu[i].ave)
{
del=stu[j];
stu[j]=stu[i];
stu[i]=del;
}
for(i=0;i<x;i++)
{
printf("\n**********************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n**********************************************************************\n");
printf(" %s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
}
printf("排序已完毕,按任意键返回...\n");
getch();
system("cls");
caidan();
}
//学生信息排序
void px()
{
int a;
printf("请输入排序根据(1为高数,2为英语,3为计算机,4为总分,5为平均分)\n");
scanf("%d",&a);
switch (a)
{
case 1:system("cls");gs();break;
case 2:system("cls");yy();break;
case 3:system("cls");jsj();break;
case 4:system("cls");zf();break;
case 5:system("cls");ave();break;
default:printf(" ");break;
}
}
//退出系统
void tc()
{
printf("按任意键退出...");
exit(0);
}
//登陆界面,输入密码123
void mima()
{
int mima;
printf("\n****************************************************************\n");
printf("\n****************************************************************\n");
printf("\n** ╭⌒╮¤ ` **\n");
printf("\n** ╭╭ ⌒╮ ●╭○╮ **\n");
printf("\n** ╰ ----╯/█∨█\ **\n");
printf("\n** ~~~~~~~~~~∏~~∏~~~~~~~~~~~ **\n");
printf("\n** ┏━━━━━━━━━━━━┓ **\n");
printf("\n** ┃欢迎登陆学生成绩管理系统┃ **\n");
printf("\n** ┗━━━━━━━━━━━━┛ **\n");
printf("\n****************************************************************\n");
printf("\n****************************************** Made by 5 groups **\n");
printf("\n****************************************************************\n");
printf("请输入三位数字密码\n");
for(;;)
{
scanf("%d",&mima);
if (mima==123) break;
else printf("密码错误,请重新输入\n");
}
system("cls");
}
//选择函数
void xz()
{
int num;
scanf("%d",&num);
switch(num)
{
case 1:system("cls");lr();break;
case 2:system("cls");cx();break;
case 3:system("cls");sc();break;
case 4:system("cls");px();break;
case 5:system("cls");xg();break;
case 6:system("cls");tc();break;
default:printf(" ");break;
}
}
//成功登陆管理界面
int caidan()
{
int n;
printf("\n**============================================================**\n");
printf("\n 成功登陆学生成绩管理系统 \n");
printf("\n****************************************************************\n");
printf("\n 1、录入学生信息及成绩 \n");
printf("\n 2、查询学生信息及成绩 \n");
printf("\n 3、删除学生信息及成绩 \n");
printf("\n 4、排序学生信息及成绩 \n");
printf("\n 5、修改学生信息及成绩 \n");
printf("\n 6、退出学生信息及成绩 \n");
printf("\n================================================================\n");
printf("请输入1--6选择操作:");
xz();
}
//主函数
main()
{
mima();
caidan();
}
展开阅读全文