(急)!C语言程序设计题---银行帐户管理系统

(急)!C语言程序设计题---银行帐户管理系统,第1张

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

#define BUFFERSIZE 1024

#define MAXACCOUNT 1000

typedef struct BankAccount

{

int account

int key

char name[32]

float balance

}BANKACCOUNT

BANKACCOUNT accountCollection[MAXACCOUNT]

int curAccount = 0

void InsertAccount(FILE *fp)

{

BANKACCOUNT newaccount

printf("please input the account information\n")

printf(">>account num:")

scanf("%d",&(newaccount.account))

printf(">>key:")

scanf("%d",&(newaccount.key))

printf(">>name:")

scanf("%s",newaccount.name)

printf(">>balance:")

scanf("%f",&(newaccount.balance))

fseek(fp,0L,SEEK_END)

fprintf(fp,"%d %d %s %.2f\n",newaccount.account,newaccount.key,newaccount.name,newaccount.balance)

}

void GetAccount(FILE *fp)

{

int accountnum

int key

char name[32]

float balance

int i =0,j

char buffer[BUFFERSIZE]

int len

curAccount = 0

fseek(fp,0,SEEK_SET)

while(!feof(fp)) /* 因为feof()最后会读2遍,所以最后curAccount多加了1 */

{

fscanf(fp,"%d %d %s %f",&accountnum,&key,name,&balance)

accountCollection[curAccount].account = accountnum

accountCollection[curAccount].key = key

strcpy(accountCollection[curAccount].name ,name)

accountCollection[curAccount].balance = balance

curAccount++

}

}

void ListAccount(FILE *fp)

{

int i =0

printf("There is %d accounts at all:\n",curAccount-1)/* curAccount减去多加的1 */

for(i = 0i<curAccount-1i++)

{

printf("ACCOUNT[%d]:\n",i+1)

printf("account:%d\n",accountCollection[i].account)

printf("name:%s\n",accountCollection[i].name)

printf("balance:%.2f\n",accountCollection[i].balance)

}

}

int SearchAccount(FILE *fp,int accountnum)

{

int i =0

for(i = 0i<curAccount-1i++)

{

if(accountCollection[i].account == accountnum)

{

printf("ACCOUNT[%d]:\n",i+1)

printf("account:%d\n",accountCollection[i].account)

printf("name:%s\n",accountCollection[i].name)

printf("balance:%.2f\n",accountCollection[i].balance)

return 1

}

}

return 0

}

void DelAccount(FILE *fp,int accountnum)

{

int i

if(SearchAccount(fp,accountnum)==0)

printf("Can't find the account\n")

else

{

for(i = 0i<curAccount-1i++)

{

if(accountCollection[i].account != accountnum)

fprintf(fp,"%d %d %s %.2f\n",accountCollection[i].account,accountCollection[i].key,accountCollection[i].name,accountCollection[i].balance)

}

printf("delete successfully!\n")

}

}

int main()

{

FILE *fp

int accountnum

int i

do{

system("cls")//清屏

puts("********************************************")

puts("*You can choose : *")

puts("*1 : Insert a new Account *")

puts("*2 : List all Accounts*")

puts("*3 : Find a Account *")

puts("*4 : Delete a Account *")

puts("*5 : quit *")

puts("********************************************")

printf("Please input your choice:")

scanf("%d",&i)

system("cls")//清屏

switch(i)

{

case 1:

if(!(fp = fopen("account.txt","a+")))

{

printf("can't open the file account.txt\n")

exit(0)

}

InsertAccount( fp)

printf("press any key to continue.....\n")

getch()

fclose(fp)

break

case 2:

if(!(fp = fopen("account.txt","r")))

{

printf("can't open the file account.txt\n")

exit(0)

}

GetAccount(fp)

ListAccount(fp)

fclose(fp)

printf("press any key to continue.....\n")

getch()

break

case 3:

printf("please input the account num:\n")

scanf("%d",&accountnum)

if(!(fp = fopen("account.txt","r")))

{

printf("can't open the file account.txt\n")

exit(0)

}

GetAccount(fp)

if(!SearchAccount(fp,accountnum))

printf("There is not the account:%d\n",accountnum)

fclose(fp)

printf("press any key to continue.....\n")

getch()

break

case 4:

printf("please input the account num:\n")

scanf("%d",&accountnum)

if(!(fp = fopen("account.txt","r")))

{

printf("can't open the file account.txt\n")

exit(0)

}

GetAccount(fp)

fclose(fp)

if(!(fp = fopen("account.txt","w+")))

{

printf("can't open the file account.txt\n")

exit(0)

}

DelAccount(fp,accountnum)

fclose(fp)

printf("press any key to continue.....\n")

getch()

break

default:

break

}

}while(i != 5)

return 0

}

这里账户数据文件名已经设定为account.txt,这个文件要和上面这个程序放在同一个文件夹下面,不然就得用绝对路径(比如"d:\\book\\account.txt"),account内容可以用记事本打开自己改动,然后运行程序后就可以在程序中添加或删除。account.txt一个参考内容如下:

1 10023 zhangsl 100.50

2 32001 sunq 5000.00

3 20010 wangxi 2500.00 4

如果你用VC编译,有几处警告,你可以把下面有双斜杠那一行去掉就行

通过VC++6.0编译

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define BUFFERSIZE 1024

#define MAXACCOUNT 1000

typedef struct BankAccount

{

int account

int key

char name[32]

float balance

}BANKACCOUNT

BANKACCOUNT accountCollection[MAXACCOUNT]

int curAccount = 0

void InsertAccount(FILE *fp)

{

BANKACCOUNT newaccount

printf("please input the account information\n")

printf(">>account num:")

scanf("%d",&(newaccount.account))

printf(">>key:")

scanf("%d",&(newaccount.key))

printf(">>name:")

scanf("%s",newaccount.name)

printf(">>balance:")

scanf("%f",&(newaccount.balance))

fseek(fp,0L,SEEK_END)

fprintf(fp,"%d %d %s %.2f\n",newaccount.account,newaccount.key,newaccount.name,newaccount.balance)

}

void GetAccount(FILE *fp)

{

int accountnum

int key

char name[32]

float balance

int i =0

//char buffer[BUFFERSIZE]

//int len

curAccount = 0

fseek(fp,0,SEEK_SET)

while(!feof(fp)) /* 因为feof()最后会读2遍,所以最后curAccount多加了1 */

{

fscanf(fp,"%d %d %s %f",&accountnum,&key,name,&balance)

accountCollection[curAccount].account = accountnum

accountCollection[curAccount].key = key

strcpy(accountCollection[curAccount].name ,name)

accountCollection[curAccount].balance = balance

curAccount++

}

}

void ListAccount(FILE *fp)

{

int i =0

printf("There is %d accounts at all:\n",curAccount-1)/* curAccount减去多加的1 */

for(i = 0i<curAccount-1i++)

{

printf("ACCOUNT[%d]:\n",i+1)

printf(">>accountnum:%d\n",accountCollection[i].account)

printf(">>accountnum:%s\n",accountCollection[i].name)

printf(">>accountnum:%.2f\n",accountCollection[i].balance)

}

}

int SearchAccount(FILE *fp,int accountnum)

{

int i =0

for(i = 0i<curAccount-1i++)

{

if(accountCollection[i].account == accountnum)

{

printf("ACCOUNT[%d]:\n",i+1)

printf(">>accountnum:%d\n",accountCollection[i].account)

printf(">>accountnum:%s\n",accountCollection[i].name)

printf(">>accountnum:%.2f\n",accountCollection[i].balance)

return 1

}

}

return 0

}

void DelAccount(FILE *fp,int accountnum)

{

int i

if(SearchAccount(fp,accountnum)==0)

printf("Can't find the account\n")

else

{

for(i = 0i<curAccount-1i++)

{

if(accountCollection[i].account != accountnum)

fprintf(fp,"%d %d %s %.2f\n",accountCollection[i].account,accountCollection[i].key,accountCollection[i].name,accountCollection[i].balance)

}

printf("delete successfully!\n")

}

}

int main()

{

FILE *fp

int accountnum

int i

do{

// clrscr()

puts("********************************************")

puts("*You can choose : *")

puts("*1 : Insert a new Account *")

puts("*2 : List all Accounts*")

puts("*3 : Find a Account *")

puts("*4 : Delete a Account *")

puts("*5 : quit *")

puts("********************************************")

puts("Please input your choice:")

scanf("%d",&i)

//clrscr()

switch(i)

{

case 1:

if(!(fp = fopen("account.txt","a+")))

{

printf("can't open the file account.txt\n")

exit(0)

}

InsertAccount( fp)

printf("press any key to continue.....\n")

//getch()

fclose(fp)

break

case 2:

if(!(fp = fopen("account.txt","r")))

{

printf("can't open the file account.txt\n")

exit(0)

}

GetAccount(fp)

ListAccount(fp)

fclose(fp)

printf("press any key to continue.....\n")

//getch()

break

case 3:

printf("please input the account num:\n")

scanf("%d",&accountnum)

if(!(fp = fopen("account.txt","r")))

{

printf("can't open the file account.txt\n")

exit(0)

}

GetAccount(fp)

if(!SearchAccount(fp,accountnum))

printf("There is not the account:%d\n",accountnum)

fclose(fp)

printf("press any key to continue.....\n")

//getch()

break

case 4:

printf("please input the account num:\n")

scanf("%d",&accountnum)

if(!(fp = fopen("account.txt","r")))

{

printf("can't open the file account.txt\n")

exit(0)

}

GetAccount(fp)

fclose(fp)

if(!(fp = fopen("account.txt","w+")))

{

printf("can't open the file account.txt\n")

exit(0)

}

DelAccount(fp,accountnum)

fclose(fp)

printf("press any key to continue.....\n")

// getch()

break

default:

break

}

}while(i != 5)

//getch()

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9943449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存