<需求分析>
老陈希望通过一款软件来储存自己出的题,然后让孩子自己去做并给出评价,
1,用户可以输入题。
2,可以储存用户输入的题。
3,可以通过用户输入的题进行出题。
4,可以做出评价。
<设计思路>
1,创建windows窗体,设计窗体,并根据窗体进行编码。
2,首先创建储存文件夹。
3,写一个储存的方法。
4,然后是读出用户所出的题。
5,写一个判断正误的方法。
<代码实现>
form1的代码
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 出题 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e)//写入 { string fnm = @"one"; StreamWriter aaa = new StreamWriter(fnm,true); aaa.WriteLine(this.textBox1.Text); aaa.Close(); string fnmm = @"tow"; StreamWriter ddd = new StreamWriter(fnmm,true); ddd.WriteLine(this.textBox2.Text); ddd.Close(); string fnmn = @"fuhao"; StreamWriter fff = new StreamWriter(fnmn,true); fff.WriteLine(this.comboBox1.Text); fff.Close(); textBox1.Clear(); textBox2.Clear(); } private void button2_Click(object sender, EventArgs e) { Form2 fam = new Form2(); fam.ShowDialog(); } private void button3_Click(object sender, EventArgs e)//清空题库 { string fnmm = @"tow"; StreamWriter ddd = new StreamWriter(fnmm); ddd.WriteLine(" "); ddd.Close(); string fnm = @"one"; StreamWriter aaa = new StreamWriter(fnm); aaa.WriteLine(""); aaa.Close(); string fnmn = @"fuhao"; StreamWriter fff = new StreamWriter(fnmn); fff.WriteLine(""); fff.Close(); } } }
form2的代码
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 出题 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private int sun; private int i = 1; public static int count; public static int right; private void timer1_Tick(object sender, EventArgs e) { try { int t = int.Parse(textBox5.Text); if (t <= 0) { timer1.Enabled = false; textBox5.Enabled = false; MessageBox.Show("时间到了!"); Form3 fr3 = new Form3(); fr3.ShowDialog(); } t = t - 1; textBox5.Text = t.ToString(); } catch { } } private void button1_Click(object sender, EventArgs e)//开始 { butt(); try { string t = textBox5.Text; textBox5.Text = t; timer1.Enabled = true; timer1.Interval = 1000; timer1.Start(); } catch { } } private void textBox4_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { string f = textBox2.Text; int a = int.Parse(textBox1.Text); int b = int.Parse(textBox3.Text); calcula(f, a, b); if (textBox4.Text == sun.ToString()) { MessageBox.Show("回答正确!"); right++; } else { MessageBox.Show("回答错误!"); } count++; textBox4.Clear(); butt(); } }//用户的输入 private void button2_Click(object sender, EventArgs e)//停止 { textBox4.Enabled=false; } private int calcula(string operato, int a, int b) { switch (operato) { case "+": sun = a + b; break; case "-": sun = a - b; break; case "*": sun = a * b; break; case "/": sun = a / b; break; } return sun; }//求正确的值 private void butt() { string[] line = File.ReadAllLines("one"); if (i < line.Length ) { textBox1.Text = line[i]; string[] lines = File.ReadAllLines("tow"); textBox3.Text = lines[i]; string[] lin = File.ReadAllLines("fuhao"); textBox2.Text = lin[i]; } i++; if (i == line.Length+1) { Form3 foo = new Form3(); foo.ShowDialog(); } }//读题 private void button3_Click(object sender, EventArgs e) { this.Close(); }//关闭窗体 } }
form3的代码
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 Form3 : Form { public Form3() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { this.Close(); } private void Form3_Load(object sender, EventArgs e) { textBox1.Text = Form2.right.ToString(); textBox2.Text = (Form2.count - Form2.right).ToString(); textBox3.Text = ((Form2.right / (double)(Form2.count)) * 100).ToString() + "%"; } } }
<测试>
<总结>
刚开始写时真的没有一点头绪,不知道怎么实现写入,不用数据库不知道怎么保存,就是写入了也会清空上次的数据,终于不再清空上次的了,但是又不知道怎么一个一个的读出来,只能读出一个,但是最后还是一个一个的实现了。感觉自己增长了不少,同时有感觉很有成就感。知道了代码的严肃性,懂得了有时候看似不起眼的位置其实起了很大的作用。
原文:http://www.cnblogs.com/lizanqirxx/p/4963127.html