admin 管理员组文章数量: 1086019
2024年4月30日发(作者:stackbug)
#include
#include
#include
#include
#include
#define ZHANGHUSHU 10
#define JIAOYISHU 20
int caidan();/*登录注册菜单*/
void zhuce();
void denglu();
void baocunshuju();
int menu();/*主菜单*/
void cunkuan();
void qukuan();
void zhuanzhang();
void chaxun();
void xiugaimima();
struct JiaoYi /*定义交易结构体*/
{
char shijian[50];/*时间*/
char leixing[3];/*类型*/
float jine; /*金额*/
float yue;/*余额*/
};
struct ZhangHu /*定义账户结构体*/
{
char xingming[17];/*姓名*/
char zhanghao[12];/*账号*/
char shenfenzheng[19]; /*身份证*/
char mima[7]; /*密码*/
float yue; /*余额*/
struct JiaoYi jiaoyi[JIAOYISHU]; /*在账户的结构体中在定义交易的结构体*/
int jiaoyishu;
};
struct ZhangHu zhanghu[ZHANGHUSHU]; /*定义账户数来确定账户这一结构体中
有多少个体*/
int j; /*当前账户*/
int zhanghushu;
int k;/*交易帐号*/
int jiaoyishu;
void xianshizhanghu();
int caidan()/*菜单函数*/
{
char c;
do
{
system("cls"); /*每次选择运行前清屏*/
printf("tt =================
); /*菜单选择*/
printf("tt * 1. 注册*
printf("tt * 2. 登录
printf("tt * 3. 保存数据
printf("tt * 0. 退出
printf("tt
欢迎
使用ATM
*n");
*n");
*n");
*n");
系统
===============nn"
===============================================n");
printf("ttt请作出选择(0-3):");
c=getchar(); /*读入选择*/
}
while(c<'0'||c>'3');
return(c-'0'); /*c变为空后返回重新选择*/
}/*根据主菜单的返回值来确定主函数的值*/
void zhuce()
{
printf("ntt请输入姓名:");
scanf("%s",zhanghu[zhanghushu].xingming);
printf("ntt请输入帐号:");
scanf("%s",zhanghu[zhanghushu].zhanghao);
do
{
printf("ntt请输入身份证:");
scanf("%s",zhanghu[zhanghushu].shenfenzheng);
if(strlen(zhanghu[zhanghushu].shenfenzheng)==18)
break;
else
printf("ntt身份证必须是18,请重新输入!");
}
while(1);
do
{ printf("ntt请输入密码:");
scanf("%s",zhanghu[zhanghushu].mima);
if(strlen(zhanghu[zhanghushu].mima)==6)
break;
else
printf("ntt密码必须是6位,请重新输入!");
}
while(1);
zhanghu[zhanghushu].yue=0;
zhanghu[zhanghushu].jiaoyishu=0;
zhanghushu++;
xianshizhanghu();
}
void xianshizhanghu() /*显示账户函数来显示所输入的账户*/
{
int i;
for(i=0;i { printf("nnt帐号t姓名t身份证tt密码t余额n"); printf("t%st%st%st%st%.2fn",zhanghu[i].zhanghao,zhanghu[i].xingming, zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue); system("pause"); } } void denglu() /*登录函数*/ { char zhanghao[12],mima[7]; int i=0; int mimacishu=1; printf("ntt请输入帐号:"); scanf("%s",zhanghao); while(strcmp(zhanghao,zhanghu[i].zhanghao)!=0&&i i++; /**/ if(i==zhanghushu) return; do { printf("ntt请输入密码:"); scanf("%s",mima); if(strcmp(mima,zhanghu[i].mima)!=0) { if(mimacishu==3) { printf("你已输入错误三次,你不能在输."); system("pause"); return; } else { printf("密码错误请重新输入:"); mimacishu++; } } else break; } while(1); for(;;) { switch(menu()) /*选择判断*/ { case 1: cunkuan(); break; case 2: qukuan(); break; case 3: zhuanzhang(); break; case 4: chaxun(); break; case 5: xiugaimima(); break; case 0: return; } } } void baocunshuju()/*保存数据*/ { int i,j; FILE *fp; char filename[20]; printf("ttt将数据保存到一个文本文件中n");/*输入文件名*/ printf("ttt请输入文件名"); fflush(stdin); scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL)/*打开文件*/ { printf("无法创建此文件n"); system("pause"); return; } fprintf(fp,"%dn",zhanghushu);/*循环写入数据*/ printf("t帐号tt姓名tt身份证tt密码t余额t交易数"); for(i=0;i { fprintf(fp,"t%15s%10s%20s%10st%10.2ft%5dn",zhanghu[i].zhanghao,zhan ghu[i].xingming,zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue,zhangh u[i].jiaoyishu); for(j=0;j fprintf(fp,"%30s%10s%10.2f%10.2fn",zhanghu[i].jiaoyi[j].shijian,zhanghu[i].jiaoyi[j ].leixing,zhanghu[i].jiaoyi[j].jine,zhanghu[i].jiaoyi[j].yue); } fclose(fp); } void duqushuju() { int i,j; FILE *fp; char filename[20]; printf("nnnt请输入欲读入数据的文件名:n"); fflush(stdin); gets(filename); if(strlen(filename)==0) return; else if((fp=fopen(filename,"r"))==NULL)/*打开文件*/ { printf("无法打开此文件n"); system("pause"); return; } else { printf("tt成功打开文件.n"); getch(); } fscanf(fp,"%dn",zhanghushu); for(i=0;i { fscanf(fp,"%15s%10s%20s%10ft%10f%5dn", zhanghu[i].zhanghao, zhanghu[i].xingming, zhanghu[i].shenfenzheng, zhanghu[i].mima, &zhanghu[i].yue, &zhanghu[i].jiaoyishu); for(j=0;j { fgets(zhanghu[i].jiaoyi[j].shijian,30,fp); fscanf(fp,"%5s%10ft%10fn",zhanghu[i].jiaoyi[j].leixing, &(zhanghu[i].jiaoyi[j].jine), &(zhanghu[i].jiaoyi[j].yue)); } } fclose(fp); } int menu() { char c; do { system("cls"); printf("nnt================= 欢迎使用 XXX银行ATM ==================nn"); printf("t===================== =====================n"); 请选择服务 printf("t* *n"); printf("t* 1 实时存款 2 取款服务 *n"); printf("t* *n"); printf("t* 3 转账服务 4 查询 *n"); printf("t* *n"); printf("t* 5 修改密码 6 退出 *n"); printf("t* *n"); printf("t============================================ ========n"); printf("ttt请作出选择(1-7):"); c=getchar(); /*读入选择*/ system("pause"); } while(c<'1'||c>'7'); return(c-'0'); /*c变为空后返回重新选择*/ } void cunkuan() /*存款函数*/ { float cunkuanjine;/*输入的存款金额*/ int k; int i; char t[30]; time_t rawtime; struct tm *timeinfo; time(&rawtime); timeinfo=localtime(&rawtime); strcpy(t,asctime(timeinfo)); for(i=0;t[i]!='0';i++) if(t[i]=='n') { t[i]='0'; break; } printf("请输入存款金额(存款金额必须大于0,不超过10000,必须是100元的面额n"); scanf("%f",&cunkuanjine); if(cunkuanjine<=0||cunkuanjine>1000||(int)cunkuanjine%100!=0) { printf("金额不符合要求,请重新选择"); return; } else { k=zhanghu[j].jiaoyishu; strcpy(zhanghu[j].jiaoyi[k].shijian,t); strcpy(zhanghu[j].jiaoyi[k].leixing,"存"); zhanghu[j].jiaoyi[k].jine=cunkuanjine; zhanghu[j].yue+=cunkuanjine; zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue; zhanghu[j].jiaoyishu++; printf("nttt您本次存了%.2f元n",cunkuanjine); printf("nttt您的余额为%.2f元n",zhanghu[j].yue); printf("n时间为:%sn",zhanghu[j].jiaoyi[k].shijian); printf("n类型为:%sn",zhanghu[j].jiaoyi[k].leixing); system("pause"); } } void qukuan() /*取款函数*/ { int k;/*交易下标*/ float qukuanjine; int i; char t[30]; time_t rawtime; struct tm *timeinfo; time(&rawtime); timeinfo=localtime(&rawtime); strcpy(t,asctime(timeinfo)); for(i=0;t[i]!='0';i++) if(t[i]=='n') { t[i]='0'; break; } printf(" 取款服务 n"); printf("t===================== ); 请选择服务 =====================n" printf("t* *n"); printf("t* 1 100 2 200 *n"); printf("t* *n"); printf("t* 3 500 4 1000 *n"); printf("t* *n"); printf("t* 5 其他金额 6 返回主菜单 *n"); printf("t* *n"); printf("t============================================ ========n"); scanf("%f",&qukuanjine); if(qukuanjine<=0||qukuanjine>10000||(int)qukuanjine%100!=0) { printf("金额不符合要求,请重新选择"); return; } else if(zhanghu[j].yue { printf("你的账户余额不足,不能完成这项操作。 return; } { k=zhanghu[j].jiaoyishu; strcpy(zhanghu[j].jiaoyi[k].shijian,t); strcpy(zhanghu[j].jiaoyi[k].leixing,"取"); zhanghu[j].jiaoyi[k].jine=qukuanjine; ); " zhanghu[j].yue-=qukuanjine; zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue; zhanghu[j].jiaoyishu++; printf("nttt您本次取款%.2f元n",qukuanjine); printf("nttt您的余额为%.2f元n",zhanghu[j].yue); printf("n时间为:%sn",zhanghu[j].jiaoyi[k].shijian); printf("n类型为:%sn",zhanghu[j].jiaoyi[k].leixing); system("pause"); } } void zhuanzhang() { float zhuanzhangjine; int i; int l=0; char t[30],zhuanzhangzhanghao[12]; char sign='n'; time_t rawtime; struct tm *timeinfo; time(&rawtime); timeinfo=localtime(&rawtime); strcpy(t,asctime(timeinfo)); for(i=0;t[i]!='0';i++) if(t[i]=='n') { t[i]='0'; } printf("请输入你要转入的帐号:"); scanf("%s",zhuanzhangzhanghao); while(strcmp(zhanghu[l].zhanghao,zhuanzhangzhanghao)!=0&&l l++; if(l==zhanghushu) { printf("你输入的用户不存在!n"); system("pause"); return; } printf("n该账户户主姓名为%sn,是否确认转账Y/N?",zhanghu[j].xingming); scanf("tt%c",&sign); /*输入判断*/ if(sign!='y'&&sign!='Y') /*判断*/ return; else { do { printf("n请输入转账金额(大于100不超过5000):"); scanf("%f",&zhuanzhangjine); if(zhuanzhangjine<100||zhuanzhangjine>5000) { printf("输入金额不对,请重新输入!"); system("pause"); return; } if(zhanghu[j].yue<=0||zhanghu[j].yue { printf("账户余额不足n"); system("pause"); return; } else { k=zhanghu[j].jiaoyishu; strcpy(zhanghu[j].jiaoyi[k].shijian,t); strcpy(zhanghu[j].jiaoyi[k].leixing,"转账"); zhanghu[j].jiaoyi[k].jine=zhuanzhangjine; zhanghu[j].yue-=zhuanzhangjine; zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue; } }while(0); } zhanghu[j].jiaoyishu++; printf("ntt你本次转了%0.2f元n",zhuanzhangjine); printf("ntt你的余额为%0.2f元n",zhanghu[j].yue); printf("ntt时间为:%sn",zhanghu[j].jiaoyi[k].shijian); printf("ntt类型为:%sn",zhanghu[j].jiaoyi[k].leixing); system("pause"); printf("nntt转账成功nn"); system("pause"); } void xiugaimima() /*修改密码函数*/ { char mima1[7],mima2[7]; do { do { printf("nnntt请输入密码:"); scanf("%s",mima1); if(strlen(mima1)==6) break; else printf("nntt密码必须是6位,请重新输入!"); }while(1); do { printf("nnntt请确认密码:"); scanf("%s",mima2); if(strlen(mima2)==6) break; else printf("输入密码必须是6位请输入密码:"); } while(1); if(strcmp(mima1,mima2)==0 ) /*判断第二次输入的密码是否与第一次的一致*/ break; else printf("nntt*|两次密码不相等请重新输入:nn"); } while(1); strcpy(zhanghu[j].mima,mima1); printf("nntt修改密码成功nn"); getch(); system("pause"); } int chaxuncaidan();/*查询菜单*/ void chaxunyue(); void chaxuncunkun(); void chaxunqukun(); void chaxunzhuangzhan(); void chaxunjiaoyi(); void duqushuju(); void chaxun() /*查询函数*/ { for(;;) { switch(chaxuncaidan()) /*选择判断*/ { case 1: chaxunyue(); break; case 2: chaxuncunkun(); break; case 3: chaxunqukun(); break; case 4: chaxunzhuangzhan(); break; case 5: chaxunjiaoyi(); break; case 0: return; } } } int chaxuncaidan()/*菜单函数*/ { char c; do { system("cls"); /*每次选择运行前清屏*/ printf("tt *********************查询菜单*******************nn"); /*菜单选 择*/ printf("tt *| 1. 查询余额|n"); printf("tt *| 2. 查询存款记录|n"); printf("tt *| 3. 查询取款记录|n"); printf("tt *| 4. 查询转账记录|n"); printf("tt *| 5. 查询交易情况|n"); printf("tt *| 0. 退出 |n"); printf("tt ************************************************n"); printf("ttt请作出选择(0-5):"); c=getchar(); /*读入选择*/ } while(c<'0'||c>'5'); return(c-'0'); /*c变为空后返回重新选择*/ } void chaxunyue()/*查询余额函数*/ { printf("nt您的余额为%.2f元n",zhanghu[j].yue); system("pause"); } void chaxuncunkun() /*查询存款函数*/ { int i; printf("tt *************存款查询记录****************nn"); printf("t帐号t姓名t交易类型t交易时间tt金额t余额n"); for(i=0;i { if(strcmp(zhanghu[j].jiaoyi[i].leixing,"存")==0) printf("t%st%st%st%st%.2ft%.2fnn",zhanghu[j].zhanghao, zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing, zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine, zhanghu[j].jiaoyi[i].yue); else; } system("pause"); } void chaxunqukun() /*查询取款函数*/ { int i; printf("tt *************取款查询记录****************nn"); printf("t帐号t姓名t交易类型t交易时间tt金额t余额n"); for(i=0;i { if(strcmp(zhanghu[j].jiaoyi[i].leixing,"取")==0) printf("t%st%st%st%st%.2ft%.2fnn",zhanghu[j].zhanghao, zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing, zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine, zhanghu[j].jiaoyi[i].yue); else; } system("pause"); } void chaxunzhuangzhan()/*查询转账函数*/ { int i; printf("tt *************取款查询记录****************nn"); printf("t帐号t姓名t交易类型t交易时间tt金额t余额n"); for(i=0;i { if(strcmp(zhanghu[j].jiaoyi[i].leixing,"转")==0) printf("t%st%st%st%st%.2ft%.2fnn",zhanghu[j].zhanghao, zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing, zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine, zhanghu[j].jiaoyi[i].yue); else; } system("pause"); } void chaxunjiaoyi() /*查询交易函数*/ { int i; printf("tt *************取款查询记录****************nn"); printf("t帐号t姓名t交易类型t交易时间tt金额t余额n"); for(i=0;i { printf("t%st%st%st%st%.2ft%.2fnn",zhanghu[j].zhanghao, zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing, zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine, zhanghu[j].jiaoyi[i].yue); } system("pause"); } void main() /*主函数*/ { duqushuju(); for(;;) { switch(caidan()) /*调用主菜单根据主菜单的返回值来做选择*/ { case 1: zhuce(); break; case 2: denglu(); break; case 3: baocunshuju(); break; case 0: printf("ttt欢迎使用ATM!n"); /*结束程序*/ printf("ttt"); system("pause"); /*使程序暂停*/ exit(0); } } }
版权声明:本文标题:ATMC语言编程源代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714486698a682322.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论