重新学C#编程1-照着微软教程做一个简单计算器编程

以前学习过一段时间的C#编程,后来放弃了,因为笨和懒吧。现在觉得今后工作可能还会用上,还是得强迫自己学习一下。就不公开这些博客了,自己留着看看就行。网上厉害得人太多了,就不现眼了。

我从微软官网下载了visual studio 2019社区版,安装时选择了C#的选项。安装完成后,需要重启,然后在桌面上建一个visual studio 2019运行的快捷方式。

双击这个快捷方式。

会询问是否登录,恰好我有一个微软的账号,就登录呗,不登陆也不会有什么影响,只是登陆了可以有很多便利。

点击下一步。

输入密码

账号无误后是这个样子

 

在这里我做了小小的修改

然后启动visual studio

打开对话框,选择新建项目。因为是第一次练习,以前没有,所以没有最近项目列表。

因为第一个项目比较简单,是cmd环境下的程序,所以选择控制台应用程序,又因为是C#,所以选择第一个,然后点击下一步

填写名称、路径等信息,点击下一步

选择目标框架为.net core 3.1,然后点击创建按钮

可以看到一个进度条,这是后台在搭建基本框架。

可以看到开发环境界面还是比较简洁的。

 

默认的是一个输出hello world的例子。

今天的练习不做这个简单的东西。删掉Console.WriteLine("Hello World!");语句,main程序写语句,可以看到编程环境还是非常友好的,输入过程中,系统会猜测你要输入的内容,提前给予提示。如果定义的变量没有被使用,变量下面会有波浪号提醒。

整个程序如下,绿色为修改的内容。这里的排版和vs环境不一样。

using System;

namespace 简单计算器
{
class Program
{
static void Main()
{
//声明变量,并初始化变量
int num1 = 0;int num2 = 0;
//显示c#程序标题
Console.WriteLine("C#控制台简单计算器程序\r");
Console.WriteLine("----------------------\n");
//要求用户输入数字1
Console.WriteLine("请输入数字,然后按下回车键");
num1 = Convert.ToInt32(Console.ReadLine());
//要求用户输入数字2
Console.WriteLine("请输入数字,然后按下回车键");
num2 = Convert.ToInt32(Console.ReadLine());
//要求用户选择运算法则
Console.WriteLine("从下列运算法则选择一个:");
Console.WriteLine("\ta - 加");
Console.WriteLine("\ts - 减");
Console.WriteLine("\tm - 乘");
Console.WriteLine("\td - 除");
Console.Write("你的选择是? ");
//根据选择做计算
switch(Console.ReadLine())
{
case "a":
Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2));
break;
case "s":
Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2));
break;
case "m":
Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2));
break;
case "d":
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;
}
//等待用户指令结束程序
Console.Write("输入任意键结束程序");
Console.ReadKey();
}
}
}

可以在visual studio环境下按F5或者点击工具栏上运行按钮来测试,也可以打开程序所在文件夹的子文件夹下\bin\Debug\netcoreapp3.1找到exe执行文件双击运行。

 

2021-05-23继续

昨天做完练习后,时间有点晚了,今天继续。

今天打开visual studio2019时,就能够看到最近打开程序列表了。

 

这个程序有点小的问题,比如做除法时,如果是9/3没有问题,如果是9/4结果就是2,没有考虑无法除尽的情况。

今天对程序做一下完善。在visual studio2019界面上使用菜单编辑-查找和替换-快速替换,或者使用快捷键ctrl+H。

 

将int全部替换成float,运行会报错,因为Tofloat32是不存在的函数,再次打开查找替换窗口

运行后,输入不能整除的两个数,做除法运算就可以得到小数了。

这个程序如果出现除数为0的情况,也是会出现错误的,就需要进一步完善。

对case d:程序段进行修改,删除原来的内容,做成这个样子。

case "d":
while (num2 == 0)
{
Console.WriteLine("除数不能为0,请重新输入: ");
num2 = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;

这样的话,在选择除法运算后,会先判断除数是不是为0,如果为0,就提示用户重新输入,直到除数不为0,才进行计算。

现在程序编程这个样子了

using System;

namespace 简单计算器
{
class Program
{
static void Main()
{
//声明变量,并初始化变量
Double num1 = 0;Double num2 = 0;
//显示c#程序标题
Console.WriteLine("C#控制台简单计算器程序\r");
Console.WriteLine("----------------------\n");
//要求用户输入数字1
Console.WriteLine("请输入数字,然后按下回车键");
num1 = Convert.ToDouble(Console.ReadLine());
//要求用户输入数字2
Console.WriteLine("请输入数字,然后按下回车键");
num2 = Convert.ToDouble(Console.ReadLine());
//要求用户选择运算法则
Console.WriteLine("从下列运算法则选择一个:");
Console.WriteLine("\ta - 加");
Console.WriteLine("\ts - 减");
Console.WriteLine("\tm - 乘");
Console.WriteLine("\td - 除");
Console.Write("你的选择是? ");
//根据选择做计算
switch(Console.ReadLine())
{
case "a":
Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2));
break;
case "s":
Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2));
break;
case "m":
Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2));
break;
case "d":
while (num2 == 0)
{
Console.WriteLine("除数不能为0,请重新输入: ");
num2 = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;
}
//等待用户指令结束程序
Console.Write("输入任意键结束程序");
Console.ReadKey();
}
}
}

 

到这里,除数为0的情况就解决了。

用户输入时,有可能误输入字母,这样在进行转换计算时,就会报错,需要在程序中提示和修正用户输入的格式。

引入字符串中间变量来接受用户输入,先判断用户输入是否为数字,不是数字就要求用户纠正直到输入正确。

修改完之后的程序如下:

using System;

namespace 简单计算器
{
class Program
{
static void Main()
{
//声明变量,并初始化变量
string input1 = "";string input2 = "";
Double num1 = 0;Double num2 = 0;double input3 = 0;
//显示c#程序标题
Console.WriteLine("C#控制台简单计算器程序\r");
Console.WriteLine("----------------------\n");
//要求用户输入数字1
Console.WriteLine("请输入数字1,然后按下回车键");
input1 = Console.ReadLine();
while (!double.TryParse(input1,out input3))
{
Console.Write("输入不合法,请输入一个数字:");
input1 = Console.ReadLine();
}
num1 = Convert.ToDouble(input1);
//要求用户输入数字2
Console.WriteLine("请输入数字2,然后按下回车键");
input2 = Console.ReadLine();
while (!double.TryParse(input2, out input3))
{
Console.Write("输入不合法,请输入一个数字:");
input2 = Console.ReadLine();
}
num2 = Convert.ToDouble(input2);
//要求用户选择运算法则
Console.WriteLine("从下列运算法则选择一个:");
Console.WriteLine("\ta - 加");
Console.WriteLine("\ts - 减");
Console.WriteLine("\tm - 乘");
Console.WriteLine("\td - 除");
Console.Write("你的选择是? ");
//根据选择做计算
switch(Console.ReadLine())
{
case "a":
Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2));
break;
case "s":
Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2));
break;
case "m":
Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2));
break;
case "d":
while (num2 == 0)
{
Console.WriteLine("除数不能为0,请重新输入: ");
num2 = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;
}
//等待用户指令结束程序
Console.Write("输入任意键结束程序");
Console.ReadKey();
}
}
}

 

 

这个程序的练习先到这里。对程序结构的分析下一篇博客进行。

 

posted @ 2021-05-22 21:42  来自金沙江的小鱼  阅读(549)  评论(0)    收藏  举报