数据结构 课程设计报告 统计成绩

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1课程设计任务书2010—2011学年第1学期电子与信息工程系计算机科学与技术专业班级课程设计名称:数据结构课程设计设计题目:统计成绩完成期限:自2012年1月2日至2012年1月6日共1周一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。二、设计要求(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;(4)认真编写课程设计报告。三、设计内容统计成绩1)问题描述给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计,并打印统计表。2)基本要求(1)按总数高低次序,打印出名次表,分数相同的为同一名次;(2)按名次打印出每个学生的学号、姓名、总分以及各科成绩。3)测试数据由学生依据软件工程的测试技术自己确定。注意测试边界数据。4)选作内容对各科成绩设置不同的权值。四、参考文献1.王红梅.数据结构.清华大学出版社22.王红梅.数据结构学习辅导与实验指导.清华大学出版社3.严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社源程序://--------------------------------------Student.h文件------------------------------------#pragmaonce#includestringusingnamespacestd;structCourse{stringcourseName;floatweights;//课程权值staticconstintcoursenum=10;staticintrealcoursenum;};classStudent{public:Student();Student(stringstudentID,stringstudentName,float*grade);~Student();floatTotalGrade()const;//计算学生总成绩floatAverageGrade()const;//计算学生的加权平均分voidPrint();//输出各科成绩,总分和加权平均分booloperator(constStudent&student);//运算符重载booloperator(constStudent&student);booloperator=(constStudent&student);booloperator=(constStudent&student);Student&operator=(constStudent&student);staticCoursecourse[Course::coursenum];private:stringstudentID;stringstudentName;floatgrade[Course::coursenum];};//--------------------------------------QuickSort.h文件--------------------------------------//quicksort3.cpp:定义控制台应用程序的入口点。//快速排序程序#includestdafx.h#includeiostream#includectimeusingnamespacestd;3voidswap(int*values,inti,intj){inttemp=values[i];values[i]=values[j];values[j]=temp;}intpartition(int*values,intlow,inthigh){//基本思想,以valuse[high]为标准对(low,high-1)范围内的元素进行划分//firstbigger为第二部分的第一个元素的下标,也就是大于values[high]那一//部分的第一个元素的下标,然后将valuse[firstbigger]与values[high]交换,//则firstbigger为返回值swap(values,high,rand()%(high-low+1)+low);intfirstbigger=high;//i为当前考查元素的下标for(inti=low;ifirstbigger;){while(values[i]values[high])++i;if(ifirstbigger){--firstbigger;swap(values,i,firstbigger);}}swap(values,high,firstbigger);returnfirstbigger;}voidquicksort(int*values,intlow,inthigh){if(lowhigh){intkey=partition(values,low,high);quicksort(values,low,key-1);quicksort(values,key+1,high);}}int_tmain(intargc,_TCHAR*argv[]){intn=10;int*values=newint[n];srand((unsigned)time(NULL));for(inti=0;in;++i)values[i]=rand()%100;4cout随机产生的数据为:\n;for(inti=0;in;++i)coutvalues[i];coutendl;quicksort(values,0,n-1);cout排序后的数据为:\n;for(inti=0;in;++i)coutvalues[i];coutendl;return0;}//--------------------------------------Klass.h文件--------------------------------------#pragmaonce#includeStudent.hclassKlass{public:Klass();Klass(intstudentNum,Student*student);~Klass();voidPrint();//输出课程信息和学生信息voidRank();//对班级里的学生按成绩排序voidAdd(constStudent&student);//往班级里添加学生private:staticconstintmaxstudentnum=50;intstudentNum;//学生人数Studentstudent[maxstudentnum];};//------------------------------------Student.cpp文件-------------------------------------#includeStdAfx.h#includeStudent.h#includeiostreamintCourse::realcoursenum=0;CourseStudent::course[Course::coursenum]={};Student::Student(stringstudentID,stringstudentName,float*grade){this-studentID=studentID;this-studentName=studentName;5for(inti=0;iCourse::realcoursenum;++i){this-grade[i]=grade[i];}}Student::Student(){}Student::~Student(){}floatStudent::TotalGrade()const//计算总成绩{floatsum=0.0;for(inti=0;iCourse::realcoursenum;++i){sum+=this-course[i].weights*this-grade[i];}returnsum;}floatStudent::AverageGrade()const//计算加权平均分{floatsum=0.0;for(inti=0;iCourse::realcoursenum;++i){sum+=this-course[i].weights;}returnthis-TotalGrade()/sum;}voidStudent::Print()//输出各科成绩总成绩和加权平均分{coutstudentID\t;coutstudentName\t;for(inti=0;iCourse::realcoursenum;++i){coutthis-grade[i]\t;}coutthis-TotalGrade()\t;coutthis-AverageGrade()\t;coutendl;}boolStudent::operator(constStudent&student){6returnthis-TotalGrade()student.TotalGrade();}boolStudent::operator(constStudent&student){returnthis-TotalGrade()student.TotalGrade();}boolStudent::operator=(constStudent&student){return!(*thisstudent);}boolStudent::operator=(constStudent&student){return!(*thisstudent);}Student&Student::operator=(constStudent&student){this-studentID=student.studentID;this-studentName=student.studentName;for(inti=0;iCourse::realcoursenum;++i){this-grade[i]=student.grade[i];}return*this;}//-------------------------------------Klass.cpp文件----------------------------------------#pragmaonce#includeStudent.hclassKlass{public:Klass();Klass(intstudentNum,Student*student);~Klass();voidPrint();//输出课程信息和学生信息voidRank();//对班级里的学生按成绩排序voidAdd(constStudent&student);//往班级里添加学生private:staticconstintmaxstudentnum=50;intstudentNum;//学生人数Studentstudent[maxstudentnum];};//-----------------------------------------StatsGrade.cpp文件---------------------------------//StatsGrade.cpp:定义控制台应用程序的入口点。7#includestdafx.h#includeKlass.h#includeiostream#includefstreamusingnamespacestd;voidRun(){Klassklass;cout请输入科目数\n;cinCourse::realcour

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功