学生成绩管理系统程序设计c语言.docx
- 文档编号:8762764
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:18
- 大小:82.30KB
学生成绩管理系统程序设计c语言.docx
《学生成绩管理系统程序设计c语言.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统程序设计c语言.docx(18页珍藏版)》请在冰点文库上搜索。
学生成绩管理系统程序设计c语言
课程设计报告书
学生成绩管理系统
班级
学号:
姓名:
指导老师:
1、题目要求----------------------------------------------------------1
2、设计思想----------------------------------------------------------3
3、系统完成功能及框图-------------------------------------------3
4、界面设计----------------------------------------------------------4
5、核心算法及说明-------------------------------------------------7
6、结论----------------------------------------------------------------16
7、参考资料----------------------------------------------------------16
8、后记----------------------------------------------------------------16
摘要:
学生成绩管理系统提供了强大学生成绩管理管理功能,方便系统管理员对学生成绩等信息添加,修改,删除,查询,留言等操作,同时一样方面学生对自己各科成绩查询,学习交流.随着科学技术不断提高,计算机科学日渐成熟,其强大功能已为人们深刻认识,它已进入人类社会各个领域并发挥着越来越重要作用.作为计算机应用一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟优点.
1、题目要求
题目七:
学生成绩管理系统设计
学生成绩信息包括:
学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:
(1)能按学期、按班级完成对学生成绩录入、修改
(2)能按班级统计学生成绩,求学生总分及平均分
(3)能查询学生成绩,不及格科目及学生名单
(4)能按班级输出学生成绩单
要求:
使用二进制文件方式存储数据,系统以菜单方式工作
2、设计思想
我们设计学生成绩管理系统共有7个功能,所涉及到函数有按回车返回主菜单、查询、保存、输入、修改、输出、统计等等。
这是一个关于学生成绩管理系统,所以就会涉及到一系列问题,例如:
去各科成绩总和、平均值、不几个学生科目及对应成绩。
这个程序整个思路就是按照要求写出相应程序并使之能够运行。
首先,写出所有能够用到库函数,并设计出能够显示主菜单程序。
其次按照主菜单设计出所有有关程序。
再次,由于这个程序会用到结构体所以会涉及到“将数据从结构体数组保存到文件中”、“将数据从文件读到结构体数组中”这两个程序。
为了使程序更完美还涉及了主函数显示。
最后,就可以按照主菜单进行一系列操作。
其实,这些程序设计都是根据以前学过只是进行简单程序叠加。
没有什么可以害怕或是担心。
3、系统完成功能及框图
4、界面设计
主菜单
运行1后界面
运行4后界面
运行5后界面
5、核心算法及说明
#include
#include
#include
#include
#defineMAX300
structstudent
{
charcla[10];//班级
charterm[10];//学期
charname[10];//姓名
charno[10];//学号
floatch;//语文
floatma;//数学
floaten;//英语
floatcom;//计算机
};
structdata
{
intcount;//当前学生数组中学生个数
structstudentstu[MAX];//学生数组
}dd;
//显示主菜单
voidmenu()
{
system("cls");
printf("\n");
printf("\t\t\t************************************\n");
printf("\t\t\t**\n");
printf("\t\t\t*学生成绩管理系统*\n");
printf("\t\t\t**\n");
printf("\t\t\t*[0]退出*\n");
printf("\t\t\t*[1]查看所有学生信息*\n");
printf("\t\t\t*[2]输入学生记录*\n");
printf("\t\t\t*[3]修改学生记录*\n");
printf("\t\t\t*[4]查询(班级)*\n");
printf("\t\t\t*[5]查询(不及格记录)*\n");
printf("\t\t\t*[6]成绩统计*\n");
printf("\t\t\t**\n");
printf("\t\t\t************************************\n");
}
//等待用户按回车后回到主菜单
voidto_menu()
{
charc1,c2;
printf("\n\n\n按回车键返回主菜单...");
scanf("%c%c",&c1,&c2);
menu();
}
//查看所有学生信息
voidview_data()
{
inti;
printf("班级\t学期\t姓名\t学号\t语文\t数学\t英语\t计算机");
printf("\n-------------------------------------------------------------------\n");
for(i=0;i
printf("%s\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n",dd.stu[i].cla,dd.stu[i].term,dd.stu[i].name,dd.stu[i].no,dd.stu[i].ch,dd.stu[i].ma,dd.stu[i].en,dd.stu[i].com);
}
//将数据从结构体数组保存到文件中
voidsave_data()
{
FILE*fp;
inti,k;
k=dd.count;
fp=fopen("c:
/dada.txt","w");
fwrite(&k,sizeof(int),1,fp);
for(i=0;i fwrite(&dd.stu[i],sizeof(structstudent),1,fp); fclose(fp); } //输入学生记录(按班级和学期) voidadd_data() { structstudentst; intb; inti,k,j; charterm[10],cla[10]; printf("请输入所要录入学生班级: "); scanf("%s",cla); printf("请输入所要录入学期: "); scanf("%s",term); while (1) { j=0; printf("\n请输入学生信息: "); printf("\n姓名\t学号\t语文\t数学\t英语\t计算机"); printf("\n---------------------------------------------------------------\n"); scanf("%s%s%f%f%f%f",st.name,st.no,&st.ch,&st.ma,&st.en,&); for(i=0;i { if(strcmp(dd.stu[i].no,st.no)==0&&strcmp(dd.stu[i].term,term)==0) { if(strcmp(dd.stu[i].no,st.no)==0) printf("\n信息已存在,请重新输入! \n"); j=1; break; } } if(j==1) continue; if(j==0) { k=dd.count; strcpy(dd.stu[k].cla,cla);strcpy(dd.stu[k].term,term); strcpy(dd.stu[k].name,st.name); strcpy(dd.stu[k].no,st.no); dd.stu[k].ch=st.ch; dd.stu[k].ma=st.ma; dd.stu[k].en=st.en; dd.stu[k].com=; dd.count++; } printf("\n\n继续添加学生信息[1-yes0-no]: "); scanf("%d",&b); if(b==0)break; } save_data(); } //将数据从文件读到结构体数组中 voidread_data() { FILE*fp; inti,k; structstudentst; k=0; if(access("c: /dada.txt",0)==-1)//如果文件不存在 { fp=fopen("c: /dada.txt","w"); fwrite(&k,sizeof(int),1,fp); fclose(fp); } fp=fopen("c: /dada.txt","r"); fread(&k,sizeof(int),1,fp); dd.count=k; for(i=0;i { fread(&st,sizeof(structstudent),1,fp); strcpy(dd.stu[i].cla,st.cla); strcpy(dd.stu[i].term,st.term); strcpy(dd.stu[i].name,st.name); strcpy(dd.stu[i].no,st.no); dd.stu[i].ch=st.ch; dd.stu[i].ma=st.ma; dd.stu[i].en=st.en; dd.stu[i].com=; } fclose(fp); } //修改学生成绩记录(按班级和学期) voidedit_data() { charcla[10],term[10]; inti;floatch,ma,en,com; printf("请输入所要修改记录班级: "); scanf("%s",cla); printf("请输入所要修改记录学期: "); scanf("%s",term); for(i=0;i { if(strcmp(dd.stu[i].cla,cla)==0&&strcmp(dd.stu[i].term,term)==0) { printf("\n姓名: %s,学号: %s",dd.stu[i].name,dd.stu[i].no); printf("\n请修改学生数据: "); printf("\n语文成绩: "); scanf("%f",&ch); dd.stu[i].ch=ch; printf("\n数学成绩: "); scanf("%f",&ma); dd.stu[i].ma=ma; printf("\n英语成绩: "); scanf("%f",&en); dd.stu[i].en=en; printf("\n计算机成绩: "); scanf("%f",&com); dd.stu[i].com=com; printf("\n\n编辑学生记录成功! "); } } save_data(); } //按班级输出成绩单 voidquery_data_cla() { inti; charcla[10]; printf("\n请输入要查询成绩班级: "); scanf("%s",cla); for(i=0;i { if(strcmp(dd.stu[i].cla,cla)==0) { printf("班级\t学期\t姓名\t学号\t语文\t数学\t英语\t计算机"); printf("\n-------------------------------------------------------------------\n"); printf("%s\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n",dd.stu[i].cla,dd.stu[i].term,dd.stu[i].name,dd.stu[i].no,dd.stu[i].ch,dd.stu[i].ma,dd.stu[i].en,dd.stu[i].com); } } } //查询不及格科目学生名单 voidquery_data_pass() { inti,s=0; charcla[10],term[10]; printf("请输入所要查询班级: "); scanf("%s",cla); printf("请输入所要查询学期: "); scanf("%s",term); for(i=0;i { if(strcmp(dd.stu[i].term,term)==0&&strcmp(dd.stu[i].cla,cla)==0) { printf("\n姓名: %s,学号: %s不及格科目有: ",dd.stu[i].name,dd.stu[i].no); if(dd.stu[i].ch<60){printf("语文\t");s++;} s=0; if(dd.stu[i].ma<60){printf("数学\t");s++;} s=0; if(dd.stu[i].en<60){printf("英语\t");s++;} s=0; if(dd.stu[i].com<60){printf("计算机\t");s++;} s=0; if(s==0)printf("0科"); } } } //成绩统计(按班级和学期)求总分和平均分 voidcount_data() { charcla[10],term[10]; inti,k=0;floatsum[4]={0.0},average[4]; printf("请输入所要统计记录班级: "); scanf("%s",cla); printf("请输入所要统计记录学期: "); scanf("%s",term); for(i=0;i { if(strcmp(dd.stu[i].cla,cla)==0&&strcmp(dd.stu[i].term,term)==0) { k++; sum[0]+=dd.stu[i].ch; sum[1]+=dd.stu[i].ma; sum[2]+=dd.stu[i].en; sum[3]+=dd.stu[i].com; } } average[0]=sum[0]/k; average[1]=sum[1]/k; average[2]=sum[2]/k; average[3]=sum[3]/k; printf("\n所查询%s班级%s学期各科总分为: \n",cla,term); printf("语文\t数学\t英语\t计算机"); printf("\n-------------------------------------------------------------------\n"); printf("%.1f\t%.1f\t%.1f\t%.1f\t",sum[0],sum[1],sum[2],sum[3]); printf("\n所查询%s班级%s学期各科平均分为: \n",cla,term); printf("语文\t数学\t英语\t计算机"); printf("\n-------------------------------------------------------------------\n"); printf("%.1f\t%.1f\t%.1f\t%.1f\t",average[0],average[1],average[2],average[3]); } //主函数 voidmain() { intfun; read_data(); menu(); while (1) { printf("请输入功能号[0-8]: ",&fun); scanf("%d",&fun); switch(fun) { case0: //退出 break; case1: //查看所有学生信息 view_data(); break; case2: //按班级和学期输入学生记录 add_data(); break; case3: //按班级和学期修改学生记录 edit_data(); break; case4: //查询(按班级) query_data_cla(); break; case5: //查询不及格学生及科目(按照班级和学期) query_data_pass(); break; case6: //成绩统计(按班级和学期求平均分和总分) count_data(); break; } if(fun==0)break; to_menu(); } } 相关程序分析 1、查看所有学生信息 先定义相关变量,然后设计输入输出程序。 输出所要查询东西,并设计好输出形式,这是很重要一点。 这样就可以查看到所有已存学生信息了 2、按班级查询 同样先定义变量,然后按照要求设计所要输出文字。 主要应用for循环对已存所有学生信息进行输出。 3、查询不及格记录 同样还是先定义变量,设计出要按照班级和学期查询不几个同学记录。 对于每一科又要进行验证所以涉及到了S++,最后还要有S=0设计,是因为每一个同学都有四科成绩,S++后就改变了运来值,因此没计算完一个同学后都要归零。 6、结论 通过这次小组亲自编写较大程序,使我更好掌握了一些函数应用是自己更彻底懂了这些函数作用,这对以后再编一些其他程序奠定了良好基础。 同时也是自己对这些程序有了一定记忆和一定编程能力。 好处有很多,中途会遇到一些困难,例如: 不知用那一个函数、怎样将信息保存到结构体变量中等等。 有了问题就要解决所以就去问同学或是老师,是自己能够弄懂并能够正确编写出程序。 同时这也证明了团队力量是无穷。 还可以学到一些课本学不到东西。 总之这次编程使我收获很大。 7、参考资料 《C程序设计》谭浩强第三版2005年7月清华大学出版社 《TURBOC实用大全》徐金梧2001年8月机械工业出版社 《C语言程序设计》王声决2003年8月中国铁道出版社 《C程序设计题解及上机指导》谭浩强第三版2005年7月清华大学出版社 《C语言程序设计应用教程》刘玲2006年1月西南师范大学出版社 8、后记 在及同组同学反复研究改编和老师耐心提示下,这段时间功夫终于没有白费。 不仅巩固了这半年来所学关于c语言知识点,把他们系统化,融会贯通,而且让我再次学会了很多东西,知识面也得到拓展。 理论结合实际,把所学综合应用到实际问题中,极大提高了我们对这门课兴趣。 在指导老师康亚男耐心教导和细心提示下,我们程序有了更进一步完善,让我们在枯燥学习生活同时有感受到了老师责任心。 这更让我们有信心把这份工作做好。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 程序设计 语言
文档标签
- 语言程序设计学生成绩管理系统实验
- 语言学生成绩管理系统设计
- 学生成绩管理系统Web程序设计
- 学生成绩管理系统计算器程序
- 语言程序设计学生成绩管理系统设计
- c语言程序设计学生成绩管理系统语言程序设计学生
- 学生成绩管理系统程序设计
- 语言程序设计课程设计歌手成绩管理系统
- 学生成绩管理系统综合程序设计
- 学生成绩管理系统程序设计语言
- 语言程序设计学生成绩管理系统
- 语言程序设计学生成绩管理系统课程设计
- 学生学分管理程序语言
- 学生成绩管理系统C++程序设计
- 完整版语言程序设计学生成绩管理系统
- 语言程序设计报告学生成绩管理系统
- 语言实践实验设备管理
- C语言学生成绩管理系统实验报告精编版语言学生
- 统计学语言实验
- 学生成绩管理系统报告程序
- 统计学语言实验