结对编程1--基于GUI的四则运算题目生成器
最终项目详细代码(coding地址)/李志强的博客/我的详细代码/方言的博客
一、需求分析
1.实现之前项目的功能,如:除了整数之外,还要支持真分数的四则运算,真分数的运算,并且要求能处理用户的输入,并判断错误,打分统计正确率,处理用户输入的真分数,如 1/2, 5/12 等。
2.实现GUI界面。
3.实现记录错题功能,并提供英语,中文繁体服务。
4.实现计算做题使用时间提供给用户。
二、功能设计

计时功能,切换语言功能,兼容获取分式和整数参数功能,生成真分式题目以及最简分式功能,运算功能,校验答案功能。
过滤非法字符功能,题目进度功能,生成用户错题库功能
三、代码展示
1.计时功能
public void thread()
{
int sec = ;
int min = ;
int hour = ; while (true)
{
sec++;
if (sec >=)
{
min++;
sec =;
if (min >=)
{
hour++;
min =;
}
}
s.label10.Text = hour + ":" + min + ":" + sec;
Thread.Sleep();
if (s.next == ) {
break;
}
} }
2.首页切换语言功能
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
this.label1.Text = "Please input the number of math problem";
this.button1.Text = "start";
s.label8.Text = "Time";
s.label1.Text = "Process";
s.button1.Text = "next";
this.Text = "English";
s.Text = "English";
} private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{ } private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
this.label1.Text = "请输入题目数(满分100)";
this.button1.Text = "开始做题";
s.label8.Text = "时间";
s.label1.Text = "题目进度";
s.button1.Text = "下一题";
this.Text = "中文";
s.Text = "中文";
} private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
this.label1.Text = "請輸入題目數(滿分100)";
this.button1.Text = "開始做題";
s.label8.Text = "時間";
s.label1.Text = "題目進度";
s.button1.Text = "下壹題";
this.Text = "中文繁體";
s.Text = "中文繁體";
}
3.过滤非法字符
public string StringClear(string ai)
{
bool temp = bolnum(ai);
if(temp==true)
{
return ai;
}
else
{
cro = ;
if (this.Text == "中文")
{
MessageBox.Show("输入错误");
}
else if (this.Text == "English")
{
MessageBox.Show("input error");
}
else
{
MessageBox.Show("輸入錯誤");
}
this.textBox1.Text = "";
// this.Show();
return "";
}
} public bool bolnum(string temp)
{
for(int i=;i<temp.Length;i++)
{
byte tempByte = Convert.ToByte(temp[i]);
if ((tempByte > ) && (tempByte < ))
return true;
}
return false;
}
4.记录错题功能
FileStream f = new FileStream("cuoti.txt", FileMode.Append, FileAccess.Write);
StreamWriter fi = new StreamWriter(f);
fs = "你的答案:" + this.label2.Text + this.label4.Text + this.label5.Text + this.label9.Text + ai + " 正确答案:" + au + " " + "\r\n";
fi.Write(fs);
fi.Flush();
fi.Close();
f.Close();
四、测试运行
1.首页(中文)及过滤错误字符:


2.检查答案,得出成绩报告单:


3.查看错题及其他语言的部分截图:



五、psp
|
Personal Software Process Stages |
Estimated Time(min) |
Actual Time (min) |
|
计划 |
5 |
5 |
|
·任务估计 |
5 |
5 |
|
开发 |
100 |
200 |
|
·需求分析 (包括学习新技术) |
15 |
8 |
|
·生成设计文档 |
5 |
6 |
|
·设计复审 |
5 |
3 |
|
·代码规范 |
1 |
1 |
|
·具体设计 |
5 |
8 |
|
·具体编码 |
60 |
200 |
|
·代码复审 |
5 |
2 |
|
·测试(自我测试,修改代码,提交修改) |
10 |
20 |
|
报告 |
30 |
25 |
|
·测试报告 |
10 |
20 |
|
·计算工作量 |
5 |
1 |
|
·提出过程改进计划 |
20 |
10 |
六、总结

在这几天时间里,大家一起努力,学习C#,从无到有。先是一起讨论设计出整体的流程图,再由此基础上分析,解决问题,俗话说,三个臭皮匠,赛过诸葛亮,主要是能够说服对方,无论领航员,还是驾驶员只要 积极地参与,讲出自己的理由,建立共识,才能更好地一起逻辑地思考,分析。
在代码复审的时候,我们优化了一些东西,改进了一些代码,比如可以随机生成有两个运算符的题目。

还有就是通过讨论,改进了过滤的代码,使之不出现错误过滤。
public bool bolnum(string temp)
{
int isfalse=0;
for (int i = 0; i < temp.Length; i++)
{
byte tempByte = Convert.ToByte(temp[i]);
if ((tempByte > 46) && (tempByte < 58))
{ isfalse = 1; }
else
{ return false; }
}
if (isfalse == 1)
{
return true;
}
return false;
}
最终,程序运行如下。

汉堡包式评价?
先来一片面包:在之前的代码基础上,大家决定用C#,没毛病。
再把肉放上:看看要做什么,有空吗,你会吗?没毛病?有bug?不搞了?
着什么急,慢慢来。
这个做的不错,这个有意思。
快做好了。
没毛病。
然后再来一片面包: nice。事情也没想象中的那么那难,风雨俱去烟消散,从流飘荡任东西。
结对编程1--基于GUI的四则运算题目生成器的更多相关文章
- 结对编程1---基于Flask的四则运算题目生成器
项目代码地址 / WEB应用地址 / 合作伙伴iFurySt博文链接 需求分析 本次程序是基于原有的控制台四则运算器的基础上,改成WEB的形式,同时还增加了一些新的功能.同时因为交互方式的改变,代码也 ...
- 结对编程1 —— 基于GUI和Swing的四则运算题目生成器
合作伙伴 201421123102 王艳秋 201421123106 陈 雄 代码地址 题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI( ...
- 结对作业:基于GUI实现四则运算
1)Coding.Net项目地址:https://git.coding.net/day_light/GUIszysLL.git 2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的 ...
- 结对编程——paperOne基于java的四则运算 功能改进
项目成员:张金生 张政 由于新的需求,原本使用JSP的实现方式目前改为Java实现,即去除了B/S端. 需求分析: 1.四则运算要满足整数运算.分数运算两种: 2.运算题目随机,并且可以打印题 ...
- 结对编程1-基于GUI的四则运算生成器
201421123016郑怀勇 201421123017康建灿 程序代码 / 康建灿 一.需求分析 记录用户的对错总数. 程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算. 有 ...
- 基于GUI的四则运算
基于GUI的四则运算 李志强 201421123028 连永刚 201421123014 林方言 201421123023 coding 地址 https://git.coding.net/lizhi ...
- 20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算
20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 FAO项目的码云链接; 1.Git提交日志已经实现一个功能/一个bug修复的注释说明 ...
- 结对作业--基于GUI的四则运算生成器
组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址 :https://coding.net/u/zhang1995/p/wo ...
- 结对作业(1)----基于GUI的四则运算
小伙伴:201421123031 余洋 201421123044 潘志坚 题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是W ...
随机推荐
- Vue事件处理
前面的话 Vue事件监听的方式貌似违背了关注点分离(separation of concern)的传统理念.实际上,所有的Vue.js事件处理方法和表达式都严格绑定在当前视图的ViewModel上,它 ...
- cJSON 库的使用和优化
部门的产品使用自己公司研发的系统,嵌入式web服务器移植的是goahead2.5的,服务器和前端使用JSON交互,移植的cJSON库,所以这段时间对JSON的使用做个简单的笔记,cJSON.h提供出来 ...
- Connect By、Level、Start With的使用
--Connect By.Level.Start With的使用 --------------------------------------2013/11/20 Syntax 1 CONNECT B ...
- Qt 无边框拖拽实现
Qt 无边框拖拽实现 头文件定义: class TDragProxy:public QObject { Q_OBJECT public: TDragProxy(QWidget* parent); ~T ...
- 【Ubuntu 16】源码包安装Apache Httpd
源码包安装适合初学者使用. 背景信息 APR (Apache Portable Runtime) Apache可移植运行的任务(APR)项目是创建和维护软件库,为底层平台的具体实现提供了一个可预见的和 ...
- SpringMVC(一)--基础、REST、@RequestParam、POST请求乱码等
1.SpringMVC基本概述 Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一 Spring3.0 后全面超越 Struts2,成为最优秀的 ...
- python中的collections.namedtuple
简介 collections.namedtuple是一个工厂方法,它可以动态的创建一个继承tuple的子类.跟tuple相比,返回的子类可以使用名称来访问元素. 使用方法 用一个例子来介绍: > ...
- C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 今天讲讲如 ...
- struts2--Action
HTTP请求 提交 Struts2 StrutsPrepareAndExecuteFilter 核心控制器 -- 请求分发给不同Action Action书写的的三种格式 第一种 Action可以是 ...
- 数据结构-二叉树 C和C++实现
二叉树,指针域具有两个下一节点的特殊链表结构. 先来看看它的结构 (此处补图) 来看程序中需要使用到的概念: 树根:二叉树的第一个节点 子树:对于某一个节点指针域指向的节点,左指针指向的节点为左子节点 ...