学习C++过程中有问题的作业,记下以便日后修改完善

原创 2012年03月27日 23:10:07

第四章  类

运算符重载(问题不会利用友元)

#include<iostream>
using namespace std;
class Complex{
public:
 Complex operator++(int);
 /*Complex operator++();*/
 Complex operator/=(const Complex &);
 Complex operator*=(const Complex &);
 Complex operator+=(const Complex &);
 Complex operator-(const Complex &);
 Complex(double r=0,double i=0):real(r),image(i){}
 void show(){
  cout<<real<<"+"<<image<<"i"<<endl;
 }
private:
 double real;
 double image;
};
Complex Complex::operator++(int){
 this->real++;
 this->image++;
 return *this;
}
//Complex Complex::operator++(){
// this->real++;
// this->image++;
// return *this;
//}
Complex Complex::operator/=(const Complex &c){
 double x;
 x=this->real;
 this->real=(x*c.real+this->image*c.image)/(c.real*c.real+c.image*c.image);
 this->image=(this->image*c.real-x*c.image)/(c.real*c.real+c.image*c.image);
 return *this;
}
Complex Complex::operator*=(const Complex &c){
 double x;
 x=this->real;
 this->real=x*c.real-this->image*c.image;
 this->image=x*c.image+this->image*c.real;
 return *this;
}
Complex Complex::operator+=(const Complex &c){
 Complex t;
 this->real+=c.real;
 this->image+=c.image;
 return *this;
}
Complex Complex::operator-(const Complex & c){
 Complex t;
 t.real=this->real-c.real;
 t.image=this->image-c.image;
 return t;
}
int main(){
 Complex c1(2,3),c2(1,4),c3;
 cout<<"c1=";
 c1.show();
 cout<<"c2=";
 c2.show();
 cout<<"c3=";
 c3.show();
 cout<<"(c3=c1-c2)=";
 c3=c1-c2;
 c3.show();
 /*cout<<"(c1+=c2)=";
 c1+=c2;
 c1.show();
 cout<<"(c2*=c1)=";
 c2*=c1;
 c2.show();*/
 /*c1/=c2;
 cout<<"(c1/=c2)=";
 c1.show();*/
 cout<<"c1++=";
 c1++.show();
 return 0;
}

第五章  数组与指针

标准c++string类(问题无法理解,无从下手)

#include<iostream>
using namespace std;
const int n=21;
class mystring{
public:
 bool operator==(mystring &);
 bool operator>(mystring &);
 bool operator<(mystring &);
 mystring &operator+=(char * s);
 mystring &operator+(char * s);
 mystring &operator=(char * s);
 char operator[](int);
 mystring(){
  last=0;
  maxsize=n;
  str[0]='\0';
 }//当c字符串过长时,初始化要采用结尾处理
 mystring(char *s){
  last=-1;
  maxsize=n;
  do{
   last++;
   str[last]=s[last];
  }while(s[last]!='\0' && last<maxsize-1);
  str[last]='\0';
 }
 ~mystring(){}    //析构函数

 void show(){
  cout<<str<<'\t'; }
private:
 char str[n];
 int maxsize;
 int last;
 
};
char mystring::operator[](int){
 int i;
 cin>>i;
 return i;
}
mystring & mystring::operator=(char *s){//这里返回值为引用,不调用复制构造函数
 last=-1;
 do{
  last++;
  str[last]=s[last];
 }while(s[last]!='\0' && last<maxsize-1);
 str[last]='\0';
 return *this;
}
mystring &mystring::operator+(char *s){
 mystring t;
 last=-1;
 do{
  last ++;
  t.str[last]=str[last]+s[last];
 }while(s[last]!='\0' && last<maxsize-1);
 str[last]='\0';
 return t;
}
mystring &mystring::operator+=(char *s){
 last=-1;
 do{
  last ++;
  str[last]+=s[last];
 }while(s[last]!='\0' && last<maxsize-1);
 str[last]='\0';
 return *this;
}
bool mystring::operator<(mystring & ms){
 int i=0,k;
 do{
  k=str[i]-ms.str[i];
  i++;
 }while(k==0 && i<last && i<ms.last);
 if(k<0) return true;
 if(i==last && i!=ms.last) return true;
 return false;
}
bool mystring::operator>(mystring & ms){
 int i=0,k;
 do{
  k=ms[last]-str[last];
  i++;
 }while(k==0 && i<last && i<ms.last);
 if(k<0) return true;
 if(i==last && i!=ms.last) return true;//此处不太理解!!
 return false;
}
bool mystring::operator==(mystring & ms){
 int i=0,k;
 do{
  k=str[i]-ms.str[i];
  i++;
 }while( k==0 && i<last && i<ms.last);
 if(k==0) return true;
 if(i==last && i!=ms.last) return true;
 return false;
}
int main(){
 mystring  str0;
 mystring();
 str0.show();
 return 0;
}//无法理解

关于日历的制作(只能对已知的日期进行编程)

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
 int year,month,day;
 year=2012;
 month=2;
 cout<<setw(16)<<year<<"年"<<month<<"月"<<endl;
 cout<<setw(4)<<"日"<<setw(4)<<"一"<<setw(4)<<"二"<<setw(4)<<"三"<<setw(4)<<"四"<<setw(4)<<"五"<<setw(4)<<"六"<<endl;
 for(day=1;day<=29;day++)
 {
  if(day==1)
   cout<<setw(16)<<day;
  else
   cout<<setw(4)<<day;
  if((day+3)%7==0)
   cout<<endl;
 }
}

杨辉三角(虽然程序正确,但对循环还是不太熟练)

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
 int n[10][10],i,j,k;
 for(i=0;i<10;i++)
  for(j=0;j<=i;j++)
   if(j==0 || j==i)
    n[i][j]=1;
   else
    n[i][j]=n[i-1][j-1]+n[i-1][j];
 
 for(i=0;i<10;i++)
 {
  for(k=10;k>=i;k--)
  cout<<"  ";
  for(j=0;j<=i;j++)
   cout<<setw(4)<<n[i][j];
  cout<<endl;
 }

}




OJ刷题---弟弟的作业

题目要求: 输入代码: #include #include//strlen必备头文件 #include//atoi(char )必备头文件 #include//isdigit(st...
  • linhaiyun_ytdx
  • linhaiyun_ytdx
  • 2015年08月20日 20:41
  • 846

完善个人资料及返回主页面

1.运行页面如图: 2功能: 实现对信息的完善和返回保存,并点击返回按钮返回主页面 3.建立两个Class文件MainActivity和FirstActivity mainActivi...
  • zhaodizhong
  • zhaodizhong
  • 2015年11月15日 10:02
  • 858

回溯法解决批处理作业调度问题

唉,这是作为一个失败的开端。但是,我不害怕失败的!今天稍微晚点睡觉,因为中午多睡啦~最近被王晓东老师的《计算机算法设计与分析》(第4版)折磨得够呛。不会说些文雅的话,这的确是事实。基础差,不仅仅将学会...
  • qq_31725785
  • qq_31725785
  • 2016年06月16日 22:33
  • 575

sql数据库作业,定期执行存储过程

IF EXISTS (        SELECT *        FROM   dbo.sysobjects        WHERE  id = OBJECT_ID(N'[dbo].[Jo...
  • AllCanResolved
  • AllCanResolved
  • 2013年04月15日 09:08
  • 1896

Spark架构与作业执行流程简介

 Spark架构与作业执行流程简介 Local模式 运行Spark最简单的方法是通过Local模式(即伪分布式模式)。     运行命令为:./bin/run-example org.ap...
  • wang1127248268
  • wang1127248268
  • 2016年11月08日 22:53
  • 595

学霸的迷宫 经典BFS

问题描述   学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要...
  • zspatial
  • zspatial
  • 2016年02月19日 13:03
  • 981

你真的需要ETL工具吗?

不管是大数据领域,还是传统的基础数据领域,为了解决数据的流转问题,都需要各种类型,适应异构环境的小程序来做支撑,通常我们称之为ETL作业。       一想到做数据仓库项目,大家的第一反应就是去...
  • humsuen
  • humsuen
  • 2017年11月27日 17:21
  • 110

C++学习的一些经历

闲扯C++道路的经历前言不知道会不会被骂,毕竟作为一个还不能称为精通C++的人说这些在大神面前总显得有些班门弄斧了。 周围有不少的同学朋友编程都相对比较差,感觉是缺少一些方法,我把我的历程经验贴出来,...
  • lipeng08
  • lipeng08
  • 2016年03月25日 15:36
  • 8767

《机器学习基石》作业一

已入机器学习坑,下决心走下去。《统计学习方法》一书介绍了十种算法,不算太难,但仍需重读以仔细研究其中的推导。《机器学习实战》一书则给出了各种算法的具体实例,Python实现,适合入门者了解算法的具体应...
  • MajorDong100
  • MajorDong100
  • 2016年03月24日 10:08
  • 2711

AndrewNg机器学习第四周作业:关于使用逻辑回归、神经网络训练数据并应用之的心得

ex3的作业是根据已有的数据集 (20*20像素的图片,每个像素是一个feature,总共400个features,400个features作为输入X,数据集已经包含输出的y,代表这是什么数字) ...
  • csd54496
  • csd54496
  • 2016年10月30日 21:57
  • 1097
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习C++过程中有问题的作业,记下以便日后修改完善
举报原因:
原因补充:

(最多只允许输入30个字)