# C#程序设计习题Week_9(西安交通大学)

C#程序设计习题Week_9(西安交通大学)

所有题目解答源文件,可以在我的主页中资源里面下载(审核需要一点时间),我会设置成免费,但是7天以后csdn可以自定义价格,望周知。
也可以在github上下载

一、

完成一个小学生加减乘法训练软件。具体要求如下:

  1. 界面自行设计。

  2. 程序运行时,随机生成5道题目的运算,加、减、乘(即随机处理)。

  3. 当用户做完题目提交时,若用户答案正确,则在用户给出的答案后标记绿色(例如,给让文本框显示绿色),否则红色标记。

  4. 显示用户的总得分,每道题20分。

(下图仅供参考)
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Week_9_q1
{
    public partial class Form1 : Form
    {
        private int fin_score;
        private Color c_r = Color.Red;
        private Color c_g = Color.Green;
        private Color c_w = Color.White;
        private string[] opr = new string[] {"+","-","*","/" };
        private string[] s_q = new string[5];
        private int[] ans_all = new int[5];
        private Random r_n = new Random();
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox6_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox5_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox8_TextChanged(object sender, EventArgs e)
        {

        }

        private void Set_q_Click(object sender, EventArgs e)
        {
            for(int i = 0; i < 5; i++)
            {
                fin_score = 0;
                a1.Clear();
                a2.Clear();
                a3.Clear();
                a4.Clear();
                a5.Clear();
                Score.Clear();
                int[] op_num =new int[] { r_n.Next(0, 4) ,r_n.Next(0,100),r_n.Next(0,100)};
                s_q[i] = Convert.ToString(op_num[1]) + opr[op_num[0]] + Convert.ToString(op_num[2]);
                if (op_num[0] == 0)
                {
                    ans_all[i] = op_num[1] + op_num[2];
                }
                else if (op_num[0] == 1)
                {
                    ans_all[i] = op_num[1] - op_num[2];
                }
                else if (op_num[0] == 2)
                {
                    ans_all[i] = op_num[1] * op_num[2];
                }
                else
                {
                    ans_all[i] =op_num[1] / op_num[2];
                }
                q1.Text = s_q[0];
                q2.Text = s_q[1];
                q3.Text = s_q[2];
                q4.Text = s_q[3];
                q5.Text = s_q[4];
            }
        }

        private void Score_q_Click(object sender, EventArgs e)
        {
            if (a1.Text == Convert.ToString(ans_all[0]))
            {
                a1.BackColor = c_g;
                fin_score += 20;
            }
            else
            {
                a1.BackColor = c_r;
            }
            if (a2.Text == Convert.ToString(ans_all[1]))
            {
                a2.BackColor = c_g;
                fin_score += 20;
            }
            else
            {
                a2.BackColor = c_r;
            }
            if (a3.Text == Convert.ToString(ans_all[2]))
            {
                a3.BackColor = c_g;
                fin_score += 20;
            }
            else
            {
                a3.BackColor = c_r;
            }
            if (a4.Text == Convert.ToString(ans_all[3]))
            {
                a4.BackColor = c_g;
                fin_score += 20;
            }
            else
            {
                a4.BackColor = c_r;
            }
            if (a5.Text == Convert.ToString(ans_all[4]))
            {
                a5.BackColor = c_g;
                fin_score += 20;
            }
            else
            {
                a5.BackColor = c_r;
            }
            Score.Text =Convert.ToString(fin_score);
        }

        private void q1_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

运行结果图:

在这里插入图片描述

二、有红黄绿三盏灯。初始状态如下图:

在这里插入图片描述

当键盘输入大写字母S时,三种灯的颜色循环显示。

当红灯亮时,其它两盏灯灰色;当黄灯亮时,其它两盏灯灰色;当绿灯亮时,其它两盏灯灰色。

当键盘输入大写字母E时,循环显色暂停。

在这里插入图片描述

选择一种控件,来显示此时按下的“键”。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Week_9_q2
{
    public partial class Form1 : Form
    {
        private string k_d="Q";
        private int i = 0;
        private Color c_r = Color.Red;
        private Color c_g = Color.Green;
        private Color c_y = Color.Yellow;
        private Color c_gy = Color.Gray;
        private void c_change(int i)
        {
            if (i % 3 == 0)
            {
                c1.BackColor = c_r;
                c2.BackColor = c_gy;
                c3.BackColor = c_gy;
            }
            else if (i % 3 == 1)
            {
                c1.BackColor = c_gy;
                c2.BackColor = c_y;
                c3.BackColor = c_gy;
            }
            else
            {
                c1.BackColor = c_gy;
                c2.BackColor = c_gy;
                c3.BackColor = c_g;
            }
        }
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            i += 1;
            c_change(i);
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void c1_TextChanged(object sender, EventArgs e)
        {

        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {

        }

        private void c1_KeyPress(object sender, KeyPressEventArgs e)
        {
        }

        private void c1_KeyDown(object sender, KeyEventArgs e)
        {
            k_d = Convert.ToString(e.KeyCode);
            k_p.Text = k_d;
            if (k_d == "S")
            {
                timer1.Enabled = true;
            }
            else if (k_d == "E")
            {
                timer1.Enabled = false;
            }
        }
    }
}

运行结果图:
在这里插入图片描述

三、两种方式实现选课列表窗体(课程名称不限)。

1.listbox控件。

在“添加课程”文本框里的输入,点击添加按钮,添加进“已选课列表listbox”。

在“已选课列表listbox”中选中1门或多门课程,课程名称将显示在"所选的课程"的文本框里。

点击"删除"后,已选列表中将移除选中的1门或多门课程。
2. combobox控件

在“添加课程”文本框里的输入,点击添加按钮,添加进“已选课列表combobox”。

在“已选课列表combobox”中选中1门课程,课程名称将显示在"所选的课程"的文本框里。

点击"删除"后,已选列表中将移除选中的1门课程。
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Week9_q3_fin_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Add(Add_subject.Text);
            Add_subject.Text = "";
        }

        private void listBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedItem != null)
            {
                Del_subject.Items.Add(listBox1.SelectedItem);

            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            for(int i = 0; i < Del_subject.Items.Count; i++)
            {
                listBox1.Items.Remove(Del_subject.Items[i]);
            }
            Del_subject.Items.Clear();
        }

        private void Add_combob_Click(object sender, EventArgs e)
        {
            comboBox1.Items.Add(Add_combo.Text);
            Add_combo.Text = "";
        }

        private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            if (comboBox1.SelectedItem != null)
            {
                del_combo.Text = comboBox1.SelectedItem.ToString();
            }
        }

        private void del_combob_Click(object sender, EventArgs e)
        {
            comboBox1.Items.Remove(del_combo.Text);
            del_combo.Text = "";
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}

运行结果为:
在这里插入图片描述

四、

编程实现如下图的用户注册界面。

点击提交按钮:

若密码和确认密码不相同,显示密码不同。

若邮箱不合规范(上网查邮箱名称的规范,最简单的是检查是否有@符)。

若都正确,出现MessageBox框,显示如下内容:

该注册成功!用户名为XXX(界面上输入的),年龄为XX,邮箱为XX,性别为XX,爱好有XX、XX。

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Week9_q4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void checkBox3_CheckedChanged(object sender, EventArgs e)
        {

        }
        private bool vagri(char ori,string pan)
        {
            bool ipp = true;
            for(int i = 0; i < pan.Length; i++)
            {
                if (ori == pan[i])
                {
                    return false;
                }
            }
            return ipp;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string gender;
            string hobby = "";
            if (music.Checked == true)
            {
                hobby += "音乐";
            }
            if (singing.Checked == true)
            {
                hobby += "唱歌";
            }
            if (gaming.Checked == true)
            {
                hobby += "游戏 ";
            }
            if (reading.Checked == true)
            {
                hobby += "读书";
            }
            if (male.Checked == true)
            {
                female.Checked = false;
                gender = "男";
            }
            else
            {
                female.Checked = true;
                gender = "女";
            }
            if (password.Text != password_1.Text)
            {
                MessageBox.Show("密码不同!");
            }
            else if (vagri('@', emial.Text))
            {
                MessageBox.Show("邮箱不合法!");
            }
            else
            {
                string print = string.Format("注册成功!\n\t用户名为{0},年龄为{1},性别为{2},爱好有{3}", username.Text, age.Value, gender, hobby);
                MessageBox.Show(print);
            }
        }

        private void username_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

运行结果为:
在这里插入图片描述
在这里插入图片描述

有任何问题欢迎留言,第一次学习c#图形界面编程,有不足之处欢迎指正。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值