实验三  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)单击启动调试工具,运行计算器。

(20)在计算器中,增加四个功能键:x2,sqrt,log, ln 四个键,分别计算求平方,开方,

log,ln 值,将增加的代码写入实验报告。

增加的代码

private void buttonfang_Click(object sender, EventArgs e)

{

c = true;

b = double.Parse(textBox1.Text);

d = "x2";

}

private void buttonkai_Click(object sender, EventArgs e)

{

c = true;

b = double.Parse(textBox1.Text);

d = "sqrt";

}

private void buttonlog_Click(object sender, EventArgs e)

{

c = true;

b = double.Parse(textBox1.Text);

d = "log";

}

private void buttonln_Click(object sender, EventArgs e)

{

c = true;

b = double.Parse(textBox1.Text);

d = "ln";

}

运行结果:

加法

减法

乘法

除法

平方

开方

对数

自然对数

2.自己设计并编写一个 Windows 应用程序,要求用到 TextBox、GroupBox、

RadioButton、CheckBox、ComboBox、ListBox 控件。将程序功能、界面布局和运行结果

的截图与事件代码写在实验报告中。

截图:

代码:

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 WinFormsApp2

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

insertComboItem();

}

private void groupBox1_Enter(object sender, EventArgs e)

{

}

private void label1_Click(object sender, EventArgs e)

{

}

private void insertComboItem()

{

comboBox1.Items.Add("信息学院");

comboBox1.Items.Add("经管学院");

comboBox1.Items.Add("机械学院");

comboBox1.Items.Add("文法学院");

//默认选择第一项

comboBox1.SelectedIndex = 0;

}

private void label4_Click(object sender, EventArgs e)

{

}

private void button2_Click(object sender, EventArgs e)

{

textBox1.Clear();

radioButton1.Checked = false;

radioButton2.Checked = false;

comboBox1.SelectedIndex = 0;

checkBox1.Checked = false;

checkBox2.Checked = false;

listBox1.ClearSelected();

}

private void button1_Click(object sender, EventArgs e)

{

string radio_str = " ";

string check_str = " ";

string text_str = textBox1.Text;

string combo_str = comboBox1.Text;

string list_str = " ";

if (radioButton1.Checked==true) {

radio_str = "男";

} else {

radio_str = "女";

}

for (int i = 0; i < this.groupBox1.Controls.Count; i++)

{

var cb = this.groupBox1.Controls[i] as CheckBox;

if (cb.Checked == true)

{

check_str += cb.Text.ToString() + " ";

}

}

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

{

list_str += listBox1.SelectedItems[i].ToString()+" ";

}

MessageBox.Show("姓名:" + text_str + "\n" +

"性别:" + radio_str + "\n" +

"学院:" + combo_str + "\n" +

"电子设备:" + check_str + "\n" +

"爱好:" + list_str

);

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)

{

if (radioButton1.Checked == true)

{

}

}

private void radioButton2_CheckedChanged(object sender, EventArgs e)

{

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

}

}

}

四、实验总结

注:本部分写本次实验过程中出现的问题、如何解决、注意事项、以及自己的经 验体会。

这个计算机的整体运算逻辑比较简单,用两个变量来存储前后输入的值,根据选择的符号来进行运算,但是功能还是太过于简单,如果想要像平常用的计算机那样,就要更换数据的储存和计算模式了,可以将前两个数值加上运算符先运算出来,然后充当下一次计算的第一个数值。

 

.NET程序设计实验三的更多相关文章

  1. 20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告

    实验题目 1.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. 2.下载搭档实验二的Complex代 ...

  2. Java程序设计 实验三

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计   班级:1353       姓名:李海空  学号:20135329 成绩:             指 ...

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

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

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

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

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

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

  6. 20145330Java程序设计第三次实验

    20145330<Java程序设计>第三次实验报告 实验三 敏捷开发与XP实践 实验内容 1.使用git上传代码 2.使用git实现代码开发实践 3.实现代码的重载 实验步骤 使用git上 ...

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

    20145225<Java程序设计> 实验三 "敏捷开发与XP实践" 实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上 ...

  8. 20145208 实验三 Java面向对象程序设计

    20145208 实验三 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...

  9. 20145302张薇《Java程序设计》实验三报告

    20145302张薇<Java程序设计>实验三:敏捷开发与XP实践 实验内容 使用git上传代码 使用git实现代码开发实践 实现代码的重载 使用git上传代码 git init git ...

随机推荐

  1. js json.stringfy()和json.parse()的用法

    1.JSON.parse;作用:将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)语法:JSON.parse(text [, reviver])text 必选. 一个有效的 J ...

  2. 30 面向对象编程 抽象类 abstract 修饰符可以用来修饰方法也可以修饰类

    抽象类 概念 abstract 修饰符可以用来修饰方法也可以修饰类, 如果修饰方法,那么该方法就是抽象方法: 如果修饰类,那么该类就是抽象类. 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为 ...

  3. LGP3307题解

    题意有点儿神秘,而且出题人可能有点大病( 项链由 \(n\) 颗珠子构成,相邻的珠子不能相同. 每颗珠子上有 \(3\) 个数字,这 \(3\) 个数之间没有顺序,且 \(\gcd\) 为 \(1\) ...

  4. MacOS新功能“通用控制”,多台设备操作互联太方便了!

    昨天看到macOS推送了12.3的更新,记得之前预告过一个"通用控制"的功能,所以赶紧升级一波体验一下,效果惊艳到我了,赶紧安利一波! 先交代一下现在隔离在家的办公情况,我主要是用 ...

  5. 笔记软件-Obsidian(相关资料分享)

    Obsidian(黑曜石) 是一个功能强大的知识管理软件,是一款功能强大的带有关系图谱功能的双向链笔记,它可基于纯文本Markdown文件的本地文件夹上运行 Obsidian是一个支持markdown ...

  6. Java案例——统计字符串中各种字符出现的次数

    /*案例:统计各种字符在字符串中出现的次数 分析:只考虑三种字符类型的情况下(大写字母,小写字母,数字) 1.使用Scanner 类获取字符串数据 2.遍历字符串得到每一个字符 3.判断每一个字符是那 ...

  7. SpringBoot——两种传参方式

    ?传参 举例:http://localhost:8082/news/asset/getDatas?page=1&keyWord=123&year=2020 注解:@RequestPar ...

  8. 使用 Docker 部署 LNMP 并搭建 wordpress

    准备 系统版本:CentOS Linux release 7.4.1708 (Core)   内核版本:3.10.0-693.el7.x86_64    IP:192.168.31.43    可访问 ...

  9. python练习册 每天一个小程序 第0013题

    # -*-coding:utf-8-*- ''' 题目描述: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-) 地址: http://tieba.baidu.com/p/21 ...

  10. Python 中 PyQt5 库语法(一)

    目录 PyQt5库(一) 一. 简介 1. 什么是 Qt 2. 什么是PyQt 3. 环境搭建 二. 基本结构 1. 第一个程序 2. 控件操作 3. 快速生成代码 4. 面向对象 三. 基类控件 1 ...