个人项目3:加强版四则运算
Posted ct203
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人项目3:加强版四则运算相关的知识,希望对你有一定的参考价值。
需求
1.实现在线答题
2.答题结束后,可以判断对错
3.并将错题的结果保存起来
设计思想
1.设计窗口:使用了dataGridView表格控件,4个textBox控件,5个button控件和若干Label窗口控件
2.程序编辑:(1)在上次的四则运算的基础上,将四则运算的式子显示在“显示”按钮的程序里
并且计算式子的正确值,并将正确结果的那一列的属性显示不可见
(2)编写“验证”控件的程序,判断输入的结果和正确结果是否一致,并将结果正
确性显示在dataGridView表格中。
(3)编写“保存“控件的程序,将错题保存到桌面上,并自动生成一个名称为“错题本”
的txt文件
3.调试和运行程序
出现的问题
1.四则运算的式子不能正确输入到dataGridView表格中
2.点击“显示“按钮时,正确结果也会出现在表格中
3.判断结果正确性时,结果全部显示的是错误
4.保存出来的只出现四则运算的最后一个式子
解决方法
1.定义一个字符串类型的变量,将四则运算的中数字和符号赋值到字符串中,将字符串输入到表格中
2.将正确结果和结果正确性这两列的属性在刚开始显示为不可见,点击“验证“按钮时,将这两列改为可见
3.将表格中的数据转化为double类型再比较
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; using System.IO; namespace 个人项目3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void label1_Click(object sender, EventArgs e) { } private void button5_Click(object sender, EventArgs e) { Application.Exit(); } private void button4_Click(object sender, EventArgs e) { dataGridView1.Rows.Clear(); //清空数据的行和列 dataGridView1.Columns.Clear(); dataGridView1.ColumnCount = 4; //定义表格列数,并赋表头名称 dataGridView1.Columns[0].Name = "四则运算"; dataGridView1.Columns[1].Name = "结果"; dataGridView1.Columns[2].Name = "正确结果"; dataGridView1.Columns[3].Name = "结果正确性"; textBox3.Text = ""; //清空正确率的值 } private void button1_Click(object sender, EventArgs e) { double m = Convert.ToDouble(textBox1.Text); //取textBox控件的值 double n = Convert.ToDouble(textBox2.Text); double q = Convert.ToDouble(textBox4.Text); dataGridView1.RowCount = (int)q; //定义表格的行数 Random r = new Random(); //取随机数的函数 for (int i = 0; i < q; i++) { double num1 = r.Next((int)m, (int)n); //取随机数 double num2 = r.Next((int)m, (int)n); int a = r.Next(0, 3); double c = 1; char signal = ‘+‘; if(a%3==0) //随机取四则运算的符号 { signal = ‘+‘; c = num1 + num2; } else if(a%3==1) { signal = ‘-‘; if (num1 < num2) { double temp; temp = num1; num1 = num2; num2 = temp; } c = num1 - num2; } else if(a%3==2) { signal = ‘*‘; c = num1 * num2; } else if (num1 / num2 == 0 && num1 != 0 && num2 != 0) { signal = ‘/‘; c = num1 / num2; } dataGridView1.Rows[i].Cells[2].Value = c; //四则运算的正确结果 string s = Convert.ToString(num1) + signal + Convert.ToString(num2)+‘=‘; dataGridView1.Rows[i].Cells[0].Value = s; //显示四则运算 } } private void button2_Click(object sender, EventArgs e) { double q = Convert.ToDouble(textBox4.Text); dataGridView1.RowCount = (int)q; dataGridView1.Columns[2].Visible=true; //将列“正确结果”和“结果正确性”变为可见 dataGridView1.Columns[3].Visible=true; int a=0; for (int i = 0; i < q; i++) //判断结果正确性 { if (Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value) == Convert.ToDouble(dataGridView1.Rows[i].Cells[2].Value)) { dataGridView1.Rows[i].Cells[3].Value = "正确"; a += 1; } else { dataGridView1.Rows[i].Cells[3].Value = "错误"; } } double b; //计算并输出正确率 b = a / q; b = Math.Round(b, 2)*100; string c = Convert.ToString(b) + ‘%‘; textBox3.Text = c; } private void button3_Click(object sender, EventArgs e) { string path = @"C:UsersdestinyDesktop错题本.txt"; if (File.Exists(path)) { File.Delete(path); } string wrrong = ""; double q = Convert.ToDouble(textBox4.Text); dataGridView1.RowCount = (int)q; for (int i = 0; i < q; i++) { if (Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value) != Convert.ToDouble(dataGridView1.Rows[i].Cells[2].Value)) { wrrong += Convert.ToString(dataGridView1.Rows[i].Cells[0].Value + " "); } } StreamWriter sw = new StreamWriter(path); sw.WriteLine(wrrong); sw.Close(); } } }
时间记录日志
以上是关于个人项目3:加强版四则运算的主要内容,如果未能解决你的问题,请参考以下文章