码市地址:https://coding.net/u/DzXzz/p/GUI-operation


###1、题目描述: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。 ###2、需求分析: a、记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。 b、有计时功能,能显示用户开始答题后的消耗时间。 c、界面支持中文简体/中文繁体/英语,用户可以选择一种;

3、程序设计:

4、代码展示:

计时器的代码很简单,调用Stopwatch类, 点击出题时开始,点击批改时结束,然后输出(中间代码行数有点多就不直接复制了)
Stopwatch watch = new Stopwatch(); //创建计时器 watch.Start(); //开始计时 watch.Stop(); //结束计时 string time = watch.Elapsed.ToString(); //输出时间
文件流主要通过这两个函数实现
```
public int GetRows(string FilePath)
{
using (StreamReader read = new StreamReader(FilePath, Encoding.Default))
{
return read.ReadToEnd().Split('\n').Length; //返回行数
}
}
public void Write(string path,string line)
{

        StreamWriter sw = File.AppendText(path);
        //开始写入
        sw.Write(line);
        //清空缓冲区
        sw.Flush();
        //关闭流
        sw.Close();
        
    }
```
然后判定写入错题加正确答案
```
     if (celldata == "错误")
                        {
                            string wrong = "";
                            for (int m = 1; m < 9; m++)
                            {
                                wrong = wrong + this.dataGridView2.Rows[i].Cells[m].Value.ToString();
                            }
                            wrong = wrong + num6 + "/" + num7 + "\r\n";
                            Write(path, wrong);
                        }

```
```
    int totalcount;
        totalcount = GetRows(path);            //获取行数
```
还有就是文本框只能输入数字
```
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        //判断是否为数字
        //(char)8是允许退格键,可允许用户修改数字
        //其他输入清空文本框
        if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)8) 
        {
            e.Handled = true;                  
        }
       
    }
```

5、程序运行:

6、小组合作:

  应题目要求,本次作业以第一次作业为主进行修改完善,而这次作业以我队友的第一次作业为基础,每个人对自己的代码都是最熟悉的,本次作业主要以队友敲代码我在旁交流讨论。碰到问题一起讨论商量。

7、小结感受:

本次实验采用C#编写,对于这一门语言,还不是很熟悉,编写过程只能求助百度查看各种控件使用,队友对C#较为擅长,编写过程中起领导作用,一带一学,故也还算顺畅。
本人编程功底较差,对一周一次大作业应付吃力,有待改善。

8、PSP(Personal Software Process)表格