银行交易系统。C写的`。
<p>#include<stdio.h><br/>#include<stdlib.h><br/>#include<string.h><br/>struct cust<br/>{<br/> int zhanghao; //帐号<br/> char mingzi[20]; //名字<br/> float bal; //开户的金额<br/>};<br/>struct tran<br/>{<br/> int acc_no;<br/> char trantype;<br/> float amt;<br/>};<br/>void addcust();<br/>void rectran();<br/>void prnlowbal();<br/>void huizong();<br/>void main()<br/>{<br/> int choice;<br/> while(choice!=5)<br/> {<br/> system("cls");<br/> printf("\n****************************************\n");<br/> printf("\n* 银行交易系统 *\n");<br/> printf("\n* -1- 创建新用户信息 *\n");<br/> printf("\n* -2- 银行业务办理 *\n"); <br/> printf("\n* -3- 显示低存款用户信息 *\n");<br/> printf("\n* -4- 汇总 *\n");<br/> printf("\n* -5- 退出 *\n");<br/> printf("\n****************************************\n");<br/> printf("请选择:");<br/> scanf(" %d",&choice);<br/> switch(choice)<br/> {<br/> case 1:<br/> addcust();<br/> break;<br/> case 2:<br/> rectran();<br/> break;<br/> case 3:<br/> prnlowbal();<br/> break;<br/> case 4:<br/> huizong();<br/> break;<br/> default:<br/> exit(0);<br/> }<br/> }<br/>}<br/>void addcust()<br/>{<br/> FILE *fp;<br/> char flag='y';<br/> struct cust people;<br/> if((fp=fopen("sql.txt","w"))==NULL)<br/> {<br/> printf("\n **** 操作错误,重新输入 ****\n");<br/> getchar();<br/> return;<br/> }<br/> while(flag=='y')<br/> {<br/> system("cls");<br/> printf("\n 帐号:");<br/> scanf("%d",&people.zhanghao);<br/> printf("\n 姓名:");<br/> scanf("%s",&people.mingzi);<br/> printf("\n 金额:");<br/> scanf("%f",&people.bal);<br/> fwrite(&people,sizeof(struct cust),1,fp);<br/> getchar();<br/> printf("\n 是否继续(y/n)?:");<br/> scanf(" %c",&flag);<br/> }<br/> fclose(fp);<br/>}<br/>void rectran()<br/>{<br/> FILE *fp1,*fp2;<br/> char flag='y',found,val_flag;<br/> struct cust people;<br/> struct tran people2;<br/> int size=sizeof(struct cust);<br/> if((fp1=fopen("sql.txt","a+f"))==NULL)<br/> {<br/> printf("\n **** 操作错误,重新输入! ****\n");<br/> getchar();<br/> exit(0);<br/> }<br/> if((fp2=fopen("trans.dat","a+f"))==NULL)<br/> {<br/> printf("\n **** 操作错误,重新输入! ****\n");<br/> getchar();<br/> return;<br/> }<br/> while(flag=='y')<br/> {<br/> system("cls");<br/> printf("\n帐号:");<br/> scanf("%d",&people2.acc_no);<br/> found='n';<br/> val_flag='n';<br/> rewind(fp1);<br/> while((fread(&people,size,1,fp1))==1 && found=='n')<br/> {<br/> if(people.zhanghao==people2.acc_no)<br/> {<br/> found='y';<br/> break;<br/> }<br/> }<br/> if(found=='y')<br/> {<br/> while(val_flag=='n')<br/> {<br/> printf("\n 选择交易方式 存/取(D/W)?:");<br/> scanf(" %c",&people2.trantype);<br/> if(people2.trantype!='D'&&people2.trantype!='d'&&people2.trantype!='w'&&people2.trantype!='W')<br/> {<br/> printf("\n **** 交易错误,重新输入 ****\n");<br/> }<br/> else<br/> {<br/> val_flag='y';<br/> }<br/> }<br/> val_flag='n';<br/> while(val_flag=='n')<br/> {<br/> printf("\n 金额:");<br/> scanf("%f",&people2.amt);<br/> if(people2.trantype=='w'||people2.trantype=='W')<br/> {<br/> if(people2.amt>people.bal)<br/> {<br/> printf("\n *** 余额:%.2f不足.重新输入。 ***",people.bal);<br/> }<br/> else<br/> {<br/> people.bal-=people2.amt;<br/> val_flag='y';<br/> }<br/> }<br/> else<br/> {<br/> people.bal+=people2.amt;<br/> val_flag='y';<br/> }<br/> }<br/> fwrite(&people,sizeof(struct tran),1,fp2);<br/> fseek(fp1,(long)(-size),1);<br/> fwrite(&people,size,1,fp1);<br/> }<br/> else<br/> {<br/> printf("\n **** 这个帐号不存在! ****\n");<br/> }<br/> printf("\n 交易是否继续?y/n:");<br/> scanf(" %c",&flag);<br/> }<br/> fclose(fp1);<br/> fclose(fp2);<br/> getchar();<br/> getchar();<br/> }<br/>void prnlowbal()<br/>{<br/> FILE *fp;<br/> struct cust people;<br/> char flag='n';<br/> getchar();<br/> if((fp=fopen("sql.txt","r"))==NULL)<br/> {<br/> printf("\n **** 操作错误,重新操作 ****");<br/> getchar();<br/> return;<br/> }<br/> printf("\n 显示帐户余额低于250元的帐号\n");<br/> while((fread(&people,sizeof(struct cust),1,fp))==1)<br/> {<br/> if(people.bal<250)<br/> {<br/> flag='y';<br/> printf("\n %d\t%s\t%.2f",people.zhanghao,people.mingzi,people.bal);<br/> }<br/> }<br/> if(flag=='n')<br/> {<br/> printf("\n **Sorry!未找到低于250的帐户 **");<br/> }<br/> getchar();<br/> fclose(fp);<br/>}<br/>void huizong()<br/>{<br/> struct cust people;<br/> FILE *fp;<br/> fp=fopen("sql.txt","r");<br/> if(fp!=NULL)<br/> { <br/> system("cls");<br/> printf("%-15s%-15s%-15s\n","帐号","姓名","余额");<br/> while(fread(&people,sizeof(struct cust),1,fp))<br/> {<br/> printf("\n%-15d",people.zhanghao);<br/> printf("%-15s",people.mingzi);<br/> printf("%-15.2f\n",people.bal);<br/> }<br/> }<br/> fclose(fp);<br/> printf("\n **** 按任意键返回! ****\n");<br/> <br/>}<br/></p> 刚学C不久 <p>这些不敢搞哦``</p> [(:shocked:)] 没scanf函数? sk 你错了 谁说没有啊 但是我感觉应该把 帐号设置成 字符型的 更好 比光整形好用多了 ... 刚刚发现.页:
[1]