软件测试——C#判断闰年的form小程序

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SoftwarTest_LeapYear
{
public partial class Form1 : Form
{
string yearStr = null;
int year = 0;
bool isLeapYear = false;
bool IsLeapYear(int year)
{
if (year % 400 == 0)
return true;
if (year % 4 == 0 && year % 100 != 0)
return true;
else
return false;
}
public Form1()
{
InitializeComponent();
}

private void But_judge_Click(object sender, EventArgs e)
{
text_output.Clear();
isLeapYear = IsLeapYear(year);
if (isLeapYear)
text_output.AppendText(yearStr.ToString() + " is a leap year:)");
else if (!isLeapYear)
text_output.AppendText(yearStr.ToString() + " is not a leap year:(");
else
text_output.AppendText("Please input a correct year!");
}

private void text_input_TextChanged(object sender, EventArgs e)
{
yearStr = this.text_input.Text;
year = int.Parse(yearStr);
}

private void text_output_TextChanged(object sender, EventArgs e)
{

}
}
}

但是经测试,如果输入非纯数字的字符串,Visual Studio会抛出exception。如下图:

现在我们来思考解决方法。

我们依旧调用Parse。

那么我们应该在传参之前对字符串yearStr进行检查。

这里可以采用正则表达式的方法。

我们修改代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace SoftwarTest_LeapYear
{
public partial class Form1 : Form
{
string yearStr = null;
int year = 0;
bool isLeapYear = false;
bool isYear = false;
public bool IsLeapYear(int year)
{
if (year % 400 == 0)
return true;
if (year % 4 == 0 && year % 100 != 0)
return true;
else
return false;
}
public bool IsYear(string yearStr)
{
Regex r = new Regex(@"^\d+$");
return r.IsMatch(yearStr);
}

public Form1()
{
InitializeComponent();
}

private void But_judge_Click(object sender, EventArgs e)
{
text_output.Clear();
isYear = IsYear(yearStr);
if (isYear)
{
year = int.Parse(yearStr);
isLeapYear = IsLeapYear(year);
if (isLeapYear)
text_output.AppendText(yearStr.ToString() + " is a leap year:)");
else
text_output.AppendText(yearStr.ToString() + " is not a leap year:(");
}
else
text_output.AppendText("Please input a correct year!");
}

private void text_input_TextChanged(object sender, EventArgs e)
{
yearStr = this.text_input.Text ;
}

private void text_output_TextChanged(object sender, EventArgs e)
{

}
}
}

我们利用函数IsYear判断输入内容是否为纯数字(为纯数字返回true,否则返回false)并返回结果到isYear这个布尔值中,并利用判断语句,只有当isYear值为true时才调用

语句,转换纯数字字符串为整型变量。

总而言之,正则表达式是很强大的工具,在程序设计过程中我们应该加以善用。改天有机会,专门罗列一下正则表达式的用法(o´ω`o)ノ

时间: 2025-01-31 08:28:37

软件测试——C#判断闰年的form小程序的相关文章

判断微信、微信小程序及其他环境

判断是否为微信.微信小程序.其他环境 研究背景 项目中有一个需求,在判断用户未登录的情况下跳转登录,toLogin通过window.location.href进行跳转登录.在线上环境中,发现在未登录的情况下,Iphone 小程序中偶尔跳转失效.定位代码发现判断小程序函数返回结果在跳转逻辑之后才获得结果,猜测由于判断环境代码打断跳转的进行.临时方案:跳转后通过setTimeout再进行一次跳转. 目前解决方案如下: toLogin() { if(isMiniApp() === null) { se

软件测试-4 判断闰年的程序以及防止输入非法字符

一.题目 判断所输入的年份是否是闰年 二.程序实现 我继续使用javascript+HTML来实现: 不考虑异常的输入,判断闰年的程序如下: function isLeapYear( y ){ return ( y % 400 == 0 ) || ( y % 4 == 0 && y % 100 != 0 ); } 但是在实际使用时必须考虑是否有异常输入,所以我可以在调用该函数前检测一下输入,保证输入是合法的: function isInt(input){ var reg = /^[0-9]

公测后,微信小程序应用可能被拒原因.

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 34.0px "PingFang SC Semibold"; color: #232323 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "PingFang SC"; color: #777777 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px &qu

微信小程序视图层WXML_小程序条件渲染

微信小程序视图层WXML_小程序条件渲染 wx:if 在微信小程序的框架中,我们用wx:if="{{condition}}"来判断微信小程序页面是否需要渲染该代码块: <view wx:if="{{condition}}"> True </view> 也可以用wx:elif和wx:else来添加一个else块: <view wx:if="{{length > 5}}"> 1 </view> &

flask与微信小程序登录(后端)

开发微信小程序时,接入小程序的授权登录可以快速实现用户注册登录的步骤,是快速建立用户体系的重要一步.这篇文章将介绍 python + flask + 微信小程序实现用户快速注册登录方案(本文主要进行后端逻辑的梳理,小程序端逻辑只写了必要的部分,如有需要,请点击连接阅读官方开发文档) 官方给出的微信小程序登录时序图如下: 这个流程分为两大部分: 小程序使用 wx.login() API 获取 code,并由开发者后端服务器换取open_id 和 session_key,小程序使用 wx.getUs

小程序webview使用避坑(因为开发者配置域名错误导致打开失败)

问题 小程序webview使用时出现了这样的错误提示 前提条件:嵌入的页面域名已经申请过业务域名 然后访问报如下错误 经过测试发现,当需要微信授权登录的H5页面直接通过小程序webview访问时,会出现类似的错误. 解决方案 对浏览器进行判断,如果是小程序webview(官方判断条件:window.__wxjs_environment === 'miniprogram')就跳过授权登录.这样就规避了访问非授权业务域名问题. 原文地址:https://www.cnblogs.com/homehtm

天河微信小程序入门《四》:融会贯通,form表单提交数据库

天河在阔别了十几天之后终于又回来了.其实这篇文章里的demo是接着(天河微信小程序入门<三>)后面就做了的,但是因为最近在做别的项目,所以就偷懒没有发出来.放到今天来看,从前台提交数据到数据库已经是没有什么可写的了.不过既然开篇了就不能太监么,所以还是分享出来给大家.我当时的目的是为了实验api的功能和跟后台数据的通讯存储,所以没有考虑到美观之类的,界面非常丑请大家包涵.一个带form表单的页面在这里定义好自己form表单的元素名称 01 02 03 04 05 06 07 08 09 10

软件测试------判断闰年的输入框

1.题目要求 坐在最后一排看的不是很清楚,貌似老师给了个能判断闰年的输入框,然后问大家输入abcd会怎么样,结果是报错了. 我们的任务是把这个判断闰年的输入框搞出来并且让这个系统可以handle非法的输入. 2.实现方法 实现方法再续前缘(html+servlet),关键代码如下: 1 PrintWriter out = response.getWriter(); 2 String tmp = request.getParameter("year"); 3 out.println(&q

微信小程序开发模板消息的时候 出现 errcode: 41028, errmsg: &quot;invalid form id hint:

小程序开发模板消息的时候  出现 errcode: 41028, errmsg: "invalid form id hint: 我是使用的微信支付发送模板消息,提示的formid无效的 大家知道获取到的prepay id 还非常的诡异  他不是直接一个参数 而是还带了字符串 比如 prepay_id=wx2017xx 这样格式的 那传递到微信模板消息这里的formid上要怎么传值呢? 最后检验是需要去除掉prepay id 这个字符串的  然后传递过去就可以了 然后,还会有提示无效的,就是没有支