结对实验---基于GUI的四则运算
详细代码:https://git.coding.net/wangluo24/NO.2.git
结对伙伴:吕志哲(201421123021)
&本人.许明涛 201421123024
一、题目要求
将第一次作业中的四则运算程序做成GUi界面的形式展示出来,要求在下面的功能需求中实现两个:
- 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
- 有计时功能,能显示用户开始答题后的消耗时间。
- 界面支持中文简体/中文繁体/英语,用户可以选择一种
二、实验平台
vs2010
三、设计实现
四则运算程序是C编写的,要使用vs做成GUI,我们先把程序转化成c#来做,c#的GUI制作有些类似于java。针对题目要求,
我们小组完成了要求二和要求三
导向图:

四、部分代码展示
生成题目代码:
Random ran = new Random();
p = ran.Next() + ;
q = ran.Next() + ;
i = ran.Next() + ;
j = ran.Next() + ;
x = ran.Next() + ;
y = ran.Next() + ;
int k = ran.Next();
while (i > j && x > y)
{
i = ran.Next() + ;
j = ran.Next() + ;
x = ran.Next() + ;
y = ran.Next() + ; ;
} switch (k)
{
case : this.label2.Text = p + " +" + q;
z = p + q;
b = z.ToString(); break; case :
this.label2.Text = p + " -" + q;
z = p - q;
b = z.ToString(); break; case : this.label2.Text = p + "x" + q;
z = p * q;
b = z.ToString(); break; case :
this.label2.Text = p + "÷" + q;
z = p / q;
b = z.ToString();
break; ; case :
f = i * y + j * x;
g = j * y;
this.label2.Text = i + "/" + j + " +" + x + "/" + y;
b = f + "/" + g;
break; ; case :
f = i * y - j * x;
g = j * y;
this.label2.Text = i + "/" + j + " -" + x + "/" + y;
b = f + "/" + g;
break; case :
this.label2.Text = i + "/" + j + " x" + x + "/" + y;
f = i * x;
g = j * y;
b = f + "/" + g;
break; case : this.label2.Text = i + "/" + j + "÷" + x + "/" + y;
f = i * y;
g = j * x;
b = f + "/" + g;
break;
中文/繁体/英文转化:
private void button3_Click(object sender, EventArgs e)
{ ... if (flag == "")
{dr = MessageBox.Show("题目回答完毕");
MessageBox.Show("总共答错:" + h + "题"+","+"耗时"+sum);}
else if (flag == "")
{
dr = MessageBox.Show("題目回答完畢");
MessageBox.Show("總共答錯:" + h + "," + "耗時" + sum);
} else if ((flag == ""))
{
dr = MessageBox.Show("The end");
MessageBox.Show("Total wrong:" + h + "," + "Time consuming" + sum);
} private void button2_Click(object sender, EventArgs e)
{ string c = this.textBox2.Text; if (c == b)
{
this.label3.Text = "回答正确";
}
else
{
this.label3.Text = "回答错误,正确答案为:" + b;
h++;
}
string w = this.label3.Text;
if ((w == "回答正确") &&(flag =="")) this.label3.Text = "回答正确";
else if((w == "回答错误,正确答案为:" + b) && (flag=="")) this.label3.Text = "回答错误,正确答案为:" + b;
else if((w == "回答正确") && (flag=="")) this.label3.Text = "回答正確";
else if ((w == "回答错误,正确答案为:" + b) && (flag=="")) this.label3.Text = "回答錯誤,正確答案為:" + b;
else if ((w == "回答正确") && (flag =="")) this.label3.Text = "Right";
else if ((w == "回答错误,正确答案为:" + b) && (flag =="")) this.label3.Text = "Wrong,right is:" + b;
else this.label3.Text = "null";
} private void Form1_Load(object sender, EventArgs e)
{ } private void button4_Click(object sender, EventArgs e)
{
flag = "";
this.label5.Text="时间";
this.label1.Text="答题数";
this.button1.Text="开始答题";
this.label4.Text="题目";
this.button2.Text="判断";
this.button3.Text = "下一题";
this.label7.Text = "语言"; } private void button5_Click(object sender, EventArgs e)
{
flag ="";
this.label5.Text = "時間";
this.label1.Text = "答題數";
this.button1.Text = "開始答題";
this.label4.Text = "題目";
this.button2.Text = "判斷";
this.button3.Text = "下壹題";
this.label7.Text = "語言"; } private void button6_Click(object sender, EventArgs e)
{
flag = "";
this.label5.Text = "Time";
this.label1.Text = "Answer number";
this.button1.Text = "Starting to work";
this.label4.Text = "Question";
this.button2.Text = "Judge";
this.button3.Text = "Next question";
this.label7.Text = "Language";
计时功能:
Timer time = new Timer();
Stopwatch sw= new Stopwatch();
TimeSpan ts; private void button1_Click(object sender, EventArgs e)
{
time.Tick += new EventHandler(timer1_Tick);
time.Interval = ;
sw.Start();
time.Start(); ..} private void button3_Click(object sender, EventArgs e)
{
m--;
if (m == )
{
sw.Stop();
time.Stop(); string sum = this.label6.Text;
this.label6.Text = string.Format("{0}:{1}:{2}:{3}", , , , ); ... } private void timer1_Tick(object sender, EventArgs e)
{
ts = sw.Elapsed;
this.label6.Text = string.Format("{0}:{1}:{2}:{3}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / );
}
五、GUI测试
三种语言转化



以英文为例做题:

题目做完后:

显示做题时间:

六、PSP表格
|
PSP2.1 |
Personal Software Process Stages |
Estimated time(h) |
actual time(h) |
|
Planning |
计划 |
1 |
1.2 |
|
· Estimate |
估计这个任务需要多少时间 |
10 |
18 |
|
Development |
开发 |
8 |
12 |
|
· Analysis |
需求分析 (包括学习新技术) |
1 |
2 |
|
· Design Spec |
生成设计文档 |
0.5 |
0.5 |
|
· Design Review |
设计复审 |
0.5 |
0.6 |
|
· Coding Standard |
代码规范 |
0.5 |
0.3 |
|
· Design |
具体设计 |
1.5 |
1.5 |
|
· Coding |
具体编码 |
6 |
7.5 |
|
· Code Review |
代码复审 |
0.5 |
0.8 |
|
· Test |
测试(自我测试,修改代码,提交修改) |
1.5 |
1.6 |
|
Reporting |
报告 |
1 |
1 |
|
· |
测试报告 |
0.5 |
0.5 |
|
· |
计算工作量 |
1 |
1 |
|
· |
并提出过程改进计划 |
1 |
1 |
七、总结
这次的实验对我们还是有点挑战的,之前的代码用的是C,而对C怎么做GUI还不太熟悉,查看了很多网上成品的用VS做的图形界面,最后决定用C#制作
在做之前对于c#也不是很了解,所以在开始的时候有点无从下手,需要一步一步查阅,随着逐渐了解,发现c#和java有很多共通之处,GUi的制作也是根据要求
在做好的各个控件下进行编程,过程有些崎岖,但经过两个人共同的努力,还是成功制作出来了,虽然界面不大美观==!,,但是这次还是很有收获的。

汉堡包式评价,
(先来一片面包):这次我两之前编程都是用的C,所以我们就如何用C程序做gui商讨了一下,因为此前都没做过,也有想过重新做一个熟悉的java的四则运算程序
最后还是决定先尝试看看
(在把肉放上):我的队友对于java制作GUI相对来说还是比较熟悉的,他对于编程的整体的思路还是很明确的,他做事情比较执着,一个模块没搞明白,会专注于那个模块,这样有助于增加思考时间,提高思维能力,然而相对的效率就不是那么迅速了。
(再来一片面包):在我编程相应功能的时候,我有什么想不通的东西,就会问他,编程的时候总会有你怎么都觉得对但怎么都不对的时候,所谓旁观者清,有个伙伴帮你指导,效率可不是1+1=2那么简单,像这样结对编程比一个人顺利很多。
结对实验---基于GUI的四则运算的更多相关文章
- 结对作业--基于GUI的四则运算生成器
组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址 :https://coding.net/u/zhang1995/p/wo ...
- 结对作业-基于GUI的四则运算
一.需求分析 1.题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web ...
- 基于GUI的四则运算
基于GUI的四则运算 李志强 201421123028 连永刚 201421123014 林方言 201421123023 coding 地址 https://git.coding.net/lizhi ...
- 结队编程--基于GUI的四则运算
coding地址 https://git.coding.net/lizhiqiang0x01/GUI-sizeyunsuan.git 李志强 201421123028 连永刚 201421123014 ...
- 结对作业(1)----基于GUI的四则运算
小伙伴:201421123031 余洋 201421123044 潘志坚 题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是W ...
- 结对作业:基于GUI实现四则运算
1)Coding.Net项目地址:https://git.coding.net/day_light/GUIszysLL.git 2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的 ...
- 结队编程-基于gui的四则运算生成器
成员:卢少锐 201421123027.刘存201421033023 coding.net地址 1.需求分析:除了实现四则运算的功能外,还添加了计时器功能和语言选择功能 2.程序设计:这次作业是基于上 ...
- 结对编程1 (四则运算基于GUI)
https://git.coding.net/Luo_yujie/sizeyunsuan.app.git 201421123034 201421123032 1. 需求分析 这次作业新引用了语言选择, ...
- 结对作业1----基于GUI的四则运算生成器
组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址:代码点这里 需求分析: 1.除了整数的四则运算还要支持分数的四则运算: ...
随机推荐
- java中List Array相互转换
List to Array List 提供了toArray的接口,所以可以直接调用,转为object型数组 List<String> list = new ArrayList<Str ...
- 自适应Simpson积分
自适应Simpson积分 作用 如标题所示,这玩意就是当你不会微积分的时候来求积分的. 总所周知,积分的定义就是函数的某一段与坐标轴之间的面积. 那么,自适应Simpson积分就是一种可以再某些精度下 ...
- 升级项目到.NET Core 2.0,在Linux上安装Docker,并成功部署
概述 容器,顾名思义是用来存放并容纳东西的器皿: 而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共 ...
- mysql 5.7.19 安装
下载 官方下载地址,要注意的是要下载的是 MySQL Community Server.根据系统选择相应压缩包,这个是 win 下安装.选择 Zip Archive 安装 将下载好的压缩包解压到想要安 ...
- 关于Java中Eclipse运行卡顿、未响应,Cpu100%的快速处理办法
1.与近几日我以及我的同事们遇到一件非常奇怪的问题,我们目前在实现一个小程序,但是不知为何,Eclipse突然变得很卡,以为是小问题最后闹到重启都没解决,于是 我开始查找造成这个现象的原因,发现这个程 ...
- 对lea与mov的理解
lea不止可以完成mov的功能,他还可以加载存储器的有效地址,即D<-&S 借鉴深度理解计算机系统里: 指令Leal实际上是movl指令的变形.他的指令形式是从存储器读数据到寄存器,但实 ...
- RoutePrefix和Route 路由前缀
使用应用到某个控制器中所有操作的路由前缀来批注该控制器. web api /// <summary> ////// </summary> [RoutePrefix(" ...
- 【Ubuntu 16】深入Ubuntu文件系统
Ubuntu文件系统的设计目的就是把文件有序地组织在一起,提供一个从逻辑上组织文件的文件系统.除了文件的组织外,文件安全也是文件系统的设计要点,所以文件的访问权限是文件系统不可缺少的组成部分 Ubun ...
- 基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)
先从后台讲起 1.表的设计 parent_id就是另外一条记录的id,无限极表设计可以参考 http://m.blog.csdn.net/Rookie_Or_Veteran/article/deta ...
- 【渗透课程】第一篇-Web渗透需要接触的语言
---恢复内容开始--- 上一篇我们讲过了,Web渗透的基本原理,在原理中我们也提到了Web应用程序(脚本语言),本章就谈到了Web渗透要涉及的语言. 涉及语言: 1.html:是前段语言的其中一个, ...