今天同学找我给做C++作业 觉得这几个题还挺有意思的就发上来。。。

 

一、 定义复数类,要求:
     (1)属性定义为私有数据成员;
     (2)定义2个重载的构造函数:1)由参数传入实部(虚部默认为0),2)由参数传入实部和虚

部;
     (3)为私有数据成员定义getXXX、setXXX函数;
     (4)定义显示信息函数,使用IO流显示对象的复数表示;
     (5)定义加、减、乘、除函数,实现2个复数的四则运算功能;
     (6)在主函数中,创建复数类的对象,对各个成员函数进行测试。
二、定义Person类,属性包括:姓名、性别、出生年月、家庭住址、籍贯。要求:
     (1)属性定义为私有数据成员;
     (2)定义构造函数;
     (3)为私有数据成员定义getXXX、setXXX函数;
     (4)定义显示信息函数,使用IO流显示对象的所有属性值;
     (5)在主函数中,创建Person类的对象,对各个成员函数进行测试。
三、 定义Student类,要求:
     (1)从Person类公有派生;
     (2)定义构造函数;
     (3)为新增的数据成员定义getXXX、setXXX函数;
     (4)定义显示信息函数,使用IO流显示对象的所有属性值;
     (5)在主函数中,创建Person类的对象,对各个成员函数进行测试。
四、定义一个函数模板,实现对int、float等各种基本数据类型的数组进行从大到小的排序。要求:
     (1)数组大小及元素由参数传入;
     (2)在主函数中,使用int、float等各种基本数据类型的数组测试实例化后的模板函数。
五、定义类模板Vector,描述向量。要求:
     (1)向量长度在创建对象时才指定,存储空间使用new、delete进行动态管理;
     (2)定义多个重载的构造函数,分别满足:默认情况下(长度为0)、只传入长度参数、同时传

入长度和内容等情况下对象的创建;
     (3)定义私有数据成员的getXXX、setXXX函数;
     (4)定义成员函数,实现向量的显示、查找、排序功能;
     (5)在主函数中,使用int、float、char等各种基本数据类型实例化模板,并对各模板类的各

个成员函数进行测试。

1.
#include <iostream>
using namespace std ;
class Plural     //复数类
{
 
public :
 int  getValueA() ;
 int  getValueB() ;
 void setValue(float valueA,float valueB);
 Plural(float valueA);  //构造函数1
 Plural(float valueA,float valueB) ;  //构造函数2
 void  showValue() ;  //显示函数
 Plural  operator+(Plural tem)   //运算符重载
 {
  Plural t(this->valueA+tem.valueA,this->valueB+tem.valueB) ;
        return t;
 } 
 Plural  operator-(Plural tem)
 {
  Plural t(this->valueA-tem.valueA,this->valueB-tem.valueB) ;
        return t;
 }
 Plural  operator*(Plural tem)
 {
  Plural t(this->valueA*tem.valueA,this->valueB*tem.valueB) ;
        return t;
 }
    Plural  operator/(Plural tem)
    {
     Plural t(this->valueA/tem.valueA,this-

>valueB/tem.valueB) ;
     return t;
    }
    
private :
 float valueA;  //实部
 float valueB;//虚部
};
Plural::getValueA()
{
 return this->valueA ;
}
Plural::getValueB()
{
 return this->valueB ;
}
void Plural::setValue(float valueA,float valueB)
{  
 this->valueA=valueA ;
 this->valueB=valueB ;
}
void Plural::showValue()
{
 cout<<this->valueA<<"+"<<this->valueB<<"i"<<endl;
}
Plural::Plural(float valueA,float valueB)
{
 this->valueA=valueA;
 this->valueB=valueB;
 
}
Plural::Plural(float valueA)
{
 
 this->valueA=valueA;
 this->valueB=0 ;
 
}
int main(int argc,char**grgv)
{
    Plural a(1,2) ;
 Plural b(3,4) ;
 Plural c=a+b;
 c.showValue();
 c.setValue(3,6) ;
 c.showValue() ;
 c.
 
 
 
 return 0 ;
}

2.3.  //在一起
#include <iostream>
using namespace std ;
class Person
{
public :
 Person(char*name,char*sex,char*birth,char*addr,char*jiguan)
 {
  strcpy(this->name,name) ;
  strcpy(this->sex,sex) ;
  strcpy(this->birth,birth) ;
  strcpy(this->addr,addr) ;
  strcpy(this->jiguan,jiguan) ;
 }*
 Person()
 {
 }
 void  setInfo(char*name,char*sex,char*birth,char*addr,char*jiguan)   //设置信息
 {
  strcpy(this->name,name) ;
  strcpy(this->sex,sex) ;
  strcpy(this->birth,birth) ;
  strcpy(this->addr,addr) ;
  strcpy(this->jiguan,jiguan) ;
 }
 Person getInfo()  //返回this指向的对象
 {
  return *this;
 }
 void showInfo()
 {
  cout<<"name:"<<this->name<<endl;
  cout<<"sex:"<<this->sex<<endl ;
  cout<<"birth:"<<this->birth<<endl;
  cout<<"addr:"<<this->addr<<endl;
  cout<<"jiguan:"<<this->jiguan<<endl;
 }
private :
 char name[10] ;
 char sex[5] ;
 char birth[15];
 char addr[20] ;
 char jiguan[10]  ;
} ;

class  Student :public Person
{

public :
 Student(char*name,char*sex,char*birth,char*addr,char*jiguan,int

number,char*major)
 {
  Person::setInfo(name,sex,birth,addr,jiguan);
  this->number=number;
  strcpy(this->major,major);
 }

    void showInfo()
 {
  Person::showInfo() ;
     cout<<"学号:"<<number<<endl ;
  cout<<"专业:"<<major<<endl ;
 
 }
 Student getInfo()  //返回本对象副本
 {
  return *this ;
 }
private :
 int number ;//学号
    char major[20] ;//专业
} ;

void main(int argc,char**argv)
{
  
        Student s("d","f","w","we","fw",56,"ds");
  s.showInfo();
   

}

4.
#include <iostream>
using namespace std ;
template<class T>   //模板函数
void sort(T value[],int len)
{
   T tem ;//中间变量
   for(int i=0;i<len-1;i++)
    for(int j=i+1;j<len;j++)
     if(value[j]>value[i])
     {
      tem=value[j];
      value[j]=value[i];
      value[i]=tem ;  //冒泡排序
     }
}
void main(int argc,char**argv)
{

 int num[6]={2,34,7,9,1,5};
 int len=sizeof(num)/sizeof(int);
 sort(num,len) ;
 for(int i=0;i<6;i++)
  cout<<num[i]<<" " ;
}

4.

#include <iostream>
using namespace std ;
template <class T>
class  Vector
{
public :
 Vector(int len) 
 {
  length=len ;
  list=new T[len] ;
 }
 Vector()
 {
  length=0 ;
  list=NULL ;
 }
 ~Vector()    //析构函数
 {
  delete []list;  //防止堆中内存泄露 释放内存
  cout<<"内存释放成功"<<endl;
  
 }
 Vector(int len,T *num)  
 {
  length=len ;
  list=new T[length];
  for(int i=0;i<length;i++)
   this->list[i]=num[i]; 
 }
 void ShowVector()  //显示 向量
 {
  for(int i=0;i<length;i++)
   cout<<list[i]<<" " ;
  cout<<endl ;
 }
 void FindValue(T value) //查找元素返回索引位置
 {   
  for(int i=0;i<length;i++)
   if(value==list[i])
   {
    cout<<"找到元素"<<value<<",位于第"<<i+1<<"个数字"<<endl ;
    return ;
   }
   cout<<"没有找到元素!"<<endl ;
 }
 T getAt(int index)  //通过索引返回数据
 { 
  if(index>length)
  {
   cout<<"越界返回-9999"<<endl;
   return (T)-9999;  //如果越界 返回
  }
  return list[index];
 }
 void  setAt(int index,T value)  //通过索引设置指定位置的数据
 {
  
  if(index>length)
  {
   cout<<"越界"<< endl;
   return ;
  }
  list[index]=value ;
 }
 void sort()  //排序 升序
 {  
  T tem ;//临时中间变量
  for(int i=0;i<length-1;i++)
   for(int j=i+1;j<length;j++)
   {
   if(list[j]<list[i])
   {
    tem=list[j];
    list[j]=list[i];
    list[i]=tem ;
   }
   }
   
 }
private:
 T *list ;
 int length ;
};
void main(int argc,char**argv)
{
 
 cout<<"int型测试:"<<endl;
 int num1[8]={2,6,8,0,2,3,1,5};  
 Vector<int> *a=new Vector<int>(8,num1)  ; //测试了带两个参数的构造函数  剩下2中自

己测试
 a->ShowVector() ;
 a->setAt(2,88) ;  //根据索引为每个元素赋值
 a->ShowVector();
 cout<<a->getAt(3)<<endl ;//通过索引返回指定位置元素
 a->FindValue(4) ;//查找元素 
 a->sort();
 cout<<"整形排序后:"<<endl;
 a->ShowVector();
 
 
 cout<<endl<<"float型测试:"<<endl;
 float num2[4]={3.3f,4.2f,5.7f,6.1f};  
 Vector<float> *b=new Vector<float>(4,num2)  ; //测试了带两个参数的构造函数  剩下2

中自己测试
 b->ShowVector() ;
 b->setAt(2,88.3f) ;  //根据索引为每个元素赋值
 b->ShowVector();
 cout<<b->getAt(3)<<endl ;//通过索引返回指定位置元素
 b->FindValue(3.3f) ;//查找元素
 b->sort();
 cout<<"浮点型排序后:"<<endl;
 b->ShowVector();
 
 cout<<endl<<"char型测试:"<<endl;
 char num3[4]={'a','f','4','r'};  
 Vector<char> *c=new Vector<char>(4,num3)  ; //测试了带两个参数的构造函数  剩下2中

自己测试
 c->ShowVector() ;
 c->setAt(2,'h') ;  //根据索引为每个元素赋值
 c->ShowVector(); 
 cout<<c->getAt(3)<<endl ;//通过索引返回指定位置元素
 c->FindValue('a') ;//查找元素  
    c->sort();
 cout<<"字符型排序后:"<<endl;
 c->ShowVector();

 delete a;
 delete b;
 delete c;
}

时间: 2024-07-31 07:08:56

今天同学找我给做C++作业 觉得这几个题还挺有意思的就发上来。。。的相关文章

听说IT大神都在CSDN,小弟求帮做UML作业。Rational Rose 做的!!

问题描述 项目:题目自拟内容要求:1.绘制项目的用例图:2.针对每个用例编写用例文档(Word文档,命名规则:XXX_用例文档.doc):3.针对每个用例画出活动图,包含泳道:4.绘制项目类图,即域模型,要求绘制出属性.方法以及关系:5.针对每一个用例,绘制VOPC类图,要求绘制出边界类.控制类.实体类:6.针对每一个用例中的不同场景,分别绘制顺序图:7.绘制项目的组件图:8.绘制项目的部署图. 解决方案 解决方案二:这里大牛级的人物很多.包括WINDOWS内部的很多都在这里.不过他们好象都不帮

coding-怎样在google code找自己能做的项目?

问题描述 怎样在google code找自己能做的项目? 想增加一些代码量,上google code找能做的项目,请问怎么找?

小学生能否用百度做暑假作业?支持与反对两种观点针锋相对

最近,有关"小学生用百度做暑假作业"的事件持续发酵,在互联网上备受关注并引发了针锋相对的讨论.这一事件的起因是一个"公交车上学生争抢暑假作业"视频的迅速蹿红,进而引发出了"暑假作业过于变态"."百度成铲作业的神器"的话题讨论,而随着整个事件的升级,社会各界人士纷纷就此展开讨论,并形成了"是否拒绝科技工具"和"应试教育是祸根"两大观点流派. 支持与反对 两种观点针锋相对 <京华时报&

移动互联找个细分做脏活累活一定能赚钱

谈移动互联 1.移动互联找个细分做脏活累活一定能赚钱. 2.移动互联网领域中,做产品开放时,用户体验是首要考虑的因素. 3.移动互联网绝对不是用手机上网!很多人会想说,我就是把网页做得小一点.符合手机屏幕就够了,其实这是完全不一样的两个概念.移动互联网是一个完全全新的东西,大家千万不要认为它与手机上网是一件事情. 4.我对移动互联网特性的理解:1. 随时随地:2. 丰富交互:3. 身份统一. 5.对于用户来讲,需要登陆应用商店搜索或者浏览APP,在产品定位上面就要求你的APP一定要有更鲜明的定位

java-求做一个Java类的设计的题

问题描述 求做一个Java类的设计的题 Account类:代表一个银行账户 balance属性:代表账户里的金额 deposit方法:向账户中存钱,如果传入的金额大于0,存钱,返回true,否则不存钱,返回false withdraw方法:从账户中取钱,如果余额够,取钱,返回true,如果余额不足,不取钱,返回false display方法:用于查询当前帐户金额 解决方案 public class Account { private double balance;//定义账户的金额 /** *

c语言-求做一道数据结构(C语言的题)

问题描述 求做一道数据结构(C语言的题) 运行文件加密程序,输入要加密的文件名,然后输入密码,最后输入加密后的文件名,程序对文件中读入的每一个字符与密码进行异或,再将异或后的内容倒序写入指定的文件中. 解密程序为加密程序的逆过程. 请使用顺序栈的结构设计并完成程序的功能. 解决方案 http://blog.163.com/chatter@126/blog/static/12766566120101020102247603/ 解决方案二: http://blog.csdn.net/fdipzone

还是找程序员做老公,最靠谱!

很多MM在选老公的时候,都会选择帅气多金,职业又稳定的男生做老公,像医生啊.律师啊.老师啊这类职业. 但是,你有没有想过? 医生的身边都围着好多护士小姐,而且天天加班是常态,相处的时间太少,万一哪天被个小护士拐跑了,你都不知道.律师呢,你真以为可以和一个靠撒谎谋生的人保持诚实和信任的关系过一生吗?答案是NO.再说说男教师,整天被一大群青春貌美的,又崇拜他的女学生团团围住,难免哪天春心欲动,带着女学生私奔到天涯!还有像消防员.警察等高危职业,没准哪天来个意外事故死亡,你就得天天以泪洗面,抱着琵琶另

企业做推广找一家专门做竞价推广公司托管好?还是招一个专员好?

互联网时代,搜索引擎竞价推广已经成为各企业推广宣传自己品牌或者产品的一种必需方式,也让搜索竞价逐渐的形成了一个"潮流".但是,行内的人都知道,搜索竞价推广是一个很烧钱的工作,而且在这方面"白烧钱"那都是很常见的事,这将是每个中小型企业做竞价推广都会面对的问题. 大多数行外人都以为搜索竞价的日常工作就是在电脑前看着哪个关键词的价格不合适了调整一下,因为在我接触到SEM之前经常看到以前的同事就是这么做的,而且每次听到他们谈论SEM方面的问题也大多数都纠结在关键词价格上,

找人帮忙做点东西,比较急。

问题描述 主要就是登录,添加文章,生成静态页面这几个可以做的请加QQ:258337928可以付点钱,但不会很多.