1、Do while 循环void main() do do while(j if(m) cout i+ while(i101);For 循环 int i,j,n,m; for (i=2;101;i+) for (j=2;j=n;j+) if (i%j=0) if (m)运行结果:结论: 不管for还是while还是do while,他们的循环体都是一样的,所以只要编出来一个就等于全编出来了,而且程序要设计尽量简单。22输入一个有符号的十进制数,转换成机内二进制数输出(要求用位操作运算)。利用位运算将二进制的每一位取出存入数组,然后按要求输出。#include char a; int t8; in
2、t i; couta; for(i=0;8; ti=a&0x01; a=a1; for(i=7;i=0;i-) coutti; system(pause);结果:只有掌握位运算规则,才能编出来程序二 书上P144,4-10 设计一个用于人事管理的“人员”类 .由于考虑到通用性,这里只抽象出所有人员都具有的属性:编号,性别,出生日期,身份证号.(“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数、复制构造函数、内联成员函数、带默认形参值的成员函数、类的组合。)通过构造函数,实现人员的录入和输出。class dateprivate: int yea
3、r; int month; int day;public: date(int a=0,int b=0,int c=0)year=a;month=b;day=c; inline void setyear(int y) year=y; void setmonth(int m) month=m; void setday(int d) day=d; void showdate()year monthday;class people char number100; char id100; char sex2; date birthday; people(); people(people&p); peop
4、le(); void setnumber(char* a) strcpy(number,a); void setid(char*); void setsex(char* c) strcpy(sex,c); void setbirthday(date d) birthday=d; char *getnumber() return number; char *getsex() return sex; char *getid() return id; date getbirthday() return birthday;date d;char m;people:people():birthday(d
5、)void people:setid (char*ids) strcpy(id,ids);录入信息 people p1; /people*p4=&p1,&p2,&p3,&p4;输入员工的出生日期年 int a; birthday.setyear (a);月 int b;b; birthday.setmonth (b);日 int c;c; birthday.setday (c);输入编号 char numberstr20;numberstr; p1.setnumber (numberstr);输入身份证号 char idstr20;idstr; p1.setid (idstr);输入性别 ch
6、ar sexstr30;sexstr; p1.setsex (sexstr);输出信息员工的出生日期 birthday.showdate ();编号为 p1.getnumber() 身份证号为 p1.getid() while(a= 0 | b= 0);float Rectangle:area() return a*b;void Rectangle:show()a=a,b=b,area=area()class Cat Cat()+numOfCats; Cat(const Cat& cat)+numOfCats; virtual Cat()-numOfCats; static int getNu
7、mOfCats()return numOfCats; static int numOfCats;int Cat:numOfCats=0; Cat a; Cat b;numOfCats:Cat:getNumOfCats() Cat c(a); Cat* p=new Cat(); delete p;这部分与类密切联系,所以要掌握类,并且理解静态数据成员的使用.书上P186 5-14定义Boat类和Car两个类,二者都有weight属性,定义二者的友元函数getTotalWeight(),计算二者重量之和!定义两个类,使其为友元函数,在其基础上进行所需的运算。class Car;class Boat
8、 int Boatweight; Boat() Boatweight=450; friend int totalWeight(Boat &,Car &class Car int Carweight; Car( ) Carweight=450;int totalWeight(Boat &x,Car &y) return x.Boatweight+y.Carweight; Boat a; Car b;这两者的总重量为totalWeight(a,b)运行结果:结论:在理解类的情况下,可以用友元函数。在编写程序时,可以有效的减少程序的冗长。四书上P248 已知有一个数组名叫oneArray,用一条语句
9、求出其元素的个数。利用sizeof函数 int array = 8, 4, 3, 4, 5,7,9,10; int i = sizeof(array)/sizeof(int); cout i endl;结果:掌握基本函数的含义和用法书上P249 6-20实现一个名为SimpleCircle的简单圆类。其数据成员int*itsRadius为一个指向其半径的指针,存放其半径值。设计数据成员的各种操作,给出这个类的完整实现并测试这个类。利用类与友元函数 using namespace std;class SimpleCircleSimpleCircle();SimpleCircle(int);Sim
10、pleCircle(const SimpleCircle &SimpleCircle() void SetRadius(int);int GetRadius()const;int *itsRadius;SimpleCircle:SimpleCircle()itsRadius = new int(5);SimpleCircle(int radius)itsRadius = new int(radius); rhs)int val = rhs.GetRadius();itsRadius = new int(val);int SimpleCircle:GetRadius() constreturn
11、*itsRadius;SimpleCircle CircleOne, CircleTwo(9);cout CircleOne: CircleOne.GetRadius() CircleTwo: CircleTwo.GetRadius() 要充分理解类的含义与用法,理解友元的用法 五书上P250 6-22编写函数void reverse(string &s),用递归算法是字符串倒置。算法设计:利用递归算法设计倒叙void reverse (char *s) char t; static int i=0; t = *(s+strlen(s)-i-1); *(s+strlen(s)-i-1) = *
12、(s+i); *(s+i) = t; i+; if(strlen(s)/2=i); else reverse (s); char s100;请输入字符串:s; reverse(s);倒序后的字符串:s要熟练掌握递归方法内容:书上P250 6-27定义一个Employee类,其中包括姓名、地址、城市和邮编等属性,包括setname(),display(),等函数。Display()使用cout语句显示姓名、地址、城市和邮编等属性,函数setname()改变对象的姓名属性,实现并测试这个类。利用类来设计这个程序class Employee char *name,*address,*city,*po
13、stCode; Employee(char *_name,char *_address,char *_city,char *_postCode) name = _name; address = _address; city = _city; postCode = _postCode; void setName(char *_name) void display()name :nameaddress :addresscity :citypostcode :postCodedisplay();setName(李四熟练掌握类的方法,用类来表示需要表示的东西。 六定义一个基类sharp,在此基础上派生
14、出rectangle和circle,两者都有getarea()函数计算面积。程序代码:cmath#define pi 3.14class shape public: virtual float area()=0;class circle:public shape circle(float r1) r=r1; private: float r; float area() return (float)pi*r*r;class rectangle: rectangle(float w1,float h1) width=w1;height=h1; float width,height; return
15、width*height;class square : public rectangle square(float len):rectangle(len,len); square(); float area(float len) return len * len; ; shape* s2; int m,a,b;输入圆半径:m; s0=new circle(m);s0-输入长和宽: s1=new rectangle(a,b);s1- s 2 = new square( a ); s2-area() :在派生类的基础上在派生,相当于把派生看作是基类!定义一个Document类,有数据成员name,
16、从document派生出book类,增加数据pagecount。class Document Document(string Name) name=Name; void display() /name= string name;class Book:public Document Book(string nam,int page): Document(nam) pageCount=page; void show() /显示Book类数据的函数pageCount=pageCount int pageCount; /该类有数据成员pageCount Book a(,50); a.display()
17、; /显示数据name a.show(); /显示数据pageCount掌握类的含义,在类的基础上派生,直接输出的!可以转换为输入输出!七7-10一、内容:定义一个object类,有数据成员weight及相应的操作函数,由此派生出box类,增加数据成员height和width及相应的操作函数,声明一个box类对象,观察构造函数和析构函数的调用顺序。二、设计思路:利用类的派生思想三、程序代码:class Object Object()call the Objects constructor void set_weight(int neww=0,int newn=0) weight=neww; num=newn; void total_weight()the total weight isweight*num int getw()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1