设计思路:

用WPF窗体设计,在第一个数和第二个数的文本框中输入数值,单击录题按钮,数值保存在n1,n2文档中,把要做的题都保存完后,单击开始按钮,开始做题,每做完一道题,按Enter键,进入下一题,同时提示回答是否正确。如果在时间内做完题就单击结束按钮,弹出对话框“答题结束” 总计,正确的个数及正确率显示出来。

MainWindow.xaml设计为:

代码为:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Data;
  8. using System.Windows.Documents;
  9. using System.Windows.Input;
  10. using System.Windows.Media;
  11. using System.Windows.Media.Imaging;
  12. using System.Windows.Navigation;
  13. using System.Windows.Shapes;
  14. using System.IO;
  15.  
  16. namespace xiaoshitou
  17. {
  18. /// <summary>
  19. /// MainWindow.xaml 的交互逻辑
  20. /// </summary>
  21. public partial class MainWindow : Window
  22. {
  23. public MainWindow()
  24. {
  25. InitializeComponent();
  26. }
  27. public static int Count = ;//总计的个数
  28. public static int right = ;//正确的个数
  29. int n = ;
  30. private void button1_Click(object sender, RoutedEventArgs e)
  31. {
  32. label4.Content = "+";
  33.  
  34. }
  35.  
  36. private void button2_Click(object sender, RoutedEventArgs e)
  37. {
  38. label4.Content = "-";
  39.  
  40. }
  41.  
  42. private void button3_Click(object sender, RoutedEventArgs e)
  43. {
  44. label4.Content = "-";
  45. ;
  46. }
  47.  
  48. private void button4_Click(object sender, RoutedEventArgs e)
  49. {
  50. label4.Content = "-";
  51.  
  52. }
  53.  
  54. private void button5_Click(object sender, RoutedEventArgs e)
  55. {
  56.  
  57. StreamWriter n1 = File.AppendText("n1.txt");//第一个数存入第一文档
  58. n1.WriteLine(textBox1.Text);
  59. n1.Close();
  60. StreamWriter n2 = File.AppendText("n2.txt");//第二个数存入第二个文档
  61. n2.WriteLine(label4.Content);
  62. n2.Close();
  63. StreamWriter n3 = File.AppendText("n3.txt");//结果存入第三个文档
  64. n3.WriteLine(textBox2.Text);
  65. n3.Close();
  66. textBox1.Clear();
  67. textBox2.Clear();
  68. textBox3.Clear();
  69. MessageBox.Show("录题成功");
  70. }
  71.  
  72. private void button6_Click(object sender, RoutedEventArgs e)
  73. {
  74.  
  75. string[] n1 = new string[];
  76. n1 = File.ReadAllLines("n1.txt");//数值一的文档
  77. textBox1.Text = n1[n];
  78. string[] n2 = new string[];
  79. n2 = File.ReadAllLines("n2.txt");
  80. label4.Content = n2[n];
  81. string[] n3 = new string[];
  82. n3 = File.ReadAllLines("n3.txt");
  83. textBox2.Text = n3[n];
  84. n++;
  85. }
  86.  
  87. private void button7_Click(object sender, RoutedEventArgs e)
  88. { textBox3.IsEnabled = false;
  89. MessageBox.Show("运算结束!");
  90. textBox4.Text = Count.ToString();//题目总数
  91. textBox5.Text =right.ToString();//正确的个数
  92. textBox6.Text = ((right / (double)(Count)) * ).ToString() + "%";//正确率
  93. }
  94.  
  95. private void textBox3_KeyDown(object sender, KeyEventArgs e)
  96. {
  97. int a = int.Parse(textBox1.Text);
  98. int b = int.Parse(textBox2.Text);
  99. Char c = Convert.ToChar(label4.Content);
  100. Class1 con = new Class1();
  101. con.js(a, b, c);
  102. if (e.Key == Key.Enter)
  103. {
  104. if (con.y1 == int.Parse(textBox3.Text))
  105. {
  106. MessageBox.Show("回答正确!下一题请按开始按钮!");
  107. right++;
  108. Count++;
  109. }
  110.  
  111. else
  112. {
  113.  
  114. MessageBox.Show("回答错误!下一题请按开始按钮!");
  115. Count++;
  116.  
  117. }
  118. //清空
  119. textBox3.Clear();
  120. textBox1.Clear();
  121. textBox2.Clear();
  122.  
  123. }
  124. }
  125. }
  126. }

Class.cs代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace xiaoshitou
  7. {
  8. class Class1
  9. {
  10. public int result;
  11. public int y1
  12. {
  13. get
  14. {
  15. return result;
  16. }
  17. }
  18.  
  19. public int js(int n1, int n2, char mark)
  20. {
  21. if (mark == '+')
  22. {
  23. return result = n1 + n2;
  24. }
  25. else if (mark == '-')
  26. {
  27. return result = n1 - n2;
  28. }
  29. else if (mark == '*')
  30. {
  31. return result = n1 * n2;
  32. }
  33. else if (mark == '/')
  34. {
  35. return result = n1 / n2;
  36. }
  37. return result;
  38. }
  39. }
  40. }

运行过程的各部分显示为以下图片:

WPF计算的更多相关文章

  1. C#/WPF 计算字串的真实长度,调整控件的宽度

    下面函数是经常用到的计算字串长度的方法:         private double MeasureTextWidth(String str, string fontName, double fon ...

  2. WPF 3D:MeshGeometry3D的定义和光照

    原文 WPF 3D:MeshGeometry3D的定义和光照 由于WPF计算光照会根据整个平面的方向向量,所以如果在不同面上使用同一个点可能会达到不同的光照效果.让我们用不同的定义Mesh的方法来演示 ...

  3. 【WPF学习】第三十九章 理解形状

    在WPF用户界面中,绘制2D图形内容的最简单方法是使用形状(shape)——专门用于表示简单的直线.椭圆.矩形以及多变形的一些类.从技术角度看,形状就是所谓的绘图图元(primitive).可组合这些 ...

  4. 计算照片的面积(WPF篇)

    昨天,老周突发其想地给大伙伴们说了一下UWP应用中计算照片面积的玩法,而且老周也表示会提供WPF版本的示例.所以,今天就给大伙们补上吧. WPF是集成在.net框架中,属于.net的一部分,千万不要跟 ...

  5. WPF实现强大的动态公式计算

    数据库可以定义表不同列之间的计算公式,进行自动公式计算,但如何实现行上的动态公式计算呢?行由于可以动态扩展,在某些应用场景下将能很好的解决实际问题. 1.VS2012新建一个WPF应用程序WpfApp ...

  6. WPF DEV gridcontrol 自定义计算列(TotalSummary)

    /// <summary> /// 自定义计算列 /// </summary> /// <param name="sender"></pa ...

  7. [WPF系列]-DataBinding 绑定计算表达式

            Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualWidth, Converter={Stat ...

  8. 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)

    WPF中Style的使用 Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了 ...

  9. WPF - 属性系统 - APaas(AttachedProperty as a service)

    是的,文章的题目看起来很牛,我承认. 附加属性是WPF中的一个非常重要的功能.例如在设置布局的过程中,软件开发人员就常常通过DockPanel的Dock附加属性来设置其各个子元素所处的布局位置.同样地 ...

随机推荐

  1. System系统类常用方法

    System 系统类: 主要用于获取系统的属性数据. System类常用的方法: arraycopy(Object src, int srcPos, Object dest, int destPos, ...

  2. Java 8中一些常用的全新的函数式接口

    这一篇属于菜鸟级博客,只是介绍了一些在Java 8中新出现的一些很有用的接口,通过一些简单的例子加以说明,没有深入地阐述. 函数式接口 什么是函数式接口? 函数式接口,@FunctionalInter ...

  3. MySQL性能优化总结

    一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图: 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎 ...

  4. 18.tty驱动程序框架

    tty驱动程序框架 一.TTY概念解析 在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备. 1.1串口终端(/dev/ttyS*) 串口终端是使用计算机 ...

  5. SSH框架整合(全注解)

    全部jar包    目录结构  配置案例 package cn.yzu.Tbook.action; import javax.annotation.Resource; import org.apach ...

  6. PDA无线数据采集器在仓库管理系统中的应用

    条码数据采集器在仓库管理系统中的应用,条码数据采集器,顾名思义就是通过扫描货物条码,对货物进行数量分类采集,方便仓库正规化管理.条码数据采集器是现代化条码仓库管理系统中不可缺少的一部分,能提升企业的整 ...

  7. curl模拟post,get,put,delete

    安装curl:https://curl.haxx.se/download.html 测试:tomcat默认禁用put,delete返回403 GET curl -HAccept:text/plain ...

  8. Myeclipse运行报错:an out of memory error has occurred的解决方法

    不知道怎么了,重装的myeclipse2013,里边就放了一个项目,启动myeclipse就报 an out of memory error has occurred....... 一点yes就退出 ...

  9. 可变参数列表与printf()函数的实现

    问题 当我们刚开始学习C语言的时候,就接触到printf()函数,可是当时"道行"不深或许不够细心留意,又或者我们理所当然地认为库函数规定这样就是这样,没有发现这个函数与普通的函数 ...

  10. 蜻蜓FM笔试题目,求两个点的最近父节点

    这个博客写的特别好. http://blog.csdn.net/kangroger/article/details/40392925