fig14-09
来源:互联网 发布:算法设计与分析课件 编辑:程序博客网 时间:2024/05/18 17:58
ClientData.h
#pragma once#include<string>class ClientData{public:ClientData(int = 0, const std::string & = "",const std::string & = "", double = 0.0);void setAccountNumber(int);int getAccountNumber() const;void setLastName(const std::string &);std::string getLastName() const;void setFirstName(const std::string &);std::string getFirstName() const;void setBalance(double);double getBalance() const;private:int accountNumber;char lastName[15];char firstName[10];double balance;};
fig14_09.cpp
#include<string>#include"ClientData.h"using namespace std;ClientData::ClientData(int accountNumberValue, const string &lastName,const string &firstName, double balanceValue):accountNumber(accountNumberValue), balance(balanceValue){setLastName(lastName);//原文为lastNameValue和firstnameValsetFirstName(firstName);}int ClientData::getAccountNumber() const{return accountNumber;}void ClientData::setAccountNumber(int accountNumberValue){accountNumber = accountNumberValue;}string ClientData::getLastName() const{return lastName;}void ClientData::setLastName(const string &lastNamestring){int length = lastNamestring.size();length = (length < 15 ? length : 14);lastNamestring.copy(lastName, length);lastName[length] = '\0';}string ClientData::getFirstName() const{return firstName;}void ClientData::setFirstName(const string &firstNameString){int length = firstNameString.size();length = (length < 10 ? length : 9);firstNameString.copy(firstName, length);firstName[length] = '\0';}double ClientData::getBalance() const{return balance;}void ClientData::setBalance(double balanceValue){balance = balanceValue;}
fig14_11.cpp
#include<iostream>#include<fstream>#include<cstdlib>#include"ClientData.h"using namespace std;int main(){ofstream outCredit("credit.dat", ios::out | ios::binary);if (!outCredit){cerr << "File could not be opened." << endl;exit(EXIT_FAILURE);}ClientData blankClient;for (int i = 0; i < 100; ++i)outCredit.write(reinterpret_cast <const char*>(&blankClient),sizeof(ClientData));}
fig14_12.cpp
#include<iostream>#include<fstream>#include<cstdlib>#include"ClientData.h"using namespace std;int main(){int accountNumber;string lastName;string firstName;double balance;fstream outCredit("credit.dat", ios::in | ios::out | ios::binary);if (!outCredit){cerr << "File could not be opended." << endl;exit(EXIT_FAILURE);}cout << "Enter account number (1 to 100, 0 to end input)\n?";ClientData client;cin >> accountNumber;while (accountNumber > 0 && accountNumber <= 100){cout << "Enter lastName. firstName, balance\n?";cin >> lastName;cin >> firstName;cin >> balance;client.setAccountNumber(accountNumber);client.setLastName(lastName);client.setFirstName(firstName);client.setBalance(balance);outCredit.seekp((client.getAccountNumber() - 1) *sizeof(ClientData));outCredit.write(reinterpret_cast<const char *>(&client),sizeof(ClientData));cout << "Enter account number\n? ";cin >> accountNumber;}}
阅读全文
0 0
- fig14-09
- 09
- 09
- 09-09-09
- 05/09/09
- 04/09/09
- 09-01-09
- 09-02-09
- 09-04-09
- 09-07-09
- 09-10-09
- 09-11-09
- 09-14-09
- 09-09-16
- 09-17-09
- 09-22-09
- 09-23-09
- 10-09-09
- QQ第三方登陆回调处理
- nodejs Assignment to constant variable
- 字符串-leetcode 72 Edit Distance
- Jfinal调用存储过程方法
- android TextView实现跑马灯效果
- fig14-09
- 高清时代4K H.265/HEVC来临---OTT/IPTV直播系统大发展
- 域名劫持原理及实现
- cocos ide 新建项目无响应及read nil 报错解决
- 运行程序,提示内存错误
- 触发器简单实例讲解
- CartoDB source example——CartoDB数据源案例
- MFC中CFileDialog的用法
- Windbg的gflags.exe调试堆栈溢出,访问越界等问题。