岁月联盟 - 技术社区 - BBS.SYUE.COM's Archiver

茶水莎猫 发表于 2006-5-12 07:10

银行交易系统。C写的`。

<p>#include&lt;stdio.h&gt;<br/>#include&lt;stdlib.h&gt;<br/>#include&lt;string.h&gt;<br/>struct cust<br/>{<br/>&nbsp;int zhanghao;&nbsp;&nbsp;&nbsp;&nbsp; //帐号<br/>&nbsp;char mingzi[20];&nbsp;&nbsp; //名字<br/>&nbsp;float bal;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //开户的金额<br/>};<br/>struct tran<br/>{<br/>&nbsp;int acc_no;<br/>&nbsp;char trantype;<br/>&nbsp;float amt;<br/>};<br/>void addcust();<br/>void rectran();<br/>void prnlowbal();<br/>void huizong();<br/>void main()<br/>{<br/>&nbsp;int choice;<br/>&nbsp;while(choice!=5)<br/>&nbsp;{<br/>&nbsp;&nbsp;system("cls");<br/>&nbsp;&nbsp;printf("\n****************************************\n");<br/>&nbsp;&nbsp;printf("\n*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 银行交易系统&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *\n");<br/>&nbsp;&nbsp;printf("\n*&nbsp;&nbsp; -1-&nbsp;&nbsp;&nbsp; 创建新用户信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *\n");<br/>&nbsp;&nbsp;printf("\n*&nbsp;&nbsp; -2-&nbsp;&nbsp;&nbsp; 银行业务办理&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf("\n*&nbsp;&nbsp; -3-&nbsp;&nbsp;&nbsp; 显示低存款用户信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *\n");<br/>&nbsp;&nbsp;printf("\n*&nbsp;&nbsp; -4-&nbsp;&nbsp;&nbsp; 汇总&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *\n");<br/>&nbsp;&nbsp;printf("\n*&nbsp;&nbsp; -5-&nbsp;&nbsp;&nbsp; 退出&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *\n");<br/>&nbsp;&nbsp;printf("\n****************************************\n");<br/>&nbsp;&nbsp;printf("请选择:");<br/>&nbsp;&nbsp;scanf(" %d",&amp;choice);<br/>&nbsp;switch(choice)<br/>&nbsp;{<br/>&nbsp;case 1:<br/>&nbsp;&nbsp;addcust();<br/>&nbsp;&nbsp;break;<br/>&nbsp;case 2:<br/>&nbsp;&nbsp;rectran();<br/>&nbsp;&nbsp;break;<br/>&nbsp;case 3:<br/>&nbsp;&nbsp;prnlowbal();<br/>&nbsp;&nbsp;break;<br/>&nbsp;case 4:<br/>&nbsp;&nbsp;huizong();<br/>&nbsp;&nbsp;break;<br/>&nbsp;default:<br/>&nbsp;&nbsp;exit(0);<br/>&nbsp;}<br/>&nbsp;}<br/>}<br/>void addcust()<br/>{<br/>&nbsp;FILE *fp;<br/>&nbsp;char flag='y';<br/>&nbsp;struct cust people;<br/>&nbsp;if((fp=fopen("sql.txt","w"))==NULL)<br/>&nbsp;{<br/>&nbsp;&nbsp;printf("\n&nbsp;&nbsp; ****&nbsp; 操作错误,重新输入 ****\n");<br/>&nbsp;&nbsp;getchar();<br/>&nbsp;&nbsp;return;<br/>&nbsp;}<br/>&nbsp;while(flag=='y')<br/>&nbsp;{<br/>&nbsp;&nbsp;system("cls");<br/>&nbsp;&nbsp;printf("\n&nbsp; 帐号:");<br/>&nbsp;&nbsp;scanf("%d",&amp;people.zhanghao);<br/>&nbsp;&nbsp;printf("\n&nbsp; 姓名:");<br/>&nbsp;&nbsp;scanf("%s",&amp;people.mingzi);<br/>&nbsp;&nbsp;printf("\n&nbsp; 金额:");<br/>&nbsp;&nbsp;scanf("%f",&amp;people.bal);<br/>&nbsp;&nbsp;fwrite(&amp;people,sizeof(struct cust),1,fp);<br/>&nbsp;&nbsp;getchar();<br/>&nbsp;&nbsp;printf("\n&nbsp; 是否继续(y/n)?:");<br/>&nbsp;&nbsp;scanf(" %c",&amp;flag);<br/>&nbsp;}<br/>&nbsp;fclose(fp);<br/>}<br/>void rectran()<br/>{<br/>&nbsp;FILE *fp1,*fp2;<br/>&nbsp;char flag='y',found,val_flag;<br/>&nbsp;struct cust people;<br/>&nbsp;struct tran people2;<br/>&nbsp;int size=sizeof(struct cust);<br/>&nbsp;if((fp1=fopen("sql.txt","a+f"))==NULL)<br/>&nbsp;{<br/>&nbsp;&nbsp;printf("\n&nbsp;&nbsp; ****&nbsp; 操作错误,重新输入! ****\n");<br/>&nbsp;&nbsp;getchar();<br/>&nbsp;&nbsp;exit(0);<br/>&nbsp;}<br/>&nbsp;if((fp2=fopen("trans.dat","a+f"))==NULL)<br/>&nbsp;{<br/>&nbsp;&nbsp;printf("\n&nbsp;&nbsp; ****&nbsp; 操作错误,重新输入! ****\n");<br/>&nbsp;&nbsp;getchar();<br/>&nbsp;&nbsp;return;<br/>&nbsp;}<br/>&nbsp;while(flag=='y')<br/>&nbsp;{<br/>&nbsp;&nbsp;system("cls");<br/>&nbsp;&nbsp;printf("\n帐号:");<br/>&nbsp;&nbsp;scanf("%d",&amp;people2.acc_no);<br/>&nbsp;&nbsp;found='n';<br/>&nbsp;&nbsp;val_flag='n';<br/>&nbsp;&nbsp;rewind(fp1);<br/>&nbsp;&nbsp;while((fread(&amp;people,size,1,fp1))==1 &amp;&amp; found=='n')<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;if(people.zhanghao==people2.acc_no)<br/>&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;found='y';<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;if(found=='y')<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;while(val_flag=='n')<br/>&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf("\n&nbsp; 选择交易方式&nbsp; 存/取(D/W)?:");<br/>&nbsp;&nbsp;&nbsp;&nbsp;scanf(" %c",&amp;people2.trantype);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(people2.trantype!='D'&amp;&amp;people2.trantype!='d'&amp;&amp;people2.trantype!='w'&amp;&amp;people2.trantype!='W')<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n&nbsp; ****&nbsp; 交易错误,重新输入&nbsp; ****\n");<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_flag='y';<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;val_flag='n';<br/>&nbsp;&nbsp;&nbsp;&nbsp;while(val_flag=='n')<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n&nbsp; 金额:");<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%f",&amp;people2.amt);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(people2.trantype=='w'||people2.trantype=='W')<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(people2.amt&gt;people.bal)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n&nbsp; ***&nbsp; 余额:%.2f不足.重新输入。 ***",people.bal);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;people.bal-=people2.amt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_flag='y';<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;people.bal+=people2.amt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val_flag='y';<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(&amp;people,sizeof(struct tran),1,fp2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;fseek(fp1,(long)(-size),1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(&amp;people,size,1,fp1);<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf("\n&nbsp;&nbsp; ****&nbsp; 这个帐号不存在!&nbsp; ****\n");<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;printf("\n 交易是否继续?y/n:");<br/>&nbsp;&nbsp;&nbsp;scanf(" %c",&amp;flag);<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;fclose(fp1);<br/>&nbsp;&nbsp;fclose(fp2);<br/>&nbsp;&nbsp;getchar();<br/>&nbsp;&nbsp;getchar();<br/>&nbsp;}<br/>void prnlowbal()<br/>{<br/>&nbsp;FILE *fp;<br/>&nbsp;struct cust people;<br/>&nbsp;char flag='n';<br/>&nbsp;getchar();<br/>&nbsp;if((fp=fopen("sql.txt","r"))==NULL)<br/>&nbsp;{<br/>&nbsp;&nbsp;printf("\n&nbsp; ****&nbsp; 操作错误,重新操作&nbsp; ****");<br/>&nbsp;&nbsp;getchar();<br/>&nbsp;&nbsp;return;<br/>&nbsp;}<br/>&nbsp;printf("\n 显示帐户余额低于250元的帐号\n");<br/>&nbsp;while((fread(&amp;people,sizeof(struct cust),1,fp))==1)<br/>&nbsp;{<br/>&nbsp;&nbsp;if(people.bal&lt;250)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;flag='y';<br/>&nbsp;&nbsp;&nbsp;printf("\n&nbsp; %d\t%s\t%.2f",people.zhanghao,people.mingzi,people.bal);<br/>&nbsp;&nbsp;}<br/>&nbsp;}<br/>&nbsp;if(flag=='n')<br/>&nbsp;{<br/>&nbsp;&nbsp;printf("\n&nbsp; **Sorry!未找到低于250的帐户&nbsp; **");<br/>&nbsp;}<br/>&nbsp;getchar();<br/>&nbsp;fclose(fp);<br/>}<br/>void huizong()<br/>{<br/>&nbsp;struct cust people;<br/>&nbsp;FILE *fp;<br/>&nbsp;fp=fopen("sql.txt","r");<br/>&nbsp;if(fp!=NULL)<br/>&nbsp;{&nbsp;<br/>&nbsp;&nbsp;system("cls");<br/>&nbsp;&nbsp;printf("%-15s%-15s%-15s\n","帐号","姓名","余额");<br/>&nbsp;&nbsp;while(fread(&amp;people,sizeof(struct cust),1,fp))<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;printf("\n%-15d",people.zhanghao);<br/>&nbsp;&nbsp;&nbsp;printf("%-15s",people.mingzi);<br/>&nbsp;&nbsp;&nbsp;printf("%-15.2f\n",people.bal);<br/>&nbsp;&nbsp;}<br/>&nbsp;}<br/>&nbsp;fclose(fp);<br/>&nbsp;printf("\n&nbsp; ****&nbsp; 按任意键返回!&nbsp; ****\n");<br/>&nbsp;<br/>}<br/></p>

hack_k 发表于 2006-5-13 08:10

刚学C不久

admin8888 发表于 2006-5-15 18:28

<p>这些不敢搞哦``</p>

Sk. 发表于 2007-12-16 17:22

[(:shocked:)]  没scanf函数?

阿冰 发表于 2007-12-16 21:01

sk   你错了 谁说没有啊  但是我感觉应该把 帐号设置成 字符型的 更好 比光整形好用多了

Sk. 发表于 2008-1-19 19:05

... 刚刚发现.

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.