C++编程逻辑讲解step by step:面向对象ATM机,网上购书

avatar
作者
筋斗云
阅读量:2

题目一、编写ATM机类,包括账号密码验证,存钱取钱、改密码等功能。

class AccountItem { public:     AccountItem();     AccountItem(string Anumber, string Password, string Owener, const double Balance);      void Display();     void Read(ifstream& s);     // the following function was added for inventory update     void Write(ofstream& s);     short CheckNumber(string Anumber);     string GetNumber();     string GetPassword();     void UpdatePassword(string pass);          //修改密码     void DeductBalance(double pay);     void SaveAccount(double count);            //存钱     double GetBalance();     string GetName();     short IsNull();  private:     string m_Anumber;     string m_Password;     string m_Name;     double m_Balance;     }; 增加的成员函数为: void AccountItem::UpdatePassword(string pass)   //修改密码 { m_Password=pass; }; void AccountItem::SaveAccount(double count)     //存钱count到帐户中 { m_Balance += count; };     主函数修改为: #include <stdio.h> #include <iostream.h> #include <fstream.h> #include "strclass.h" #include "accitem.h" #include "Accbook.h" int main() { ifstream InputStream("Account.in");   string AccountNo; string AccPassword; string newPassword1; string newPassword2;  double AccountCount;   string ItemName;   double OldAccountbook;   Accountbook MyAccountbook;   AccountItem FoundItem;   string TransactionCode;   string Count;   double SaveCount;   MyAccountbook.LoadAccountbook(InputStream);   cout << "请输入帐号: ";   cin >> AccountNo;   FoundItem = MyAccountbook.FindItem(AccountNo);   if (FoundItem.IsNull() == true)   { cout << "帐号不存在." << endl;     return 0;   }   cout << "请输入口令: ";   cin >> AccPassword; if (FoundItem.GetPassword()!=AccPassword)   { cout << "口令错误!" << endl;     return 0;    }    OldAccountbook=FoundItem.GetBalance();    cout << "请选择交易代码:" << endl;    cout << "G (取钱)" << endl;    cout << "C (查询余额)" << endl;    cout << "S (存钱)" << endl;    cout << "U (修改密码)" << endl;    cin >> TransactionCode;    if (TransactionCode == "C" || TransactionCode == "c")    { cout << "余额是: " << FoundItem.GetBalance()<<endl;    }    else if (TransactionCode == "G" || TransactionCode == "g")    { cout << "请选择取钱的数量: "<<endl;      cout << "1 (取100)" << endl;      cout << "2 (取200)" << endl;      cout << "5 (取500)" << endl;      cout << "A (取1000)" << endl;      cout << "B (取2000)" << endl;   cin >> Count; 	 if (Count=="1") AccountCount=100.;      else if (Count=="2") AccountCount=200.;      else if (Count=="5") AccountCount=500.;      else if (Count=="A") AccountCount=1000.;      else if (Count=="B") AccountCount=2000.;      else { cout<<"选择错误"<<endl; return 0;}              if (OldAccountbook<AccountCount)   { cout<<"存款余额不够!"<<endl;   }    	 else 	 { FoundItem.DeductBalance(AccountCount);        MyAccountbook.UpdateItem(FoundItem);        cout << "请取钱!" << endl;        ofstream OutputStream("Account.in");        MyAccountbook.StoreAccountbook(OutputStream);   } 	} 	else if (TransactionCode == "S"|| TransactionCode == "s") 	{ cout<<"请输入存钱数量:"; 	  cin>>SaveCount;       FoundItem.SaveAccount(SaveCount);       MyAccountbook.UpdateItem(FoundItem);       ofstream OutputStream("Account.in");       MyAccountbook.StoreAccountbook(OutputStream); } 	else if (TransactionCode == "U" || TransactionCode == "u")     { cout<<"请输入修改后的密码:"; 	  cin>>newPassword1;       cout<<"请再次输入修改后的密码:"; 	  cin>>newPassword2;       if (newPassword1==newPassword2) 	  { FoundItem.UpdatePassword(newPassword1);         MyAccountbook.UpdateItem(FoundItem);         ofstream OutputStream("Account.in");         MyAccountbook.StoreAccountbook(OutputStream); 	    cout<<"密码修改成功!"; 	   } 	 else  	 cout<<"密码修改失败!"; }       return 0; 

题目二、网上购书,可以下订单。

#include <iostream.h> #include "strclass.h" #include "buy.h" #include "book.h" class order { public: 	order()     { buyerID=0;       ordercount++; 	  orderID=ordercount;           //定单编号自动加1 listcount=0; 	}	 	void setbuyid(int b_id) 	{ buyerID=b_id;     }     void buy_one_book(string b_id) 	{ orderlist[listcount]=b_id; 	  listcount++;     }     void display(); private: static int ordercount;                //自动增加定单编号 int orderID;                          //订单编号 int buyerID;                          //购书人编号 string orderlist[20];                 //书号数组 int listcount;                        //购书数量  }; void order::display() { int i; cout<<"\n定单信息\n\n订单号:"<<orderID<<"\t";    cout<<"购书人编号:"<<buyerID<<"\n"; cout<<" 所购图书书号:"; for (i=0;i<listcount;i++) 	cout<<orderlist[i]<<"\t";     cout<<endl; } int order::ordercount=0; void main() {   int i=0,j=0; int buyerid,flag; 	book *c[2];     layfolk b1("林小茶",1,"北京",0);     honoured_guest b2("王遥遥",2,.6,"上海",0);     member b3("赵红艳",3,5,"广州",0);     order o1[20];               //订单数组     buyer *b[3]= {&b1,&b2,&b3}; book c1("","C++ programing","谭浩强","清华",25); book c2("A2","data structure","许天风","北大",20); c[0]=&c1; c[1]=&c2; cout<<"购书人信息:\n\n";     for (i=0;i<3;i++) b[i]->display(); cout<<"\n图书信息:\n\n"; for (i=0;i<2;i++)     c[i]->display(); while (j<2)     { cout<<"\n\n请输入购书人编号:";       cin>>buyerid;       flag=0;   for (i=0;i<3;i++) if (b[i]->getid()==buyerid) { flag=1;break;} 	  if (!flag) { cout<<"编号不存在"<<endl;}       else  { b[i]->setpay(c[0]->getprice());         b[i]->setpay(c[1]->getprice());         cout<<endl<<"购书人需要付费:"<<b[i]->getpay()<<"\n\n";         o1[j].setbuyid(b[i]->getid());          o1[j].buy_one_book(c[0]->getbook_ID()); o1[j].buy_one_book(c[1]->getbook_ID());         o1[j].display(); j++; } } }  

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!