2015-10-16 3 views
-1

Я пишу программу на C для имитации контрольной учетной записи. Существуют коды для транзакций, I = Начальный баланс, D = Депозит и C = Проверка (вы пишете чек кому-то, например, отзыв). Существует ежемесячная плата в размере 3,00 долл. США для поддержания счета, 0,06 долл. США за каждый чековый платеж,% 0,03 за каждый внесенный депозит, комиссию за овердрафт в размере 5,00 долл. США, когда чек обналичен приносит баланс ниже 0,00 долл. США.deposit() функция этой текущей учетной записи C-программа

У меня возникли проблемы с выполнением функций. Если вы не думаете, что помогать со всеми из них в порядке, пожалуйста, просто помогите с функцией deposit(). Я всего пару месяцев на C, и мы только что вошли в функции. Вот мой незавершенный код. Спасибо за любую помощь.

#include <stdio.h> 

void outputHeaders (void); 
void initialBalance (double iBalance); 
void deposit(double amount, double balance, double service, int numDeposit,double amtDeposit); 
void check(char code, double amtCheck, double balance); 
void outputSummary(); 


int main (void) 
{ 

char code; 
double amount, service, balance; 
double amtCheck, amtDeposit, openBalance, closeBalance; 
int numCheck, numDeposit; 

amount  = 0.0; 
service  = 0.0; 
balance  = 0.0; 
amtCheck  = 0.0; 
amtDeposit = 0.0; 
openBalance = 0.0; 
closeBalance = 0.0; 
numCheck  = 0; 
numDeposit = 0; 

outputHeaders(); 

printf("Enter the code of transaction and the amount: "); 
scanf("%c %lf\n", &code, &amount); 

if (code == 'I') 
{ 
    initialBalance(amount, &balance, &service, &numDeposit, &amtDeposit); 
} 

else if (code == 'D') 
{ 
    deposit (amount, &balance, &service, &numDeposit); 
} 
else 
{ 
    check(amount, &balance, &service, &numCheck, &amtCheck); 
} 


getchar(); getchar(); 
return 0; 
} 

void outputHeaders (void) 
{ 

printf("Transaction   Deposit  Check  Balance\n" 
     "--------------  --------  ------  -------"); 
} 

void initialBalance (double amount, double *balance, double *service, int *numDeposit, double *amtDeposit) 
{ 



} 

void deposit (double amount, double *balance, double *service, int *numDeposit, double *amtDeposit) 
{ 

*balance = *balance + *amtDeposit; 
*numDeposit++;      //need to keep track of amount of deposits 
*service = *service - 0.03;   //service charge 

printf("Deposit %lf %lf\n", *amtDeposit, *balance); 

} 

void check (double amount, double *balance, double *service, int *numCheck, double *amtCheck) 
{ 



} 

void outputSummary (int *numDeposit, double *amtDeposit, int *numCheck, int *amtCheck, double *openBalance, double *service, double *closeBalance) 
{ 



} 
+0

'У меня возникают проблемы при выполнении функции. 'Расскажите нам, в чем проблема. «Я не знаю, что C» выходит за рамки SO. – John3136

+0

@ John3136 Извините, если не ясно, но я попросил о помощи с функцией депозита. Правильно ли это? Будет ли этот код соответствующим образом обновлять баланс, чтобы он мог использоваться для других транзакций? – Futbolero

+0

@Futbolero, в чем проблема, с которой вы сталкиваетесь в функции 'deposit()'? – Pawan

ответ

0

Я видел только deposit(); функцию, когда вы объявили/определены В функции вы используете пять аргументов, но разговорное время используется только четыре аргумента.

так, если вы звоните как deposit (amount, &balance, &service, &numDeposit);

Затем изменить определение/заявление как этот

void deposit (double amount, double *balance, double *service, int *numDeposit) 
{ 

*balance = *balance + amount; 
*numDeposit++;      //need to keep track of amount of deposits 
*service = *service - 0.03;   //service charge 
//I think service change need to reduce from main balance so 
*balance = *balance - 0.03; 
printf("Deposit %lf balance %lf\n", amount, *balance); 

} 
+0

@Futbolero вы продвинулись? – Mohan

Смежные вопросы