C# 实例练习(第二天)

实例练习

1. 完成简单登录效果,设置用户登录账号密码,清空控制台,进入登录页面,请求用户输入账号、密码和验证码(随机产生),并判断用户输入的信息,给出相应的提示。

  C#代码如下:

  主要知识点:

 (1)//清空控制台
 Console.Clear();
 (2)//设置随机数验证码
 Random rand = new Random();
 int num = rand.Next(1000,10000);
 1 //账户设置界面
 2             /*
 3             Console.WriteLine("----------账户设置-----------");
 4             Console.WriteLine("请设置账户:");
 5             str1 = Console.ReadLine();
 6             Console.WriteLine("请设置密码:");
 7             str2 = Console.ReadLine();
 8             //清空控制台
 9             Console.Clear();
10             //用户登录界面
11             Console.WriteLine("------------登录-------------");
12             Console.WriteLine("请输入账户:");
13             str3 = Console.ReadLine();
14             Console.WriteLine("请输入密码:");
15             str4 = Console.ReadLine();
16             //设置随机数验证码
17             Random rand = new Random();
18             int num = rand.Next(1000,10000);
19             //输出验证码
20             Console.WriteLine("请输入验证码:"+num);
21             str5 = Console.ReadLine();
22             int num2=Convert.ToInt32(str5);
23             //进行判断
24             if(str1==str3&&str2==str4&&num==num2){
25                 Console.WriteLine("您的信息输入完全正确,可以登陆!");
26                 Console.WriteLine("请按任意键继续……");
27             }
28             else
29             {
30                 Console.WriteLine("对不起,您输入的信息有误,请重新输入,谢谢!");
31             }

2.  用户输入三条边长,判断能否组成三角形,并判断可以组成什么样的三角形。

代码如下:

 1 //进行输出:提示用户输入
 2             Console.WriteLine("请输入第一条边:");
 3             //用一个变量接受输入的值
 4             str1 = Console.ReadLine();
 5             Console.WriteLine("请输入第二条边:");
 6             str2 = Console.ReadLine();
 7             Console.WriteLine("请输入第三条边:");
 8             str3 = Console.ReadLine();
 9             //转换为整形
10             int side1, side2, side3;
11             side1 = Convert.ToInt32(str1);
12             side2 = Convert.ToInt32(str2);
13             side3 = Convert.ToInt32(str3);
14             //判断
15             if (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1)
16             {
17                 if (side1 == side2 || side1 == side3 || side2 == side3)
18                 {
19                     if (side1 == side2 && side1 == side3)  //已经三边相等,无需另行判断
20                     {
21                         Console.WriteLine("可以组成一个等边三角形");
22                     }
23                     else
24                     {
25                         Console.WriteLine("可以组成一个等边三角形");
26                     }
27                 }
28                 else
29                 {
30                     Console.WriteLine("可以组成一个普通三角形");
31                 }
32                 //Console.WriteLine("可以组成一个三角形");
33             }
34             else
35             {
36                 Console.WriteLine("不可以组成一个三角形");
37             }
38 console.Redkey();

3.  提示用户输入两个数字,并计算这两个数字之间所有整数的和。

要求:

(1)用户只能输入数字
(2)计算两个数字之间和
(3)要求第一个数字必须比第二个数字小,否则就重新输入。

答案一:

 1             //while (true)
 2             //{
 3             //    Console.WriteLine("请输入第1个数字:");
 4             //    string str1 = Console.ReadLine();
 5             //    Console.WriteLine("请输入第2个数字:");
 6             //    string str2 = Console.ReadLine();
 7             //    int num11 = 0;
 8             //    int num22 = 0;
 9             //    try   ----------------------C#异常捕捉机制
10             //    {
11             //        num11 = Convert.ToInt32(str1);
12             //        num22 = Convert.ToInt32(str2);                   
13             //    }
14             //    catch (Exception)
15             //    {
16             //        Console.WriteLine("您输入的数据类型有误,请重新输入!");
17             //        Console.ReadKey();
18             //        return;
19             //    }
20             //    if (num11 > num22)
21             //    {
22             //        Console.WriteLine("您输入的数据大小有误,请重新输入!");
23             //        Console.ReadKey();
24             //        Console.Clear();
25             //        continue;
26             //    }
27             //    int sum = 0;
28             //    for (int i = num11; i <= num22; i++)
29             //    {
30             //        sum += i;
31             //    }
32             //    Console.WriteLine("{0}和{1}之间所有整数的和为:{2}", num11, num22, sum);
33             //    Console.WriteLine("是否退出程序?(Y|N)");
34             //    string flag = Console.ReadLine();
35             //    if (flag == "Y")
36             //    {
37             //        break;
38             //    }
39             //    Console.ReadKey();
40             //}

  答案二:

 1          bool f = true;
 2             while (f) {
 3                 #region 代码
 4                 Console.WriteLine("请输入第一个数字");
 5                 string num1 = Console.ReadLine();
 6                 Console.WriteLine("请输入第二个数字");
 7                 string num2 = Console.ReadLine();
 8 
 9                 int x = 0;//接收  字符串转换成数字的值
10                 int y = 0;
11 
12                 ///用户只能输入数字
13                 try
14                 {
15                     x = Convert.ToInt32(num1);
16                     y = Convert.ToInt32(num2);
17                 }
18                 catch (Exception)
19                 {
20                     Console.WriteLine("您输入的不是数字");
21                     Console.ReadKey();
22                     return;
23                 }
24 
25                 //求第一个数字必须比第二个数字小
26                 if (x >= y)
27                 {
28                     Console.WriteLine(" 第一个数字比第二个数字大,请重新输入");
29                     Console.ReadKey();
30                     Console.Clear();//控制台 内容清空
31                     continue;
32                 }
33 
34                 //计算两个数字之间和
35                 int sum = 0;
36                 for (int i = x; i <= y; i++)
37                 {
38                     sum += i;
39                 }
40 
41 
42                 Console.WriteLine("两个数之间的和为:{0}",sum);
43 
44                 Console.WriteLine("是否退出程序?(Y|N)");
45                 string flag = Console.ReadLine();
46                 if (flag == "Y") {
47                     break;
48                 }              
49                 #endregion

4.  用方法来实现:请计算出一个整型数组的平均值。

1 //int[] array1 = new int[6];
2             //double summ = ArrayAvg(array1);//定义变量接收方法的返回值
3             //Console.WriteLine("平均值为:{0}", summ);
4             //Console.ReadKey();//调用方法

方法:

 1 #region 第4题求平均值(方法)    快捷键:#region+table键
 2         /// <summary>
 3         /// 4.计算数组的平均值
 4         /// </summary>
 5         /// 无参有返回值
 6         /// <param name="array"></param>
 7         static double ArrayAvg(int[] array)
 8         {
 9             double sum = 0;
10             for (int i = 0; i < array.Length; i++)
11             {
12                 array[i] = i;
13                 sum += array[i];
14             }
15             
16             return sum;
17         }
18  #endregion

5.   写一个方法,用来判断用户输入的数字是不是质数 ,再写一个方法 要求用户只能输入数字,如果输入有误,就一直让用户输入数字。

 1          //(1)
 2             //Console.WriteLine("请输入一个数字:");
 3             //string strr = Console.ReadLine();
 4             //JudgmentPrime(strr);
 5          //(2)判断是不是数字
 6             //bool boo = true;
 7             //while(boo){
 8             //    Console.WriteLine("请输入一个数字:");
 9             //    string str4 = Console.ReadLine();
10             //    bool result = IsNumber(str4);
11             //    if (result)
12             //    {
13             //        boo=false;
14             //        break;
15             //    }
16             //    else{
17             //        Console.WriteLine("您输的不是一个数字,请重新输入!");
18             //        Console.ReadKey();
19             //        Console.Clear();
20             //    }
21                 
22             //}
23            

方法:

 1 /// 5.1判断质数
 2         /// </summary>
 3         /// <param name="Prime"></param>
 4         static void JudgmentPrime(string Prime)
 5         {
 6             int num1 = Convert.ToInt32(Prime), sum = 0, k = 1 + num1;
 7             for (int i = 1; i <= num1; i++)
 8             {
 9                 if (num1 % i == 0)
10                 {
11                     sum += i;
12                 }
13             }
14             if (sum == k)
15             {
16                 Console.WriteLine("您输入的是一个质数!");
17             }
18             else
19             {
20                 Console.WriteLine("您输入的不是一个质数!");
21             }
22         }
23         #endregion
 1 /// <summary>
 2         /// 5.2判断输入值是不是数字
 3         /// </summary>
 4         /// <param name="str"></param>
 5         /// <returns></returns>
 6         static bool IsNumber(string str)
 7         {
 8             bool f = true;
 9             int x = 0;
10             try
11             {
12                 x = Convert.ToInt32(str);
13             }
14             catch (Exception)
15             {
16                 f = false;
17             }
18             return f;
19         }
20         #endregion

6.写一个方法 计算圆的面积和周长  面积是 pI*R*R  周长是 2*Pi*r

1  //Console.WriteLine("请输入圆的半径:");
2             //string r = Console.ReadLine();
3             //CircleArea(r);

方法:

 1  #region 7.计算圆的周长和面积
 2         /// <summary>
 3         /// 7.计算圆的周长和面积
 4         /// </summary>
 5         /// <param name="mianji"></param>
 6         /// <param name="zhouChang"></param>
 7         static void CircleArea(string banJing)
 8         {
 9             double num = Convert.ToDouble(banJing);
10             Console.WriteLine("圆的面积为:{0};
周长为:{1}", Math.PI * num * num, 2 * Math.PI * num);
11         }
12         #endregion

7.  请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。 

 1 int[] array4 = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 };
 2             //外循环:控制整体的排序次数
 3             for (int i = 0; i < array4.Length - 1; i++)
 4             {
 5                 //内循环:控制每次循环的次数
 6                 for (int j = i; j < array4.Length - 1; j++)
 7                 {
 8                     if (array4[i] > array4[j + 1])
 9                     {
10                         int max = array4[i];
11                         array4[i] = array4[j + 1];
12                         array4[j + 1] = max;
13                     }
14 
15                 }
16             }
17             //遍历数组
18             foreach (var item in array4)
19             {
20                 Console.WriteLine(item);
21             }
22             Console.ReadKey();

8.   用方法来实现:请计算出一个整型数组的平均值:{ 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。

1 //int[] array5 = { 1, 3, 5, 57, 98, 33, 4, 4, 6, 8, 10 };
2             //Arrayavg(array5);
3             //Console.ReadKey();

方法:

 1 /// <summary>
 2         /// 9.求平均值
 3         /// </summary>
 4         /// <param name="arrayy"></param>
 5         static void Arrayavg(int[] arrayy)
 6         {
 7             double sum = 0;//转换为double类型,否则不会输出小数
 8             for (int i = 0; i < arrayy.Length; i++)
 9             {
10                 sum += arrayy[i];
11             }
12             double aa = sum / arrayy.Length;//同上
13             double kk = Math.Round(aa, 2);//同上
14             Console.WriteLine("平均值为:{0}", kk);
15         }
16         #endregion

本题知识点补充:

C#中:   

  • 整数除以整数,结果仍为整数;
  • 整数除以小数,结果为小数;
  • 小数除以整数,结果也为小数。

 

原文地址:https://www.cnblogs.com/pang951189/p/7440752.html