好文档 - 专业文书写作范文服务资料分享网站

C语言模拟ATM机

天下 分享 时间: 加入收藏 我要投稿 点赞

exit(0); }

{//获取当前日期 time_t rawtime; struct tm * timeinfo;

time(&rawtime);//获取时间,以秒计,从1970年1月1日起算,存于rawtime timeinfo = localtime(&rawtime);//转为当地时间,tm 时间结构 strftime(CruuentTime, 11, \格式化时间 }

fgets(ArchiveTime, 11, fp); fclose(fp);

if (strcmp(ArchiveTime, CruuentTime))

{//若档案日期与当前日期不同,则说明档案已过期或无档案,新建记录。 if (!(fp = fopen(\ { }

PR(\响铃 PR(\ exit(0); }

fprintf(fp, \

else//若记录日期与当前日期相同,则追加记录 { if (!(fp = fopen(\ { PR(\响铃 PR(\ exit(0); } } //添加记录 fprintf(fp, \ fclose(fp); }

/**********查询函数主菜单**********/ void Demand() { char choose; do { system(\ PrintBalance(); PR(\ +---------+-+\\n\ PR(\ |查询明细\\32|1|\\n\ PR(\ +---------+-+\\n\\n\

}

PR(\ +---------+-+\\n\

PR(\退出系统| | 返 回 \\32|2|\\n\ PR(\ +---------+-+\\n\\n\ PR(\请选择服务:\ fflush(stdin); choose = getchar(); switch (choose) { case '1': Printetail(); break;//查询明细 case '2': return;//返回 case '0': FreeData(); exit(0);//退出系统 default: printf(\输入错误,请重新选择\\n\ //解决用户可能的输入错误 system(\ }

} while (1);

/**********输出余额**********/ void PrintBalance() { system(\ PR(\ PR(\您的账户余额 \\32|%-15.2f|\\n\ PR(\}

/**********输出明细**********/ void Printetail() { FILE *fp; Record temp; int flag = 1;//当有记录时,置0 if (!(fp = fopen(\ {

PR(\无存取记录,请进行存取后再使用本功能\\n\\n\ system(\ return; }

system(\

PR(\

PR(\ 日期 | 存取金额 |\\n\PR(\{ if (!(strcmp(temp.no, now_acc->no))) { flag = 0;

}

PR(\ } }

PR(\ 日期 | 存取金额 |\\n\未免记录太多看不到表头,在最后加个表头 PR(\if (flag) { system(\无记录时,清除表头 PR(\该卡号未有任何存取记录\\n\\n\ system(\ return; }

system(\当有存取记录时,输出后等待

/**********将存款记录写入文件中**********/ void Log(double money, const char *no) { FILE *fp;

Date CruuentTime;//当前日期 if (!money)//存取为零时 return;

if (!(fp = fopen(\{

PR(\响铃 PR(\ exit(0); } {//获取当前日期 time_t rawtime; struct tm * timeinfo; time(&rawtime);//获取时间,以秒计,从1970年1月1日起算,存于rawtime timeinfo = localtime(&rawtime);//转为当地时间,tm 时间结构 CruuentTime.year = timeinfo->tm_year + 1900, CruuentTime.month = timeinfo->tm_mon + 1, CruuentTime.day = timeinfo->tm_mday; } fprintf(fp, \no, CruuentTime.year, CruuentTime.month, CruuentTime.day, money); fclose(fp); }

/**********取款主界面**********/ void Withdrawal() { char choose; if (now_acc->balance < 50.0) {//当余额不足50时,无法取款

} do {

PR(\响铃

PR(\您的余额不足50,无法取款\\n\\n\system(\return;

system(\PR(\

PR(\ +---------+-+\\n\

PR(\ 100 | | 2000 \\32|5|\\n\PR(\ +---------+-+\\n\\n\PR(\ +---------+-+\\n\

PR(\ 500 | | 5000 \\32|6|\\n\PR(\ +---------+-+\\n\\n\PR(\ +---------+-+\\n\

PR(\ 1000 | |其它金额\\32|7|\\n\PR(\ +---------+-+\\n\\n\PR(\ +---------+-+\\n\

PR(\退出系统| |返 回\\32|0|\\n\PR(\ +---------+-+\\n\\n\PR(\请选择服务:\fflush(stdin);

scanf(\switch (choose) {

case '1': WithdrawalOt(100); break; case '2': WithdrawalOt(500); break; case '3': WithdrawalOt(1000); break; case '4': FreeData(); exit(0);

case '5': WithdrawalOt(2000); break; case '6': WithdrawalOt(5000); break; case '7': do { long money;

PR(\请输入取款金额(50的倍数):\fflush(stdin);

scanf(\

if (money < 0 || money % 50)

{//解决输入金额为负数、不是50的倍数的情况 PR(\输入有误,请重新输入\\n\ system(\ continue; }

WithdrawalOt(money); break; } while (1); break; case '0': return; default: }

PR(\响铃

printf(\输入错误,请重新选择\\n\ //解决用户可能的输入错误 system(\continue;

{//取款完成后的菜单 char choose; system(\ PR(\ PR(\ +---------+-+\\n\ PR(\ |继续取款\\32|1|\\n\ PR(\ +---------+-+\\n\\n\ PR(\ +---------+-+\\n\ PR(\ |显示余额\\32|2|\\n\ PR(\ +---------+-+\\n\\n\ PR(\ \\n\ PR(\ \\n\ PR(\ \\n\\n\ PR(\ +---------+-+\\n\ PR(\退出系统| |返 回\\32|3|\\n\ PR(\ +---------+-+\\n\\n\ PR(\请选择服务:\ fflush(stdin); scanf(\ switch (choose) { case '1': continue;//继续取款 case '2': PrintBalance(); system(\输出余额 case '3': return;//返回主函数 case '0': FreeData(); exit(0);//退出系统 default: PR(\响铃 printf(\输入错误,请重新选择\\n\ //解决用户可能的输入错误 system(\ } } } while (1); }

/**********取款**********/

C语言模拟ATM机

exit(0);}{//获取当前日期time_trawtime;structtm*timeinfo;time(&rawtime);//获取时间,以秒计,从1970年1月1日起算,存于rawtimetimeinfo=localtime(&rawtime);//转为当地时间,tm
推荐度:
点击下载文档文档为doc格式
32ock29coh02ra61x73m28mwx1483k01cwv
领取福利

微信扫码领取福利

微信扫码分享