文档库 最新最全的文档下载
当前位置:文档库 › 完整版成绩管理系统

完整版成绩管理系统

#include "stdio.h"
#include "string.h"
#include "stdlib.h" //动态分配和随机函数文件
void playmenu();
struct rain{
char name[20];
int number;
char sex[10];
int china;
int english;
int math;
};
int lurustudent(struct rain s[],int n);
void output(struct rain s[],int n);
void zhuxiugai(struct rain s[],int n);
void xiugaimenu();
void xiugai();
void xiugaixingming(struct rain s[],int n,int m);
void xiugaixingbie(struct rain s[],int n,int m);
void xiugaixuehao(struct rain s[],int n,int m);
void xiugaiyuwen(struct rain s[],int n,int m);
void xiugaimach(struct rain s[],int n,int m);
void xiugaienglish(struct rain s[],int n,int m);
void paixuzhumenu();
void paixuxuanze(struct rain s[],int n);
void paixuyuwen(struct rain s[],int n);
void paixumath(struct rain s[],int n);
void paixuenglish(struct rain s[],int n);
void paixuzongfen(struct rain s[],int n);
int add(struct rain s[],int n);
int dele(struct rain s[],int n);
void look(struct rain s[],int n);
void baocun(struct rain a[],int x);
int duqu(struct rain a[]);
void output2(struct rain s[],int n);
void mimaxitong(char n[]);
void menu();
int duqumima(char n[]);
void xiugaimima(char n[]);
void baocunmima(char n[]);
void mimazhu();
main()
{
int s;
static char mima[20];
static struct rain e[60];
int n=0;
char choice;
s=duqumima(mima);
mimaxitong(mima);
s=duqumima(mima);
while(1)
{ static char str[20];
int b=0;
fflush(stdin);
system("cls");
printf("--------欢迎进入V4.0成绩管理系统--------\n");
playmenu();
printf("请选择一项功能\n");
scanf("%s",&str);
b=strlen(str);
if(b!=1)
{
printf("对不起,选择有误\n");
system("pause");continue;
}
choice=str[0];
switch(choice)
{
case '1':n=lurustudent(e,60);
break;
case '2':output(e,n);
break;
case '3':zhuxiugai(e,n);
break;
case '4':paixuxuanze(e,n);
break;
case '5':n=add(e,n);
break;
case '6':n=dele(e,n);
break;
case '7':look(e,n);
break;
case '8':baocun(e,n);
break;
case '9':n=duqu(e);
break;
case '0':
exit(0);
case '#':mimazhu();
break;

default:
{
printf("对不起,选择有误\n");
system("pause");
break;
}

}

}
}

void xiugai(struct rain s[],int n,int m)
{
int b=1;
while(b==1)
{int choice;
printf("请选择你要修改的信息\n");
system("cls");
fflush(stdin);
output2(s,n);
xiugaimenu();
scanf("%d",&choice);
switch(choice)
{
case 1:xiugaixingming(s,n,m);
break;
case 2:xiugaixingbie(s,n,m);
break;
case 3:xiugaixuehao(s,n,m);
break;
case 4:xiugaiyuwen(s,n,m);
break;
case 5:xiugaimach(s,n,m);
break;
case 6:xiugaienglish(s,n,m);
break;
case 7:b=0;
break;
default:
{
printf("对不起,选择有误\n");
system("pause");
}
}
}
}



void paixuxuanze(struct rain s[],int n)
{
if(n==0)
{
printf("请先录入成绩\n");system("pause");
}
else
{
while(1)
{
int choice;
{system("cls");
paixuzhumenu();
printf("请选择排序方法\n");
fflush(stdin);
scanf("%d",&choice);
}
switch(choice)
{
case 1:paixuyuwen(s,n);
break;
case 2:paixumath(s,n);
break;
case 3:paixuenglish(s,n);
break;
case 4:paixuzongfen(s,n);
break;
case 0:
system("pause");
return;
default:
{
printf("对不起,选择有误\n");
system("pause");
}
}

}system("pause");
}
}


int lurustudent(struct rain s[],int n)
{
int m,i;
printf("你想要录入学生的个数");
scanf("%d",&m);
for(i=0;i{
printf("请输入该学生姓名");
scanf("%s",&s[i].name);
printf("请输入该学生性别");
scanf("%s",&s[i].sex);
printf("请输入该学生学号");
scanf("%d",&s[i].number);
printf("请输入该学生语文成绩");
scanf("%d",&s[i].china);
printf("请输入该学生数学成绩");
scanf("%d",&s[i].math);
printf("请输入该学生英语成绩");
scanf("%d",&s[i].english);
}
return m;
}
void output(struct rain s[],int n)
{if(n==0)
{printf("请先录入成绩\n");system("pause");
}
else
{
int i;
printf("序列号 姓名 性别 学号 语文成绩 数学成绩 英语成绩 总成绩\n");
for(i=0;i{
printf("%6d",i+1);
printf("%6s",s[i].name);
printf("%8s",s[i].sex);
printf("%8d",s[i].number);
printf("%9d",s[i].china);
printf("%9d",s[i].math);
printf("%9d",s[i].english);
printf("%9d",s[i].china+s[i].math+s[i].english);
printf("\n");
}system("pause");
}
}



void zhuxiugai(struct rain s[],int n)
{if(n==0)
{printf("请先录入成绩\n");system("pause");;
}
else
{
int m; int i;
printf("序列号 姓名 性别 学号 语文成绩 数学成绩 英语成绩 总成绩\n");
for(i=0;i{
printf("%6d",i+1);
printf("%6s",s[i].name);
printf("%8s",s[i].sex);
printf("%8d",s[i].number);
printf("%9d",s[i].china);
printf("%9d",s[i].math);
printf("%9d",s[i].english);
printf("%9d",s[i].china+s[i].math+s[i].english);
printf("\n");
}
printf("请输入你要修改人员的序列号");
scanf("%d",&m);
if(m>0&&m<=n)
{xiugai(s,n,m);}
else
{
printf("对不起,选择错误\n");
system("pause");;
}
}
}

void xiugaixingming(struct rain s[],int n,int m)
{
int in;
char d[20];
printf("请输入改后的姓名");
scanf("%s",&d);
fflush(stdin);
for(in=0;in{
if(in==(m-1))
{
strcpy(s[in].name,d);
}
}printf("修改成功\n");system("pause");;
}
void xiugaixingbie(struct rain s[],int n,int m)
{
int in;
char d[20];
printf("请输入改后的性别");
scanf("%s",&d);
fflush(stdin);
for(in=0;in{
if(in==(m-1))
{
strcpy(s[in].sex,d);
}
}printf("修改成功\n");syste

m("pause");;
}
void xiugaixuehao(struct rain s[],int n,int m)
{
int in;
int d;
printf("请输入改后的学号");
scanf("%d",&d);
fflush(stdin);
for(in=0;in{
if(in==(m-1))
{
s[in].number=d;
}
}printf("修改成功\n");system("pause");;
}
void xiugaiyuwen(struct rain s[],int n,int m)
{
int in;
int d;
printf("请输入改后的语文成绩");
scanf("%d",&d);
fflush(stdin);
for(in=0;in{
if(in==(m-1))
{
s[in].china=d;
}
}printf("修改成功\n");system("pause");;
}
void xiugaimach(struct rain s[],int n,int m)
{
int in;
int d;
printf("请输入改后的数学成绩");
scanf("%d",&d);
fflush(stdin);
for(in=0;in{
if(in==(m-1))
{
s[in].math=d;
}
}printf("修改成功\n");system("pause");;
}
void xiugaienglish(struct rain s[],int n,int m)
{
int in;
int d;
printf("请输入改后的英语成绩");
scanf("%d",&d);
fflush(stdin);
for(in=0;in{
if(in==(m-1))
{
s[in].english=d;
}
}
printf("修改成功\n");system("pause");;
}
void paixuyuwen(struct rain s[],int n)
{
if(n==0)
{printf("请先录入成绩\n");system("pause");;
}
else
{
int in,i,j;
struct rain temp;
struct rain r[60];
for(in=0;in{
r[in]=s[in];
}
for(i=0;i{
for(j=0;j{
if(r[j].china{temp=r[j];r[j]=r[j+1];r[j+1]=temp;
}
}
}
printf("序列号 姓名 性别 学号 语文成绩 数学成绩 英语成绩 总成绩\n");
for(i=0;i{
printf("%6d",i+1);
printf("%6s",r[i].name);
printf("%8s",r[i].sex);
printf("%8d",r[i].number);
printf("%9d",r[i].china);
printf("%9d",r[i].math);
printf("%9d",r[i].english);
printf("%9d",r[i].china+s[i].math+s[i].english);
printf("\n");
}
system("pause");;
}
}
void paixumath(struct rain s[],int n)
{
int in,i,j;
struct rain temp;
struct rain r[60];
for(in=0;in{
r[in]=s[in];
}
for(i=0;i{
for(j=0;j{
if(r[j].math{temp=r[j];r[j]=r[j+1];r[j+1]=temp;
}
}
}
printf("序列号 姓名 性别 学号 语文成绩 数学成绩 英语成绩 总成绩\n");
for(i=0;i{
printf("%6d",i+1);
printf("%6s",r[i].name);
printf("%8s",r[i].sex);
printf("%8d",r[i].number);
printf("%9d",r[i].china);
printf("%9d",r[i].math);
printf("%9d",r[i].english);
printf("%9d",r[i].china+s[i].math+s[i].english);
printf("\n");
}
system("pause");
}
void paixuenglish(struct rain s[],int n)
{
int in,i,j;
struct rain temp;
struct rain r[60];
for(in=0;in{
r[in]=s[in];
}
for(i=0;i{
for(j=0;j{
if(r[j].english{temp=r[j];r[j]=r[j+1];r[j+1]=temp;
}
}
}
printf("序列号 姓名 性别 学号 语文成绩 数学成绩 英语成绩 总成绩\n");
for(i=0;i{

printf("%6d",i+1);
printf("%6s",r[i].name);
printf("%8s",r[i].sex);
printf("%8d",r[i].number);
printf("%9d",r[i].china);
printf("%9d",r[i].math);
printf("%9d",r[i].english);
printf("%9d",r[i].china+s[i].math+s[i].english);
printf("\n");
}
system("pause");
}
void paixuzongfen(struct rain s[],int n)
{
int in,i,j;
struct rain temp;
struct rain r[60];
for(in=0;in{
r[in]=s[in];
}
for(i=0;i{
for(j=0;j{
if((r[j].english+r[j].china+r[j].math)<(r[j+1].english+r[j+1].china+r[j+1].math))
{temp=r[j];r[j]=r[j+1];r[j+1]=temp;
}
}
}
printf("序列号 姓名 性别 学号 语文成绩 数学成绩 英语成绩 总成绩\n");
for(i=0;i{
printf("%6d",i+1);
printf("%6s",r[i].name);
printf("%8s",r[i].sex);
printf("%8d",r[i].number);
printf("%9d",r[i].china);
printf("%9d",r[i].math);
printf("%9d",r[i].english);
printf("%9d",(r[i].china+r[i].math+r[i].english));
printf("\n");
}
system("pause");
}


int add(struct rain s[],int n)
{
printf("请输入该学生姓名");
scanf("%s",&s[n].name);
printf("请输入该学生性别");
scanf("%s",&s[n].sex);
printf("请输入该学生学号");
scanf("%d",&s[n].number);
printf("请输入该学生语文成绩");
scanf("%d",&s[n].china);
printf("请输入该学生数学成绩");
scanf("%d",&s[n].math);
printf("请输入该学生英语成绩");
scanf("%d",&s[n].english);
return n+1;
}
int dele(struct rain s[],int n)
{
int m,in,i=0;
struct rain r[60];
for(in=0;in{
r[in]=s[in];
}
output2(s,n);
printf("请输入你想要删除学生的所在序列号\n");
scanf("%d",&m);
if(m<0||m>n)
{printf("对不起,选择序列号不存在");
}else
{
for(in=0;in{if(in==(m-1))
r[in].number=0;
}
}
for(in=0;in{if(r[in].number==0)
{continue;}
s[i]=r[in];i++;
}
return i;
}
void look(struct rain s[],int n)
{
if(n==0)
{
printf("请先录入成绩\n");system("pause");
}
else
{
char name[20];
int in,k=0;
int y=0;
printf("请输入你要查询学生的姓名\n");
scanf("%s",&name);
for(in=0;in{
if(strcmp(s[in].name,name)==0)
{y++;
printf("找到你所查询的学生\n");
printf("序列号 姓名 性别 学号 语文成绩 数学成绩 英语成绩 总成绩\n");
printf("%6d",k+1);k++;
printf("%6s",s[in].name);
printf("%8s",s[in].sex);
printf("%8d",s[in].number);
printf("%9d",s[in].china);
printf("%9d",s[in].math);
printf("%9d",s[in].english);
printf("%9d",s[in].china+s[in].math+s[in].english);
printf("\n");
}
}
if(y==0)
printf("对不起,没有找到此人信息\n");
system("pause");
}
}

void baocun(struct rain a[],int x)
{
FILE * fp=fopen("d:\\v3.a[]","wb");
if(fp==NULL)
{
printf("文件打开失败!\n");
exit(1);
}
fwrite(a,sizeof(struct rain),x,fp);
printf("保

存成功\n任意键继续\n");
fclose(fp);
}
int duqu(struct rain a[])
{
int l;
FILE * fp=fopen("d:\\v3.a[]","rb");
if(fp==NULL)
{
printf("文件打开失败!\n");
exit(1);
}
l=fread(a,sizeof(struct rain),100,fp);
fclose(fp);
printf("读取成功\n");system("pause");
return l;
}
void playmenu()
{system("color 1e");
printf(" ---V4.0成绩管理系统---\n");
printf(" | 1录入学生成绩 |\n");
printf(" | 2输出学生成绩 |\n");
printf(" | 3修改学生信息 |\n");
printf(" | 4降序输出成绩 |\n");
printf(" | 5增加学生 |\n");
printf(" | 6删除学生 |\n");
printf(" | 7按姓名查询 |\n");
printf(" | 8保存学生成绩 |\n");
printf(" | 9读取学生成绩 |\n");
printf(" | #密码系统 |\n");
printf(" | 0退出管理系统 |\n");
}
void xiugaimenu()
{
printf(" | 1修改姓名 | \n");
printf(" | 2修改性别 | \n");
printf(" | 3修改学号 | \n");
printf(" | 4修改语文成绩| \n");
printf(" | 5修改数学成绩| \n");
printf(" | 6修改英语成绩| \n");
printf(" | 7返回主菜单 | \n");
}
void paixuzhumenu()
{
printf(" | 1按语文降序排 | \n");
printf(" | 2按数学降序排 | \n");
printf(" | 3按英语降序排 | \n");
printf(" | 4按总分降序排 | \n");
printf(" | 0返回主菜单 | \n");
}
void output2(struct rain s[],int n)
{
int i;
printf("序列号 姓名 性别 学号 语文成绩 数学成绩 英语成绩 总成绩\n");
for(i=0;i{
printf("%6d",i+1);
printf("%6s",s[i].name);
printf("%8s",s[i].sex);
printf("%8d",s[i].number);
printf("%9d",s[i].china);
printf("%9d",s[i].math);
printf("%9d",s[i].english);
printf("%9d",s[i].china+s[i].math+s[i].english);
printf("\n");
}
}


void mimazhu()
{
int s;
static char mima[20];
static char n[20];
s=duqumima(n);
system("pause");
while(1)
{
int choice;
system("cls");
fflush(stdin);
menu();
printf("请选择\n");
fflush(stdin);
scanf("%d",&choice);
switch(choice)
{
//case 1:mimaxitong(n);
//break;
case 2:xiugaimima(n);
break;
case 0:
system("pause");return;
default:
{

printf("对不起,选择错误\n");
system("pause");
break;
}
}
}

}

void mimaxitong(char n[])
{
int a=0;
char pass[20];
while(strcmp(pass,n)!=0&&a<3)
{
system("cls");
printf(" --请输入密码");
printf("共3次机会,还有%d次机会--\n",3-a);
fflush(stdin);
gets(pass);
fflush(stdin);
if(strcmp(pass,n)!=0)
{
printf("密码错误\n");
system("pause");
}

if(strcmp(pass,n)==0)
{
printf("登陆成功\n");
system("pause");break;
}
a++;
}

if(strcmp(pass,n)!=0)
{

{printf("密码错误\n");
system("pause");
exit(0);
}
}

}

void menu()
{
//printf(" | 1密码系统 | \n");
printf(" | 2修改密码 | \n");
printf(" | 0返回菜单 | \n");
}



void xiugaimima(char n[])
{
char d[20];
char d2[20];
char y[20];
printf("请输入原密码\n");
fflush(stdin);
gets(y);
if(strcmp(y,n)!=0)
{
printf("对不起,原密码错误\n");
system("pause");
return;
}

printf("请输入修改后的密码\n");
fflush(stdin);
scanf("%s",&d);

printf("请再次输入修改后的密码\n");
fflush(stdin);
scanf("%s",&d2);
if(strcmp(d,d2)!=0)
{ printf("修改失败\n");
printf("两次修改密码不一致\n");
system("pause");
return;
}
strcpy(n,d);
baocunmima(n);
printf("修改成功\n");
system("pause");


}

int duqumima(char n[])
{
FILE * fp;
if((fp=fopen("D:\\密码文件.txt","rb"))==NULL)
{
printf("您是第一次使用本系统,系统默认密码为1122");
n[0]='1';
n[1]='1';
n[2]='2';
n[3]='2';
system("pause");baocunmima(n);
}

if((fp=fopen("D:\\密码文件.txt","rb"))==NULL)
{
printf("读取密码失败\n");
exit(1);
}
fgets(n,20,fp);
fclose(fp);

return 20;
}


void baocunmima(char n[])
{
FILE * fp;

if((fp=fopen("D:\\密码文件.txt","wb"))==NULL)
{
printf("读取密码失败\n");
exit(1);
}
fwrite(n,sizeof(n),20,fp);
fclose(fp);

}

相关文档