那一年,我在懵懂好奇中选择了你
于是盼望者,期待者,焦急者
时刻梦幻与你的相遇画面
憧憬着我们在一起的未来
于是,那一年,我们第一次相识
缘于文武双全的媒人Mr'贺(私下我们称 老贺)
于是我们的故事展开了
开始的开始
简单的邂逅"Hello Word"
一见钟情
于是,那一年,有了我对你的第一次表白
过程是这样的:
#include <iostream>
using namespace std;
int main()
{
int i,j;
i=1;
while(i<=7)
{
for(j=1;j<=2*i-1;++j)
cout<<"^";
cout<<endl;
++i;
}
cout<<endl;
cout<<"C++我薛某来了"<<endl;
return 0;
}
感觉好神奇,好牛的样子(自恋下)
于是,那一年我成为了你后宫中的一猿
每天你有滑稽的"swith"选择
#include <iostream>
using namespace std;
int main()
{
int t,x,y;
cin>>x;
t=(x<2)+(x<6)+(x<10);
switch(t)
{
case 0:y=-x*x-1;break;
case 1:y=-x;break;
case 2:y=x*x+1;break;
case 3:y=x;break;
}
cout<<y<<endl;
return 0;
}
有时你会调皮
让我陷入不能自已的"繁琐"
于是,我们的感情出现问题
那一年我抓耳挠腮
可我没有放弃
找到了for, while,do while帮忙
#include<iostream>
using namespace std;
int main()
//求Sn=a+aa+aaa+……+aa……a的值,其中a和n通过键盘输入
{
int a,n,sum=0,sn=0;
cout<<"请输入a和n的值:"<<endl;
cin>>a>>n;
for(int i=1;i<=n;i++)
{
sum=sum*10+a;
sn+=sum;
}
cout<<"sn=a+aa+aaa+.....+aa....a(n个a)="<<sn<<endl;
return 0;
}
由于你的魅力无与伦比
于是,那一年,我知道你有很多追求者
并且知道你分了组
美其名曰 “数组”
并且在其中时刻做着
冒泡 选择 排序
<a>/*@Class</a>计134~4
*@Author:薛富磊
*@Time:2013-11-28
*@Function: 自定义冒泡函数排序
*@Args:
*@Return:
*/
#include<iostream>
using namespace std;
void bubble_sort(int a[]); //声明自定义函数
int main() //主函数
{
int b[20]={86,76,62,58,77,85,92,80,96,88,77,67,80,68,88,87,64,59,61,76};
bubble_sort(b); //调用自定义函数
for(int i=0;i<20;i++)
cout<<b[i]<<" ";
}
void bubble_sort(int a[]) //定义冒泡排序函数
{
for(int j=0;j<20;j++)
{
for(int t,i=0;i<20-j;i++)
{
if(a[i]>a[i+1])
{
t=a[i]; //两个值之间的调换
a[i]=a[i+1];
a[i+1]=t;
}
}
}
return;
}
#include<iostream>
using namespace std;
void bubble_sort(int a[],int n); //声明自定义函数
int main() //主函数
{
int b[20]={86,76,62,58,77,85,92,80,96,88,77,67,80,68,88,87,64,59,61,76};
bubble_sort(b,20); //调用自定义函数
for(int i=0;i<20;i++)
cout<<b[i]<<" ";
}
void bubble_sort(int a[],int n) //定义选择排序函数
{
for(int k,j=0;j<n-1;j++)
{
k=j; //设第一个数最小
for(int t,i=0;i<n;i++)
{
if(a[i]>a[k])
k=i; //循环k最小
t=a[k]; //两个值之间的调换
a[k]=a[j];
a[j]=t;
}
}
return;
}
所以,那一年我用文件处理记录着
我们发生的一切
/*@Class</A>计134~4
*@Author:薛富磊
*@Time:2013-11-30
*@Function: 文件english.dat中已经有了学生成绩数据,求平均成绩 优秀和不及格人数;
*@Args:
*@Return:
*/
#include<fstream> //处理文件要包括头文件
#include<iostream>
#include<cstdlib> //调用exit(1)需要包含cstdlib
using namespace std;
int main()
{
double null,ave,sum=0; //null成绩 ave平均成绩 sum成绩和
int whiz=0,fail=0,i=0; //whiz优秀 fail不及格人数
ifstream infile("english.dat",ios::in); //以输入的方式(ios::in)打开文件,注意english.dat必须在文件夹中存在;
if(!infile) //测试是否成功打开,打开失败时(如果读的数据文件不存在)退出;
{
cerr<<"open error!/n";
exit(1);
}
//下面读取数据并完成出路,若数据需要多次使用,可以读到数组中;
while(infile>>null) //当到达文件尾,则循环处理结束。类似cin>>null,只不过数据来源于打开的文件
{
cout<<"请输入学号为"<<i<<"的英语成绩:";
cin>>null;
if(null>=90)
whiz++;
if(null<=60)
fail++;
sum+=null;
i++;
}
infile.close(); //读入完毕要关闭文件 否则会丢失数据
ave=sum/10;
cout<<"优秀人数:"<<whiz<<endl; //输出结果
cout<<"不及格人数:"<<fail<<endl;
cout<<"平均成绩:"<<ave<<endl;
return 0;
}
随着时间的流逝
你也不迷茫了
于是创作了 结构体
剖析一切
/*Univercity:烟台大学
*@Class</A>计134~4
*@Author:薛富磊
*@Time:2013-12-11
*@Function:结构体的运用 写入成绩 计算总成绩 均分
*@Args:
*@Return:
*/
#include <iostream>
using namespace std;
struct Student
{
char num[13];
char name[10];
int cpp;
int math;
int english;
int grade;
double average;
};
const int N=3;
int main( )
{
int i, k=0;
cout<<"请输入学号、姓名、C++、高数、英语成绩:\n";
//定义结构体数组
Student stu[N];
//写出代码,实现要求的功能
for(i=0;i<N;i++)
{
cin>>stu[i].num;
cin>>stu[i].name;
cin>>stu[i].cpp;
cin>>stu[i].math;
cin>>stu[i].english;
stu[i].grade=stu[i].cpp+stu[i].math+stu[i].english;
stu[i].average=stu[i].grade/3;
k+=stu[i].average;
}
cout<<"-----------------------------------\n";
cout<<"|学号 |姓名 |总分 |均分 |\n";
for(i=0;i<N;i++)
{
cout<<stu[i].num<<"|\t"<<stu[i].name<<"|\t"<<stu[i].grade<<"|\t"<<stu[i].average<<endl;
}
cout<<"所有同学均分的均值是:"<<k/N;
return 0;
}
并且你在时刻进化改变着
分类找对象了
多系发展着
/*Univercity:烟台大学
*@Class</A>计134~4
*@Author:薛富磊
*@Time:2014-4-2
*@Function:回想Engineer类的数据成员,有眼镜、背包等。某Engineer的眼镜、背包,是Glass、Bag类的对象。
类中的数据成员,其类型可以是简单类型,也可以是类.
通过这种方式,将某些类组合到另外的类中,当作其中的一个“部件”使用。
本项目设计一个三角形类,其数据成员不再是三角形三条边的边长,而是三角形的三个顶点。
利用设计的三角形类,输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
*@Args::(1)这个问题需要用到两个类,顶点类参照项目1中的CPoint类;
(2)三角形类参考下面CTriangle类的声明;
(3)充分利用CPoint类中已有的代码实现;
(4)关于三条边的处理,可以增加三个私有属性,在初始化时求出来备用,也可以在需要时计算得到。
*@Return:
*/
#include <iostream>
#include "Header.h"
#include<Cmath>
using namespace std;
int main()
{
CPoint a,b,c;
cout<<"请输入三点坐标:";
a.input();
b.input();
c.input();
cout<<"坐标为:";
a.output();
b.output();
c.output();
CTriangle t(a,b,c);
cout<<"三角形的周长:"<<t.perimeter()<<" "<<"面积:"<<t.area()<<endl;
cout<<"该三角形:";
if(t.isRightTriangle())
cout<<"是直角三角形 "<<endl;
else
cout<<"不是直角三角形 "<<endl;
if(t.isIsoscelesTriangle())
cout<<" 是等腰三角形"<<endl;
else
cout<<" 不是等腰三角形"<<endl;
return 0;
}
NO2:
于是,为了共同目标
我也找到了许多志同道合之友
友元符号重载
/*Univercity:烟台大学
*@Class</A>计134~4
*@Author:薛富磊
*@Time:2014-4-28
*@Function:(1)定义分数的一目运算+和-,分别代表分数取正和求反,
将“按位取反运算符”~重载为分数的求倒数运算。
(2)定义分数类中<<和>>运算符重载,实现分数的输入输出,
改造原程序中对运算结果显示方式,使程序读起来更自然
*@Args:
*@Return:
*/
#include <iostream>
#include<Cmath>
using namespace std;
class CFraction
{
private:
int nume; //分子
int deno; //分母
public:
CFraction(int nu=0,int de=1):nume(nu),deno(de) {};//de!=0
void simplify(); //分数化简
//输入输出的重载
friend istream &operator>>(istream &cin,CFraction &x);
friend ostream &operator<<(ostream &cout,CFraction x);
CFraction operator+(const CFraction &c); //两个分数相加,结果要化简
CFraction operator-(const CFraction &c); //两个分数相减,结果要化简
CFraction operator*(const CFraction &c); //两个分数相乘,结果要化简
CFraction operator/(const CFraction &c); //两个分数相除,结果要化简
CFraction operator+(); //取正一目运算
CFraction operator-(); //取反一目运算
CFraction operator~(); //取倒数一目运算
bool operator>(const CFraction &c);
bool operator<(const CFraction &c);
bool operator==(const CFraction &c);
bool operator!=(const CFraction &c);
bool operator>=(const CFraction &c);
bool operator<=(const CFraction &c);
};
void CFraction::simplify()
{
int a,b,c;
//数学函数:fabs 原型:extern float fabs(float x);
//用法:#include <math.h> 功能:求浮点数x的绝对值
//说明:计算|x|, 当x不为负时返回x,否则返回-x
a=fabs(nume);
b=fabs(deno);
//求最大公约数
while(c=a%b)
{
a=b;
b=c;
}
nume=nume/b;
deno=deno/b;
if(deno<0)
{
nume=-nume;
deno=-deno;
}
}
//重载运算符"友元"
istream &operator>>(istream &cin,CFraction &x)
{
char ch;
while(1)
{
cin>>x.nume>>ch>>x.deno;
if(ch!='/')
cout<<"输入格式错误,重新输入\n";
else if(x.deno==0)
cout<<"分母为0,重新输入\n";
else break;
}
return cin;
}
ostream &operator<<(ostream &cout,CFraction x)
{
cout<<x.nume<<"/"<<x.deno<<endl;
return cout;
}
//两个分数相加
CFraction CFraction::operator+(const CFraction &c)
{
CFraction s;
s.nume=nume*c.deno+c.nume*deno;
s.deno=deno*c.deno;
s.simplify();
return s;
}
//两个分数相减
CFraction CFraction::operator-(const CFraction &c)
{
CFraction s;
s.nume=nume*c.deno-c.nume*deno;
s.deno=deno*c.deno;
s.simplify();
return s;
}
//两个分数相乘
CFraction CFraction::operator*(const CFraction &c)
{
CFraction s;
s.nume=nume*c.nume;
s.deno=deno*c.deno;
s.simplify();
return s;
}
//两个分数相除
CFraction CFraction::operator/(const CFraction &c)
{
CFraction s;
s.nume=nume*c.deno;
s.deno=deno*c.nume;
s.simplify();
return s;
}
CFraction CFraction::operator+()
{
return *this;
}
CFraction CFraction::operator-()
{
CFraction t;
t.nume=-nume;
t.deno=deno;
return t;
}
CFraction CFraction::operator~()
{
CFraction t;
t.nume=deno;
t.deno=nume;
if(t.deno<0)
{
t.deno=-t.deno;
t.nume=-t.nume;
}
return t;
}
bool CFraction::operator>(const CFraction &c)
{
int a,b;
a=nume*c.deno;
b=c.nume*deno;
if((a-b)>0) return true;
return false;
}
bool CFraction::operator<(const CFraction &c)
{
int a,b;
a=nume*c.deno;
b=c.nume*deno;
if ((a-b)<0) return true;
return false;
}
bool CFraction::operator==(const CFraction &c)
{
if(*this==c)return true;
return false;
}
bool CFraction::operator!=(const CFraction &c)
{
int a,b;
a=nume*c.deno;
b=c.nume*deno;
if ((a-b)!=0) return true;
return false;
}
bool CFraction::operator>=(const CFraction &c)
{
if (*this<c) return false;
return true;
}
// 分数比较大小
bool CFraction::operator<=(const CFraction &c)
{
if (*this>c) return false;
return true;
}
int main()
{
CFraction x,y,z;
cout<<"输入x: ";
cin>>x;
cout<<"输入y: ";
cin>>y;
z=x+y;
cout<<"x+y="<<z<<endl;
z=x-y;
cout<<"x-y="<<z<<endl;
z=x*y;
cout<<"x*y="<<z<<endl;
z=x/y;
cout<<"x/y="<<z<<endl;
cout<<"-x="<<-x<<endl;
cout<<"+x="<<+x<<endl;
cout<<"x的倒数: "<<~x<<endl;
if (x>y) cout<<x<<"大于"<<y<<endl;
if (x<y) cout<<x<<"小于"<<y<<endl;
if (x==y)cout<<x<<"等于"<<y<<endl;
return 0;
}
那一年后我以为我对你
理解透彻了
我以为我们可以相爱了
可是你却搞基了(基类派生)
/* C++代码 */
#include <iostream>
#include<iomanip>
using namespace std;
class Shape
{
public:
void printArea();
};
class Circle:public Shape
{
private:
double radius;
public:
Circle(double r):radius(r){}
friend void printArea(Circle);
};
void printArea(Circle c)
{
cout<<3.14*c.radius*c.radius<<endl;
}
class Rectangle:public Shape
{
private:
double length,width;
public:
Rectangle(double l,double w):length(l),width(w){}
friend void printArea(Rectangle);
};
void printArea(Rectangle a)
{
cout<<a.length*a.width<<endl;
}
class Triangle:public Shape
{
private:
double side,high;
public:
Triangle(double s,double h):side(s),high(h){}
friend void printArea(Triangle);
};
void printArea(Triangle b)
{
cout<<0.5*b.side*b.high<<endl;
}
int main()
{
float r,a,b,w,h;
cout<<fixed<<setprecision(2);
cin>>r;
Circle circle(r);
cout<<"area of circle = ";
printArea(circle);
cin>>a>>b;
Rectangle rectangle(a,b);
cout<<"area of rectangle = ";
printArea(rectangle);
cin>>w>>h;
Triangle triangle(w,h);
cout<<"area of triangle = ";
printArea(triangle);
return 0;
}
我才知道我对你一知半解
于是,我迷茫了
可是我并没有放弃过
尽管在追求你的大军中
我是毫不起眼 飘渺
但我毅然为你奋不顾身
去做一个
求索者,奋斗者,无谓者
因为我知道
前途路上有兄弟不孤单
![](https://img-blog.csdn.net/20140824223642732?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2ODk2NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)