1)一个景区根据游人的年龄收取不同价格的门票,请编写游人类,根据年龄段决定能够购买门票价格并输出
class XiTi
{
string name;
int age;
void Xiti1()
{
for (; ; )//死循环,类似的while(true){}
{
Console.WriteLine("请输入姓名:");
name = Console.ReadLine();
if (name == "n")
{
Console.WriteLine("退出程序");
break;
}
else
{
Console.WriteLine("请输入年龄:");
age = int.Parse(Console.ReadLine());
if (age >= 18)
{
Console.WriteLine(name + "的年龄为:" + age + ",门票价格为20元");
}
else
{
Console.WriteLine(name + "的年龄为:" + age + ",门票免费");
}
}
}
static void Main(string[] args)
{
XiTi xt = new Xiti();
xt.Xiti1();
}
}
2)写一个函数,接收a,b,c,计算ax²+bx+c=0的根
class XiTi
{
void root(float a, float b, float c)
{
Console.WriteLine(a + "x²+" + "(" + b + ")" + "x+" + "(" + c + ")" + "=0的根为");
float deta = (b * b - 4 * a * c);
if
{
Console.WriteLine("该三个数组成的一元二次方程无解。");
}
else
{
float x1 = ((-b) + (float)(Math.Sqrt(deta))) / (2 * a);
float x2 = ((-b) - (float)(Math.Sqrt(deta))) / (2 * a);
Console.WriteLine("x1=" + x1);
Console.WriteLine("x2=" + x2);
}
}
static void Main(string[] args)
{
XiTi xt = new Xiti();
Console.Write("a=");
int a = int.Parse(Console.ReadLine());
Console.Write("b=");
int b = int.Parse(Console.ReadLine());
Console.Write("c=");
int c = int.Parse(Console.ReadLine());
xt.root(a, b, c);
}
}
3)简单实现银行存款取款功能
写该习题时,说不出的心酸,先解决了简单的存款,取款,退出功能,测试时发现可以欠钱,然后修改后,连续两次取超过存款的钱后,怎么取钱都不会扣钱了。慢慢琢磨,我才发现了while的强大之处了。
//业务选择导航
class Xiti
{
void Choice()
{
Console.WriteLine("1.存款 2.取款 0.退出");
Console.Write("请选择要办理的业务:");
int a = int.Parse(Console.ReadLine());
yewu(a);
}
//存款,取款,退出功能
void yewu(int n)
{
switch (n)
{
case 1:
Console.Write("请输入存款金额:");
int save = int.Parse(Console.ReadLine());
Console.WriteLine("存款成功");
sum += save;
Console.WriteLine();
Console.WriteLine("***当前余额为:" + sum + "元***\n");
Choice();
break;
case 2:
Console.Write("请输入取款金额:");
int draw = int.Parse(Console.ReadLine());
while (sum <= draw)
{
Console.WriteLine("余额不足,重新操作。");
Console.WriteLine("\n***当前余额为:" + sum + "元***\n");
Console.Write("请输入取款金额:");
draw = int.Parse(Console.ReadLine());
}
sum -= draw;
Console.WriteLine("取款成功");
Console.WriteLine("\n***当前余额为:" + sum + "元\n");
Choice();
break;
case 0:
Console.WriteLine("程序结束");
Environment.Exit(0);
break;
}
}
static void Main(string[] args)
{
XiTi xt = new Xiti();
Console.WriteLine("1.存款 2.取款 0.退出");
Console.Write("请选择要办理的业务:");
int a = int.Parse(Console.ReadLine());
xt.yewu(a);
}
}
4)简单实现我行我素购物管理(练习导航的切换)
Class Xiti
{
void LoginMenu()
{
Console.WriteLine("欢迎使用我行我素购物管理系统");
Console.WriteLine("1.登录系统");
Console.WriteLine("2.退出");
Console.WriteLine("*******************************");
Console.Write("请选择,输入数字:");
int a = int.Parse(Console.ReadLine());
switch (a)
{
case 1:
MainMenu();
break;
case 2:
Environment.Exit(0);
Console.WriteLine("程序结束");
break;
}
}
void MainMenu()
{
Console.WriteLine("我行我素购物管理系统主菜单");
Console.WriteLine("1.客户信息管理");
Console.WriteLine("2.真情回顾");
Console.WriteLine("*******************************");
Console.Write("请选择,输入数字或按0返回上一级菜单:");
int a = int.Parse(Console.ReadLine());
switch (a)
{
case 0: LoginMenu();break;
case 1: Console.WriteLine("该功能暂未开放"); break;
case 2: ZhengQing();break;
}
}
void ZhengQing()
{
Console.WriteLine("我行我素购物管理系统 > 真情回顾");
Console.WriteLine("1.幸运大放送");
Console.WriteLine("2.幸运抽奖");
Console.WriteLine("3.生日问候");
Console.WriteLine("*******************************");
Console.Write("请选择,输入数字或按0返回上一级菜单:");
int a = int.Parse(Console.ReadLine());
switch (a)
{
case 0: MainMenu();break;
case 1: Console.WriteLine("执行幸运大放送");break;
case 2:
case 3: Console.WriteLine("该功能暂未开放!"); break;
default: Console.WriteLine("输入有误");break;
}
}
static void Main(string[] args)
{
XiTi xt = new Xiti();
xt.LoginMenu();
}
}
这个章节的习题比较多,当要写长代码时,发现自己很大的不足。
代码冗余,以至于重复编写,很多可以写进方法里面,然后直接调用
虽然是简单的功能实现,但也应该需要清楚流程需求
趁着今天放假,把上个礼拜做的习题重新复习一遍,并写下来,也希望读者可以给更好的意见。