资源描述
第二章:开始学习C++
//ex2.1--display your name and address
#include<iostream>
int main(void)
{
using namespace std;
cout<<"My name is liao chunguang and I live in hunan chenzhou.\n”;
}
//ex2.2--convert the furlong units to yard uints-把浪单位换位码单位
#include<iostream>
double fur2yd(double);
int main()
{
using namespace std;
cout<<"enter the distance measured by furlong units:";
double fur;
cin>>fur;
cout<<"convert the furlong to yard"<<endl;
double yd;
yd=fur2yd(fur);
cout<<fur<<" furlong is "<<yd<<" yard"<<endl;
return 0;
}
double fur2yd(double t)
{
return 220*t;
}
//ex2.3-每个函数都被调用两次
#include<iostream>
void mice();
void see();
using namespace std;
int main()
{
mice();
mice();
see();
see();
return 0;
}
void mice()
{
cout<<"three blind mice"<<endl;
}
void see()
{
cout<<"see how they run"<<endl;
}
//ex2.4
#include<iostream>
int main()
{
using namespace std;
cout<<"Enter your age:";
int age;
cin>>age;
int month;
month=age*12;
cout<<age<<" years is "<<month<<" months"<<endl;
return 0;
}
//ex2.5---convert the Celsius valve to Fahrenheit value
#include<iostream>
double C2F(double);
int main()
{
using namespace std;
cout<<"please enter a Celsius value:";
double C;
cin>>C;
double F;
F=C2F(C);
cout<<C<<" degrees Celsius is "<<F<<" degrees Fahrenheit."<<endl;
return 0;
}
double C2F(double t)
{
return 1.8*t+32;
}
//ex2.6---convert the light years valve to astronomical units--把光年转换为天文单位
#include<iostream>
double convert(double);//函数原型
int main()
{
using namespace std;
cout<<"Enter the number of light years:";
double light_years;
cin>>light_years;
double astro_units;
astro_units=convert(light_years);
cout<<light_years<<" light_years = "<<astro_units<<" astronomical units."<<endl;
return 0;
}
double convert(double t)
{
return 63240*t;//1 光年=63240 天文单位
}
//ex2.7--显示用户输入的小时数和分钟数
#include<iostream>
void show();
main()
{
using namespace std;
show();
return 0;
}
void show()
{
using namespace std;
int h,m;
cout<<"enter the number of hours:";
cin>>h;
cout<<"enter the number of minutes:";
cin>>m;
cout<<"Time:"<<h<<":"<<m<<endl;
}
第三章:处理数据
//ex3.1—将身高用英尺(feet)和英寸(inch)表示
#include<iostream>
const int inch_per_feet=12;// const常量--1feet=12inches--1英尺=12英寸
int main()
{
using namespace std;
cout<<"please enter your height in inches:___\b\b\b";// \b表示为退格字符
int ht_inch;
cin>>ht_inch;
int ht_feet=ht_inch/inch_per_feet;//取商
int rm_inch=ht_inch%inch_per_feet;//取余
cout<<"your height is "<<ht_feet<<" feet,and "
<<rm_inch<<" inches\n";
return 0;
}
//ex3.2--计算相应的body mass index(体重指数)
#include<iostream>
const int inch_per_feet=12;
const double meter_per_inch=0.0254;
const double pound_per_kilogram=2.2;
int main()
{
using namespace std;
cout<<"Please enter your height:"<<endl;
cout<<"First,enter your height of feet part(输入你身高的英尺部分):_\b";
int ht_feet;
cin>>ht_feet;
cout<<"Second,enter your height of inch part(输入你身高的英寸部分):_\b";
int ht_inch;
cin>>ht_inch;
cout<<"Now,please enter your weight in pound:___\b\b\b";
double wt_pound;
cin>>wt_pound;
int inch;
inch=ht_feet*inch_per_feet+ht_inch;
double ht_meter;
ht_meter=inch*meter_per_inch;
double wt_kilogram;
wt_kilogram=wt_pound/pound_per_kilogram;
cout<<endl;
cout<<"Your pensonal body information as follows:"<<endl;
cout<<"身高:"<<inch<<"(英尺inch)\n"<<"身高:"<<ht_meter<<"(米meter)\n"
<<"体重:"<<wt_kilogram<<"(千克kilogram)\n";
double BMI;
BMI=wt_kilogram/(ht_meter*ht_meter);
cout<<"your Body Mass Index(体重指数) is "<<BMI<<endl;
return 0;
}
//ex3.3 以度,分,秒输入,以度输出
#include<iostream>
const int minutes_per_degree=60;
const int seconds_per_minute=60;
int main()
{
using namespace std;
cout<<"Enter a latitude in degrees,minutes,and seconds:\n";
cout<<"First,enter the degrees:";
int degree;
cin>>degree;
cout<<"Next,enter the minutes of arc:";
int minute;
cin>>minute;
cout<<"Fianlly,enter the seconds of arc:";
int second;
cin>>second;
double show_in_degree;
show_in_degree=(double)degree+(double)minute/minutes_per_degree+(double)second/minutes_per_degree/seconds_per_minute;
cout<<degree<<" degrees,"<<minute<<" minutes,"<<second<<"seconds ="<<show_in_degree<<" degrees\n";
return 0;
}
//ex3.4
#include<iostream>
const int hours_per_day=24;
const int minutes_per_hour=60;
const int seconds_per_minute=60;
int main()
{
using namespace std;
cout<<"Enter the number of seconds:";
long seconds;
cin>>seconds;
int Day,Hour,Minute,Second;
Day=seconds/seconds_per_minute/minutes_per_hour/hours_per_day;
Hour=seconds/seconds_per_minute/minutes_per_hour%hours_per_day;
Minute=seconds/seconds_per_minute%minutes_per_hour;
Second=seconds%seconds_per_minute;
cout<<seconds<<"seconds = "<<Day<<" days,"<<Hour<<" hours,"<<Minute<<" minutes,"<<Second<<" seconds\n";
return 0;
}
//ex3.5
#include<iostream>
int main()
{
using namespace std;
cout<<"Enter the world population:";
long long world_population;
cin>>world_population;
cout<<"Enter the population of the US:";
long long US_population;
cin>>US_population;
double percentage;
percentage=(double)US_population/world_population*100;
cout<<"The population of the US is "<<percentage<<"% of the world population.\n";
return 0;
}
//ex3.6 汽车耗油量-美国(mpg)or欧洲风格(L/100Km)
#include<iostream>
int main()
{
using namespace std;
cout<<"Enter the miles of distance you have driven:";
double m_distance;
cin>>m_distance;
cout<<"Enter the gallons of gasoline you have used:";
double m_gasoline;
cin>>m_gasoline;
cout<<"Your car can run "<<m_distance/m_gasoline<<" miles per gallon\n";
cout<<"Computing by European style:\n";
cout<<"Enter the distance in kilometers:";
double k_distance;
cin>>k_distance;
cout<<"Enter the petrol in liters:";
double k_gasoline;
cin>>k_gasoline;
cout<<"In European style:"<<"your can used "<<100*k_gasoline/k_distance<<" liters of petrol per 100 kilometers\n";
return 0;
}
//ex3.7 automobile gasoline consumption-耗油量--欧洲风格(L/100Km)转换成美国风格(mpg)
#include<iostream>
int main()
{
using namespace std;
cout<<"Enter the automobile gasoline consumption figure in\n"
<<"European style(liters per 100 kilometers):";
double Euro_style;
cin>>Euro_style;
cout<<"Converts to U.S. style(miles per gallon):"<<endl;
cout<<Euro_style<<" L/100Km = "<<62.14*3.875/Euro_style<<" mpg\n";
return 0;
}
// Note that 100 kilometers is 62.14 miles, and 1 gallon is 3.875 liters.
//Thus, 19 mpg is about 12.4 L/100Km, and 27 mpg is about 8.7 L/100Km.
Enter the automobile gasoline consumption figure in
European style(liters per 100 kilometers):12.4
Converts to U.S. style(miles per gallon):
12.4 L/100Km = 19.4187 mpg
Press any key to continue
// ex3.7 automobile gasoline consumption-耗油量--美国风格(mpg)转换成欧洲风格(L/100Km)
#include<iostream>
int main()
{
using namespace std;
cout<<"Enter the automobile gasoline consumption figure in\n"
<<"U.S. style(miles per gallon):";
double US_style;
cin>>US_style;
cout<<"Converts to European style(miles per gallon):"<<endl;
cout<<US_style<<" mpg = "<< 62.14*3.875/US_style<<"L/100Km\n";
return 0;
}
// Enter the automobile gasoline consumption figure in
U.S. style(miles per gallon):19
Converts to European style(miles per gallon):
19 mpg = 12.6733L/100Km
Press any key to continue
第四章 复合类型
//ex4.1 display the information of student
#include<iostream>
const int Asize=20;
using namespace std;
struct student//定义结构描述
{
char firstname[Asize];
char lastname[Asize];
char grade;
int age;
};
void display(student);//函数原型放在结构描述后
int main()
{
cout<<"what is your first name?"<<endl;
student lcg;//创建结构变量(结构数据对象)
cin.getline(lcg.firstname,Asize);
cout<<"what is your last name?"<<endl;
cin.getline(lcg.lastname,Asize);
cout<<"what letter grade do you deserve?"<<endl;
cin>>lcg.grade;
cout<<"what is your age?"<<endl;
cin>>lcg.age;
display(lcg);
return 0;
}
void display(student name)
{
cout<<"Name: "<<name.firstname<<","<<name.lastname<<endl;
cout<<"Grade:"<<char(name.grade+1)<<endl;
cout<<"Age:"<<name.age<<endl;
}
//ex4.2 use the string-class instead of char-array
#include<iostream>
#include<string>
int main()
{
using namespace std;
string name,dessert;
cout<<"Enter your name: \n";
getline(cin,name);
cout<<"Enter your favorite dessert: \n";
getline(cin,dessert);
cout<<"I have some delicious "<<dessert;
cout<<" for you, "<<name<<".\n";
return 0;
}
//有时候会遇到需要按下两次回车键才能正确的显示结果,这是vc++6.0的一个BUG,更改如下:else if (_Tr::eq((_E)_C, _D))
{_Chg = true;
_I.rdbuf()->sbumpc();//修改后的
break; }
ex4.3 输入其名和姓,并组合显示
#include<iostream>
#include<cstring>
const int Asize=20;
int main()
{
using namespace std;
char fname[Asize];
char lname[Asize];
char fullname[2*Asize+1];
cout<<"Enter your first name:";//输入名字,存储在fname[]数组中
cin.getline(fname,Asize);
cout<<"Enter your last name:";//输入姓,存储在lname[]数组中
cin.getline(lname,Asize);
strncpy(fullname,lname,Asize);//把姓lname复制到fullname空数组中
strcat(fullname,", ");//把“, ”附加到上述fullname尾部
strncat(fullname,fname,Asize);//把fname名字附加到上述fullname尾部
fullname[2*Asize]='\0';//为防止字符型数组溢出,在数组结尾添加结束符
cout<<"Here's the information in a single string:"<<fullname<<endl;//显示组合结果
return 0;
}
//ex4.4 使用string对象 存储、显示组合结果
#include<iostream>
#include<string>
int main()
{
using namespace std;
string fname,lname,attach,fullname;
cout<<"Enter your first name:";
getline(cin,fname);//note:将一行输入读取到string类对象中使用的是getline(cin,str)
//它没有使用句点表示法,所以不是类方法
cout<<"Enter your last name:";
getline(cin,lname);
attach=", ";
fullname=lname+attach+fname;
cout<<"Here's the information in a single string:"<<fullname<<endl;
return 0;
}
//ex4.5 declare a struct and initialize it 声明结果并创建一个变量
#include<iostream>
const int Asize=20;
struct CandyBar
{
char brand[Asize];
double weight;
int calory;
};
int main()
{
using namespace std;
CandyBar snack={"Mocha Munch",2.3,350};
cout<<"Here's the information of snack:\n";
cout<<"brand:"<<snack.brand<<endl;
cout<<"weight:"<<snack.weight<<endl;
cout<<"calory:"<<snack.calory<<endl;
return 0;
}
//ex4.6 结构数组的声明及初始化
#include<iostream>
const int Asize=20;
struct CandyBar
{
char brand[Asize];
double weight;
int calory;
};
int main()
{
using namespace std;
CandyBar snack[3]={
{"Mocha Munch",2.3,350},
{"XuFuJi",1.1,300},
{"Alps",0.4,100}
};
for(int i=0;i<3;i++)//利用for循环来显示snack变量的内容
{
cout<<snack[i].brand<<endl
<<snack[i].weight<<endl
<<snack[i].calory<<endl<<endl;
}
return 0;
}
//ex4.7 pizza披萨饼
#include<iostream>
#include<string>
const int Size=20;
struct pizza//声明结构
{
char company[Size];
double diameter;
double weight;
};
int main()
{
using namespace std;
pizza pie;//创建一个名为pie的结构变量
cout<<"What's the name of pizza company:";
cin.getline(pany,Size);
cout<<"What's the diameter of pizza:";
cin>>pie.diameter;
cout<<"What's the weight of pizza:";
cin>>pie.weight;
cout<<"company:"<<pany<<endl;
cout<<"diameter:"<<pie.diameter<<"inches"<<endl;
cout<<"weight:"<<pie.weight<<"ounches"<<endl;
return 0;
}
//ex4.8 pizza pie 披萨饼 使用new创建动态结构
#include<iostream>
#include<string>
const int Size=20;
struct pizza//声明结构
{
char company[Size];
double diameter;
double weight;
};
int main()
{
using namespace std;
pizza *pie=new pizza;//使用new创建动态结构
cout<<"What's the diameter of pizza:";
cin>>pie->diameter;
cin.get();//读取下一个字符
cout<<"What's the name of pizza company:";
cin.get(pie->company,Size);
cout<<"What's the weight of pizza:";
cin>>pie->weight;
cout<<"diameter:"<<pie->diameter<<" inches"<<endl;
cout<<"company:"<<pie->company<<endl;
cout<<"weight:"<<pie->weight<<" ounches"<<endl;
delete pie;//delete释放内存
return 0;
}
//ex.4.9 使用new动态分配数组—方法1
#include<iostream>
#include<string>
using namespace std;
struct CandyBar
{
string brand;
double weight;
int calory;
};
int main()
{
CandyBar *snack= new CandyBar[3];
snack[0].brand="A";//单个初始化由new动态分配的内存
snack[0].weight=1.1;
snack[0].calory=200;
snack[1].brand="B";
snack[1].weight=2.2;
snack[1].calory=400;
snack[2].brand="C";
snack[2].weight=4.4;
snack[2].calory=500;
for(int i=0;i<3;i++)
{
cout << " brand: " << snack[i].brand << endl;
cout << " weight: " << snack[i].weight << endl;
cout << " calorie: " << snack[i].calory << endl<<endl;
}
delete [] snack;
return 0;
}
//ex.4.10 数组—方法1
#include <iostream>
int main()
{
using namespace std;
const int Size = 3;
int success[Size];
cout<<"Enter your success of the three times 40 meters running:\n";
cin >> success[0]>>success[1]>>success[2];
cout<<"success1:"<<success[0]<<endl;
cout<<"success2:"<<success[1]<<endl;
cout<<"success3:"<<success[2]<<endl;
double average=(success[0]+success[1]+success[2])/3;
cout<<"average:"<<average<<endl;
return 0;
}
//ex.4.10 array—方法2
#include <iostream>
#include <array>
int main()
{
using namespace std;
array<double,4>ad={0};
cout<<"Enter your success of the three times 40 meters running:\n";
cin >> ad[0]>>ad[1]>>ad[2];
cout<<"success1:"<<ad[0]<<endl;
cout<<"success2:"<<ad[1]<<endl;
cout<<"success3:"<<ad[2]<<endl;
ad[3]=(ad[0]+ad[1]+ad[2])/3;
cout<<"average:"<<ad[3]<<endl;
return 0;
}
第五章 循环和关系表达式
//ex.5.1
#include <iostream>
int main()
{
using namespace std;
cout<<"Please enter two integers: ";
int num1,num2;
cin>>num1>>num2;
int sum=0;
for(int temp=num1;temp<=num2;++temp)//or temp++
sum+=temp;
cout<<"The sum from "<<num1<<" to "<<num2<<" is "<<sum<<endl;
return 0;
}
//ex.5.2
#include <iostream>
#include<array>
int main()
{
using namespace std;
array<long double,101>ad={0};
ad[1]=ad[0]=1L;
for(int i=2;i<101;i++)
ad[i]=i*ad[i-1];
for(int i=0;i<101;i++)
cout<<i<<"! = "<<ad[i]<<endl;
return 0;
}
//ex.5.3
#include <iostream>
int main()
{
using namespace std;
cout<<"Please enter an integer: ";
int sum=0,num;
while((cin>>num)&&num!=0)
{
sum+=num;
cout<<"So far, the sum is "<<sum<<endl;
cout<<"Please enter an integer: ";
}
return 0;
}
//ex.5.4
#include <iostream>
int main()
{
using namespace std;
double sum1,sum2;
sum1=sum2=0.0;
int year=0;
while(sum2<=sum1)
{
++year;
sum1+=10;
sum2=(100+sum2)*0.05+sum2;
}
cout<<"经过"<<year<<"年后,Cleo的投资价值才能超过Daphne的投资价值。"<<endl;
cout<<"此时,Cleo的投资价值为"<<sum1<<",而Daphne的投资价值为"<<sum2<<endl;
return 0;
}
//ex.5.5
#include <iostream>
const int MONTHS = 12;
const char* months[MONTHS
展开阅读全文