最新c语言学生成绩管理系统实训报告含源代码.docx
- 文档编号:27280646
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:19
- 大小:242.53KB
最新c语言学生成绩管理系统实训报告含源代码.docx
《最新c语言学生成绩管理系统实训报告含源代码.docx》由会员分享,可在线阅读,更多相关《最新c语言学生成绩管理系统实训报告含源代码.docx(19页珍藏版)》请在冰豆网上搜索。
最新c语言学生成绩管理系统实训报告含源代码
郑州轻工业学院
实训报告
实训名称:
[130254]C语言程序设计实训
姓名:
徐博
院(系):
软件学院
专业班级:
网页设计02
学号:
621413510250
指导教师:
成绩:
时间:
2015年1月5日至2015年1月9日
一设计项目:
学生成绩管理系统
二总体设计:
1程序设计组成框图:
2:
模块功能说明:
1输入功能:
输入学生姓名学号及成绩。
2查看功能:
输出姓名学号及各科成绩。
3查询功能:
通过学号查询学生姓名及各科成绩。
4统计功能:
统计班级学生及格率,优秀率,各个学生成绩方差等。
5修改功能:
通过输入学号修改指定学生的错误信息。
6添加功能:
添加学生信息。
7删除功能:
通过输入学号输入指定学生信息。
8保存功能:
将学生信息保存。
9退出系统。
3:
主要函数之间的调用关系及各自功能:
主要函数的函数原型
voidinputscore(void);
voidsavescore(void);
voidavergescore(void);
voidmodifyscore(void);
voidlookscore(void);
voidsearchscore(void);
voidstatistic(void);
voidadd(void);
voidmodify(void);
voiddelscore(void);
voidmenu(void);
i.在菜单界面输入1,调用函数inputscore()实现输入学生成绩信息功能。
ii.在菜单界面2,调用函数lookscore()实现学生成绩按平均分高低排序输。
出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计算。
iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。
iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。
v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能
vi.在菜单界面输入6,调用add()函数实现添加学生成绩。
vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。
viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。
ix.在菜单界面输入9,退出成绩管理系统。
三程序运行效果截图
1主菜单
2输入成绩
3查看成绩
4查询成绩
5统计成绩
6修改成绩
7添加成绩
8删除成绩
9保存成绩
四个人总结
整个程序主要运用了课本上的基础知识,并未有太大创新,通过for循环,循环输入学生成绩。
在学生成绩排序中运用选择法,同时实现学生名次的确定。
在删除指定学生成绩时,先确定信息存储位置即其在结构体数组中的序号,通过结构体变量的整体赋值将从指定位置以后的学生信息赋给前一个结构体变量,并将学生总数n减1,实现删除学生成绩信息。
源代码
#include
#include
#include
#include
#defineN30
#defineM3
typedefstructstudent
{charnumber[10];
charname[20];
floatscore[M];
floataver;
}STU;
STUstu[N];
intn;
voidinputscore(void);
voidsavescore(void);
voidavergescore(void);
voidmodifyscore(void);
voidlookscore(void);
voidsearchscore(void);
voidstatistic(void);
voidadd(void);
voidmodify(void);
voiddelscore(void);
voidmenu(void);
voidmain()
{shortintflag=0;
menu();
do
{flag=1;
switch(getch())
{case'1':
inputscore();break;/*输入成绩*/
case'2':
lookscore();break;/*查看成绩*/
case'3':
searchscore();break;/*查找成绩*/
case'4':
statistic();break;/*成绩统计*/
case'5':
modify();break;/*修改成绩*/
case'6':
add();break;/*添加成绩*/
case'7':
delscore();break;/*删除成绩*/
case'8':
savescore();break;/*保存成绩*/
case'9':
exit(0);/*退出程序*/
default:
printf("输入有误\n");
}
printf("按任意键继续\n");
getch();
menu();
}while(flag==1);
}
voidmenu(void)
{
system("cls");
printf("\n");
printf("*********欢迎进入学生成绩管理系统**************\n");
printf("菜单\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("请输入您的选择\n");
}
/***************输入各个同学的学生信息******************************/
voidinputscore(void)
{inti,j;
system("cls");
printf("请输入学生总数:
\n");
scanf("%d",&n);
printf("提示:
*输入学号时请输入位数为8位的数字*\n");/*因二维表上下需对正故有此要求*/
for(i=0;i {printf("请输入学生%d的学号姓名: \n",i+1); scanf("%s%s",stu[i].number,stu[i].name); printf("请输入学生成绩: \n"); printf("数学\t英语\t计算机\n"); for(j=0;j scanf("%f",&stu[i].score[j]); } printf("成功输入\n"); } /*****************计算各个同学的平均分*****************************/ voidavergescore(void) {inti,j; for(i=0;i {stu[i].aver=0; for(j=0;j { stu[i].aver+=stu[i].score[j]; } stu[i].aver=stu[i].aver/M; } } /************查看学生成绩及根据平均分对学生进行排序*********************/ voidlookscore(void) {inti,j,k; STUt; avergescore(); system("cls"); for(i=0;i {for(k=i,j=i+1;j if(stu[j].aver>stu[k].aver) k=j; if(k! =j) {t=stu[k]; stu[k]=stu[i]; stu[i]=t; } } printf("名次\t学号\t\t姓名\t数学\t英语\t计算机\t平均分\n"); for(i=0;i {printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name); for(j=0;j printf("%4.2f\t",stu[i].score[j]); printf("%4.2f",stu[i].aver); printf("\n"); } } /*****************通过输入学号查找学生成绩***************************/ voidsearchscore(void) {chara[10]; inti,j; system("cls"); printf("请输入需查询的学生学号\n"); scanf("%s",a); for(i=0;i {if(strcmp(a,stu[i].number)==0) {printf("名次\t学号\t\t姓名\t数学\t英语\t计算机\t平均分\n"); printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name); for(j=0;j printf("%4.2f\t",stu[i].score[j]); printf("%4.2f",stu[i].aver); printf("\n"); break;/*找到该学生成绩信息后跳出for循环*/ } else printf("未找到该学生信息\n"); } } /*******统计学生成绩信息,平均分及格率,优秀率,成绩方差****************/ voidstatistic(void) {STU*p=stu; inti,j; floatcount=0.0,sum=0.0; system("cls"); for(i=0;i {sum+=(p+i)->aver;} printf("该班级平均分为%4.2f\n",sum/n);/*平均分计算*/ for(i=0;i {if((p+i)->aver>=60) count++; } printf("该班级及格率为%4.2f%%\n",count/n*100);/*及格率计算*/ count=0.0; for(i=0;i {if((p+i)->aver>=90) count++; } printf("该班级优秀率为%4.2f%%\n",count/n*100);/*优秀率计算*/ for(i=0;i {for(j=0;j {sum=((p+i)->score[j]-(p+i)->aver)*((p+i)->score[j]-(p+i)->aver); } sum=sum/n; printf("学生%s的成绩方差为%4.2f\n",(p+i)->name,sum);/*方差计算*/ } printf("平均分低于60的学生名单\n"); for(i=0;i { if(stu[i].aver<60) printf("%s\n",stu[i].name); }/*统计不及格学生名单*/ } /***************修改学生成绩*****************/ voidmodify(void) {chara[10]; inti,j; system("cls"); printf("请输入需要修改成绩的学生学号\n"); scanf("%s",a); for(i=0;i {if(strcmp(a,stu[i].number)==0) {printf("名次\t学号\t\t姓名\t数学\t英语\t计算机\t平均分\n"); printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name); for(j=0;j printf("%4.2f\t",stu[i].score[j]); printf("%4.2f",stu[i].aver); printf("\n"); printf("请重新输入该学生的学号姓名: \n"); scanf("%s%s",stu[i].number,stu[i].name); printf("请重新输入学生成绩: \n"); printf("数学\t英语\t计算机\n"); for(j=0;j scanf("%f",&stu[i].score[j]);/*找到该学生成绩后进行修改,跳出for循环*/ printf("修改成功\n"); break; } else printf("未找到该学生信息\n"); } } /*****************添加学生成绩********************/ voidadd(void) {inta,i,j; system("cls"); printf("请输入新增加的学生人数: \n"); scanf("%d",&a); n=n+a; for(i=n-a;i {printf("请输入学生%d的学号姓名: \n",i+1); scanf("%s%s",stu[i].number,stu[i].name); printf("请输入学生成绩: \n"); printf("数学\t英语\t计算机\n"); for(j=0;j scanf("%f",&stu[i].score[j]); printf("添加成功\n"); } } /*******************删除学生成绩*************************/ voiddelscore(void) {inti,j,c; charm,a[10]; system("cls"); printf("请输入学生学号\n"); scanf("%s",a); for(i=0;i {if(strcmp(a,stu[i].number)==0) {printf("名次\t学号\t\t姓名\t数学\t英语\t计算机\t平均分\n"); printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name); for(j=0;j printf("%4.2f\t",stu[i].score[j]); printf("%4.2f",stu[i].aver); printf("\n"); c=i; break; } else printf("未找到该学生信息\n"); } printf("是否删除该学生成绩(y/n)\n"); scanf("%s",&m); if(m=='y') { for(i=c;i stu[i]=stu[i+1];/*结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置*/ n=n-1;/*删除该学生信息后学生总数减一*/ printf("删除成绩成功\n"); } else printf("删除成绩失败\n"); } /******************保存学生成绩************************/ voidsavescore(void) {FILE*fp; inti,flag=1; charm; system("cls"); puts("是否保存学生成绩(y/n)"); scanf("%s",&m); if(m=='y') (二)对“碧芝”自制饰品店的分析{if((fp=fopen("score.dat","wb"))==NULL) {printf("文件打开失败\n"); 在上海,随着轨道交通的发展,地铁商铺应运而生,并且在重要商圈已经形成一定的气候,投资经营地铁商铺逐渐为一大热门。 在人民广场地下的迪美购物中心,有一家DIY自制饰品店--“碧芝自制饰品店”return; } 据统计,上海国民经济持续快速增长。 03全年就实现国内生产总值(GDP)6250.81亿元,按可比价格计算,比上年增长11.8%。 第三产业的增速受非典影响而有所减缓,全年实现增加值3027.11亿元,增长8%,增幅比上年下降2个百分点。 for(i=0;i 十字绣□编制类□银饰制品类□串珠首饰类□if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) {printf("保存失败\n"); (3)优惠多flag=0; 还有一点就是beadwork公司在“碧芝自制饰品店”内设立了一个完全的弹性价格空间: 选择饰珠的种类和多少是由顾客自己掌握,所以消费者可以根据自己的消费能力进行取舍;此外由于是顾客自己制作,所以从原料到成品的附加值就可以自己享用。 } 500元以上1224%if(flag==1) (一)创业机会分析printf("保存成功! \n"); fclose(fp); 1996年“碧芝自制饰品店”在迪美购物中心开张,这里地理位置十分优越,交通四通八达,由于位于市中心,汇集了来自各地的游客和时尚人群,不用担心客流量的问题。 迪美有300多家商铺,不包括柜台,现在这个商铺的位置还是比较合适的,位于中心地带,左边出口的自动扶梯直接通向地面,从正对着的旋转式楼梯阶而上就是人民广场中央,周边4、5条地下通道都交汇于此,从自家店铺门口经过的90%的顾客会因为好奇而进去看一下。 } 虽然调查显示我们的创意计划有很大的发展空间,但是各种如“漂亮女生”和“碧芝”等连锁饰品店在不久的将来将对我们的创意小屋会产生很大的威胁。 else return; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言 学生 成绩管理系统 报告 源代码
![提示](https://static.bdocx.com/images/bang_tan.gif)