【C#】实验6

s6-1

设计项目s6-1。编写一个程序,用以接受用户输入的两个double类型的值。一个值表示用户想要存放在银行账户中的金额。另一个值表示用户想要从银行账户中提取的金额。创建自定义异常,以确保提取的金额始终小于或等于当前的余额。引发异常时,程序应显示一则错误消息。否则,程序应显示从用户存款中扣除取款额之后的账户余额。

MainForm.cs:

/*
 * 作者:JeronZhou
 * 日期: 2021-10-09
 * 功能:创建自定义异常
 */

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace s6_1
{
	public partial class MainForm : Form
	{
		public MainForm()
		{
			InitializeComponent();
		}
		void Button1Click(object sender, EventArgs e)
		{
			try
			{
				if(Convert.ToDouble(this.textBox2.Text) < Convert.ToDouble(this.textBox3.Text))
				{
					throw new ExceptionClass("ERROR:取款金额不能大于当前存款金额!");
				}
				else
				{
					this.textBox1.Enabled = true;
					this.textBox1.Text = Convert.ToString(Convert.ToDouble(this.textBox2.Text)-Convert.ToDouble(this.textBox3.Text));
				}
			}
			catch(ExceptionClass ex)
			{
				MessageBox.Show(ex.Message);
			}
		}
		void TextBox2TextChanged(object sender, EventArgs e) {}
		void TextBox3TextChanged(object sender, EventArgs e) {}
	}
}

ExceptionClass.cs:

/*
 * 作者:JeronZhou
 * 日期: 2021-10-09
 * 功能:创建自定义异常
 */

using System;

namespace s6_1
{
     public class ExceptionClass:ApplicationException
     {
         public ExceptionClass(string message) : base(message)
         {
         	
         }
     }
}

Program.cs:

/*
 * 作者:JeronZhou
 * 日期: 2021-10-09
 * 功能:创建自定义异常
 */

using System;
using System.Windows.Forms;

namespace s6_1
{
	internal sealed class Program
	{
		private static void Main(string[] args)
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new MainForm());
		}	
	}
}

窗体设计:
在这里插入图片描述
测试结果:
测试不抛出异常的正常情况:输入存入金额为100元,取出金额为80元,点击确认按钮,程序正常运行,计算得出当前金额为20元,结果正确。
在这里插入图片描述
测试异常情况:输入存入金额为100元,取出金额为120元,点击确认按钮,程序弹出异常提示窗口。
在这里插入图片描述

s6-2

设计项目s6-2。编写一个程序,要求用户输入邮件地址,Email地址必须符合规范。编写一个邮件地址格式不符合规范的自定义异常继承自ApplicationException,如果邮件地址格式不符合规范,则抛出这个异常。邮件地址规范是:确保电子邮件地址含有符号“@”,且只出现一次;含有符号“.”,且只出现一次;符号“_”不能出现在电子邮件地址的开头。

MainForm.cs:

/*
 * 作者:JeronZhou
 * 日期: 2021-10-09
 * 功能:邮箱格式验证
 */

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace s6_2
{
	public partial class MainForm : Form
	{
		public MainForm()
		{
			InitializeComponent();
		}
		void TextBox1TextChanged(object sender, EventArgs e) {}
		void Button1Click(object sender, EventArgs e)
		{
			try
			{
				string str = this.textBox1.Text;
				int AtNum=0, PointNum=0;
				bool flag=false;
				int length=str.Length-1;
				for(int i=0;i<length;i++)
				{
					if(str[i]=='@')
					{
						AtNum++;
					}
					else if(str[i]=='.')
					{
						PointNum++;
					}
					else if(str[0]=='_')
					{
						flag=true;
					}
				}
				if(AtNum!=1)
				{
					throw new ExceptionClass("格式错误!符号“@”应有且仅有一个");
				}
				if(PointNum!=1)
				{
					throw new ExceptionClass("格式错误!符号“.”应有且仅有一个");
				}
				if(flag)
				{
					throw new ExceptionClass("格式错误!符号“_”不能出现在开头");
				}
				else
				{
					MessageBox.Show("邮箱格式正确!");
				}
			}
			catch(ExceptionClass ex)
			{
				MessageBox.Show(ex.Message);
			}
		}
	}
}

ExceptionClass:

/*
 * 作者:JeronZhou
 * 日期: 2021-10-09
 * 功能:邮箱格式验证
 */

using System;

namespace s6_2
{
     public class ExceptionClass:ApplicationException
     {
         public ExceptionClass(string message) : base(message)
         {
         	
         }
     }
}

Program.cs:

/*
 * 作者:JeronZhou
 * 日期: 2021-10-09
 * 功能:邮箱格式验证
 */

using System;
using System.Windows.Forms;

namespace s6_2
{
	internal sealed class Program
	{
		private static void Main(string[] args)
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new MainForm());
		}
	}
}

窗体设计:
在这里插入图片描述
测试结果:
测试不抛出异常的正常情况,输入邮箱981866921@qq.com,点击验证邮箱,弹出邮箱格式正确窗口。
在这里插入图片描述
在这里插入图片描述
测试字符“@”出错的异常情况,输入邮箱981866921qq.com,点击验证邮箱,弹出异常提示窗口。
在这里插入图片描述
在这里插入图片描述
测试字符“.”出错的异常情况,输入邮箱981866921@qqcom,点击验证邮箱,弹出异常提示窗口。
在这里插入图片描述
在这里插入图片描述
测试字符“_”开头的异常情况,输入邮箱_981866921@qq.com,点击验证邮箱,弹出异常提示窗口。
在这里插入图片描述
在这里插入图片描述

解决方案源代码

C#实验6 解决方案及项目源代码压缩包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jeron Zhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值