具体设计思路:
1.先创建一个Windows窗体。
2.添加所需控件,修改相应的属性值。
3.对控件编写代码,使之实现相应的功能。
4.设计出一个四则运算雏形后再根据需求完善代码。
5.进行测试分析。
6.对程序进行PSP耗时分析。
运行结果:
代码如下:
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;
using
System.IO;
namespace
sizeyunsuan
{
public
partial
class
Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
string
path =
"E:\rtf"
;
public
static
int
Count = 0;
public
static
int
zhengque = 0;
public
static
int
lefttime;
public
static
int
time;
public
static
int
sum;
int
i = 1;
Class1 mm =
new
Class1();
private
void
Form1_Load(
object
sender, EventArgs e)
{
if
(File.Exists(path))
{
this
.richTextBox1.LoadFile(path, RichTextBoxStreamType.RichText);
open.Enabled =
false
;
}
save.Enabled =
false
;
}
private
void
open_Click(
object
sender, EventArgs e)
{
OpenFileDialog TxTOpenDialog =
new
OpenFileDialog();
TxTOpenDialog.Filter =
"RTF文件(*.RTF)|*.RTF"
;
if
(TxTOpenDialog.ShowDialog() == DialogResult.OK)
{
path = TxTOpenDialog.FileName;
this
.richTextBox1.LoadFile(TxTOpenDialog.FileName, RichTextBoxStreamType.RichText);
save.Enabled =
false
;
open.Enabled =
false
;
MessageBox.Show(
"读取成功"
,
"提示信息"
, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
private
void
save_Click(
object
sender, EventArgs e)
{
SaveFileDialog TxtSaveDialog =
new
SaveFileDialog();
TxtSaveDialog.Filter =
"RTF文件(*.RTF)|*.RTF"
;
if
(File.Exists(path))
{
this
.richTextBox1.LoadFile(path, RichTextBoxStreamType.RichText);
MessageBox.Show(
"保存成功"
,
"提示信息"
, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
save.Enabled =
false
;
}
else
{
if
(TxtSaveDialog.ShowDialog() == DialogResult.OK)
{
this
.richTextBox1.SaveFile(TxtSaveDialog.FileName, RichTextBoxStreamType.RichText);
MessageBox.Show(
"保存成功"
,
"提示信息"
, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
save.Enabled =
false
;
}
}
}
private
void
richTextBox1_TextChanged(
object
sender, EventArgs e)
{
save.Enabled =
true
;
if
(
this
.richTextBox1.Text ==
""
||
this
.richTextBox1.Text ==
null
)
{
open.Enabled =
true
;
}
}
public
void
shizi()
{
left.Text =
""
;
fuhao.Text =
""
;
right.Text =
""
;
}
private
void
open2_Click(
object
sender, EventArgs e)
{
OpenFileDialog TxTOpenDialog =
new
OpenFileDialog();
TxTOpenDialog.Filter =
"RTF文件(*.RTF)|*.RTF"
;
if
(TxTOpenDialog.ShowDialog() == DialogResult.OK)
{
path = TxTOpenDialog.FileName;
this
.richTextBox2.LoadFile(TxTOpenDialog.FileName, RichTextBoxStreamType.RichText);
save.Enabled =
false
;
open.Enabled =
false
;
MessageBox.Show(
"导入成功"
,
"提示信息"
, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
private
void
daoru_Click(
object
sender, EventArgs e)
{
richTextBox2.Text = richTextBox1.Text;
}
private
void
daan1_Click(
object
sender, EventArgs e)
{
if
(daan1.Text ==
"显示答案"
)
{
daan.PasswordChar = Convert.ToChar(0);
daan1.Text =
"隐藏答案"
;
}
else
if
(daan1.Text ==
"隐藏答案"
)
{
daan.PasswordChar =
‘.‘
;
daan1.Text =
"显示答案"
;
}
}
private
void
kaishi_Click(
object
sender, EventArgs e)
{
string
[] ll =
new
string
[100];
ll = File.ReadAllLines(
"writer.txt"
);
textBox1.Text = ll[0];
string
[] lli =
new
string
[100];
lli = File.ReadAllLines(
"writer1.txt"
);
textBox2.Text = lli[0];
string
[] llp =
new
string
[100];
llp = File.ReadAllLines(
"writer2.txt"
);
textBox3.Text = llp[0];
int
minute;
try
{
minute =
int
.Parse(
this
.shijian.Text);
}
catch
(System.Exception ex)
{
this
.shijian1.Text =
"输入错误"
;
return
;
}
lefttime = minute;
this
.timer1.Interval = 1000;
this
.timer1.Enabled =
true
;
this
.timer1.Start();
}
private
void
timer1_Tick(
object
sender, EventArgs e)
{
if
(lefttime <= 0)
{
timer1.Enabled =
false
;
MessageBox.Show(
"时间到!"
);
Form2 frm2 =
new
Form2();
frm2.ShowDialog();
}
this
.shijian1.Text =
"剩余时间"
+ lefttime.ToString() +
"秒"
;
lefttime--;
}
private
void
jieshu_Click(
object
sender, EventArgs e)
{
Form2 frm2 =
new
Form2();
frm2.ShowDialog();
}
private
void
button1_Click(
object
sender, EventArgs e)
{
Count++;
ti.Text = Count.ToString();
StreamWriter writer = File.AppendText(
"writer.txt"
);
writer.WriteLine(left.Text);
writer.Close();
StreamWriter writer1 = File.AppendText(
"writer1.txt"
);
writer1.WriteLine(fuhao.Text);
writer1.Close();
StreamWriter writer2 = File.AppendText(
"writer2.txt"
);
writer2.WriteLine(right.Text);
writer2.Close();
richTextBox1.Text += left.Text + fuhao.Text + right.Text + label2.Text +
""
+
"\n"
;
mm.m=
int
.Parse(left.Text);
mm.n =
int
.Parse(right.Text);
daan.Text = Convert.ToString(mm.c);
daan.Text += sum +
"\r\n"
;
mm.d = Convert.ToChar(fuhao.Text);
mm.Calue();
}
private
void
textBox4_KeyDown(
object
sender, KeyEventArgs e)
{
string
m = textBox2.Text;
int
result;
switch
(m)
{
case
"+"
:
sum =
int
.Parse(textBox1.Text) +
int
.Parse(textBox3.Text);
break
;
case
"-"
:
sum =
int
.Parse(textBox1.Text) -
int
.Parse(textBox3.Text);
break
;
case
"*"
:
sum =
int
.Parse(textBox1.Text) *
int
.Parse(textBox3.Text);
break
;
case
"/"
:
sum =
int
.Parse(textBox1.Text) /
int
.Parse(textBox3.Text);
break
;
default
:
break
;
}
if
(e.KeyCode == Keys.Enter)
{
if
(
int
.TryParse(textBox4.Text,
out
result) ==
false
)
{
MessageBox.Show(
"请输入数字"
);
}
if
(textBox4.Text == sum.ToString())
{
MessageBox.Show(
"答对啦!"
);
zhengque++;
}
else
{
MessageBox.Show(
"答错了,继续加油!"
);
}
textBox4.Clear();
string
[] ll =
new
string
[100];
ll = File.ReadAllLines(
"writer.txt"
);
textBox1.Text
= ll[i];
string
[] lli =
new
string
[100];
lli = File.ReadAllLines(
"writer1.txt"
);
textBox2.Text = lli[i];
string
[] llp =
new
string
[100];
llp = File.ReadAllLines(
"writer2.txt"
);
textBox3.Text = llp[i];
i++;
}
}
private
void
button2_Click(
object
sender, EventArgs e)
{
File.WriteAllText(
"writer.txt"
,
string
.Empty);
File.WriteAllText(
"writer1.txt"
,
string
.Empty);
File.WriteAllText(
"writer2.txt"
,
string
.Empty);
}
}
}