《面向对象程序设计》
课程设计
秒表和计算器的程序设计
班 级:
姓 名:
学 号:
伊犁师范学院电子与信息工程学院
秒表和计算器的程序设计
一、设计目的
1. 掌握C#窗体创建及常用的控件的选用和编程。
2. 进一步提高编程能力,掌握对C#方法的调用及其参数类型的设置。
3. 练习简单的应用程序的规划设计及其程序开发的方法。
二、程序运行环境
windows开发平台开发平台:Microsoft Visual Studio 2005
开发语言:C#
运行平台:windows XP
三:开发工具及编程语言:
visual studio 2005是微软公司推出的一种单窗体多种语言的软件开发工具。用于生成ASP.NET WEB应用程序,XML Web Services,桌面应用程序和移动应用程序。Visual Basic,Visual C++,Visual C#和Visual J#全都使用相同的继承开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。
C#是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于 Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
四、设计内容
(1) 设计一个简易秒表,通过一个文本框,以”216:08”的形式显示秒(位数随计数值而变)和毫秒(两位),并且,通过”开始”/”停止”按钮启动(或停止)计时,通过一个”复位”按钮复位计数值以便重新开始计数。
(2)设计一个计算器,能完成简单的+,-,*,/等功能。
4、设计过程及实现
1.秒表的窗口控件设计,如图1所示
图1
2.秒表的详细设计过程
(1)打开并运行Visual Studio 2005,如图2所示
图2
(2)在Visual Studio 2005界面上选择文件,新建一个项目。如图3所示
图3新建项目界面
(3)秒表的界面设计,进入界面。如图4所示
图4
(4)秒表的菜单设计,如图5所示
图5
3.秒表的程序测试
(1)单击开始按钮开始计时,如图6所示
图6
(2)单击停止按钮,计时结束,如图7
图7
(3)单击复位按钮,如图8所示
4.秒表的代码设计
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 秒表
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
float Second = 0;
private void timer1_Tick(object sender, EventArgs e)
{
Second++;
Box1.Text = (Second/100).ToString().Replace(".",":");
}
private void button1_Click(object sender, EventArgs e)
{
this.timer1.Enabled = true;
this.button1.Enabled = false;
this.button2.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
this.timer1.Enabled = false;
this.button1.Enabled = true;
this.button2.Enabled = false;
}
private void button3_Click(object sender, EventArgs e)
{
Second = 0;
Box1.Text = "0.00";
this.button1.Enabled = true;
this.button2.Enabled = true;
}
}
}
1.1 界面设计
打开Visual Studio 2005开发工具,新建一个Windows应用程序,然后在窗体上依次放置1个TextBox和17个Button控件,如图2-1所示(设置好属性后)。
1..2 属性设置
窗体和各控件的属性设置如表2-1所示。表2-1 窗体和各控件的属性
控件类型 | 控件名称 | 属性 | 设置结果 |
Form | Form1 | Text | 计算器 |
StartPosition | CenterScreen | ||
MaximizeBox | False | ||
AutoSizeMode | GrowAndShrink | ||
TextBox | TextBox1 | Name | txtReadout |
ReadOnly | True | ||
Button | Button1 | Name | btnNum7 |
Text | 7 | ||
Button2 | Name | btnNum8 | |
Text | 8 | ||
Button3 | Name | btnNum9 | |
Text | 9 | ||
Button4 | Name | btnAdd | |
Text | + | ||
ForeColor | Red | ||
Button5 | Name | btnSub | |
Text | - | ||
ForeColor | Red | ||
Button6 | Name | btnNum4 | |
Text | 4 | ||
Button7 | Name | btnNum5 | |
Text | 5 | ||
Button8 | Name | btnNum6 | |
Text | 6 | ||
Button9 | Name | btnMul | |
Text | * | ||
ForeColor | Red | ||
Button10 | Name | btnDiv | |
Text | / | ||
ForeColor | Red | ||
Button11 | Name | btnNum1 | |
Text | 1 | ||
Button12 | Name | btnNum2 | |
Text | 2 | ||
Button13 | Name | btnNum3 | |
Text | 3 | ||
Button14 | Name | btnNum0 | |
Text | 0 | ||
Button15 | Name | btnDot | |
Text | . | ||
Button16 | Name | btnC | |
Text | C | ||
ForeColor | Red | ||
Button17 | Name | btnAmount | |
Text | = | ||
ForeColor | Red | ||
1.3 编写代码
本程序需要用到一些公共变量,例如用来接收操作数、运算结果,判断输入的是否为小数等,因此首先在代码的通用段声明以下变量:
double num1, num2, result; // 操作数及运算结果
bool decimalFlag = false; // 判断输入的是否为小数
string myOperator; // 操作类型
接下来编写一个名为“NumClick”的方法,单击数字按钮时,调用NumClick方法,将输入的数字追加到文本框中,代码如下:
public void NumClick(int myNumber)
{
if (decimalFlag) // 输入小数
{
txtReadout.Text = txtReadout.Text + myNumber;
}
else
{
if (txtReadout.Text == "0.") // 输入整数
{
// 输入的是整数的第一个数字
txtReadout.Text = myNumber + ".";
}
else
{
// 输入的不是整数的第一个数字
txtReadout.Text = txtReadout.Text.Substring
(0, txtReadout.Text.Length - 1) + myNumber + ".";
}
}
}
// 窗体载入事件代码
private void Form1_Load(object sender, EventArgs e)
{
txtReadout.Text = "0.";
// 指定文本框的对齐方式为右对齐
txtReadout.TextAlign = HorizontalAlignment.Right;
}
编写数字按钮0~9的单击事件代码如下:
private void btnNum0_Click(object sender, EventArgs e)
{
NumClick(0);
}
private void btnNum1_Click(object sender, EventArgs e)
{
NumClick(1);
}
private void btnNum2_Click(object sender, EventArgs e)
{
NumClick(2);
}
private void btnNum3_Click(object sender, EventArgs e)
{
NumClick(3);
}
private void btnNum4_Click(object sender, EventArgs e)
{
NumClick(4);
}
private void btnNum5_Click(object sender, EventArgs e)
{
NumClick(5);
}
private void btnNum6_Click(object sender, EventArgs e)
{
NumClick(6);
}
private void btnNum7_Click(object sender, EventArgs e)
{
NumClick(7);
}
private void btnNum8_Click(object sender, EventArgs e)
{
NumClick(8);
}
private void btnNum9_Click(object sender, EventArgs e)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论