C++课程设计报告.doc_第1页
C++课程设计报告.doc_第2页
C++课程设计报告.doc_第3页
C++课程设计报告.doc_第4页
C++课程设计报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

C+课程设计报告C+课程设计报告系 科: 三 系 班 级: 09软件(1) 学 号: 20090307134 姓 名: 钱 国 锋 指导教师: 石 鲁 生 2010年6月一、题目94Zheng378Chen289Li1成绩姓名学号1、编写一个程序,已有若干个学生数据(见右表),包括学号、姓名、成绩,要求输出这些学生的信息以及他们总的平均分。要求: 1、设计一个学生类Student,包括 一般数据成员:no(学号)、name(姓名)和deg(成绩) 静态数据成员:sum(总分)和num(人数) 静态成员函数:avg(),用于计算平均分 构造函数:对类对象赋值,特别的name使用动态内存分配空间 析构函数:释放动态分配的内存 成员函数:display()用于输出学生的学号、姓名和成绩等信息 2、在主函数中创建至少三个学生对象,输出他们的基本信息和总分及平均分。2、设计一个抽象类Base,有两个公有的成员函数perimeter和area,其作用是分别计算一个图形的周长和面积。从Base类公有派生一个三角形类Triangle和一个圆类Circle,在类Triangle和类Circle中分别定义自己的perimeter和area函数,用于计算各自的周长和面积。在主函数中设计一个Base类的对象指针,分别指向类Triangle和类Circle的对象,调用各自的perimeter和area函数显示相应对象的周长和面积。二、设计思路1、 自我认为本题有两个重点,一是对name使用动态内存,二是静态成员函数和静态数据成员的使用。首先是设计带参数的构造函数,传递的是学号、姓名和成绩,然后是在构造函数里对类里面的学号和成绩进行赋值,对name使用动态内存分配,然后将姓名复制到name里。然后是对静态数据成员进行赋值,每建立一个对象就对num自动加1,对sum加上对象的成绩。然后是静态成员函数返回总分和平均分。最后输出总分和平均分是加上student::静态成员函数进行输出。2、自我认为本题的重点是,虚类、虚函数、继承和多态。首先是建立base的虚类,建立三个纯虚函数。然后是圆类和三角形类的继承,在虚函数中对周长、面积进行求解和输出。然后建立主函数,这里我设计先出现一段文字提示选择计算三角形、圆形还是推出计算。然后选择三角形时出现让你输入三边,如果三边构成不了三角形则重新输入。然后自动显示三角形周长和面积,选择圆时出现让你输入半径,然后自动显示圆的周长和面积。三、设计代码及运行结果1、*student.h*class studentpublic:student(int ID,char* pN,int result);student();static int sub();static int avg();void display();protected:static int sum; static int num; int no; char* name; int deg; ;*student.cpp*#include#include#includestudent.hstudent:student(int ID,char* pN,int result)no=ID;deg=result;num+;sum+=deg;name=new charstrlen(pN)+1;strcpy(name,pN);student:student()delete name;int student:sum=0;int student:num=0;int student:sub()return sum;int student:avg()int a;a=sum/num;return a;void student:display()coutnotnametdegendl;*main.cpp*#include#includestudent.hint main()student a(1,Li,89);student b(2,Chen,78);student c(3,Zheng,94);cout学号t姓名t成绩n;a.display();b.display();c.display();cout总分:student:sub()endl;cout平均分:student:avg()endl;return 0;运行结果:2、*base.h*#ifndef POINT_H #define POINT_H 0class basepublic:virtual float perimeter()=0;virtual float area()=0;virtual void display()=0;#endif*circle.h*#includebase.hclass circle:public basepublic:circle(float);virtual float perimeter();virtual float area();virtual void display();protected:float r;*triangle.h*#includebase.hclass triangle:public basepublic:triangle(float,float,float);virtual float perimeter();virtual float area();virtual void display();protected:float a1,a2,a3;*circle.cpp*#include#includecircle.hcircle:circle(float a)r=a;float circle:perimeter()float result;result=2*r*3.14;return result;float circle:area()float result;result=r*r*3.14;return result;void circle:display()cout圆的周长:perimeter()endl;cout圆的面积:area()endl;*triangle.cpp*#include#include#includetriangle.htriangle:triangle(float a,float b,float c)a1=a;a2=b;a3=c;float triangle:perimeter()float result;result=a1+a2+a3;return result;float triangle:area()float result,p;p=(a1+a2+a3)/2;result=sqrt(p*(p-a1)*(p-a2)*(p-a3);return result;void triangle:display()cout三角形周长:perimeter()endl;cout三角形面积:area()endl;*main.cpp*#include#include#includecircle.h#includetriangle.hint main()base* p;int z;float a,b,c,d;while(1)cout请选择计算图形周长和面积:(1)三角形(2)圆(3)退出z;if(z=1)cout请输入;while(1) coutabc;if(a+bc&a+cb&b+ca)break;elsecout请重新输入;if(z=2)coutd;if(z=3)exit(0);circle x(d);triangle y(a,b,c);if(z=1)p=&y; p-display

温馨提示

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

评论

0/150

提交评论