C# 实例练习(第二天)
实例练习
1. 完成简单登录效果,设置用户登录账号密码,清空控制台,进入登录页面,请求用户输入账号、密码和验证码(随机产生),并判断用户输入的信息,给出相应的提示。
C#代码如下:
主要知识点:
(1)//清空控制台
Console.Clear();
(2)//设置随机数验证码
Random rand = new Random();
int num = rand.Next(1000,10000);
//账户设置界面
/*
Console.WriteLine("----------账户设置-----------");
Console.WriteLine("请设置账户:");
str1 = Console.ReadLine();
Console.WriteLine("请设置密码:");
str2 = Console.ReadLine();
//清空控制台
Console.Clear();
//用户登录界面
Console.WriteLine("------------登录-------------");
Console.WriteLine("请输入账户:");
str3 = Console.ReadLine();
Console.WriteLine("请输入密码:");
str4 = Console.ReadLine();
//设置随机数验证码
Random rand = new Random();
int num = rand.Next(1000,10000);
//输出验证码
Console.WriteLine("请输入验证码:"+num);
str5 = Console.ReadLine();
int num2=Convert.ToInt32(str5);
//进行判断
if(str1==str3&&str2==str4&&num==num2){
Console.WriteLine("您的信息输入完全正确,可以登陆!");
Console.WriteLine("请按任意键继续……");
}
else
{
Console.WriteLine("对不起,您输入的信息有误,请重新输入,谢谢!");
}
2. 用户输入三条边长,判断能否组成三角形,并判断可以组成什么样的三角形。
代码如下:
//进行输出:提示用户输入
Console.WriteLine("请输入第一条边:");
//用一个变量接受输入的值
str1 = Console.ReadLine();
Console.WriteLine("请输入第二条边:");
str2 = Console.ReadLine();
Console.WriteLine("请输入第三条边:");
str3 = Console.ReadLine();
//转换为整形
int side1, side2, side3;
side1 = Convert.ToInt32(str1);
side2 = Convert.ToInt32(str2);
side3 = Convert.ToInt32(str3);
//判断
if (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1)
{
if (side1 == side2 || side1 == side3 || side2 == side3)
{
if (side1 == side2 && side1 == side3) //已经三边相等,无需另行判断
{
Console.WriteLine("可以组成一个等边三角形");
}
else
{
Console.WriteLine("可以组成一个等边三角形");
}
}
else
{
Console.WriteLine("可以组成一个普通三角形");
}
//Console.WriteLine("可以组成一个三角形");
}
else
{
Console.WriteLine("不可以组成一个三角形");
}
console.Redkey();
3. 提示用户输入两个数字,并计算这两个数字之间所有整数的和。
要求:
(1)用户只能输入数字
(2)计算两个数字之间和
(3)要求第一个数字必须比第二个数字小,否则就重新输入。
答案一:
//while (true)
//{
// Console.WriteLine("请输入第1个数字:");
// string str1 = Console.ReadLine();
// Console.WriteLine("请输入第2个数字:");
// string str2 = Console.ReadLine();
// int num11 = 0;
// int num22 = 0;
// try ----------------------C#异常捕捉机制
// {
// num11 = Convert.ToInt32(str1);
// num22 = Convert.ToInt32(str2);
// }
// catch (Exception)
// {
// Console.WriteLine("您输入的数据类型有误,请重新输入!");
// Console.ReadKey();
// return;
// }
// if (num11 > num22)
// {
// Console.WriteLine("您输入的数据大小有误,请重新输入!");
// Console.ReadKey();
// Console.Clear();
// continue;
// }
// int sum = 0;
// for (int i = num11; i <= num22; i++)
// {
// sum += i;
// }
// Console.WriteLine("{0}和{1}之间所有整数的和为:{2}", num11, num22, sum);
// Console.WriteLine("是否退出程序?(Y|N)");
// string flag = Console.ReadLine();
// if (flag == "Y")
// {
// break;
// }
// Console.ReadKey();
//}
答案二:
bool f = true;
while (f) {
#region 代码
Console.WriteLine("请输入第一个数字");
string num1 = Console.ReadLine();
Console.WriteLine("请输入第二个数字");
string num2 = Console.ReadLine(); int x = ;//接收 字符串转换成数字的值
int y = ; ///用户只能输入数字
try
{
x = Convert.ToInt32(num1);
y = Convert.ToInt32(num2);
}
catch (Exception)
{
Console.WriteLine("您输入的不是数字");
Console.ReadKey();
return;
} //求第一个数字必须比第二个数字小
if (x >= y)
{
Console.WriteLine(" 第一个数字比第二个数字大,请重新输入");
Console.ReadKey();
Console.Clear();//控制台 内容清空
continue;
} //计算两个数字之间和
int sum = ;
for (int i = x; i <= y; i++)
{
sum += i;
} Console.WriteLine("两个数之间的和为:{0}",sum); Console.WriteLine("是否退出程序?(Y|N)");
string flag = Console.ReadLine();
if (flag == "Y") {
break;
}
#endregion
4. 用方法来实现:请计算出一个整型数组的平均值。
//int[] array1 = new int[6];
//double summ = ArrayAvg(array1);//定义变量接收方法的返回值
//Console.WriteLine("平均值为:{0}", summ);
//Console.ReadKey();//调用方法
方法:
#region 第4题求平均值(方法) 快捷键:#region+table键
/// <summary>
/// 4.计算数组的平均值
/// </summary>
/// 无参有返回值
/// <param name="array"></param>
static double ArrayAvg(int[] array)
{
double sum = ;
for (int i = ; i < array.Length; i++)
{
array[i] = i;
sum += array[i];
} return sum;
}
#endregion
5. 写一个方法,用来判断用户输入的数字是不是质数 ,再写一个方法 要求用户只能输入数字,如果输入有误,就一直让用户输入数字。
//(1)
//Console.WriteLine("请输入一个数字:");
//string strr = Console.ReadLine();
//JudgmentPrime(strr);
//(2)判断是不是数字
//bool boo = true;
//while(boo){
// Console.WriteLine("请输入一个数字:");
// string str4 = Console.ReadLine();
// bool result = IsNumber(str4);
// if (result)
// {
// boo=false;
// break;
// }
// else{
// Console.WriteLine("您输的不是一个数字,请重新输入!");
// Console.ReadKey();
// Console.Clear();
// } //}
方法:
/// 5.1判断质数
/// </summary>
/// <param name="Prime"></param>
static void JudgmentPrime(string Prime)
{
int num1 = Convert.ToInt32(Prime), sum = , k = + num1;
for (int i = ; i <= num1; i++)
{
if (num1 % i == )
{
sum += i;
}
}
if (sum == k)
{
Console.WriteLine("您输入的是一个质数!");
}
else
{
Console.WriteLine("您输入的不是一个质数!");
}
}
#endregion
/// <summary>
/// 5.2判断输入值是不是数字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static bool IsNumber(string str)
{
bool f = true;
int x = ;
try
{
x = Convert.ToInt32(str);
}
catch (Exception)
{
f = false;
}
return f;
}
#endregion
6.写一个方法 计算圆的面积和周长 面积是 pI*R*R 周长是 2*Pi*r
//Console.WriteLine("请输入圆的半径:");
//string r = Console.ReadLine();
//CircleArea(r);
方法:
#region 7.计算圆的周长和面积
/// <summary>
/// 7.计算圆的周长和面积
/// </summary>
/// <param name="mianji"></param>
/// <param name="zhouChang"></param>
static void CircleArea(string banJing)
{
double num = Convert.ToDouble(banJing);
Console.WriteLine("圆的面积为:{0};\n周长为:{1}", Math.PI * num * num, * Math.PI * num);
}
#endregion
7. 请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。
int[] array4 = { , , , , , , , , , };
//外循环:控制整体的排序次数
for (int i = ; i < array4.Length - ; i++)
{
//内循环:控制每次循环的次数
for (int j = i; j < array4.Length - ; j++)
{
if (array4[i] > array4[j + ])
{
int max = array4[i];
array4[i] = array4[j + ];
array4[j + ] = max;
} }
}
//遍历数组
foreach (var item in array4)
{
Console.WriteLine(item);
}
Console.ReadKey();
8. 用方法来实现:请计算出一个整型数组的平均值:{ 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。
//int[] array5 = { 1, 3, 5, 57, 98, 33, 4, 4, 6, 8, 10 };
//Arrayavg(array5);
//Console.ReadKey();
方法:
/// <summary>
/// 9.求平均值
/// </summary>
/// <param name="arrayy"></param>
static void Arrayavg(int[] arrayy)
{
double sum = ;//转换为double类型,否则不会输出小数
for (int i = ; i < arrayy.Length; i++)
{
sum += arrayy[i];
}
double aa = sum / arrayy.Length;//同上
double kk = Math.Round(aa, );//同上
Console.WriteLine("平均值为:{0}", kk);
}
#endregion
本题知识点补充:
C#中:
- 整数除以整数,结果仍为整数;
- 整数除以小数,结果为小数;
- 小数除以整数,结果也为小数。
C# 实例练习(第二天)的更多相关文章
- Bash 实例,第二部分
我们先看一下处理命令行自变量的简单技巧,然后再看看 bash 基本编程结构. 接收自变量 在 介绍性文章 中的样本程序中,我们使用环境变量 "$1" 来引用第一个命令行自变量.类似 ...
- 整合Kafka+Flink 实例(第二部分 设计思路)
前 言 拖了蛮久了,一直说要接着上一部分写设计思路以及代码,因为自己技术底子薄弱,加上人又懒,所以一直没能继续,今天补上设计思路及部分代码,后面有时间我会再补充一些应用性的功能,的确有些忙,希 ...
- 【php增删改查实例】第二十六节 - 个人详情页制作
在一般的系统中,当用户点击头像的时候,就会跳转到对应的个人详情页,在这个页面,他可以查看和修改自己的个人信息,或者更换头像. 本案例中,个人详情页使用bootstrap框架. 首先,我们新建一个htm ...
- 【php增删改查实例】第二十四节 - 文件上传在项目中的具体应用
文件上传在项目中,一般有两个用武之地,分别为设置用户的头像和上传附件.本节我们演示如果进行用户头像的上传. 因为一个用户单独并且唯一对应了一个头像,是一对一的关系,所以我们需要去给tm_users表添 ...
- 【php增删改查实例】第二十五节 - 在main.php中显示头像
在用户成功上传头像以后,用户登录系统,应该能够看到自己的头像,本节演示如何在这个地方: 添加用户头像. 1.用DIV做: border-radius:50% background:url(xxx.jp ...
- 【php增删改查实例】第二十二节 - 引入百度地图
20.用户新增地址字段 在实际的开发中,经常会出现对数据表新增或者修改字段的事情,所以,当用户提出加字段的需求时,我们的页面以及后台程序都要进行相应的改动. 本节就以增加一个地址字段为例. 打开nav ...
- 【php增删改查实例】第二十三节 - PHP文件上传
22. PHP文件上传 22.1 资源文件 将这三个东西拷贝项目的根目录. 拷贝完毕后,打开upload.html: 现在,我们在项目的根目录去编写一个upload.php. PHP给我们提供了很多关 ...
- 【php增删改查实例】第二十节 - 把用户管理页面集成到main.php中
把这个代码: <a href="javascript:openTab('用户管理','user/userManage.html ','icon-roleManage')" c ...
- 【php增删改查实例】第二十一节 - 用户修改功能
19.1 添加用户修改的按钮 打开userManage.html,找到新增按钮的地方: 我们不难发现,编辑按钮就差不多应该在新建用户的右边. 那么,假如我现在是新人,对这个项目本身就不太熟悉,那么我得 ...
- 【php增删改查实例】 第二节 - MYSQL环境配置
安装好xampp后,会自带一个mysql,也就是说,正常情况下,你直接这样: 就可以启动mysql了. 如果你了,下面的步骤就别看了哈. if( 启动成功 ){ return; } 如果你的电脑上已经 ...
随机推荐
- JS实现悬浮导航的制作--web前端
思想:导航在这里只有两种状态,一种是初始状态.一种是固定布局状态.实现悬浮导航其实就是通过Javascript脚本语言控制导航的两种状态,主要是对两种状态成立条件的判断,明确了这些,实现起来就不会太难 ...
- Hibernate的一个简单应用例子
Hibernate是一个开源的ORM框架,顾名思义,它的核心思想即ORM(Object Relational Mapping,对象关系映射),可以通过对象来操作数据库中的信息,据说开发者一开始是不太熟 ...
- solr6.3 + Hbase Indexer使用MR创建索引,错误Bad return type
使用solr6.3 + Hbase Indexer ,通过Hbase-indexer从Hbase建立索引到solr中,进行全文搜索. 两种实现方式:① 开启hbase-indexer进行实时同步新数据 ...
- 事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
一.事件冒泡定义 事件冒泡是指在一个对象触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那 ...
- 20170721_python字符串操作_《python语言及其应用》
str = 'abcde...wxyz' [num]提取指定字符 str[0] == 'a' str[1] == 'b' str[-1] == 'z' [start:end:step]分片/切片,一定 ...
- Apache Flume 1.7.0 各个模块简介
Flume简介 Apache Flume是一个分布式.可靠.高可用的日志收集系统,支持各种各样的数据来源,如http,log文件,jms,监听端口数据等等,能将这些数据源的海量日志数据进行高效收集.聚 ...
- Spring源码情操陶冶-ContextLoader
前言-阅读源码有利于陶冶情操,本文承接前文Spring源码情操陶冶-ContextLoaderListener 静态代码块内容 ContextLoader在被主动调用的时候,会执行其的一个静态块,代码 ...
- ES6中的模块
前面的话 JS用"共享一切"的方法加载代码,这是该语言中最容出错且容易令人感到困惑的地方.其他语言使用诸如包这样的概念来定义代码作用域,但在ES6以前,在应用程序的每一个JS中定义 ...
- Spring-Framework 源码阅读之@Autowired和AutowiredAnnotationBeanPostProcessor
今天接下去讲我们的内容,上次的解析了AnnotationBeanUtils这个类的运用和源码.今天主要关注的是Autowired和 AutowiredAnnotationBeanPostProcess ...
- RabbitMQ入门-消息订阅模式
消息派发 上篇<RabbitMQ入门-消息派发那些事儿>发布之后,收了不少反馈,其中问的最多的还是有关消息确认以及超时等场景的处理. 楼主,有遇到消费者后台进程不在,但consumer连接 ...