跟siki老师学C#第三天(上)

来源:互联网 发布:mac口红薄涂试色 编辑:程序博客网 时间:2024/04/27 05:04

今天我们来接着学习C#,内容大概为:控制台接收数据,还有几道练习题。

什么叫控制台接收数据?
我们回想一下第二天的学习内容中,我们要求得小明、小红、小刚三个人的总成绩和三门科目的平均成绩,那么他们的成绩是怎么得到的呢?是我们在代码里面就给它赋值,然后它才进行一系列运算。这就涉及到了交互性,我们开发的软件、编写的程序是给客户用的,我们给客户提供的是一个完整的产品,而不是一个代码集,也就是说用户不会在代码里去输入数据,他只会在界面上的相应位置输入数据,那么我们的程序就要读取到用户输入的数据,并把它转换成相应的类型。

所以我们会这样写:

Console.WriteLine("请输入小明的数学成绩:");string mathMing = Console.ReadLine();

这样我们给用户提示,告诉用户在哪里输入什么内容。因此我们之前提到的ReadLine()方法就派上用场了,它可以获取到用户从键盘输入控制台的一个字符串,并按下回车键确认完成输入。

但是这样还不够!

既然是成绩,那肯定是数字,况且我们后面还要进行运算,你给我一个string类型的mathMing我怎么计算呢?

不用担心,我们有将字符串转换成整型数值的方法:

Convert.ToInt32();

Convert.ToInt32()方法将一个字符串转换成32位的整型数值,这样我们的问题就迎刃而解了。

接下来看看几个练习题作业:

一、在Main方法中定义变量,用这些变量存储游戏中一个敌人应该有的一些属性,定义尽可能多的变量;

static void Main(string[] args){    string enemyName = "影流之主";    int enemyAge = 35;    bool enemyIsDie = false;    int enemyHP = 2530;    int enemyMP = 1000;    byte enemyLevel = 12;    string skillQ = "";    string skillW = "";    string skillE = "";    string skillR = "";    bool isBack = true;}

二、 接收用户输入的两个整数,存到两个变量中,交换变量存储的值;

int num3 = Convert.ToInt32(Console.ReadLine());int num4 = Convert.ToInt32(Console.ReadLine());Console.WriteLine(num3);Console.WriteLine(num4);int num5 = num3;num3 = num4;num4 = num5;Console.WriteLine(num3);Console.WriteLine(num4);Console.ReadKey();

三、编写一个控制台应用程序,要求用户输入4个int值,并显示它们的乘积;

int num6 = Convert.ToInt32(Console.ReadLine());int num7 = Convert.ToInt32(Console.ReadLine());int num8 = Convert.ToInt32(Console.ReadLine());int num9 = Convert.ToInt32(Console.ReadLine());int num10 = num6 * num7 * num8 * num9;Console.WriteLine(num10);Console.ReadKey();

四、从键盘输入一个三位正整数,按数字的相反顺序输出;

Console.WriteLine("请输入一个三位正整数:");int num11 = Convert.ToInt32(Console.ReadLine());//方法一:把三个数字完全拆分开int num12 = num11 / 100 + (num11 - num11 / 100 * 100) / 10 * 10 + (num11 - num11 / 100 * 100 - ((num11 - num11 / 100 * 100) / 10 *10)) * 100;//方法二:通过求余来获得各个位置上的数字int num13 = num11 / 100+num11%(num11/100*100)/10*10+num11%(num11/100*100+num11%(num11/100*100)/10*10)*100;//方法三:简单求余求商得到各个数字int num14 = num11/100;//得到百位上的数字int num15 = num11%10;//得到各位上的数字int num16 = (num11/10)%10;//得到十位上的数字,先/10是将三位数去掉最后一位变成两位数,然后再去这个两位数的个位数,比如123/10=12  12%10=2   这是一个很巧妙的算法Console.WriteLine(num12);Console.WriteLine(num13);Console.ReadKey();

五、 编写一个程序,输入梯形的上底、下底和高,计算出梯形的面积并显示出来;

Console.WriteLine("请输入梯形的上底{0} 下底{1} 和高{2} ",Console.ReadLine(),Console.ReadLine(),Console.ReadLine());Console.WriteLine("请输入梯形的上底:");int upLength = Convert.ToInt32( Console.ReadLine());Console.WriteLine("请输入梯形的下底:");int downLength = Convert.ToInt32( Console.ReadLine());Console.WriteLine("请输入梯形的高:");int height = Convert.ToInt32( Console.ReadLine());Console.WriteLine("梯形的面积为"+(upLength+downLength)*height/2);Console.ReadKey();

这里用到了Convert类进行类型转换,但是要注意具体使用那个方法,因为int类型涉及到除法时如果有小数,会因为精度问题而使结果不精确。

六、计算半径为n的圆的周长和面积。

float PI=3.1415926f;Console.WriteLine("请输入圆的半径n:");int radius = Convert.ToInt32(Console.ReadLine());Console.WriteLine("圆的周长为:{0},面积为:{1}",2*PI*radius,PI*radius*radius);Console.ReadKey();

这里我们暂时没有用到数学类Math,所以PI的值是我们人为给它设定的。

这就是我们对前两天内容回顾的一个小练习。

总结:
今天最主要的内容就是用ReadLine()方法从控制台获取字符串,用Convert类中的方法ToInt32()将字符串转化成整型数值,前提是我们从控制台输入的字符串是数字,否则会报错,提示字符串格式不正确。

今天就先记录到这里,有不正确的地方欢迎大家讨论和指点,感激不尽!

0 0
原创粉丝点击