学生作业完成情况程序课程报告_第1页
学生作业完成情况程序课程报告_第2页
学生作业完成情况程序课程报告_第3页
学生作业完成情况程序课程报告_第4页
学生作业完成情况程序课程报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE2衡阳师范学院《数据结构》课程设计题目:学生作业完成情况管理程序专业:计算机科学与技术(非师范)班级:1002学号:10140115101902051826作者姓名:刘超丁正宁刘新宇王兵指导教师:王杰2011年12月2目录1、需求分析………………(2) 1.1问题描述…………………(2) 1.2基本要求…………………(2)2、概要设计………………(2) 2.1数据结构…………………(2) 2.2程序模块…………………(3) 2.3各模块之间的调用关系及算法设计……(3)3、详细设计………………(4)4、调试与分析…………(8) 4.1程序调试…………………(8) 4.2数据分析…………………(9)5、用户手册……………(10) 5.1运行环境…………………(10) 5.2执行文件…………………(10)6、参考文献……………(10)7、心得体会……………(10)8、小组成员任务分配及工作进度安排…………(11)学生作业完成情况管理程序1、需求分析1.1问题描述请设计一个学生作业完成情况管理程序。假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。作业登记信息应该包含:学号、姓名、10次作业的完成情况。1.2基本要求该程序应该具有下列功能:(1)通过键盘输入某位学生某次作业的分数;(2)给定学号,显示某位学生作业完成情况;(3)给定某个班级的班号,显示该班所有学生的作业完成情况;(4)给定某位学生的学号,修改该学生的作业完成信息;(5)给定某位学生的学号,删除该学生的信息;(6)按学生的最终平时成绩进行排序;(7)输出平均分数。2、概要设计2.1数据结构定义了两个结构体studentInfo和stuType分别存储学生的基本信心和所有学生的信息库。完整定义如下:structstudentInfo{//定义学生基本信息结构体intnum;intcls;char*name;intscore[10];}structstuType{//结构类型定义studentInfostu[MUNMAX];intnum;}2.2程序模块voidDisplayMenu();//显示菜单intchoiceItem();//菜单选择voidPrint_aInfo(structstuTypes,intindex);//输出一个学生的信息voidPrintInfo(structstuTypes);//输出所有学生的信息voidInput_aInfo(structstudentInfo*as);//输入一个学生的信息voidInput_allInfo(structstuType*s,intnum);//输入多个学生的信息intSearch(structstuTypestu);//查找voidModify(structstuType*s,stuTypestu);//修改voiddel(structstuType*s);//删除voidSearch_cls(structstuType*s);//查出一个班的成绩voidPj(structstuType*s);//求平均成绩2.3各模块之间的调用关系及算法设计1、菜单选择函数choiceItem()通过调用显示菜单函数voidDisplayMenu()实现对程序的基本功能的显示,从而使程序设计有了方向。2、通过函数choiceItem()的switch语句列举查询的功能,从而实现对程序各模块之间的调用,详细如下:do{choice=choiceItem();switch(choice){case0:printf("\nWelcometo");break;case1:Input_allInfo(&student,MUNMAX);break;case2:Input_allInfo(&student,1);break;case3:PrintInfo(student);break;case4:Init(&student);break;case5:{if((index=Search(student))!=-1)Print_aInfo(student,index);elseprintf("\nNoeixstthestudent.\n");}break;case6:Modify(&student,student);break;case7:del(&student);break;case8:Search_cls(&student);break;case9:Pj(&student);break;}}while(choice);3、输入多个学生的信息函数Input_allInfo(structstuType*s,intnum)通过循环调用一个学生信息输入函数Input_aInfo(&s->stu[s->num++])实现对多个学生信息的输入,把输入的数据存入结构体的信息库数组studentInfostu[MUNMAX]中。3、详细设计1、学生基本信息存储的实现voidInput_aInfo(structstudentInfo*as)//输入一个学生的信息{printf("Pleaseinputnum:");scanf("%d",&as->num);printf("Pleaseinputcls:");scanf("%d",&as->cls);as->name=(char*)malloc(30);printf("Pleaseinputname:");scanf("%s",as->name);printf("Pleaseinput10score:");for(intj=0;j<10;j++)scanf("%d",&as->score[j]);}voidInput_allInfo(structstuType*s,intnum)//输入多个学生的信息{printf("\nEnter%dinfomations.\n",num);for(inti=0;i<num;i++){if(s->num==MUNMAX){printf("\nOverflow.");break;}Input_aInfo(&s->stu[s->num++]);}}2、学生基本信息显示的实现voidPrint_aInfo(structstuTypes,intindex)//输出一个学生的信息{printf("\n%4d%-10s",s.stu[index].num,s.stu[index].name);printf("%4d\n",s.stu[index].cls);for(inti=0;i<=10;i++)printf("%4d\n",s.stu[index].score[i]);}voidPrintInfo(structstuTypes)//输出所有学生的信息{if(s.num==0){printf("\nNostudent.");return;}for(inti=0;i<s.num;i++){printf("\n%4d%-16s",s.stu[i].num,s.stu[i].name);printf("%4d%6.1d\n",s.stu[i].cls,s.stu[i].score[10]);}}3、按学号查找、学生信息的删除和修改操作的具体实现intSearch(structstuTypestu)//查找{intnum;printf("\nEnternum:");scanf("%d",&num);for(inti=0;i<stu.num;i++)if(stu.stu[i].num==num)returni;return-1;}voidModify(structstuType*s,stuTypestu)//修改{intnum;if(s->num==0)printf("\nNostudent.");elseprintf("\nEnternum:");scanf("%d",&num);for(inti=0;i<=num;i++)if(stu.stu[i].num==num){printf("Pleaseinput10score");for(intj=0;j<10;j++)scanf("%d",&s->stu[i].score[j]);}}voidDel(structstuType*s)//删除{intnum,i;if(s->num==0)printf("\nNostudent.");elseprintf("\nEnternum:");scanf("%d",&num);s->num--;for(i=0;i<10,s->stu[i].num==num;i++){s->stu[i].cls=0;s->stu[i].num=0;s->stu[i].name=0;}for(intj=0;j<10;j++)s->stu[i].score[j]=0;}4、按学号查询平均成绩和输入班次,把学生的基本信心输出的实现voidSearch_cls(structstuType*s)//查出一个班的成绩{intcls;printf("\nEntercls:");scanf("%d",&cls);if(cls==0){printf("\nNoclass.");}else{for(inti=0;i<10,s->stu[i].cls==cls;i++){Print_aInfo(*s,i);}}}voidPj(structstuType*s)//求平均成绩{intnum;printf("Pleaseinputnum:");scanf("%d",&num);for(inti=0;i<s->num;i++){if(s->stu[i].num==num){floatpj,sum=0;for(intj=0;j<10;j++)sum=sum+s->stu[i].score[j];pj=sum/10;printf("Pjscoreis%f",pj);}}}4、调试与分析4.1程序调试1、学生基本信息存储和显示的实现结果出现分数显示错误,修改输出所有学生信息函数PrintInfo(structstuTypes),修改后运行结果如下:2学生基本信息的查询与学生信息的采集部分显示4.2数据分析从整个程序来看,时间的消耗主要花在所有学生信息的输入和输出上,时间复杂度可认为是O(n2),不过这个程序的主函数涉及一个do—while循环,使读者可以任意查询和修改,因而最终的执行时间取决于调试者。这样的程序的优化主要在空间复杂度上,数组空间的利用上着手处理。本程序采用结构体声明的数组对象储存,通过调用结构体的成员变量来实现还是较成功的。5、用户手册5.1运行环境:PC机在Windowsxp系统下的Code::Blocks10.05编译环境。5.2执行文件:学生作业完成情况管理程序.cpp通过编译连接生成的学生作业完成情况管理程序.exe。6、参考文献1.郭翠英等编著,《C语言课程设计案例精编》,中国水利水电出版社,2005年。2.黄明,梁旭,万洪莉编著《C语言课程设计》,电子工业出版社,2006年。3.高涛,《C语言程序设计-实验指导.课程设计.习题解答》,西安交通大学出版社,2007年2月。4.李建学,李光元,吴春芳编著《数据结构课程设计案例精编》(用C/C++描述),清华大学出版社,2007年2月。5.王成端魏先民等,《C语言程序设计实训——题解、实验、课程设计与样题》,中国水利水电出版社,2005年。6.盛夕清,赵阳等编著,《C语言程序设计学习指导、实验指导与课程设计》,中国水利水电出版社,2006年。7.严蔚敏

吴伟民编著,《

数据结构》(C语言版),清华大学出版社,2010年7、心得体会经过一个月的课程设计,过程曲折可谓一语难尽。整天都是对着电脑,有时翻阅资料。在此期间我失落过,也曾一度热情高涨。点点滴滴令我回味无长。这次课程设计使我体会到只有做到细心耐心,恒心才能做好事情。这次的课程设计,加强了我们动手、思考和解决问题的能力。巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。而且做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有些问题就不是很能理解,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。这次的课程设计使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论