青岛理工大学c++实验上机实验报告(1).doc_第1页
青岛理工大学c++实验上机实验报告(1).doc_第2页
青岛理工大学c++实验上机实验报告(1).doc_第3页
青岛理工大学c++实验上机实验报告(1).doc_第4页
青岛理工大学c++实验上机实验报告(1).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

青 岛 理 工 大 学课程实验报告课程名称C+面向对象程序设计班级计算112实验日期2013.04.02姓名任师锋学号201107063实验成绩实验名称实验一 类与对象 实验目的及要求C+简单程序设计1.理解程序的三大基本控制结构:顺序,选择和循环结构。2.掌握算术运算符、自增自减运算符以及条件运算符的使用。3.掌握关系运算符、逻辑运算符及其表达式的使用。4.学习使用IF语句编写单分支和多分支的选择结构。5.学会使用While、Do-while、For语句编制循环结构的程序。6.学习Switch-case语句、Break语句及Continue语句的使用。7.学习编制循环嵌套程序。8.总结并熟练掌握使用选择和循环结构解决问题的基本方法,熟练掌握程序的输入、调试方法,为后面的学习打好基础。9.培养编写程序的艺术,明确程序的可读性是程序质量的重要标准,在提高程序的可读性上下功夫。进一步学习和掌握找与修改编译错误的方法。函数和程序结构1.熟悉函数的各个组成部分。2.理解函数的形式参数和实际参数的不同。3.理解函数的原型声明。4.理解主函数、系统函数和自定义函数。5.理解内联函数、重载函数和递归函数的特点;学会编制重载函数和递归函数。6.了解文件包含和预处理操作。类与对象1.理解并掌握类的定义,实例化的方法。2.了解类的构造函数和析构函数。3.学习类的成员访问控制的运用。4.了解类的常成员和常成员函数。5.了解类的静态数据成员和常成员函数。6.理解友元函数和友元类;掌握友元函数的使用。构造函数和析构函数1.理解构造函数与析构函数的含义以及特点。2.掌握构造函数的几种类型。3.掌握构造函数和析构函数的执行顺序。4.掌握在继承机制中派生类的构造函数和析构函数的执行顺序。数组指针以及自定义类型1. 理解数组指针的定义与存储机制。2. 学习使用指针和引用给函数传递参数。3. 学习string类型的使用。4. 掌握结构体类型的定义与使用。5. 理解共用体和枚举类型的定义。6. 掌握冒泡法和选择法排序的原理。实验环境Vc+6.0实验内容(1) 求出1000以内的所有素数及素数的个数。(p20-6.1)(2) 编写一个程序,输入年月日打印出改天是那年的第几天。(p20-6.3)(3) 编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数。(p21-2)(4) 设计一个立方体类Box它能计算并输出立方体的体积和表面积。(p25-1)(5) 定义一个Book(图书)类,在该类定义中包括:1、数据成员:bookname(书名)、price(价格)、number(存书量)。2、成员函数:display()显示图书的情况:borrow()将存书量减一,并显示当期那存书量;restore()将存书量加1,并显示当前存书量。3、在main()函数中,要求建立某一种图书对象,并对该图书进行简单的显示、借阅和归还管理。(p26-5)(6) 改造实验内容1的CMoney类,把其中的4个构造函数整合为1个构造函数。(P33-2)(7) 运行下列程序,分析继承下构造函数的调用。(p34-5)算法描述及实验步骤(1) 编写函数is_prime(int n)判断在2到n之间是否有能整除n的数,有返回零(表示n不是素数),在main()加2到1000的for循环,统计素数并输出,并在for循环体内加tag计数器统计素数的个数。(2) 编写判断闰年的函数,返回月份天数的函数,在主函数中输入年月日,输出该天是该年的第几天。(3) 定义字母、数字、空格、其他字符的计数器。用头文件中的string保存键入的字符串,for循环加if判断然后相应的计数器自增1,输出。(4) 创建Box类,定义私有数据成员a(边长),v(体积),b(表面积),定义公有函数成员,r_v()、r_b()分别计算体积并将其保存在私有数据成员v、b中,带默认实参的构造函数,set_a(int)设置边长a,diapaly()。最后主函数中创建Box对象,读入边长a,依次调用set_a(int),r_v(),r_b(),display()。(5) 定义B00k类及其成员,在main中创建该类的一个对象,调用store()函数初始化该对象,然后调用borrow(),restore(),display()对其操作。(6) 给CMoney类增加三个默认实参即可。(7) 录入程序,分析结果。调试过程及实验结果(1)、(2)、(3)、(4)、(5)、(6)、(7)、Human继承Primate,而primate继承Animal(公有继承)应该先调用最顶层的基类的构造函数,然后顺着继承链依次调用。总结实验中遇到很多在理论课中难以察觉的东西,比如友元函数的使用方法,要把iostream头文件换成iostream.h的形式并且去掉using namespace std才能使用(系统的bug),静态类型成员的使用法则。通过本次实验加深了对理论知识的理解和运用,尤其解决了对继承的困惑。附录(1)#includeusing namespace std;int is_prime(int n)int i;for(i=2;i*in;i+)if(n%i=0)return 0;return 1;int main()int sum,i,j;sum=0;j=0;for(i=1;i=1000;i+)if(is_prime(i)sum+;if(j+%10)couti ;elsecoutendl;coutendl素数的个数endl;coutsumendl;return 0;(3)#include/#includeusing namespace std;int digit,zimu,qita,kg;void sum(char* s)digit=0;zimu=0;qita=0;kg=0;int i;for(i=0;i=0&*(s+i)=a&*(s+i)=A & *(s+i)Z)zimu+;else if(*(s+i)= )kg+;else qita+;cout字母个数zimuendl数字个数digitendl空格数kgendl其他字符qitaendl;int main()const int n=100000;char sn;cout请输入一串字符endl;while(gets(s)sum(s);cout请输入一串字符endl;/getchar();return 0;(5)#include#includeusing namespace std;class Bookpublic:Book(string s=,double i=0.0,long n=0):book_name(s),price(i),number(n)void display();void borrow();void restore();void store(const string&,const double&,const long&);private:string book_name; double price; long number;void Book:display()coutbook name: book_nameendlprice: Book:priceendlnumber: Book:numberendl;void Book:borrow()-number;coutthe rest of the book: numberendl;void Book:restore()+number;coutthe rest of the book: numberendl;void Book:store(const string &s,const double &i,const long &n)book_name=s;price=i;number+=n;int main()Book b;string s;double i;long n,x;coutplease store the book into library!endl;coutplease enter the book name,price,numbersin;b.store(s,i,n);coutto log out ,please press Ctrl+z,or othersx)coutborrow the book ,please press 1,display the book ,please press 2,restore the book,please press 3x;switch(x)case 1:b.borrow();break;case 2:b.restore();break;case 3:b.display();break;coutto log out ,please press Ctrl+z,or othersendl;return 0;(2)#includeusing namespace std;int is_year(int y)double x;coutplease enter the length of boxx)if(y%400=0 | (y%4=0 & y%100!=0)return 1;return 0;int rt_day(int m,int y)switch(m)case 1: case 3: case 5: case 7: case 8: case 10: case 12:return 31;case 4: case 6: case 9: case 11:return 30;case 2:if(is_year(y)return 29;else return 28;int main()int y,m,d,sum;int i;cout请输如年月日ymd)sum=0;for(i=1;im;i+)sum+=rt_day(m,y);sum+=d;cout这是y年的第sum天endl;return 0;(4)#includeusing namespace std;class boxpublic:box(double i=0.0):a(i)void seta(double);void getvolume()volume=a*a*a;void getarea()area=a*a*6;void dis()coutvolume of the box: volumeendlarea of the box: areaendl;private:double a,volume,area;void box:seta(double i)a=i;int main()box b;b.seta(x);b.getvolume();b.getarea();b.dis();coutplease enter the length of box (if you want log out,please enter Ctrl+z)endl;return 0;(6)#includeusing namespace std;class CMoneypublic:CMoney(int i=0,int j=0,int v=0):yuan(i),jiao(j),fen(v)void dis();private:int yuan,jiao,fen;void CMoney:dis()coutI haveyuanyuanjiaojiaofenfenendl;int main()CMoney m,m1(100),m2(100,50),m3(100,50,2);m.dis();m1.dis();m2.dis();m3.dis();return 0;(7)#includeusing namespace std;class Animalpublic:Animal()species=Animal;coutAnimal 1ctorendl;Animal(const char *s)species=s;coutAnimal 2 ctorendl;private:string species;class Primate :public Animalpublic:Primate():Animal(Primat

温馨提示

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

评论

0/150

提交评论