当前位置: 首页 > news >正文

C#实验二

一、实验目的
(1)掌握C#中数组的使用
(2) 掌握Array类的属性和方法的使用
(3) 掌握ArrayList实现动态数组的编程方法
(4) 理解异常处理机制
二、实验内容

  1. Random类与数组练习
    编写控制台程序,通过Random类产生10个10-50之间的随机整数并输出,后将它们按照从小到大和从大到小的顺序输出,如图2-1所示。
    在这里插入图片描述
    图2-1 运行效果图
    说明:
    (1)Random类提供了产生随机数的方法。产生随机数的方法必须由Random类创建的对象调用。Random类创建对象的格式为:
    Random 随机对象名称=new Random();
    如果要声明一个随机对象rn,则代码为:
    Random rn = new Random();
    对象名称.Next(整数1,整数2)
    方法与属性格式 功 能 示 例
    对象名称.Next(正整数) 产生0~正整数之间的随机整数 rn.Next(100)
    对象名称.Next(整数1,整数2) 产生2个指定整数之间的随机整数

(2)对数组排序,可使用Array.Sort(数组名)实现数组元素升序排列,使用Array .Reverse(数组名)再将数组反转从而实现降序排列。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Experiment_2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            /*1. Random类与数组练习
            编写控制台程序,通过Random类产生10个10 - 50之间的随机整数并输出,
            后将它们按照从小到大  和   从大到小  的顺序输出
            */
            Random random = new Random();//创建随机数对象
            int[] nums=new int[10];
            for(int i = 0; i < nums.Length; i++)
            {
                nums[i] = random.Next(10,51);//获取 10到50的数
            }
            Array.Sort(nums);//对数字进行排序 默认从小到大排序
            Console.WriteLine("从小到大");
            foreach(int i in nums)
            {
                Console.Write(i+" \t");//输出
            }
            Console.WriteLine();//换行

            Console.WriteLine("从大到小");
            for(int i = nums.Length-1; i >=0 ; i--)
            {
                Console.Write(nums[i] + " \t");//排序后反向输出
            }
            Console.WriteLine();//换行
            Array.Reverse(nums);
            Console.WriteLine("使用Reverse实现反向输出");
            foreach (int i in nums)
            {
                Console.Write(i + " \t");//输出
            }

            Console.WriteLine();//换行

        }
    }
}

实验结果:
我们看到 随机生成了 21 23 27 32 34 35 36 40 41 然后就根据要求输出了
在这里插入图片描述
2. 编写控制台程序,从键盘输入2个数,输出二者的商,要求采用异常处理,若输入的不是数值数据,输出“应输入数值数据”;若输入的除数为0,输出“除数不能为0”。
3. 在这里插入图片描述
4. 图2-2 输入数据格式正确时运行效果图在这里插入图片描述

图2-3 输入非数值型数据时运行效果图在这里插入图片描述图2-4 输入除数为0时运行效果图

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Experiment_2
{
    internal class Program2
    {
        /*编写控制台程序,从键盘输入2个数,输出二者的商,
         * 要求采用异常处理,若输入的不是数值数据,
         * 输出“应输入数值数据”;
         * 若输入的除数为0,输出
         * “除数不能为0”。
         *
         */
        static void Main(string[] args)
        {
         
            
            try
            {
                Console.WriteLine("从键盘输入第一个数");
                int a = int.Parse(Console.ReadLine());
                Console.WriteLine("从键盘输入第二个数");
                int b = int.Parse(Console.ReadLine());
                double c = a / b;//因为 c#中 double类型除以0有意义就不会有异常
                c = (double)a / b;//运行到此说明除数不为0 这样就能输出小数了
                Console.WriteLine("二者的商为{0}", c);

            }
            catch(DivideByZeroException e)//当试图用整数类型数据除以零时抛出。
            {
                Console.WriteLine("除数不能为0");//输出异常
                
            }
            catch(FormatException e)
            {
                Console.WriteLine("应输入数值数据");//输出异常
                
            }
            Console.WriteLine();
        }

    }
}

在这里插入图片描述

  1. 编写控制台程序,利用ArrayList进行数组操作,随机输入若干个数据(以-1结束),降序输出。在这里插入图片描述
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Experiment_2
{
    internal class Program3
    {
        static void Main(string[] args)
        {
            /*
             * 编写控制台程序,利用ArrayList进行数组操作,
             * 随机输入若干个数据(以-1结束),降序输出。
             */
            ArrayList MyArrayList = new ArrayList();
            Console.WriteLine("请输入数据,以 -1 结束");
            int c = int.Parse(Console.ReadLine());
            while ( c != -1)//用循环控制是否结束
            {
                MyArrayList.Add(c);//加入list
               c = int.Parse(Console.ReadLine());
            }
            Console.Write("输入的数据为:");
            foreach(int a in MyArrayList)//循环遍历list并且输出

            {
                Console.Write(a+"\t");
            }
            Console.WriteLine();
            MyArrayList.Sort();//排序
            MyArrayList.Reverse(); //将ArrayList中元素的顺序反转。
            Console.Write("排序后的数据为:");
            foreach (int a in MyArrayList)//循环遍历list并且输出
            {
                Console.Write(a + "\t");
            }
            Console.WriteLine();
        }
    }
}
}

在这里插入图片描述

相关文章:

  • 熟悉c语言结构体
  • uboot源码分析(基于S5PV210)之启动第二阶段
  • 【分布式】分布式系统、Redis中间件 、Cache穿透、击穿、雪崩
  • Rust基础语法
  • 电子知识学习网站
  • 全站最简单 “数据滚动可视化大屏” 【JS基础拿来即用】
  • Vue项目实战——【基于 Vue3.x + Vant UI】实现一个多功能记账本(开发导航栏及公共部分)
  • ScalableViT网络模型
  • Nginx配置流数据转发指导
  • 【单细胞高级绘图】10.KEGG富集结果的圆圈图
  • 怎样在应用中实现自助报表功能?
  • 生成指定位数的随机验证码
  • 线性布局和相对布局
  • 高级数据结构——红黑树
  • Python语言学习:Python语言学习之数据类型/变量/字符串/操作符/转义符的简介、案例应用之详细攻略
  • 【译】JS基础算法脚本:字符串结尾
  • Centos6.8 使用rpm安装mysql5.7
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript对象详解
  • js ES6 求数组的交集,并集,还有差集
  • k8s 面向应用开发者的基础命令
  • Laravel Mix运行时关于es2015报错解决方案
  • MobX
  • Spring Cloud中负载均衡器概览
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Web Storage相关
  • 分布式熔断降级平台aegis
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 记一次用 NodeJs 实现模拟登录的思路
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 入门到放弃node系列之Hello Word篇
  • 手写一个CommonJS打包工具(一)
  • 为什么要用IPython/Jupyter?
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • #{}和${}的区别是什么 -- java面试
  • (2.2w字)前端单元测试之Jest详解篇
  • (Java数据结构)ArrayList
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .net 流——流的类型体系简单介绍
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET的数据绑定
  • .net下的富文本编辑器FCKeditor的配置方法
  • .net项目IIS、VS 附加进程调试
  • .NET值类型变量“活”在哪?
  • .NET中的十进制浮点类型,徐汇区网站设计
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [C#小技巧]如何捕捉上升沿和下降沿
  • [C++] sqlite3_get_table 的使用
  • [C++]类和对象【下】
  • [Codeforces] probabilities (R1600) Part.1
  • [CTF]2022美团CTF WEB WP