using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
using System.Diagnostics;
namespace 自动售货机
{
class Program
{
static double money;
static double temmoney;
static void Main(string[] args)
{
SY("欢迎使用自动售货机");
Console.WriteLine("欢迎使用自动售货机");
while (true)
{
SY("请你输入所需商品代号: 1.可乐 2.矿泉水 3.雪碧 4.绿茶 5.退出");
Console.WriteLine("请你输入所需商品代号: 1.可乐 2.矿泉水 3.雪碧 4.绿茶 5.退出");
switch (Console.ReadLine())
{
case "1":
money = 3;
//SY("你选择的是可乐,所需3元,请投币!!!");
Console.WriteLine("你选择的是可乐,单价3元,请选择数量:");
int num = int.Parse(Console.ReadLine());
Console.WriteLine("请投币:");
try
{
double Tmoney = double.Parse(Console.ReadLine());
if (XD(Tmoney))
{
KeLe(Tmoney,num);
}
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("返回请按任意键!");
Console.ForegroundColor = ConsoleColor.Black;
Console.ReadKey();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadKey();
}
break;
case "2":
money = 1;
Console.WriteLine("你选择的是矿泉水,单价1元,请选择数量:");
int num1 = int.Parse(Console.ReadLine());
Console.WriteLine("请投币:");
try
{
double Tmoney = double.Parse(Console.ReadLine());
if (XD(Tmoney))
{
Water(Tmoney,num1);
}
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("返回请按任意键!");
Console.ForegroundColor = ConsoleColor.Black;
Console.ReadKey();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadKey();
}
break;
case "3":
money = 10;
Console.WriteLine("你选择的是雪碧,单价10元,请选择数量:");
int num2 = int.Parse(Console.ReadLine());
Console.WriteLine("请投币:");
try
{
double Tmoney = double.Parse(Console.ReadLine());
if (XD(Tmoney))
{
XuBi(Tmoney,num2);
}
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("返回请按任意键!");
Console.ForegroundColor = ConsoleColor.Black;
Console.ReadKey();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadKey();
}
break;
case "4":
money = 7;
Console.WriteLine("你选择的是绿茶,单价7元,请选择数量:");
int num3 = int.Parse(Console.ReadLine());
Console.WriteLine("请投币:");
try
{
double Tmoney = double.Parse(Console.ReadLine());
if (XD(Tmoney))
{
LvCha(Tmoney,num3);
}
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("返回请按任意键!");
Console.ForegroundColor = ConsoleColor.Black;
Console.ReadKey();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadKey();
}
break;
case "5":
return;
}
Console.Clear();
}
}
/// <summary>
/// 限定投币面值
/// </summary>
static bool XD(double Tmoney)
{
while (true)
{
if (Tmoney == 1 || Tmoney == 5 || Tmoney == 10 || Tmoney == 50 || Tmoney == 100)
{
return true;
}
else
{
//return false;
//Console.WriteLine("请重新输入面值为1 5 10 50 100的人民币");
throw new MyException("异常了!!!你输入的人民币币值不对,请检验!!!"+"\r\n"+"返回请按任意键");
}
}
}
/// <summary>
/// 语音加载
/// </summary>
/// <param name="vodio"></param>
static void SY(string vodio)
{
string content = "CreateObject(\"SAPI.SpVoice\").Speak\"" + vodio + "\"";
File.WriteAllText(Environment.CurrentDirectory+@"\a.vbs", content, Encoding.Default);
Thread.Sleep(500);
Process.Start(Environment.CurrentDirectory + @"\a.vbs");
return;
}
/// <summary>
/// 可乐
/// </summary>
/// <param name="Tmoney"></param>
static void KeLe(double Tmoney,int num)
{
money = money * num;
mark1:
if (Tmoney == money)
{
Console.WriteLine("欢迎使用,请拿好你的可乐");
}
else if(Tmoney>=money)
{
temmoney = Tmoney - money;
Console.WriteLine("拿好可乐,找你{0:c}元",temmoney);
}
else
{
bool mark;
while (true)
{
Console.WriteLine("请再次投币:");
double dm = double.Parse(Console.ReadLine());
if (XD(dm))
{
Tmoney += dm;
if (money == Tmoney || Tmoney > money)
{
mark = false;
goto mark1;
}
}
//}
}
}
}
/// <summary>
/// 矿泉水
/// </summary>
/// <param name="Tmoney"></param>
static void Water(double Tmoney,int num)
{
money = money * num;
mark1:
if (Tmoney == money)
{
Console.WriteLine("欢迎使用,请拿好你的矿泉水");
}
else if (Tmoney >= money)
{
temmoney = Tmoney - money;
Console.WriteLine("拿好矿泉水,再找你{0:c}元", temmoney);
}
else
{
bool mark;
while (true)
{
double dm;
Console.WriteLine("请再次投币:");
dm= double.Parse(Console.ReadLine());
if (XD(dm))
{
Tmoney += dm;
if (money == Tmoney || Tmoney > money)
{
mark = false;
goto mark1;
}
}
}
}
}
/// <summary>
/// 雪碧
/// </summary>
/// <param name="Tmoney"></param>
static void XuBi(double Tmoney,int num)
{
money = money * num;
mark1:
if (Tmoney == money)
{
Console.WriteLine("欢迎使用,请拿好你的雪碧");
}
else if (Tmoney >= money)
{
temmoney = Tmoney - money;
Console.WriteLine("拿好雪碧,再找你{0:c}元", temmoney);
}
else
{
bool mark;
while (true)
{
double dm;
Console.WriteLine("请再次投币:");
dm= double.Parse(Console.ReadLine());
if (XD(dm))
{
Tmoney += dm;
if (money == Tmoney || Tmoney > money)
{
mark = false;
goto mark1;
}
}
}
}
}
/// <summary>
/// 绿茶
/// </summary>
/// <param name="Tmoney"></param>
static void LvCha(double Tmoney,int num)
{
money = money * num;
mark1:
if (Tmoney == money)
{
Console.WriteLine("欢迎使用,请拿好你的绿茶");
}
else if (Tmoney >= money)
{
temmoney = Tmoney - money;
Console.WriteLine("拿好绿茶,再找你{0:c}元", temmoney);
}
else
{
bool mark;
while (true)
{
double dm;
Console.WriteLine("请再次投币:");
dm= double.Parse(Console.ReadLine());
if (XD(dm))
{
Tmoney += dm;
if (money == Tmoney || Tmoney > money)
{
mark= false;
goto mark1;
}
}
}
// throw new MyException("你的钱不足,请继续投币!!!");
}
}
}
}
捕捉异常类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace 自动售货机
{
class MyException : Exception
{
public MyException(string message)
: base(message)
{
File.AppendAllText(@"G:\1.txt", message + "\r\n");
}
}
}