C#编程基础 实验(7) (1-2)

本文介绍C#编程中如何处理异常,包括将百分制成绩转换为五分制,当输入超出范围时抛出异常。同时,讲解了如何在计算阶乘时,对输入的小数数据引发异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.将百分制转换成五分制,如果输入的百分制成绩超出0~100时,程序抛出异常。

代码如下:

using System;
using System.Collections;
using System.Collections.Generic; 
namespace Program
{
    class OverflowRange : ApplicationException
    {
        public OverflowRange(string msg):base(msg)
        { }
    }
    class Program
    {
       
        static void Main(string[] args)
        {
            try
            {
                Console.Write("输入一个百分数:");
                int num = Convert.ToInt32(Console.ReadLine());
                if (num < 0 || num > 100)
                {
                    throw new OverflowRange("数值不在0~100之间");
                }
                double result = (double)num * 5.0 / 100;
                Console.WriteLine("转换成五分制为:{0}", result);
            }
            catch (FormatException)
            {
                Console.WriteLine("必须输入数字");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                Console.ReadKey();
            }
        }
    }
    
}


2.编写一个计算阶乘的程序,当输入的数据是带小数时,引发异常。

using System;
using System.Collections;
using System.Collections.Generic; 
namespace Program
{
    class WithoutDecimal : ApplicationException
    {
        public WithoutDecimal(string msg):base(msg)
        { }
    }
    class Program
    {
       
        static void Main(string[] args)
        {
            try
            {
                Console.Write("输入一个数:");
                double num = Convert.ToDouble(Console.ReadLine());
                if (num - (int)num != 0)
                {
                    throw new WithoutDecimal("输入的数据带小数");
                }
                int sum = 1;
                for (int i = 2; i <= (int)num; i++)
                {
                    sum *= i;
                }
                Console.WriteLine("{0}的阶乘为{1}", num, sum);
            }
            catch (FormatException)
            {
                Console.WriteLine("必须输入数字");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                Console.ReadKey();
            }
        }
    }
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值