版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第29页第1页课程设计(论文)任务书信息工程学院通信工程专业15-1班一、课程设计(论文)题目:学生成绩管理二、课程设计(论文)工作自2016年6月27日起至2016年7月1日止三、课程设计(论文)地点:8栋601四、课程设计(论文)内容要求:1.本课程设计的目的(1)进一步巩固和加深对“C程序设计”课程基本知识的理解和掌握,了解C语言在项目开发中的应用。(2)学习程序设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。(3)通过对标准化、规范化文档的掌握并查阅有关技术资料等,培养项目设计开发能力,同时提倡团队合作精神。2.课程设计的任务及要求1)基本要求:对系统功能进行需求分析;使用VisualC++编译器进行程序编译;(3)提出系统的设计方案;(4)编写源程序代码并进行调试。2)创新要求在基本要求达到后,可进行创新设计。3)课程设计报告撰写及装订要求课程设计报告的撰写要求表述简明,图表准确。报告按如下内容和顺序用A4纸进行打印并装订成册。(1)封面采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。(2)设计任务书(3)评阅书(4)目录(5)正文(6)主要参考文献4)课程设计评分标准:每人按指定题目进行设计,严禁抄袭,各选题2人/组。要求每人自己动手编写程序,采取同一组同时检查程序及运行结果,检查时同组成员每人陈述自己的分工,同一选题不同组如发现代码完全一样,则双方都作不及格处理。(1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分;(2)能正确回答设计的中老师所提问题,可增加10分;(3)课程设计报告书写规范整齐,可增加10分;(4)心得体会认真总结,可增加10分;(5)程序有创新性,可增加10分;成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。5)课程设计进度安排(1)准备阶段(3学时):选择设计题目、了解设计目的要求、查阅相关资料。(2)程序模块设计分析阶段(4学时):程序总体设计、详细设计。(3)代码编写调试阶段(10学时):程序模块代码编写、调试、测试。(4)撰写论文阶段(3学时):总结课程设计任务和设计内容,撰写课程设计论文。6)课程设计题目具体要求:学生成绩管理系统要求从键盘输入某班级30个学生的学号、姓名、三门课(语文、数学、英语)的成绩,分别实现1.统计平均分和总分2.按总分大小排出名次3.打印成绩在班平均分之上的学生成绩和信息4.输入任意学号查找该学生的成绩和名次。要求:各个功能要求分别用独立的函数来实现,在主函数中通过菜单选择来实现各个功能。且要求使用结构体数组来存储和处理30个学生信息,定义的结构体主要包括:学号、姓名、三门课成绩、总分、平均分、名次等成员。可以有创新内容。学生签名:2016年6月24日
课程设计(论文)评阅意见序号项目等级优秀良好中等及格不及格1课程设计态度评价2出勤情况评价3任务难度评价4工作量饱满评价5设计中创新性评价6论文书写规范化评价综合评定等级评阅人职称副教授2016年7月2日
目录一、功能介绍………5二、摘要……………6三、程序设计………8四、运行的图文分析………………21五、使用说明………24六、课程设计心得…………………29七、参考文献………30
一、功能介绍菜单是应用程序非常重要的组成部分,通过菜单,应用程序可以实现不同的功能,通过本系统的设计,可以实现应用程序的菜单。进入系统之前,用户敲回车键开始输入学生信息(姓名和各科成绩,之后进入菜单,可选择1-5实现五种不同功能。用户根据需要输入1-5,若输入其他字符,则显示按键错误,请重新选择。实现完各功能之后用户可输入BB返回返单,若输入错误需要重新输入。选择功能1后,程序自动输各科的平均分以及总分平均分,还有各学生的学号、姓名、各科成绩、总成绩。选择功能2后,程序自动给各学生排名,并输出各学生的名次和相关信息。选择功能3后,程序自动打印出分数高于平均分的学生的信息。选择功能4后,输入学号可查询现骨干学生的信息,系统会自动计算该学生的成绩绩点,并判断该学生是否拿得到学位证。若输入无关学号则会提醒未查到该学生请重新输入学号。选择功能5后,程序运行结束,输出图形,按任意键关闭程序。
二、摘要步骤:1.打开应用程序,弹出“欢迎使用”界面。2.输入每位学生的相关信息。3.进入菜单栏,可选择各项功能。4.对输入信息进行判断,若正确则执行相关功能,错误就需要重新选择。5.实现功能后可以返回菜单栏。6.继续判断输入信息,然后执行下一个功能。7.可输入相关信息进行选择相应功能使程序结束运行。8.程序运行结束时会出现一个心形的图案,并显示出“感谢使用,再见!”流程图
三、程序设计源代码#include<stdio.h>#include<string.h>#include<math.h>structstudent/*创建结构体1*/{intnum;charname[99];floatChinese;floatEnglish;floatMath;}st[30];structstudent2/*创建结构体2*/{intnum;charname[99];floatChinese;floatEnglish;floatMath;}st2[30];main(){inta,i,j,b,d,e,m,n,o,z;charc[99],f; floatAVE,aveC,aveE,aveM,sum[30],sum2[30],sumC=0,sumE=0,sumM=0,jC[30],jE[30],jM[30],avej[30],w,x,y,k,p;printf("*****************\n");printf("*******************\n");printf("*******\n");printf("*******\n");printf("**************\n");printf("****************\n");printf("*******欢迎使用\n");printf("*******\n");printf("*******\n");printf("********************学生成绩管理系统\n");printf("*******\n");printf("*******\n");printf("**********************按回车键开始输入学生信息\n");printf("*******\n");printf("*******\n");printf("********************\n");printf("***********************************\n");/*以上代码均用于图形设计*/getchar();printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("请输入学生姓名,成绩\n");/*循环语句输入学生信息*/for(i=15001;i<=15030;i++){printf("学号%d\n",i);st[i-15001].num=i;st2[i-15001].num=i;printf("请输入姓名");gets(st[i-15001].name);strcpy(st2[i-15001].name,st[i-15001].name);printf("请输入语文成绩");scanf("%f",&st[i-15001].Chinese);st2[i-15001].Chinese=st[i-15001].Chinese;printf("请输入英语成绩");scanf("%f",&st[i-15001].English);st2[i-15001].English=st[i-15001].English;printf("请输入数学成绩");scanf("%f",&st[i-15001].Math);st2[i-15001].Math=st[i-15001].Math;sumC+=st[i-15001].Chinese;/*计算总分、平均分、成绩绩点*/sumE+=st[i-15001].English;sumM+=st[i-15001].Math;sum[i-15001]=st[i-15001].Chinese+st[i-15001].English+st[i-15001].Math;sum2[i-15001]=st2[i-15001].Chinese+st2[i-15001].English+st2[i-15001].Math;if(st[i-15001].Chinese<60)jC[i-15001]=0;elsejC[i-15001]=(st[i-15001].Chinese-60)/10;if(st[i-15001].English<60)jE[i-15001]=0;elsejE[i-15001]=(st[i-15001].English-60)/10;if(st[i-15001].Math<60)jM[i-15001]=0;elsejM[i-15001]=(st[i-15001].Math-60)/10;avej[i-15001]=(jC[i-15001]+jE[i-15001]+jM[i-15001])/3;getchar();}aveC=sumC/30;aveE=sumE/30;aveM=sumM/30;AVE=aveC+aveE+aveM;lable2:printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("请输入序号选择功能(请输入1~5之间的数字并按回车键确认)\n1.统计平均分和总分\n2.排序\n3.打印\n4.查找(可查成绩绩点)\n5.退出\n请输入序号:");/*输出菜单栏*/scanf("%d",&a);switch(a){case1:/*模块1实现输出总分平均分等功能*/ {printf("语文平均分=%f\n",aveC);printf("英语平均分=%f\n",aveE);printf("数学平均分=%f\n",aveM);printf("总分平均分=%f\n",AVE);for(j=0;j<30;j++){ printf("姓名:");puts(st[j].name);printf("学号%d语文%f英语%f数学%f总分%f\n",st[j].num,st[j].Chinese,st[j].English,st[j].Math,sum[j]);}};printf("输入BB返回选择界面(按回车键确认)");lable3:scanf("%c",&f);getchar();if(f=='B')gotolable2;/*goto语句实现返回功能*/else{ printf("");gotolable3;/*goto语句实现返回功能*/};break;case2:/*模块二实现排序功能*/{ for(m=0;m<30;m++){ o=m; for(n=m+1;n<30;n++) { if(sum2[o]<sum2[n]) o=n; } if(o!=m) { p=sum2[m]; sum2[m]=sum2[o]; sum2[o]=p; y=st2[m].Chinese; st2[m].Chinese=st2[o].Chinese; st2[o].Chinese=y; x=st2[m].English; st2[m].English=st2[o].English; st2[o].English=x; w=st2[m].Math; st2[m].Math=st2[o].Math; st2[o].Math=w; z=st2[m].num; st2[m].num=st2[o].num; st2[o].num=z; strcpy(c,st2[m].name); strcpy(st2[m].name,st2[o].name); strcpy(st2[o].name,c); }}for(m=0;m<30;m++){ printf("姓名:");puts(st2[m].name);printf("名次%d学号%d语文%f英语%f数学%f总分%f\n",m+1,st2[m].num,st2[m].Chinese,st2[m].English,st2[m].Math,sum2[m]);}};printf("输入BB返回选择界面");lable4:scanf("%c",&f);getchar();if(f=='B')gotolable2;/*goto语句实现返回功能*/else{ printf("");gotolable4;/*goto语句实现返回功能*/};break;case3:/*模块3实现打印功能*/ { printf("总分大于平均分的有\n"); for(b=0;b<30;b++) if(sum[b]>=AVE) { printf("姓名:");puts(st[b].name);printf("学号%d总分%f\n",st[b].num,sum[b]);}; printf("语文大于平均分的有\n"); for(b=0;b<30;b++) if(st[b].Chinese>aveC) { printf("姓名:");puts(st[b].name);printf("学号%d语文%f\n",st[b].num,st[b].Chinese);}; printf("英语大于平均分的有\n"); for(b=0;b<30;b++) if(st[b].English>aveE) { printf("姓名:");puts(st[b].name);printf("学号%d英语%f\n",st[b].num,st[b].English);}; printf("数学大于平均分的有\n"); for(b=0;b<30;b++) if(st[b].Math>aveM) { printf("姓名:");puts(st[b].name);printf("学号%d数学%f\n",st[b].num,st[b].Math);}; }; printf("输入BB返回选择界面");lable5:scanf("%c",&f);getchar();if(f=='B')gotolable2;/*goto语句实现返回功能*/else{ printf("");gotolable5;/*goto语句实现返回功能*/}; break;case4:/*模块4实现查询功能*/ { printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf("请输入要查询的学号");lable6: scanf("%d",&d); if(d>15030||d<15001) { printf("未查询到该学号,请检查是否输入正确\n"); printf("请重新输入学号"); gotolable6;/*goto语句实现返回功能*/ } for(e=15001;e<=15030;e++) { if(d==e) { printf("姓名:");puts(st[e-15001].name); printf("学号%d语文%f英语%f数学%f总分%f\n",st[e-15001].num,st[e-15001].Chinese,st[e-15001].English,st[e-15001].Math,sum[e-15001]);printf("该学生成绩绩点为语文%f英语%f数学%f平均%f\n",jC[e-15001],jE[e-15001],jM[e-15001],avej[e-15001]); if(avej[e-15001]>=2.2)/*判断是否能拿到学位证*/ printf("该学生可以拿到学位证\n"); elseprintf("该学生不能拿到学位证\n"); } } };printf("输入BB返回选择界面");lable7:scanf("%c",&f);getchar();if(f=='B')gotolable2;/*goto语句实现返回功能*/else{ printf("");gotolable7;/*goto语句实现返回功能*/}; break;case5:/*模块5实现退出功能(不含goto语句)*/{printf("\n\n\n\n");doubleX,Y;intH=3;for(Y=-4;Y<=0;Y+=0.3){for(X=-4;X<=4;X+=0.2)if(fabs(sqrt(X*X+Y*Y)-H*sin(2*atan(Y/X)))<=1||fabs(sqrt(X*X+Y*Y)-H*sin(2*atan(-Y/X)))<=1)printf("*");elseprintf("");printf("\n");}for(Y=-1;Y<=0;Y+=0.2){for(X=-4;X<=4;X+=0.2)if(fabs(Y)-0.65*X*X>=0.2)printf("*");elseprintf("");printf("\n");}printf("感谢使用,再见!\n");return0;}/*以上代码输出图形*/ break;default:/*模块6输入错误重新输入*/ gotolable2;/*goto语句实现返回功能*/ break;}}本实验由管宇和卢俊共同完成。管宇负责设计框架和构思,模块2、4、5的设计。卢俊负责模块1和模块3的设计。功能调试两人一起完成。四、运行的图文分析打开程序后按照预期输出了封面执行功能1(正常运行)执行功能2(正常运行)执行功能3(正常运行)执行功能4(正常运行)执行功能5(正常运行)本次实验程序正常运行。
五、使用说明打开程序后首先输出图片按回车键后依次输入学生信息输完学生信息进入菜单栏选择功能输入1实现功能1可输入BB执行返回功能输入后回到菜单栏输入2实现功能2,学生成绩从大到小排序返回后输入3实现功能3返回后输入4实现功能4输入错误学号则提示输入正确学号则输出该学生信息返回后输入5实现功能5若输入1-5之外的数不会执行功能,需要重新输入。
六、课程设计心得大一刚开始接触这个C语言的时候,我内心是崩溃的后来慢慢发现有点意思哈,老师也讲得津津有味,我们听着也很有兴致。现在有关C语言的基础差不多都会吧,什么头文件#include<stdio.h>,scanf(“%...”,&...),还有我们平时说的等号“=”,在C语言中就是赋值的意思啦,而C语言中的等号则是“==”,还有就是一些基础的,比如分号哪些时候不该加,但大多数情况都要记得加上那个分号。还有switch语句后面忘记加break语句而不能循环语句。还有定义形参的时候应该在函数体外面,而局部变量应该在函数体内定义。总之,这些困难都不算困难,如果你抽一点玩的时间出来看一下书,有时候可以在课堂上打盹,但是无论学什么东西都要经过自己的大脑过滤一遍,这样下来自己看书也会好一些。编这个程序我一开始也有点无所适从,但还是跟小伙伴一起努力做了出来,有些还是在网上查找了资料,不懂的再咨询一下老师,结果大功告成了。合作的力量是强大的,自身的基础也是必不可少的。当困难都一个个解决了之后,不由自主想起一句歌词:天空飘来五个字儿--那都不是事。团结!团结!团结!
七、参考文献杨文君,杨柳.C语言程序设计教程[M].清华大学出版社.2010.3谭浩强.C语言程序设计教程[M].清华大学出版社.2007.6/cyy/《C语言程序设计》精品课程谭浩强.C语言程序设计教程学习辅导[M].北京:清华大学出版社,2005.陈朔鹰等编著,C语言程序设计基础教程,兵器工业出版社,1994年9月《C语言趣味程序百例精解》,陈朔鹰陈英主编,北京理工大学出版社,1996.《TheCProgrammingLanguage》,byBrianW.KernighanandDennisM.Ritchie.,PubilishedbyPrentice-Hallin1988.《C语言编程常见问题解答》,[美]PaulS.R.Chishohm等著,张芳妮吕波译,清华大学出版社,11996年12月.裘宗燕
著,从问题到程序科学出版社,北京大学出版社,1999.[Cline]MarshallP.ClineandGregA.Lomow,C++FAQs,Addison-Wesley,1995[Eckel]BruceEckel,ThinkinginC++(C++编程思想,刘宗田等译),机械工业出版社,2000[Maguire]SteveMaguire,WritingCleanCode(编程精粹,姜静波等译),电子工业出版社,1993[Meyers]ScottMeyers,EffectiveC++,Addison-Wesley,1992[Murry]RobertB.Murry,C++StrategiesandTactics,Addison-Wesley,1993[Summit]SteveSummit,CProgrammingFAQs,Addison-Wesley,1996李海文,吴乃陵.C++程序设计实践教程.北京:高等教育出版社,2003张荣梅.VisualC++实用教程。中国铁道出版社,2008.9目录TOC\o"1-3"\u第一章总论 1一、项目提要 1二、可行性研究报告编制依据 2三、综合评价和论证结论 3四、存在问题与建议 4第二章项目背景及必要性 5一、项目建设背景 5二、项目区农业产业化经营发展现状 11三、项目建设的必要性及目的意义 12第三章建设条件 15一、项目区概况 15二、项目实施的有利条件 17第四章建设单位基本情况 19一、建设单位概况 19二、研发能力 20三、财务状况 20第五章市场分析与销售方案 21一、市场分析 21二、产品生产及销售方案 22三、销售策略及营销模式 22四、销售队伍和销售网络建设 23第六章项目建设方案 24一、建设任务和规模 PAG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国大学生广告艺术大赛作品欣赏
- 《设立粮食仓库的战》课件
- 山东省济宁市邹城市2025届高三第五次模拟考试语文试卷含解析
- 陕西省西安市碑林区铁一中学2025届高考数学三模试卷含解析
- 吉林省汪清县六中2025届高考数学三模试卷含解析
- 测量学基础常识100个知识点
- 2025届四川省会理县第一中学高三冲刺模拟英语试卷含解析
- 甘肃省天水市甘谷县第一中学2025届高三第五次模拟考试英语试卷含解析
- 现代学徒制课题:中国特色学徒制实施现状调查研究(附:研究思路模板、可修改技术路线图)
- 《信使的信号通路》课件
- PPT基础教程完整版
- 2023年新版企业用安全检查表《工贸行业重大事故隐患判定标准和重点检查事项检查表》《冶金企业重大事故隐患摸底表》
- 《平行四边形的面积》说课课件
- (word完整版)使用Photoshop通道抠图公开课教案
- 石油天然气集团公司档案管理手册
- LTE高负荷小区的优化解决方案
- 注射美容培训课件
- 教育科学研究方法智慧树知到答案章节测试2023年延边大学
- 中国肺动脉高压诊断与治疗指南(2021版)解读
- 技术创新文献综述
- 第17课中国工农红军长征30张PPT课件 部编版八年级历史上册第五单元
评论
0/150
提交评论