zoukankan      html  css  js  c++  java
  • 四则运算

    private void Form1_Load(object sender, EventArgs e)
            {
                ReadXml();
                CreateExpressionAndResult();
            }
    
            protected override void OnClosing(CancelEventArgs e)
            {
                SaveXml();
                base.OnClosing(e);
            }
    

    在程序启动的时候从sml文件中读取数据,设置一下难度,用户名等信息。

    private void SaveXml()
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "Setting.xml");
                xmlDoc.RemoveAll();
    
                XmlElement xe = xmlDoc.CreateElement("saveData");
                xe.SetAttribute("userName", m_userName);
                xe.SetAttribute("difficulty", m_difficulty);
                xe.SetAttribute("totalCount", m_totalCount.ToString());
                xe.SetAttribute("correctCount", m_correctCount.ToString());
    
                xmlDoc.AppendChild(xe);
                xmlDoc.Save(AppDomain.CurrentDomain.BaseDirectory + "Setting.xml");
            }
    
            private void ReadXml()
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(AppDomain.CurrentDomain.BaseDirectory + "Setting.xml");
    
                XmlElement xe = (XmlElement)xmlDoc.SelectSingleNode("saveData");
                m_userName = xe.GetAttribute("userName");
                m_difficulty = xe.GetAttribute("difficulty");
                m_totalCount = int.Parse(xe.GetAttribute("totalCount"));
                m_correctCount = int.Parse(xe.GetAttribute("correctCount"));
                m_wrongCount = m_totalCount - m_correctCount;
    
            }
    

     写入和读取xml文件的具体方法步骤

    private void CreateExpressionAndResult()
            {
                m_expression = CalculateTest.Program.CreateExpression(m_difficulty);
                label1.Text = m_expression + " = ";
                m_result = CalculateTest.Program.Calculate(m_expression);   
            }
    

     用旧项中的方法生成表达式

    private void button1_Click(object sender, EventArgs e)
            {
                string messageText;
    
                if (resultInput.Text == m_result.ToString())
                {
                    messageText = "回答正确!";
                    m_correctCount++;
                }
                else
                {
                    messageText = "回答错误!正确答案是 " + m_result.ToString() ;
                    m_wrongCount++;
                }
    
                m_totalCount++;
                DialogResult dr = MessageBox.Show(messageText, "提示:");
    
                if (dr == DialogResult.OK)
                {
                    CreateExpressionAndResult();
                    resultInput.Text = "";
                }
            }
    

    弹出了一个提示用来显示回答是否是正确,而且能更新答题的总数,正确题数和错误的题数,晴空input并做下一道题目。

    string m_userName
            {
                get
                {
                    return userNameLabel.Text;
                }
    
                set
                {
                    userNameLabel.Text = value;
                }
            }
    
            string m_difficulty
            {
                get
                {
                    return difficultyLabel.Text;
                }
    
                set
                {
                    difficultyLabel.Text = value;
                }
            }
    
            int m_totalCount
            {
                get
                {
                    return int.Parse(totalCountLabel.Text);
                }
    
                set
                {
                    totalCountLabel.Text = value.ToString();
                }
            }
    
            int m_correctCount
            {
                get
                {
                    return int.Parse(correctCountLabel.Text);
                }
    
                set
                {
                    correctCountLabel.Text = value.ToString();
                }
            }
    
            int m_wrongCount
            {
                get
                {
                    return int.Parse(wrongCountLabel.Text);
                }
    
                set
                {
                    wrongCountLabel.Text = value.ToString();
                }
            }
    

     通过变量的赋值来更新界面上所显示的内容。

    if (difficulty == "Easy")
                {
                    oplist = new List<char>() { '+', '-', '+', '-' };
                }
                else
                {
                    oplist = new List<char>() { '+', '-', '*', '/' };
                }
    

     如果是简单的,就只有加减乘除。

    if (difficulty == "Difficult")
                {
                    int pos;
                    index = expList.IndexOf("/");
    
                    if (-1 == index)
                    {
                        pos = position[ran.Next(3)];
                    }
                    else
                    {
                        if (1 == index)
                        {
                            position.RemoveAt(1);
                        }
                        else if (3 == index)
                        {
                            position.RemoveAt(2);
                        }
    
                        pos = position[ran.Next(position.Count())];
                    }
    
                    expList.Insert(pos, "(");
                    expList.Insert(pos + 4, ")");
                }
    

     难度是困难时,插入了括号,枚举括号的位置。

    结对伙伴:李俞寰

  • 相关阅读:
    iOS中的两种主要架构及其优缺点浅析
    iOS
    iOS开发人员不容错过的10大工具
    安装CocoaPods报错
    把你唱的歌用乐器表达出来

    String.Split函数
    四部和声
    SerializeField和HideInInspector
    十年许嵩雅俗共赏
  • 原文地址:https://www.cnblogs.com/duq11/p/5954789.html
Copyright © 2011-2022 走看看