第一階段結對作業驗收小學生四則運算
這次與王悅生合作編寫了小學生四則運算過程,包括整數四則運算部分與真分數四則運算部分,原本是用vc來程式設計實現的,但通過討論最後決定了用C++來實現,而最基本的一點就是美觀大方,編寫也變得輕鬆了一點,最後將這個軟體成功實現了,不過有一點沒有做的是關於題目數量的規定,做成了無限出題.
使用時需要注意的是整數答案直接輸入就好,而分數答案要輸入成a/b的形式,比如:1/2=1/2, 6/3=2,6/10=3/5
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(); } private int ti_shu, result, f1, f2; private void chu_ti() { Random suiji = new Random(); int a = suiji.Next(0, 10); int b = suiji.Next(1, 10); int c = suiji.Next(0, 10); int d = suiji.Next(1, 10); int p = 4; //int p = suiji.Next(0, 7); if (p == 0)//出加法題 { label1.Text = a.ToString() + "+" + b.ToString() + "="; result = a + b; f1 = result; f2 = 1; } if (p == 1) //出減法題 { label1.Text = a.ToString() + "-" + b.ToString() + "+" + c.ToString() + "-" + d.ToString(); result = a - b; f1 = result; f2 = 1; } ti_shu = ti_shu + 1; textBox1.Text = ""; if (p == 2) //出乘法題 { label1.Text = a.ToString() + "*" + b.ToString() + "="; result = a * b; f1 = result; f2 = 1; } if (p == 3) //出除法題 { label1.Text = a.ToString() + "/" + b.ToString() + "="; f1 = a; f2 = b; int g; g = Gcd(f1, f2); if (g>1) { f1 = f1 / g; f2 = f2 / g; } if (f2==1) { result = f1; } } if (p == 4) //出分數加法題 { if (a > b) { int t = a; a = b; b = t; } if (c > d) { int t = c; c = d; d = t; } label1.Text = a.ToString() + "/" + b.ToString() + "+" + c.ToString() + "/" + d.ToString() + "="; f1 = a * d + b * c; f2 = b * d; int g; g = Gcd(f1, f2); f1 = f1 / g; f2 = f2 / g; result = f1 / f2; if (f1 == 0) { result = 0; } if (f2 == 1) { result = f1; } } if (p == 5) //出分數減法題 { if (a > b) { int t = a; a = b; b = t; } if (c > d) { int t = c; c = d; d = t; } label1.Text = a.ToString() + "/" + b.ToString() + "-" + c.ToString() + "/" + d.ToString() + "="; f1 = a * d - b * c; f2 = b * d; int g; g=Gcd(f1, f2); f1 = f1 / g; f2 = f2 / g; result = f1 / f2; if (f1 == 0) { result = 0; } if (f2 == 1) { result = f1; } } if (p == 6) //出分數乘法題 { if (a > b) { int t = a; a = b; b = t; } if (c > d) { int t = c; c = d; d = t; } label1.Text = a.ToString() + "/" + b.ToString() + "*" + c.ToString() + "/" + d.ToString() + "="; f1 = a * c; f2 = b * d; int g; g = Gcd(f1, f2); f1 = f1 / g; f2 = f2 / g; result = f1 / f2; if (f1 == 0) { result = 0; } if (f2 == 1) { result = f1; } } if (p == 7) //出分數除法題 { if (c == 0) { c++; } if (a > b) { int t = a; a = b; b = t; } if (c > d) { int t = c; c = d; d = t; } label1.Text = a.ToString() + "/" + b.ToString() + " " + "/" + " " + c.ToString() + "/" + d.ToString() + "="; f1 = a * d; f2 = b * c; int g; g = Gcd(f1, f2); f1 = f1 / g; f2 = f2 / g; if (f1 == 0) { result = 0; } if (f2 == 1) { result = f1; } //result = f1 / f2; } } private void label1_Click(object sender, EventArgs e) { } int Gcd(int a, int b)//求最大公約數,以便對結果進行約分 { while (a != 0 && b != 0) { if (a > b) a = a % b; else if (a < b) b = b % a; } return (a > b ? a : b); } private void Form1_Load(object sender, EventArgs e) { ti_shu = 0; chu_ti(); } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { string Item; /*if (pp <= 3 || f1 == 0 || f2 == 1) { if (e.KeyChar == 13)//表示按下的回車鍵 { if (Convert.ToInt16(textBox1.Text) == result) { Item = label1.Text + textBox1.Text + "√"; } else Item = label1.Text + textBox1.Text + "×"; this.listBox1.Items.Add(Item); this.textBox1.Text = ""; chu_ti(); } } else {*/ if (e.KeyChar == 13)//表示按下的回車鍵 { if (f2==1||f1==0) { if (Convert.ToInt16(textBox1.Text) == result) { Item = label1.Text + textBox1.Text + "√"; this.listBox1.Items.Add(Item); } else { Item = label1.Text + textBox1.Text + "×"; this.listBox1.Items.Add(Item); this.listBox2.Items.Add(Item); } } else { if (Convert.ToString(textBox1.Text) == Convert.ToString(f1) + "/" + Convert.ToString(f2)) { Item = label1.Text + textBox1.Text + "√"; this.listBox1.Items.Add(Item); } else { Item = label1.Text + textBox1.Text + "×"; this.listBox1.Items.Add(Item); this.listBox2.Items.Add(Item); } } this.textBox1.Text = ""; chu_ti(); } } private void button1_Click(object sender, EventArgs e) { Application.Exit(); } } }
軟體使用說明書
小學四則運算程式使用說明書
1.1編寫目的
實現小學生四則運算線上答題,能夠使使用者鍛鍊自己的數學能力
1.2專案背景
石家莊鐵道大學16級測繪系 羅玉銘,王悅生編
- 軟體概述
2.1目標:實現小學生線上答題
2.2功能:小學生線上答題且提出錯題
2.3 效能
.a時間特性:反應速度快
.b靈活性:較為靈活
.c外觀:簡單清晰
3. 執行環境
3.1硬體
要求低
VS
4. 使用說明
4.1安裝和初始化
需安裝VS
4.2輸入
請輸入正確答案(分數答案格式為a/b)
4.2.1資料背景
略
4.2.2資料格式
無
4.2.3輸入舉例
答案為整數輸入x,答案為分數輸入a/b,1/2=1/2, 6/3=2,6/10=3/5
4.3輸出
√或×
4.4出錯和恢復
如出錯請重新執行程式
5. 執行說明
5.1執行步驟
無執行步驟,請直接輸入答案
5.1.1執行控制
無
5.1.2操作資訊
a. 執行目的;小學生線上答題
b. 操作要求;輸入資料即可
c. 啟動方法;無需操做,開啟程式後自動執行
d. 預計執行時間;極短
e. 其他事項。
5.2.3輸入/輸出檔案
無輸入輸出檔案
5.2.4啟動或恢復過程
6. 非常規過程
無
7. 操作命令一覽表
無
8. 程式檔案(或命令檔案)和資料檔案一覽表
計算,輸入,退出,儲存
這次作業和王悅生的合作讓我換了一個想法去程式設計,確實與人合作和自己程式設計的一些東西是不一樣的,要好好學習,不斷提升自己的水平才行