成都工业学院学生成绩标准管理系统专周报告样本Word文件下载.docx
《成都工业学院学生成绩标准管理系统专周报告样本Word文件下载.docx》由会员分享,可在线阅读,更多相关《成都工业学院学生成绩标准管理系统专周报告样本Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
显示一系列功能模块
N
输入n,判断n是否是0-7
Y
根据n的值调用各功能模块函数
2.录入功能intentry();
单独输入各项信息,有益于提示用户操作情况。
将输入的信息存储在全局变量中,有益于对数据进行操作。
3.查询模块intcheck(int);
传入查询参数,根据参数返回学生序号
4.删除模块intdel(int);
先调用查询模块返回学生序号,根据序号删除学生,并返回删除执行情况
5.修改模块(集成于voidchange_ui();
)
先调用查询模块返回学生序号,再根据序号执行删除功能,最后执行录入功能
6.排序功能voidsort(float*,int,int);
对某一科逐个排序,同时对学生信息排序,排序完成,重新写入文件。
7.输出功能intpscore(int);
传入学生序号,根据序号输出学生信息。
6.程序原代码
注释:
源代码下载地址
/********************************/
/***成绩管理系统,软件版本29***/
/*******班上学号*****/
/***此版本修复各种BUG***/
#include<
>
intpscore(int);
//成绩输出功能
voidmenu();
//主界面菜单
voidentry_ui();
//录入界面
intentry();
//录入功能
voidcheck_ui();
//查看界面
intcheck(int);
//查看功能
voidchange_ui();
//修改成绩界面
voiddel_ui();
//删除界面
intdel(int);
//删除功能
voidsort_ui();
//排序界面
voidsort(float*,int,int);
//排序功能(仅数据)
voiddefs();
//写入程序自带成绩,五个成绩
voiddscreen();
//清屏函数,清空缓存区,再输出当前学生数
intdask();
//是否执行操作判断
voidabout();
//关于本程序
structstudent
{
charname[20];
intid;
floatchinese;
floatmath;
floatenglish;
floatsum;
floataverage;
}P[101];
floatsa[101];
//临时储存浮点型数据(排序使用)
voidmain()
while
(1)
{
menu();
}
}
voidmenu()//菜单界面
dscreen();
printf("
**************************\n"
);
***学生成绩管理系统***\n"
***1,录入学生成绩***\n"
***2,查看学生成绩***\n"
***3,修改学生成绩***\n"
***4,删除学生成绩***\n"
***5,学生成绩排序***\n"
***6,写入五个默认成绩***\n"
***7,查看本程序开发说明***\n"
***0,退出管理系统***\n"
intn;
scanf("
%d"
&
n);
fflush(stdin);
switch(n)
case0:
exit(0);
break;
case1:
entry_ui();
case2:
check_ui();
case3:
change_ui();
case4:
del_ui();
case5:
sort_ui();
case6:
defs();
case7:
about();
default:
printf("
提示(主界面):
输入错误,按任意键继续。
\n"
fflush(stdin);
getchar();
voidentry_ui()//成绩录入界面
FILE*fp;
fp=fopen("
"
"
a+"
dscreen();
当前功能:
录入学生成绩**\n"
请输入姓名学号语文数学英语\n"
if(!
entry())
break;
fwrite(&
P[0],sizeof(P[0]),1,fp);
fclose(fp);
成绩录入成功!
按任意键继续。
voidcheck_ui()//查看成绩界面
intacheck=-1;
//赋初值,防止循环时,读取上一个值
学生成绩查询**\n"
1,按照姓名查询\n"
2,按照学号查询\n"
3,语文不及格查询\n"
4,数学不及格查询\n"
5,英语不及格查询\n"
6,全部学生成绩查询\n"
0,返回管理系统\n"
提示(查询):
请输入选择项:
scanf("
acheck);
if(acheck==0)//返回管理系统
if(acheck<
0||acheck>
6)
printf("
输入错误!
else
{
switch(acheck)
{
case1:
if(!
pscore(check
(1)))
{
printf("
没有这个姓名!
}
else
查询成功!
break;
case2:
pscore(check
(2)))
没有这个学号!
case3:
check(3);
printf("
case4:
check(4);
case5:
check(5);
case6:
check(6);
}
}
voidchange_ui()//修改成绩界面
intachange=-1,bchange=-1;
FILE*fpch;
fpch=fopen("
学生成绩修改**\n"
1,输入学生序号修改\n"
2,输入学生姓名修改\n"
3,输入学生学号修改\n"
提示(修改):
bchange);
if(bchange==0)
if(bchange<
0||bchange>
3)
else//根据check()函数返回学生序号,赋值给bchang
if(bchange==1)
{
check(6);
printf("
请输入学生序号:
fflush(stdin);
scanf("
achange);
if(0>
=achange||achange>
pscore(-3))
achange=0;
没有这个序号!
if(bchange==2)
if(!
(achange=check
(1)))
if(bchange==3)
(achange=check
(2)))
if(achange)
正在执行修改操作!
break;
if(dask())//删除check()函数返回的学生序号bchange,并重新写入成绩
{
del(achange);
fwrite(&
P[0],sizeof(P[0]),1,fpch);
//重新写入成绩
成绩修改成功!
}
fclose(fpch);
voiddel_ui()//删除界面
{
inta=5,bdel=-1;
FILE*fp;
学生成绩删除**\n"
1,删除全部学生成绩\n"
2,输入学生序号删除\n"
3,输入学生姓名删除\n"
4,输入学生学号删除\n"
提示(删除):
a);
if(a==0)
if(a<
0||a>
4)
if(a>
=0&
&
a<
=4)
if(a==1)//删除全部
if(dask())
inti=pscore(-3);
for(;
i>
0;
i--)//pscore(-3)数据有变动,从后向前删除,
del(i);
成绩删除成功!
else
if(a==2)//根据序号删除
check(6);
fflush(stdin);
scanf("
bdel);
if(!
(0<
bdel&
bdel<
pscore(-3)))
{
bdel=0;
printf("
}
if(a==3)//根据姓名删除
(bdel=check
(1)))
if(a==4)//根据学号删除
(bdel=check
(2)))
if(bdel)
if(dask())//删除check()函数返回的学生序号bdel,并且bdel不能为O。
del(bdel);
}
else
操作取消,"
voidsort_ui()//排序界面
studentssort[100];
intasort=-1,i=1,j=pscore(-3);
r"
while(!
feof(fp))
fread(&
ssort[i],sizeof(P[0]),1,fp);
i++;
学生成绩排序\n"
1,学号排序\n"
2,语文成绩排序\n"
3,数学成绩排序\n"
4,英语成绩排序\n"
5,总成绩排序\n"
提示(排序):
asort);
if(asort==0)//返回管理系统
if(asort<
0||asort>
5)
pscore(-1);
if(asort==1)//学号成绩排序
for(i=1;
i<
=j;
i++)
sa[i]=(float)(ssort[i].id);
sort(sa,j,0);
if(asort==2)//语文成绩排序
sa[i]=ssort[i].chinese;
sort(sa,j,1);
if(asort==3)//数学成绩排序
sa[i]=ssort[i].math;
if(asort==4)//英语成绩排序
sa[i]=ssort[i].english;
if(asort==5)//总成绩排序
sa[i]=ssort[i].sum;
fp=fopen("
w"
for(i=1;
i++)//重新写入排序后的成绩
fwrite(&
P[i],sizeof(P[0]),1,fp);
fclose(fp);
pscore(-2);
//输出所有成绩
排序成功!
intcheck(inta)//成绩查询功能
studentPcheck[100];
inti=1;
fp=fopen("
while(!
fread(&
Pcheck[i],sizeof(P[0]),1,fp);
i++;
if(a==1)//按照姓名查询
charan[20];
请输入姓名:
%s"
an);
for(i=1;
=pscore(-3);
if(strcmp(an,Pcheck[i].name)==0)
returni;
if(a==2)//按照学号查询
inta=0;
请输入学号:
if(a==Pcheck[i].id)
if(a==3)//语文不及格学生
{
语文不及格学生信息\n"
pscore(-1);
{
if(Pcheck[i].chinese<
60)
pscore(i);
if(a==4)//数学不及格学生
数学不及格学生信息\n"
{
if(Pcheck[i].math<
if(a==5)//英语不及格学生
if(Pcheck[i].english<
if(a==6)//全部学生成绩
{
<
**全部学生成绩查询**>
\n"
pscore(-2);
fclose(fp);
return0;
intentry()//成绩录入功能
正在输入学生成绩...输入eof取消操作。
请输入姓名:
P[0].name);
strcmp(P[0].name,"
eof"
))//判断是否退出输入
请输入学号:
P[0].id);
请输入语文:
%f"
P[0].chinese);
请输入数学:
P[0].math);
请输入英语:
P[0].english);
P[0].sum=P[0].chinese+P[0].math+P[0].english;
P[0].average=P[0].sum/3;
return1;
//成绩录入完成
//取消成绩输入
intpscore(intn)//成绩输出功能
FILE*fpp;
fpp=fopen("
//以前版本出现文件读取错误(打开方式为r)。
if(n>
0)//指定输出某人成绩
|%-6d||%-6s||%-6d||%||%||%||%||%|\n"
n,P[n].name,P[n].id,P[n].chinese,P[n].math,P[n].english,P[n].sum,P[n].average);
return1;
if(n==-1)//输出界面
|序号||姓名||学号|