男孩和女孩,我事先感谢你的帮助。 C ++再次出现问题。我有大学任务的挣扎,而且由于堆栈政策的原因,我在这篇单独的帖子中回顾了之前在堆栈上发布的问题。
我的问题:以下是我的代码无效,有人可以帮助我使其工作吗?我错过了什么? (我有一种感觉,我错过了很多)。
我在单独的头文件中有函数和结构,在.ccp中有“int main”。我正在使用vis studio来做这件事。请不要认为我想让其他人做我的任务。下面是我的代码,后跟任务表(仅供参考)。
> CODE
>
> // the int main must be my output to screen
> int main()
> {
> Customer* Mary = CreateCustomer("Mary Jones", "235718", "5074");
> Customer* John = CreateCustomer("John Smith", "375864", "3251");
> Account* MaryAccount = CreateAccount(*Mary, "06-3121-10212357", "01/03/2014", 100);
> Account* JohnAccount = CreateAccount(*John, "06-3121-10213758", "10/03/2014");
> RecordWithdraw(MaryAccount, CreateTransaction("01/03/2014", "ATM Withdrawal", 50) );
> RecordDeposit(MaryAccount, CreateTransaction("02/03/2014", "Deposit", 90) );
> RecordWithdraw(MaryAccount, CreateTransaction("04/03/2014", "ATM Withdrawal", 150) );
> RecordDeposit(MaryAccount, CreateTransaction("05/03/2014", "Deposit", 20) );
> RecordWithdraw(MaryAccount, CreateTransaction("05/03/2014", "Withdraw", 100) );
> RecordWithdraw(MaryAccount, CreateTransaction("05/03/2014", "Withdraw", 50) );
> RecordDeposit(JohnAccount, CreateTransaction("11/03/2014", "Deposit", 20) );
> RecordDeposit(JohnAccount, CreateTransaction("12/03/2014", "Deposit", 80) );
> RecordWithdraw(JohnAccount, CreateTransaction("12/03/2014", "Withdraw", 50) );
> PrintReport(MaryAccount);
> PrintReport(JohnAccount);
> return 0;
> }
>
> // the .h file as a struct ass1 section CUSTOMER
>
> #ifndef CUSTOMER_H
> #define CUSTOMER_H
>
> using namespace std;
>
> struct customer
> {
> std::string name;
> std::string pin;
> std::string user_id
> };
>
>
> // function for the above CUSTOMER
>
> Customer* CreateCustomer(const string& name, const string& id, const string& pin) {
> return new Customer { name, id, pin };
>
> }
>
>
> // the .h file as a struct ass1 section transaction
>
> struct Transaction
>
> {
> std::string date;
> std::string description;
> double amount;
> };
>
>
>
> // function for the above transaction
>
>
> transaction* CreateTransaction(const string& date, const string& description, const double& amount) {
>
> return new transaction { date, description, amount };
>
> }
>
>
> // the .h file as a struct ass1 section account
>
>
> struct Account {
> Customer customer;
> int number;
> double balance, total_deposit, total_withdrawal;
>
> // function for the above account
>
> //CreateAccount prototype:
>
>
> Account* CreateAccount(const Customer& customer, const std::string& openingDate = "01/01/2014", const double& openingBalance
> = 0, const double& deposit = 0, const double& withdraw = 0);
对于此分配,客户结构必须是:
CustomerName: string UserID: string Pin: string
事务结构必须是:
TransactionDate:string TransactionDescription:字符串 TransactionAmount:double
帐户结构必须是:
持有人:客户 AccountNo:字符串 平衡:双倍 TotalDeposit:double TotalWithdrawal:加倍 TransactionList:Transaction [] TransactionCount:int
包含三个成员的Customer结构(在头文件Customer.h中定义): 客户名称,用户ID和PIN。
Customer * CreateCustomer(const string& name,const string& id,const string& pin)
包含三个成员的Transaction结构(在头文件Transaction.h中定义): 交易日期,描述和金额。金额不能为负值。
创建Transaction的函数CreateTransaction()。它有三个参数来初始化结构的每个成员(交易日期,描述和金额)。所有参数都应具有默认参数值。日期设置为“01/01/2014”,描述为空白,金额为零。原型:
Transaction * CreateTransaction(const string& date,const string& description,const double& amount))
包含七个成员的帐户结构(在头文件Account.h中定义): 帐户持有人,数量,余额,总存款,提款总额,交易清单数组 现有交易记录中最多100条记录和交易计数。
创建帐户的函数CreateAccount()。它有六个参数来初始化每个参数 适当的结构成员。 date参数用于创建第一个事务 在Transaction List数组中,描述是来自balance参数的Opening balance。 因此,在创建帐户后,应将事务计数设置为1。所有 来自第三个参数的参数应该具有默认参数值。该 日期设置为“01/01/2014”,余额,存款和取款设置为零值。原型:
帐户* CreateAccount(const Customer& holder,const string& number,const string& date,const double& 平衡,const double&存款,const double&撤回)
将Transaction参数存储到事务列表中的函数RecordDeposit() 参数Account的数组,并将Transaction count增加1。确保 检查事务参数必须具有高于零的数量。否则,显示一个 错误信息。不需要默认参数值。 void RecordDeposit(Account * account,Transaction * transaction)
将Transaction参数存储到事务列表中的函数RecordWithdraw() 参数Account的数组,并将Transaction count增加1。确保 检查事务参数的数量必须大于零且小于或等于 参数帐户余额。否则,显示错误消息。没有要求 默认参数值。
void RecordWithdraw(账户*账户,交易*交易)
void PrintReport(帐户*帐户)
答案 0 :(得分:0)
为了清晰起见,我将尝试给出一般结构而不是精确的代码。 您的帐户结构需要一系列事务来存储最近100个事务。添加一个新字段来存储它们(Transaction []或Transaction *)。在CreateAccount()中,将其设置为一个100长的数组(初始化它)。在CreateAccount()中,您还需要使用参数中给出的信息设置所有字段。 在RecordWithdraw()和RecordDeposit()中,检查事务是否合法(由提供的限制允许),然后将新事务添加到事务数组中的下一个空闲槽(使用事务#确定),然后更新余额,总计提款/存款,以及账户的交易编号。 希望这会有所帮助。