1、 .
*题目七:学生成绩管理系统设计
学生成绩信息包括:学期,学号,班别,XX,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:
〔1〕 能按学期、按班级完成对学生成绩的录入、修改
〔2〕 能按班级统计学生的成绩,求学生的总分及平均分
〔3〕 能查询学生成绩,不及格科目及学生
〔4〕 能按班级输出学生的成绩单
要求:使用二进制文件方式存储数据,系统以菜单方式工作
源代码:
#include
2、
#include
3、 制作人:章建 \n"); printf("********************** 学生成绩管理系统 ************************\n"); printf(" 1.输入学生成绩\n"); printf(" 2.输出学生成绩\n"); printf(" 3.查找并显示学生成绩\n"); printf("
4、 4.按XX查找,修改学生资料\n"); printf(" 5.显示所有学生\n"); printf(" 6.查找并删除学生信息\n"); printf(" 7.从文件读取数据\n"); printf(" 0.储存学生资料并退出系统\n"); printf("****************************************
5、\n"); printf("请选择(0-7)\n"); a=getchar(); } return(a-'0'); } /***************************************************************************************/ int Input(Student stud[],int n) //输入数据(第一学期)。 { int i=0; char sign,x[10]; for(;sign !='n'&&sign
6、 !='N';) { printf(" XX:"); scanf("%s",stud[n+i].nam); printf(" 班级:"); scanf("%d",&stud[n+i].cls); printf(" 学号:"); scanf("%s",stud[n+i].num); printf(" 语文:"); scanf("%d",&stud[n+i].chinese); printf("
7、 数学:"); scanf("%d",&stud[n+i].math); printf(" 英语:"); scanf("%d",&stud[n+i].english); printf(" 计算机:"); scanf("%d",&stud[n+i].puter); gets(x); printf("还有要输入的信息吗?(y/n)"); scanf("%c",&sign); i++; } return(n+i); } /*******************
8、输出数据***********************************************/
void Display(Student stud[], int n)
{
int i;
printf(" 班级 学号 XX 语文 数学 英语 计算机 总分 平均分\n");
for(i=1;i 9、intf("%7d,%7s,%7s,%7d,%7d,%7d,%7d,%7d,%7d\n",stud[i-1].cls,stud[i-1].num,stud[i-1].nam,stud[i-1].chinese,stud[i-1].math,stud[i-1].english,stud[i-1].puter,s,s/4);
if(i>1 && i%10==0)
{
system("pause");
}
}
system("pause");
}
/************************************查找学生显示其信息************ 10、/
void Query(Student stud[],int n)
{
char nam[20];
printf(" 输入其XX:\n");
scanf("%s",nam);
int i=0;
while(strcmp(stud[i].nam,nam)!=0&&i 11、stud[i].num);
printf(" 班级:%d\n",stud[i].cls);
printf(" 语文:%d\n",stud[i].chinese);
printf(" 英语:%d\n",stud[i].english);
printf(" 数学:%d\n",stud[i].math);
printf(" 计算机:%d\n",stud[i].puter);
}
/*********************************删除学生信息************** 12、/
int Delete(Student stud[],int n)
{
char s[20];
int i=0,j;
printf(" 请输入要删除的学生的XX:\n");
scanf("%s",s);
while(strcmp(stud[i].nam,s)!=0&&i 13、num,stud[j+1].num);
strcpy(stud[j].nam,stud[j+1].nam);
stud[j].cls=stud[j+1].cls;
stud[j].chinese=stud[j+1].chinese;
stud[j].math=stud[j+1].math;
stud[j].english=stud[j+1].english;
stud[j].puter=stud[j+1].puter;
}
printf(" 当前信息已删除成功!");
return(n-1);
}
/***** 14、修改信息******************************************/
int Revise(Student stud[],int n)
{
int i=0;
char na[10];
scanf("%s",na);
while(strcmp(stud[i].nam,na)!=0&&i 15、ls);
printf("修改学号:\n");
scanf("%s",stud[i].num);
printf("修改语文成绩:\n");
scanf("%d",&stud[i].chinese);
printf("修改英语成绩:\n");
scanf("%d",&stud[i].english);
printf("修改数学成绩:\n");
scanf("%d",&stud[i].math);
printf("修改计算机成绩:\n");
scanf("%d",&stud[i].puter);
printf("修改成功\n");
16、 return(n);
}
/***************************************显示学生**************************************/
void show(Student stud[],int n)
{
for(int i=0;i 17、/
int AddfromText(Student stud[], int n)
{
int i=0,number,x=0,y=0;
FILE *fp;
char filename[20];
printf(" 输入文件名:");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf(" 无法翻开文件");
system("pause" 18、);
return(n);
}
fscanf(fp,"%d",&number);
for(;i 19、");
system("pause");
return(n);
}
/**************************************将所有记录写进文件*************************************/
void WritetoText(Student stud[],int n)
{
int i=0;
FILE *fp;
char filename[20];
printf(" 将资料输入文件\n");
printf(" 输入文件名\n");
scan 20、f("%s",filename);
if((fp=fopen(filename,"w+"))==NULL)
{
printf(" 无法翻开文件\n");
system("pause");
return;
}
fprintf(fp,"%d\n",n);
for(;i 21、[i].english,stud[i].puter,
stud[i].chinese+stud[i].math+stud[i].english+stud[i].puter,
(stud[i].chinese+stud[i].math+stud[i].english+stud[i].puter)/4);
i++;
}
fclose(fp);
}
/**************************************主函数调用*********************************************/
void main()
{
22、 int n1=0,n2=0;
for(;;)
{
switch(menu())
{
case 1:
int t;
printf(" 输入学生资料\n");
printf(" 输入学期");
scanf("%d",&t);
if(t==1)
{
n1=Input(stud1,n1);
}
else if(t==2)
{
n2=Input(stud2,n2);
}
break;
case 2:
23、printf(" 输出所有学生资料\n");
if(n1!=0)
{
printf(" 第一学期\n");
Display(stud1,n1);
}
if(n2!=0)
{
printf(" 第二学期\n");
Display(stud2,n2);
}
break;
case 3:
int r;
printf(" 查找学生\n");
printf(" 24、 请输入学期\n");
scanf("%d",&r);
if(r==1)
{
Query(stud1,n1);
}
else if(r==2)
{
Query(stud2,n2);
}
system("pause");
break;
case 4:
int p;
printf(" 修改学生资料\n");
printf(" 请输入学期\n");
scanf("%d",&p);
if 25、p==1)
{
printf(" 输入你要修改的学生的XX:");
n1=Revise(stud1,n1);
}
else if(p==2)
{
printf(" 输入你要修改的学生的XX:");
n2=Revise(stud2,n2);
}
system("pause");
break;
case 5:
printf(" 显示所有学生:\n");
if(n1!=0)
{
p 26、rintf(" 第一学期\n");
show(stud1,n1);
}
if(n2!=0)
{
printf(" 第二学期\n");
show(stud2,n2);
}
system("pause");
break;
case 6:
printf(" 查找并删除学生信息\n");
int o;
printf(" 请输入学期:");
scanf("%d",&o);
27、 if(o==1)
{
printf(" 第一学期\n");
n1=Delete(stud1,n1);
}
if(o==2)
{
printf(" 第二学期\n");
n2=Delete(stud2,n2);
}
system("pause");
break;
case 7:
printf(" 从文件中读入数据\n");
printf(" 读取第一学期的文件\n") 28、
n1=AddfromText(stud1,n1);
printf(" 读取第二学期的文件\n");
n2=AddfromText(stud2,n2);
break;
case 0:
printf(" 将所有资料写入文件\n");
if(n1!=0)
{
printf(" 存储第一学期学生资料\n");
WritetoText(stud1,n1);
}
if(n2!=0)
{
printf( 29、" 存储第二学期学生资料\n");
WritetoText(stud2,n2);
}
printf(" 输入成功\n");
int b;
printf(" 请确定是否退出系统\n");
printf(" 0.退出系统\n");
printf(" 1.返回\n");
scanf("%d",&b);
if(b==0)
{
printf(" 谢谢使用\n");
system("pause");
exit(0);
}
system("pause");
break;
}
}
}
- . 可修编.






