这个小程序,本来是在企业课上老师教的,然后老师一再强调客户有可能进行非法输入导致软件崩溃。。。于是就想改进这个程序。。。专治各种熊孩子的非法操作........结果没想到各种bug,这个程序专治我的各种不服
。。现在先把这个智障的残次品放出来,后续会继续改进,最终专治熊孩子的各种不服!
![大哭](http://static.blog.csdn.net/xheditor/xheditor_emot/default/wail.gif)
/*
**程序说明:模拟ATM机 (这个初步的还不能建立用户个人档案)
**设计时间:2016.12.7—2016.12.9
**设计者:LAN7
*/
#include
#include
/*************************************************************************
定义一个取款的函数
*************************************************************************/
int qukuan(int money)
{
printf("请输入您的取款金额(友情提示:本机取款金额为100的整数倍):");
int m;//定义变量m,来判断money值是否有变动
scanf("%d",&m);
if(m<=0)//存款金额为负,非法操作,退出
{
printf("警告!小熊孩子不要作\n");
return money;
}
else if(m>money)//所取金额大于存款,非法操作,退出
{
printf("对不起,你太穷了,没那么多钱!\n");
return money;
}
else if(m%100!=0)//存入金额格式不对,非法操作,退出
{
printf("你个智障,会数钱吗!\n");
return money;
}
else //正确操作,返回值改变
{
money = money - m;
return money;//取款后的金额
}
}
/*************************************************************************
定义一个存款的函数
*************************************************************************/
int cunkuan()
{
int money;//存款金额
printf("请输入您的存款金额(友情提示:本机存款金额低于100000,且存款金额为100的整数倍):");
scanf("%d",&money);
if(money<=0)//输入的存款金额非法
{
printf("警告!小熊孩子不要作\n");
return 0;
}
else if(money>100000)//输入金额过大
{
printf("您存入的金额过大。。。本机。。本机操作有些吃力。。。\n");//需改一下,这个不属于非法操作。。!!!!!!!!!!!!!!!!!!!!!!!
return 0;
}
else if(money%100!=0)//输入金额格式不对
{
printf("你会数钱吗,RMB有这样的嘛!!\n");
return 0;
}
else if(money>0&&money<100000)//正确合法的金钱值
{
return money;//返回金钱值
}
else//用户操作非法
{
printf("不要输入其他什么鬼画符,本机拒绝识别!\n");
return 0;
}
}
/*************************************************************************
定义一个显示主页面的函数
*************************************************************************/
void show()
{
system("cls");//清屏,将上次操作记录清除
int i;
char c,b;
c=21;
b=1;
for(i=1;i<=40;i++)//主界面边框的构建,VC和DevC不太一样,DevC的21的Ascii码的字符显示不出来。。。。
{
printf("%c ",c);
}
printf("\n\n");
for(i=1;i<=15;i++)//使字体居中,
{
printf(" ");
}
printf("欢迎使用用ATM存款机\n\n");//标题
for(i=1;i<=18;i++)
{
printf(" ");
}
printf("1.存款\n\n");//选项一
for(i=1;i<=18;i++)
{
printf(" ");
}
printf("2.取款\n\n");//选项二
for(i=1;i<=18;i++)
{
printf(" ");
}
printf("3.查询\n\n");//选项三
for(i=1;i<=18;i++)
{
printf(" ");
}
printf("0.退出\n\n");//选项四
for(i=1;i<=27;i++)
{
printf(" ");
}
printf("请根据您的需要选出功能号%c\n\n",b);
printf("\n");
for(i=1;i<=40;i++)//打印出格式底线
{
printf("%c ",c);
}
printf("\n");
}
/*************************************************************************
定义一个对下一步操作判断的函数
*************************************************************************/
int choose()
{
int v;
printf("请选择您的下一步操作 1->继续 0->退出\n");
scanf("%d",&v);//用户的选择
if(v==1)
{
show();//选1为继续,重新加载主页面
return 1;
}
if(v==0)
{
printf("欢迎您的再次使用!");//选0直接退出程序
return 0;
}
}
/*************************************************************************
定义条例说明函数
*************************************************************************/
void tl()
{
system("cls");//清屏,重新加载页面
long long i,time;
int k,m,j,v,l,t=0,p;
char b[30]="故本机将你的账户余额清零!!";//14个字符
char a[300]="警告由于您对于本机太不尊重了!!!";//17个字符
for(i=1;i<=45;i++)//条例阅读界面显示
{
printf("**");
}
printf("\n\n\n");
for(i=1;i<=20;i++)//使字体居中,
{
printf(" ");
}
printf("条 例\n\n\n");
for(i=1;i<=45;i++)//条例阅读界面显示
{
printf("**");
}
printf("\n\n\n\n");
for(i=1;i<=9;i++)//使字体居中,
{
printf(" ");
}
printf("1:本机知道你是有智慧的人,请不要多次戏弄本机!\n\n");//条例一
for(i=1;i<=9;i++)//使字体居中,
{
printf(" ");
}
printf("2:除上述1、2、3选项,请不要输入其他违法指令\n\n");//条例二
for(i=1;i<=9;i++)//使字体居中,
{
printf(" ");
}
printf("3:存取款时请不要输入非法金额,不然会让他人觉的你很智障!!!\n\n");//条例三
for(i=1;i<=9;i++)//使字体居中,
{
printf(" ");
}
printf("4:你的钱在我手里!!在我手里!!在我手里!!\n\n\n\n\n"); //条例四
for(i=1;i<=45;i++)//条例阅读界面显示
{
printf("**");
}
printf("\n\n");
for(i=1;i<=3;i++)//三次,使用户确定选择三次
{
t = 0;
for(j=1;j<=12;j++)//使字体居中,
{
printf(" ");
}
printf("你确定看仔细了!!! 1->确定 0->不确定\n");
scanf("%d",&k);//用户的选择
if(k==1)//选择1,继续执行,直到满三次
{
continue;
}
else if(k==0)//选择0,打印警告
{
for(j=1;j<=12;j++)//使字体居中,
{
printf(" ");
}
printf("不确定也没用!!!继续给我看!!\n");
}
else//用户输入非提示操作,由t来标志
{
t = 1;
break;
}
}
if(t==1)//t值为1,表示如果用户在阅读条例时输入违法操作
{
printf("\n\n\n\n\n\n\n\n\n\n\n\n");
system("cls");//先清屏,留以空间警告
printf("\n\n\n\n\n\n\n\n");
for(i=1;i<=15;i++)//使字体居中,
{
printf(" ");
}
printf("搁这你也不老实是吧!\n");
for(i=1;i<=1500000000;i++);//时间延迟
{
}
for(v=1;v<=5;v++)//警告显示,闪烁5次
{
system("cls");//每次闪烁后都需要清屏
for(i=1;i<=300000000;i++);//时间延迟
printf("\n\n\n\n\n\n\n\n");
for(i=1;i<=20;i++)//使字体居中,
{
printf(" ");
}
printf("警告!!\n");
for(i=1;i<=15;i++)//使字体居中,
{
printf(" ");
}
printf("故本机将你的账户余额清零!!\n");
for(i=1;i<=15;i++)//使字体居中,
{
printf(" ");
}
printf("故本机将你的账户余额清零!!\n");
for(i=1;i<=15;i++)//使字体居中,
{
printf(" ");
}
printf("故本机将你的账户余额清零!!\n");
for(i=1;i<=300000000;i++);
}
system("cls");
printf("\n\n\n\n\n\n\n\n\n");
for(i=1;i<=16;i++)//使字体居中,
{
printf(" ");
}
printf("怕了吧,怕就不要那么作了!\n\n\n\n\n");
}
/****************************************************
说明,本段代码本想使汉字一个一个出来。。可是汉字在
数组中的存储好像是两个空间存一个字。。。出不来效果
****************************************************
for(v=0;v<34;v=v+2)//变量V每增加一次,便多输一个字
{
system("cls");//每次多输一个字便清屏
printf("\n\n\n\n\n\n\n\n\n\n\n\n");
for(i=1;i<=10;i++)//使字体居中,
{
printf(" ");
}
for(i=0;i
0)//有非法操作的时候,自动记录打印
{
printf("警告:您已进行%d次非法操作,请注意您的操作\n",sum);
}
}
return 0;
}