码市地址: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('
').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 + "
";
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#较为擅长,编写过程中起领导作用,一带一学,故也还算顺畅。
本人编程功底较差,对一周一次大作业应付吃力,有待改善。