欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++程序代码.doc

    • 资源ID:69143755       资源大小:213.50KB        全文页数:93页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++程序代码.doc

    1-1#include <stdio.h>#define MUL(X) X*Xvoid main()int iValue;iValue = MUL(4+4)/(2+2);printf("%d",iValue);1-2#include <stdio.h>void main()int x = 'A',y = 66;printf("%d,",x>y ? y+ :x+);printf("%d,",x<=y?+y:+x);printf("%d,%d",x,y);4-7/个人银行账户管理程序#include <iostream>#include <cmath>using namespace std;class SavingAccount /储蓄账户类private:int id;/帐号double balance;/余额double rate;/存款的年利率int lastDate;/上次变更余额的时期double accumulation;/余额按日累加之和/记录一笔帐,date为日期,amount为金额,desc为说明void record(int date,double amount);/获得到指定日期为止的存款金额按日累计值double accumulate(int date) constreturn accumulation + balance *(date - lastDate);public:/构造函数SavingAccount(int date,int id,double rate);int getId() return id;double getBalance() return balance;double getRate() return rate;void deposit(int date,double amount);/存入现金void withdraw(int date,double amount);/取出现金/结算利息,每年1月1日调用一次该函数void settle(int date);/显示账户信息void show();/SavingAcount类相关成员函数的实现SavingAccount:SavingAccount(int date, int id, double rate):id(id),balance(0),rate(rate),lastDate(date),accumulation(0)cout << date << "t#" << id << "is created" << endl;void SavingAccount:record(int date, double amount)accumulation = accumulate(date);lastDate = date;amount = floor(amount * 100 + 0.5) / 100;balance += amount;cout << date << "t#" << id << "t" << amount << "t" << balance << endl;void SavingAccount:deposit(int date, double amount)record(date,amount);void SavingAccount:withdraw(int date, double amount)if(amount > getBalance()cout << "error:not enough money" << endl;elserecord(date,-amount);void SavingAccount:settle(int date)double interest = accumulate(date)*rate/365;/计算年息if(interest != 0)record(date,interest);accumulation = 0;void SavingAccount:show()cout << "#" << id << "tBalance:" << balance;int main()/建立几个账户SavingAccount sa0(1,21325302,0.015);SavingAccount sa1(1,58320212,0.015);/几笔账目sa0.deposit(5,5000);sa1.deposit(25,10000);sa0.deposit(45,5500);sa1.withdraw(60,4000);/开户后第90天到了银行的计息日,结算所有账户的年息sa0.settle(90);sa1.settle(90);/输出各个账户信息sa0.show(); cout << endl;sa1.show(); cout << endl;return 0;5-1/作用域的实例:函数原型,局部,类,命名空间#include <iostream>using namespace std;int i;namespace Nsint j;int main()i = 5;Ns:j = 6;using namespace Ns;int i;i = 7;cout << "i = " << i << endl;cout << "j = " << j << endl;cout << "i = " << i << endl;return 0;5-2/变量的生存期和可见性#include <iostream>using namespace std;int i = 1;void other()static int a = 2;static int b;int c = 10;a += 2;i += 32;c += 5;cout << "-OTHER-" << endl;cout << "i:" << i << "a:" << a << "b:" << b << "c:" << c << endl;b = a;int main()static int a;int b = -10;int c = 0;cout << "-main-" << endl;cout << "i:" << i << "a:" << "b:" << b << "c" << c << endl;c += 8;other();cout << "-main-" << endl;cout << "i:" << i << "a:" << a << "b:" << b << "c:" << endl;i += 10;other();return 0;5-3/具有静态和动态生存期对象的时钟程序#include <iostream>using namespace std;class Clock/时钟类的定义public :/外部接口Clock();void setTime(int newH,int newM,int newS);void showTime();int hour,minute,second;/时钟类成员函数实现Clock:Clock():hour(0),minute(0),second(0) /构造函数void Clock:setTime(int newH, int newM, int newS)hour = newH;minute = newM;second = newS;void Clock:showTime()cout << hour << ":" << minute << ":" << second << endl;Clock globClock;int main()cout << "first time output:" << endl;globClock.showTime();globClock.setTime(8,30,30);Clock myClock(globClock);/复制构造函数cout << "second time output" << endl;myClock.showTime();return 0;5-4/具有静态数据成员的Point类/引入金泰数据成员count用于统计Point类的对象的个数.#include <iostream>using namespace std;class Pointpublic:Point(int x = 0,int y = 0):x(x),y(y)/在构造函数中对count累加,所有对象共同维护一个countcount+;Point(Point &p)/复制构造函数x = p.x;y = p.y;count +;Point() /析构函数 count-; int getX()return x;int getY()return y;void showCount()/输出静态数据成员cout << " object count= " << count << endl;private:int x,y;static int count;/静态数据成员声明,用于记录点的个数;int Point:count = 0;/静态数据成员定义和初始化,使用类名限定int main()Point a(4,5);/定义对象a,其构造函数会使count增加1cout << "Point A" << a.getX() << "," << a.getY();a.showCount();Point b(a);cout << "Point B" << b.getX() << "," << b.getY();b.showCount();return 0;5-5/具有静态数据和函数成员的Point类#include <iostream>using namespace std;class Point public:Point(int x = 0,int y = 0) : x(x),y(y)count +;Point(Point &p)x = p.x;y = p.y;count +;Point()count-;int getX()return x;int getY()return y;static void showCount()cout << "object count" << count << endl;private:int x,y;static int count;int Point:count = 0;int main()Point a(4,5);cout << "Point A :" << a.getX() << "," << a.getY();Point :showCount();Point b(a);cout << "Point B :" << b.getX() << "," << b.getY();Point :showCount();return 0;5-6/使用友元函数计算两点之间的距离#include <iostream>#include <cmath>using namespace std;class Pointpublic :Point(int x = 0,int y = 0) : x(x),y(y)int getX()return x;int getY()return y;friend float dist(Point &p1,Point &p2);/友元函数声明private :int x,y;/友元函数的实现float dist(Point &p1,Point &p2)double x = p1.x - p2.x;double y = p1.y - p2.y;return static_cast<float> (sqrt(x*x+y*y);int main()Point myp1(1,1),myp2(4,5);cout << "the distance is:" ;cout << dist(myp1,myp2) << endl;return 0;5-7/常成员函数#include <iostream>using namespace std;class Rpublic:R(int r1,int r2):r1(r1),r2(r2)void print();void print() const;/常成员函数 类型说明符 函数名(参数表)const;private:int r1,r2;/成员函数print()的实现void R:print()cout << r1 << "" << r2 << endl;void R:print() constcout << r1 << ":" << r2 << endl;int main()R a(5,4);a.print();const R b(20,52);b.print();return 0;5-8/常数据成员#include <iostream>using namespace std;class Apublic:A(int i);void print();private:const int a;static const int b;/静态常数据成员;const int A:b = 10;/静态常数据成员在类外的说明和初始化/常数据成员只能通过初始化列表来获得初值A:A(int i):a(i) void A:print()cout << a << ":" << b << endl;int main()/*建立对象a,b并且以100,10作为初值,分别调用构造函数,通过构造函数的初始化列表给对象的常数据成员赋初值*/A a1(100),a2(0);a1.print();a2.print();return 0;5-9/常引用所引用的对象不能被更新/常引用的声明格式如下: const 类型说明符 &引用名#include <iostream>#include <cmath>using namespace std;class Pointpublic:Point(int x = 0,int y = 0):x(x),y(y) int getX() return x;int getY() return y;friend float dist(const Point &p1,const Point &p2);private:int x,y;/常引用做参数float dist(const Point &p1,const Point &p2)double x = p1.x - p2.x;double y = p1.y - p2.y;return static_cast<float>(sqrt(x*x+y*y);int main()const Point myp1(1,1),myp2(4,5);/定义Point类的对象cout << "the distance is:"cout << dist(myp1,myp2) << endl;return 0;5-10/类的实现#include "Point.h"#include <iostream>using namespace std;int Point:count = 0;/使用类名初始化静态数据成员Point:Point(const Point &p):x(p.x),y(p.y) /复制构造函数体count+;void Point:showCount()cout << "Object count = " << count << endl;class Point/类的定义public:Point(int x=0,int y=0):x(x),y(y) /外部接口Point(const Point &p);Point() count-;int getX() const return x;int getY() const return y;static void showCount();/静态函数成员int x,y;static int count;/静态数据成员;/具有静态数据,函数成员的Point类,多文件组织/主函数#include "Point.h"#include <iostream>using namespace std;int main()Point a(4,5);/定义对象a,其构造函数会使count增加1cout << "Point A" << a.getX() << "," << a.getY();Point:showCount();/输出对象个数Point b(a);/定义对象b,其构造函数会使count增加1cout << "Point B:" << b.getX << "," << b.getY();Point:showCount();/输出对象个数return 0;5-11#ifndef _ACCOUNT_H_#define _ACCOUNT_H_class SavingsAccount/储蓄账户类private:int id;/帐号double balance;/余额double rate;/存款的年利率int lastDate;/上次变更余额日期double accumulation;/余额按日累加之和static double total;/所有账户的总金额/记录一笔帐,date为日期,amount为金额,desc为说明void record(int date,double amount);/获得指定日期为止的存款金额按日累计值double accumulate(int date) constreturn accumulation + balance * (date - lastDate);public:/构造函数SavingsAccount(int date,int id,double rate);int getId() const return id;double getBalance() const return balance; double getRate() const return rate; static double getTotal() return total; void deposit(int date,double amount);/存入现金void withdraw(int date,double amount);/取出现金/结算利息,每年1月1日调用一次该函数void settle(int date);/显示账户信息void show() const;#endif/_ACCOUNT_H_#include "account.h"#include <cmath>#include <iostream>using namespace std;double SavingsAccount:total = 0;/SavingsAccount函数实现SavingsAccount:SavingsAccount(int date, int id, double rate):id(id),balance(0),rate(rate),lastDate(date),accumulation(0)cout << date << "t#" << id << "is created" << endl;void SavingsAccount:record(int date, double amount)accumulation = accumulate(date);lastDate = date;amount = floor(amount * 100 + 0.5)/100;/保留小数点后两位balance += amount;total += amount;cout << date << "t#" << id << "t" << amount << "t" << balance << endl;/只要有现金的存入,就调用record函数做记录void SavingsAccount :deposit(int date, double amount)record(date,amount);void SavingsAccount:withdraw(int date, double amount)if(amount > getBalance()/如果所取得钱大于储户的总金额cout << "Error:there is not enough money!" << endl;elserecord(date,-amount);void SavingsAccount:settle(int date)double interest = accumulate(date) * rate / 365;/计算年息if(interest != 0)record(date,interest);accumulation = 0;void SavingsAccount:show() constcout << "#" << id << "tbalance:" << balance;#include "account.h"#include <iostream>using namespace std;int main()/建立账户SavingsAccount sa0(1,21325302,0.015);SavingsAccount sa1(1,58320212,0.015);/几笔账目sa0.deposit(5,5000);sa1.deposit(25,10000);osit(45,5500);sa1.withdraw(60,4000);/开户第90天到了银行的计息日,结算所有账户的年息sa0.settle(90);sa1.settle(90);/输出各个账户的信息sa0.show();cout << endl;sa1.show(); cout << endl;cout << "Total:" << SavingsAccount:getTotal() << endl;return 0;6-1/数组的声明与使用#include <iostream>using namespace std;int main()int a10,b10;for(int i=0;i<10;i+)ai = i * 2 - 1;b10 - i - 1 = ai;for(int i=0;i<10;i+)cout << "a" << i << "" << ai << ""cout << "b" << i << "" << bi <<endl;return 0;6-2/使用数组名做函数参数#include <iostream>using namespace std;void rowSum(int a4,int nRow)/计算二维数组a每行元素的值的和,nRow是行数for(int i=0;i<nRow;i+)for(int j=1;j<4;j+)ai0 += aij;int main()int table34 = 1,2,3,4,2,3,4,5,3,4,5,6;/声明并初始化for(int i=0;i<3;i+)for(int j=0;j<4;j+)cout << tableij << " "cout <<endl;rowSum(table,3);/调用函数,计算各行的和for(int i=0;i<3;i+)/输出结果cout << "sum of row " << i << " is " << tablei0 << endl;return 0;6-3#ifndef _POINT_H#define _POINT_Hclass Pointpublic:Point();Point(int x,int y);Point();void move(int newX,int newY);int getX() const return x; int getY() const return y; static void showCount();private:int x,y;#endif#include "Point.h"#include <iostream>using namespace std;Point:Point()x = y = 0;cout << "default constructor called" << endl;Point:Point(int x, int y):x(x),y(y)cout << "constructor called." << endl;Point:Point()cout << "destructor called." << endl;void Point:move(int newX, int newY)cout << "moving the point to (" << newX << "," << newY << ")" << endl;x = newX;y = newY;/对象数组应用举例#include "Point.h"#include <iostream>using namespace std;int main()cout << "entering main." << endl;Point a2;for(int i=0;i<2;i+)ai.move(i+10,i+20);cout << "exiting main." << endl;return 0;6-4#ifndef _ POINT_H#define _POINT_Hclass Pointpublic:Point(float x = 0,float y = 0):x(x),y(y) float getX() const return x; float getY() const return y; private:float x,y;#endif/利用Point类进行点的线性拟合#include "Point.h"#include <iostream>#include <cmath>using namespace std;/直线线性拟合,points为各点,nPoint为点数float lineFit(const Point points,int nPoint)float avgX = 0,avgY = 0;float lxx = 0, lyy = 0,lxy = 0;/计算x,y的平均值for(int i=0;i<nPoint;i+)avgX += pointsi.getX() / nPoint;avgY += pointsi.getY() / nPoint;/计算lxx,lyy,lxy的平均值for(int i=0;i<nPoint;i+)lxx += (pointsi.getX() - avgX) * (pointsi.getX() - avgX);lyy += (pointsi.getY() - avgY) * (pointsi.getY() - avgY);lxy += (pointsi.getX() - avgX) * (pointsi.getY() - avgY);cout << "this line can be fitted by y = ax +b" << endl;cout << "a = " << lxy / lxx << ""/输出回归系数acout << "b = " << avgY - lxy *avgX / lxx << endl;/输出回归系数breturn static_cast<float>(lxy / sqrt(lxx * lyy);/返回相关系数xint main()Point p10 = Point(6,10),Point(14,20),Point(26,30),Point(33,40),Point(46,50),Point(54,60),Point(67,70),Point(75,80),Point(84,90),Point(100,100);float r = lineFit(p,10);cout << "line coefficient r = " << r << endl;return 0;6-5/指针的定义 赋值 使用#include <iostream>using namespace std;int main()int i;int *ptr = &i;i =10;cout << "i = " << i << endl;/输出int型数的值cout << " *ptr= " << *ptr << endl;/输出指针地址的内容return 0;6-6/void类型指针的作用#include <iostream>using namespace std;int main()void *pv;int i = 5;pv = &i;/void类型指针指向整形变量int *point = static_cast<int *> (pv);/void类型指针赋值给int类型指针cout << "*point= " << *point << endl;return 0;6-7/使用数组名和下标输出各个元素#include <iostream>using namespace std;int main()int a10 = 1,2,3,4,5,6,7,8,9,0;for(int i=0;i<10;i+)cout << ai << ""cout << endl;return 0;

    注意事项

    本文(C++程序代码.doc)为本站会员(e****s)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开