籍学管理系统课程设计本科毕业设计.docx
- 文档编号:5912038
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:31
- 大小:633.55KB
籍学管理系统课程设计本科毕业设计.docx
《籍学管理系统课程设计本科毕业设计.docx》由会员分享,可在线阅读,更多相关《籍学管理系统课程设计本科毕业设计.docx(31页珍藏版)》请在冰豆网上搜索。
籍学管理系统课程设计本科毕业设计
石家庄职业技术学院
学籍管理系统
学生姓名:
崔鹏飞
指导教师:
刘云桥
系别:
信息工程系
专业:
软件技术
年级:
12级软件一班
论文提交时间:
2013年1月15日
评阅人:
年月日:
第一章课程设计目的和要求1
§1-2课程设计要求1
§3-5学生成绩排序13
§3-10查询成绩最低分…………………………………………………………………………26
第四章心得与体会27
§4-1心得与体会27
第一章课程设计目的和任务
§1-1课程设计的目的和任务
1.本课程设计的目的和任务:
1.本课程设计是软件工程专业重要的实践性环节之一,是在学生学习完《C语言程序设计》课程后进行的一次全面的综合练习,是锻炼学生总结的综合能力。
本课程设计的目的和任务:
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.利用所学的知识对编程的思路扩展
3.掌握C语言编程和程序调试的基本技能
4.利用C语言进行基本的软件设计
5.掌握书写程序设计说明文档的能力
6.提高运用C语言解决实际问题的能力
§1-2课程设计要求
2.课程设计要求
1、题目《学生学籍管理程序》
2、基本信息:
班级、学号、姓名、性别、三科成绩、总成绩、平均成绩。
3、基本功能要求:
●以菜单方式工作(参考附录1)
●输入学生成绩
●显示学生成绩
●学生成绩查询
●学生成绩排序
●学生成绩插入
●学生成绩删除
●学生信息统计(最高分,最低分或不及格)
●保存输入数据(选作)(此部分涉及第十章文件系统内容)
●打开记录文件(选作)(此部分涉及第十章文件系统内容)
4、其他
●程序应具备较好的人机交互界面
●可以在指导教师的许可下自拟其它题目,但设计应基本覆盖《C语言程序设计》课程的教学内容
指导教师验收通过后上交所做的题目的源程序文档、及设计报告。
第二章总体设计与分析
§2-1功能概述
本学生管理系统主要实现学生信息的录入并显示,学生信息的添加、删除,查询学生成绩的最高分、最低分与及格率,学生成绩排序等九大功能。
当然,此学生管理系统还有许多功能不能实现,仍需继续努力,使其更加完善。
§2-2系统结构图
第三章详细分析与设计
本章分模块对整个系统进行介绍,每个函数一个模块。
每个模块介绍时首先介绍本模块的功能,粘贴模块运行时的界面,然后贴代码,最后画流程图。
流程图样例
§3-1主函数
main()
{intchoose;
voidinput();
voidput();
voidsearch();
voidsort();
voidinsert();
voidpass();
voidmax();
voidmin();
voiddelete();
while
(1)
{
{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("☆10、退出☆\n");
printf("请选择:
");
}
scanf("%d",&choose);
switch(choose)//输入选择
{case1:
input();break;//选择1进行学生成绩输入
case2:
put();break;//选择2进行显示学生成绩
case3:
search();break;//选择3进行学生成绩查询
case4:
sort();break;//选择4进行学生成绩排序
case5:
insert();break;//选择5进行学生成绩插入
case6:
delete();break;//选择6进行学生成绩删除
case7:
pass();break;//选择7进行学生成绩及格率
case8:
max();break;//选择8进行学生成绩最高分查询
case9:
min();break;//选择9进行学生成绩最低分查询
case10:
exit
(1);//选择10退出系统
}
}
}
§3-2学生信息录入
inti,j,n;
floatsum;
printf("输入学生的信息\n");
puts("班级\t学号\t姓名\t语文\t数学\t英语\n");
for(i=0;i {scanf("%d%d%s",&a[i].bj,&a[i].num,a[i].name); for(j=0;j<3;j++) scanf("%f",&a[i].score[j]); } for(n=0;n for(j=0,sum=0;j<3;j++) { sum=sum+a[i].score[j]; a[n].ave=sum/3;//每位学生的平均成绩 a[n].sum=sum;//每位学生的总成绩 } §3-3显示学生成绩 inti,j,r,n; floatsum; printf("输出学生的成绩\n"); for(i=0;i for(j=0,sum=0;j<3;j++) { sum=sum+a[i].score[j]; a[i].ave=sum/3;//每位学生的平均成绩 a[i].sum=sum;//每位学生的总成绩 } puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); for(r=0;r { printf("%d\t%d\t%s\t",a[r].bj,a[r].num,a[r].name); for(j=0;j<3;j++) printf("%.1f\t",a[r].score[j]); printf("%.1f\t%.1f\n",a[r].sum,a[r].ave); } §3-4学生成绩查询 intcx,xh,i,j,k,s; charname[20]; floatsum; printf("通过姓名查找选择1\n"); printf("通过学号查找选择2\n"); printf("请选择: \n"); scanf("%d",&cx); for(k=0;k for(s=0,sum=0;s<3;s++) { sum=sum+a[k].score[s]; a[k].ave=sum/3;//每位学生的平均成绩 a[k].sum=sum;//每位学生的总成绩 } switch(cx) {case1: printf("输入姓名: \n"); scanf("%s",name); for(i=0;i if(strcmp(a[i].name,name)==0) {printf("输出该学生的信息\n"); puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); printf("%d\t%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t\n",a[i].bj,a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].sum,a[i].ave); } break; case2: printf("输入学号: \n"); scanf("%d",&xh); for(j=0;j if(xh==a[j].num) {printf("输出该学生的信息\n"); puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); printf("%d\t%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t\n",a[j].bj,a[j].num,a[j].name,a[j].score[0],a[j].score[1],a[j].score[2],a[j].sum,a[j].ave); } break; } §3-5学生成绩排序 inti,j,s,k,g; floatsum; for(i=0;i for(j=0,sum=0;j<3;j++) { sum=sum+a[i].score[j]; a[i].ave=sum/3;//每位学生的平均成绩 a[i].sum=sum;//每位学生的总成绩 } for(s=0;s for(k=0;k if(a[k].ave { student=a[k]; a[k]=a[k+1]; a[k+1]=student;} puts("输出每位学生的总成绩以及平均成绩\n\n"); puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); for(g=0;g {printf("%d\t%d\t%s\t",a[g].bj,a[g].num,a[g].name); for(j=0;j<3;j++) printf("%.1f\t",a[g].score[j]); printf("%.1f\t%.1f\t\n",a[g].sum,a[g].ave); } §3-6插入学生成绩 intk; floatsum; puts("1.更新学生信息2.添加学生信息"); scanf("%d",&k); if(k==1)//更新学生信息 {inti,j,x,h,f,g,c,r; puts("请输入学生学号: "); scanf("%d",&h); for(x=0;x if(h==a[x].num) for(i=m+1;i>h;i--) { { student=a[i]; a[i]=a[i-1]; a[i-1]=student; } break;} printf("输入插入学生的信息: \n"); puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); scanf("%d%d%s%f%f%f",&a[h-1].bj,&a[h-1].num,a[h-1].name,&a[h-1].score[0],&a[h-1].score[1],&a[h-1].score[2]); for(f=0;f for(g=0,sum=0;g<3;g++) { sum=sum+a[f].score[g]; a[f].ave=sum/3;//每位学生的平均成绩 a[f].sum=sum;//每位学生的总成绩 } puts("输出每位学生的总成绩以及平均成绩: \n\n"); puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); for(r=0;r { printf("%d\t%d\t%s\t",a[r].bj,a[r].num,a[r].name); for(c=0;c<3;c++) printf("%.1f\t",a[r].score[c]); printf("%.1f\t%.1f\n",a[r].sum,a[r].ave); } } else if(k==2)//添加学生信息 {inti,j,x,h,k,f,g,c,r; puts("请输入学生学号: "); scanf("%d",&h); for(x=0;x if(h==a[x].num) for(i=m+1;i>h;i--) { { student=a[i]; a[i]=a[i-1]; a[i-1]=student; } break;} printf("输入插入学生的信息: \n"); puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); scanf("%d%d%s%f%f%f",&a[h-1].bj,&a[h-1].num,a[h-1].name,&a[h-1].score[0],&a[h-1].score[1],&a[h-1].score[2]); for(f=0;f for(g=0,sum=0;g<3;g++) { sum=sum+a[f].score[g]; a[f].ave=sum/3;//每位学生的平均成绩 a[f].sum=sum;//每位学生的总成绩 } puts("输出每位学生的总成绩以及平均成绩: \n\n"); puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); for(r=0;r { printf("%d\t%d\t%s\t",a[r].bj,a[r].num,a[r].name); for(c=0;c<3;c++) printf("%.1f\t",a[r].score[c]); printf("%.1f\t%.1f\n",a[r].sum,a[r].ave); } l=o; o++; } §3-7删除学生成绩 intxh,i,j,r,g; floatave,sum; printf("输入学号: "); scanf("%d",&xh); for(j=0;j { if(xh==a[j].num)break; } for(i=j;i { a[i].bj=a[i+1].bj; a[i].num=a[i+1].num; strcpy(a[i].name,a[i+1].name); a[i].score[0]=a[i+1].score[0]; a[i].score[1]=a[i+1].score[1]; a[i].score[2]=a[i+1].score[2]; a[i].sum=a[i+1].sum; a[i].ave=a[i+1].ave; } for(i=0;i for(j=0,sum=0;j<3;j++) { sum=sum+a[i].score[j]; a[i].ave=sum/3;//每位学生的平均成绩 a[i].sum=sum;//每位学生的总成绩 } puts("班级\t学号\t姓名\t语文\t数学\t英语\t总成绩\t平均分\n"); for(r=0;r { printf("%d\t%d\t%s\t",a[r].bj,a[r].num,a[r].name); for(g=0;g<3;g++) printf("%.1f\t",a[r].score[g]); printf("%.1f\t%.1f\n",a[r].sum,a[r].ave); } §3-8学生成绩及格率 inti,km,s,t; floatjigelv,j,k,b; printf("语文的及格率选择1\n"); printf("数学的及格率选择2\n"); printf("英语的及格率选择3\n"); printf("请选择: "); scanf("%d",&km); switch(km) {case1: {printf("语文及格率: \n"); for(i=0,j=0;i {if(a[i].score[0]>=60) j++; } jigelv=j/(m+l); printf("及格的人数: %.1f人\t语文及格率: %.1f\t\n",j,jigelv); } break; case2: {printf("数学及格率: \n"); for(s=0,k=0;s {if(a[s].score[1]>=60) k++; } jigelv=k/(m+l); printf("及格的人数: %.1f人\t数学及格率: %.1f\t\n",k,jigelv); }break; case3: {printf("英语及格率: \n"); for(t=0,b=0;t {if(a[t].score[1]>=60) b++; } jigelv=b/(m+l); printf("及格的人数: %.1f人\t英语及格率%.1f\t\n",b,jigelv); }break; } §3-9查询成绩最高分 inti,chinese=0,math=0,english=0; for(i=0;i { if(a[i].score[0]>a[chinese].score[0])chinese=i; if(a[i].score[1]>a[math].score[1])math=i; if(a[i].score[2]>a[english].score[2])english=i; } printf("语文最高分的人: %s语文最高分%.1f\n",a[chinese].name,a[chinese].score[0]); printf("数学最高分的人: %s数学最高分%.1f\n",a[math].name,a[math].score[1]); printf("英语最高分的人: %s英语最高分%.1f\n",a[english].name,a[english].score[2]); §3-10查询成绩最低分 inti,chinese=0,math=0,english=0; for(i=0;i { if(a[i].score[0]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管理 系统 课程设计 本科 毕业设计
