实验名称:实验三 Windows 应用程序开发

一、 实验目的

1. 掌握窗口控件的使用方法;

2. 掌握 Windows 的编程基础。

二、 实验要求

 

根据要求,编写 C#程序,并将程序代码和运行结果写入实验报告。

 

三、 实验内容

1.编写一个计算器,练习在窗体上添加控件、调整控件的布局,设置或修改控件属性,编写事件处理程序的方法。

(1)新建 windows 应用程序。在窗体 Form 上拖放一个 TextBox 控件、十六个 Button 控 件,整个窗体布局如下图所示。

 

(2)打开代码窗口,添加如下全局变量:

 double a = 0;

 double b = 0;

 bool c = false;

 string d;

(3)双击”1”按钮,添加如下事件处理程序:

 private void button1_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox1.Text = "";

 c = false;

 }

 textBox1.Text += "1";

 }

(4)双击”2”按钮,添加如下事件处理程序:

 private void button2_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox2.Text = "";

 c = false;

 }

 textBox1.Text += "2";

 }

(5)双击”3”按钮,添加如下事件处理程序:

 private void button3_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox3.Text = "";

 c = false;

 }

 textBox1.Text += "3";

 }

(6)双击”4”按钮,添加如下事件处理程序:

 private void button4_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox1.Text = "";

 c = false;

 }

 textBox1.Text += "4";

 }

(7)双击”5”按钮,添加如下事件处理程序:

 private void button5_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox1.Text = "";

 c = false;

 }

 textBox1.Text += "5";

 }

 (8)双击”6”按钮,添加如下事件处理程序:

 private void button6_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox1.Text = "";

 c = false;

 }

 textBox1.Text += "6";

 }

(8)双击”7”按钮,添加如下事件处理程序:

 private void button7_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox1.Text = "";

 c = false;

 }

 textBox1.Text += "7";

 }

 (10)双击”8”按钮,添加如下事件处理程序:

 private void button8_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox1.Text = "";

 c = false;

 }

 textBox1.Text += "8";

 }

 (11)双击”9”按钮,添加如下事件处理程序:

 private void button9_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox1.Text = "";

 c = false;

 }

 textBox1.Text += "9";

 }

 (12)双击”0”按钮,添加如下事件处理程序:

 private void button12_Click(object sender, EventArgs e)

 {

 if (c == true)

 {

 textBox1.Text = "";

 c = false;

 }

 textBox1.Text += "0";

 if (d == "/")

 {

 textBox1.Clear();

 MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK,

MessageBoxIcon.Warning);

 }

 }

 (13)双击”+”按钮,添加如下事件处理程序:

 private void button13_Click(object sender, EventArgs e)

 {

 c = true;

 b = double.Parse(textBox1.Text);

 d = "+";

 }

 (14)双击”-”按钮,添加如下事件处理程序:

 private void button16_Click(object sender, EventArgs e)

 {

 c = true;

 b = double.Parse(textBox1.Text);

 d = "-";

 }

 (15)双击”*”按钮,添加如下事件处理程序:

 private void button15_Click(object sender, EventArgs e)

 {

 c = true;

 b = double.Parse(textBox1.Text);

 d = "*";

 }

 (16)双击”/”按钮,添加如下事件处理程序:

 private void button14_Click(object sender, EventArgs e)

 {

 c = true;

 b = double.Parse(textBox1.Text);

 d = "/";

 }

 (17)双击”=”按钮,添加如下事件处理程序:

 private void button17_Click(object sender, EventArgs e)

 {

 switch (d)

 {

 case "+": a = b + double.Parse(textBox1.Text); break;

 case "-": a = b - double.Parse(textBox1.Text); break;

 case "*": a = b * double.Parse(textBox1.Text); break;

 case "/": a = b / double.Parse(textBox1.Text); break;

 }

 textBox1.Text = a + "";

 c = true;

 }

(18)双击”c”按钮,添加如下事件处理程序:

 private void button18_Click(object sender, EventArgs e)

 {

 textBox1.Text = "";

 }

(19)单击启动调试工具,运行计算器。

 

    单击9  单击*   单击2

 

    单击 =

(20)在计算器中,增加四个功能键:x2,sqrt,log, ln 四个键,分别计算求平方,开方,log,ln 值,将增加的代码写入实验报告。

1)X2功能实现:

private void button16_Click(object sender, EventArgs e)

{

a = double.Parse(textBox1.Text) *  double.Parse(textBox1.Text);

textBox1.Text = a + "";

c = true;

}

单击6单击X2

2)sqrt功能实现:

private void button15_Click(object sender, EventArgs e)

{

a = Math.Pow(double.Parse(textBox1.Text), 1 / 2);

textBox1.Text = a + "";

c = true;

}

  单击9 单击sqrt

3)log功能实现:

private void button4_Click(object sender, EventArgs e)

{

a = Math.Log(double.Parse(textBox1.Text));

textBox1.Text = a + "";

c = true;

}

依此单击625单击log 单击4

计算结果为4

4)ln功能实现:

private void button4_Click(object sender, EventArgs e)

{

a = Math.Log(double.Parse(textBox1.Text));

textBox1.Text = a + "";

c = true;

}

输入55    计算结果约为4

2.自己设计并编写一个 Windows 应用程序,要求用到TextBox、GroupBox、RadioButton、CheckBox、ComboBox、ListBox 控件、Timer 控件。将程序功能、界面布局和运行结果的截图与事件代码写在实验报告中

1) 程序功能:

将选择或录入的个人信息保存在程序中,并在录入完成并按下完成按钮后,以提示框的形式回馈给用户。

2) 界面布局:

 

实现界面

3) 运行结果(仅为示例):

4) 事件代码(以下为全部代码,内含各种事件代码):

 

i.Form1.cs文件代码:

using System;

using System.Collections;

using System.Threading;

using System.Windows.Forms;

using static System.Windows.Forms.VisualStyles.VisualStyleElement;

using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button;

using Timer = System.Threading.Timer;

namespace WinFormsApp1

{

public partial class Form1 : Form

{

public string A = "";

int Ti = 0;

public string name;

string sentence = "";

string sex = "";

string[] hobbies = {"","","",""};   //唱、跳、rap、篮球

bool flag1=false;                   //判断“唱”是否被选中

bool flag2=false;                   //判断“跳”是否被选中

bool flag3=false;                   //判断“rap”是否被选中

bool flag4=false;                   //判断“篮球”是否被选中

string education = "";

public Form1()

{

InitializeComponent();

}

private void timer1_Tick(object sender, EventArgs e)

{

Ti++;

A = "第"+Ti.ToString()+"次显示";

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

name = textBox1.Text;

}

private void label1_Click(object sender, EventArgs e)

{

label1.Text = A;

A = "你的姓名是:" + name + "\n" + "你的座右铭是:" + sentence + "\n" + "你的性别是:" + sex + "\n" + "你的爱好有:" + hobbies[0] + hobbies[1] + hobbies[2] + hobbies[3] +"\n"+"你的最高学历是:"+education+"\n";

MessageBox.Show(A);

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

education = comboBox1.Text;

}

private void label3_Click(object sender, EventArgs e)

{

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

if (flag4 == false)

{

flag4 = true;

hobbies[3] = "篮球";

}

else

{

flag4 = false;

hobbies[3] = "";

}

}

private void groupBox1_Enter(object sender, EventArgs e)

{

}

private void 此处撰写_SelectedIndexChanged(object sender, EventArgs e)

{

}

private void radioButton2_CheckedChanged(object sender, EventArgs e)

{

if (radioButton2.Checked)

{

sex = "女";

}

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)

{

if (radioButton1.Checked)

{

sex = "男";

}

}

private void checkBox3_CheckedChanged(object sender, EventArgs e)

{

if (flag2 == false)

{

flag2 = true;

hobbies[1] = "跳";

}

else

{

flag2 = false;

hobbies[1] = "";

}

}

private void checkBox2_CheckedChanged(object sender, EventArgs e)

{

if (flag1 == false)

{

flag1 = true;

hobbies[0] = "唱";

}

else

{

flag1 = false;

hobbies[0] = "";

}

}

private void checkBox4_CheckedChanged(object sender, EventArgs e)

{

if (flag3 == false)

{

flag3 = true;

hobbies[2] = "rap";

}

else

{

flag3 = false;

hobbies[2] = "";

}

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

for (int i = 0; i < listBox1.Items.Count; i++)

{

//行被选中时

if (listBox1.SelectedItems.Contains(listBox1.Items[i]))

{

if (listBox1.Items[i].ToString() == null)

{

sentence = "未选择";

}

else

{

sentence = listBox1.Items[i].ToString();

}

}

}

}

private void label6_Click(object sender, EventArgs e)

{

}

}

}

ii. Program.cs文件代码

namespace WinFormsApp1

{

internal static class Program

{

/// <summary>

///  The main entry point for the application.

/// </summary>

[STAThread]

static void Main()

{

ApplicationConfiguration.Initialize();

Application.Run(new Form1());

}

}

}

iii.设计界面

 

.NET实验三的更多相关文章

  1. FPGA与simulink联合实时环路系列——实验三 按键key

    实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...

  2. Java实验三

    20145113 20145102实验三 实验步骤 编码标准 编程标准包含:具有说明性的名字.清晰的表达式.直截了当的控制流.可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性 ...

  3. Verilog HDL那些事_建模篇笔记(实验三:按键消抖)

    实验三:按键消抖 首先将按键消抖功能分成了两个模块,电平检查模块和10ms延迟模块.电平检测模块用来检测按键信号的变化(是否被按下),10ms延迟模块用来稳定电平检查模块的输入,进而稳定按键信号,防止 ...

  4. 20145229&20145316 《信息安全系统设计基础》实验三 实时系统的移植

    实验封面 实验内容 1.安装ADS(安装文件在00-ads1.2目录下,破解方法00-ads1.2\Crack目录下) 2.安装GIVEIO驱动(安装文件在01-GIVEIO目录下) 3.把整个GIV ...

  5. 20145301&20145321&20145335实验三

    20145301&20145321&20145335实验三 这次实验我的组员为:20145301赵嘉鑫.20145321曾子誉.20145335郝昊 实验内容详见:实验三

  6. 20145212 实验三《敏捷开发与XP实践》

    20145212 实验三<敏捷开发与XP实践> 实验内容 使用git上传代码 与20145223同学一组,使用git相互更改代码 同组实验报告链接:http://www.cnblogs.c ...

  7. 20145213《Java程序设计》实验三敏捷开发与XP实践

    20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...

  8. 20145206《Java程序设计》实验三实验报告

    20145206<Java程序设计>实验三实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运 ...

  9. 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  10. 20145337实验三实验报告——敏捷开发与XP实践

    20145337实验三实验报告--敏捷开发与XP实践 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 ** 实验步骤**### 敏捷开发与XP 软件工程包括下列领域:软件需求 ...

随机推荐

  1. 接口拿到的id和传到后台的id不一致,导致查询详情和编辑报错

    碰到这个问题真是百思不得其解.接口上打印的值和数据库一致,浏览器查看response的反馈也一致.但是一在页面打印请求回来的值,就变了,变成了另一个id,但是其他数据又和数据库一致. 查了一圈也没有查 ...

  2. Dynamics 365 如何代表其他用户发送邮件

    举个例子,用户A和用户B,用户B在新建电子邮件时,发件人以用户A的身份去发送邮件,这个时候需要做如下配置才可以. 首先登录用户A,在高级设置->个人设置中,配置允许其他人代表自己发送电子邮件. ...

  3. SQL Server数据库备份和还原

    当需要将一台机器(源机器)上的一个数据库完全复制到另一台机器(目标机器)上时,可以选择先在源机器上备份该数据库,然后在目标机器上还原该备份的方法. 备份 打开SQL server management ...

  4. HDLbits——Mt2015 lfsr

    1.描述电路图里面的一个子模块 Assume that you want to implement hierarchical Verilog code for this circuit, using ...

  5. 全网echarts案例资源大总结和echarts的高效使用技巧(细节版)

    全网echarts案例资源大总结和echarts的高效使用技巧(细节版) 众所周知,在现今的开发大环境下,数据可视化(大屏化)项目在前端开发中的比重越来越大.而其中使用率最高的插件无疑就是 Apach ...

  6. ApacheBench(压力测试)

    1.post请求 (post.txt body信息) ab -c2000 -n50 -p post.txt -T "application/json"  url 2.get 请求 ...

  7. python 快速搭建局域网文件服务器 SimpleHTTPServer http.server

    py2: python2 -m SimpleHTTPServer [port] py3:   python3 -m http.server [port] python2请注意大小写. 在Windows ...

  8. TypeScript Array(数组)

    TypeScript Array(数组) 数组对象是使用单独的变量名来存储一系列的值. 数组非常常用. 假如你有一组数据(例如:网站名字),存在单独变量如下所示: var site1="Go ...

  9. 计算2-expr命令举例

    一.expr命令 1.语法和功能 只能用于整数运算和字符串长度.匹配等运算处理 expr 2 + 2 expr 2 - 2 expr 2 \* 2 expr 2 / 2 i=5;i=`expr $1 ...

  10. flask-基础篇01

    一.介绍 flask只有一个内核,其WSGI工具箱采用Werkzeug(路由模块),模板引擎使用Jinja2.其他几乎所有功能都要用第三方扩展来实现. 二.常用扩展包 扩展列表:http://flas ...