第七章课后作业

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

namespace lesson7_2
{
    /// <summary>
    /// 测试工作类
    /// </summary>
    public class TestJob:Job
    {
        public TestJob(string type, string name, string description)
            : base(type, name, description)
        {
        }
        public TestJob() { }
        public int CaseNum { get; set; }
        public int FindBugs { get; set; }
        public int WorkDay { get; set; }
        //打开测试窗体
        public override void Execute(Form1 f,int index)
        {
            FrmTestExe frmtestExe = new FrmTestExe();
            frmtestExe.f = f;
            frmtestExe.index = index;
            frmtestExe.ShowDialog();
        }

        public override void Show()
        {
            MessageBox.Show("测试用例个数:" + CaseNum + "\n发现的Bug数量:" + FindBugs + "\n工作日:" + WorkDay, "指标完成情况", MessageBoxButtons.OK);
        }

    }
}

工作测试类

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

namespace lesson7_2
{
    //编码类
    public class CodeJob:Job
    {
        public int CodingLines { get; set; }
        public int Bugs { get; set; }
        public int WorkDay { get; set; }
        public CodeJob()
        {

        }
        public CodeJob(string type, string name, string description)
            : base(type, name,description)
        {

        }
        //打开编码窗体
        public override void Execute(Form1 f, int index)
        {
            FrmCodeExe frmCodeExe = new FrmCodeExe();
            frmCodeExe.f = f;
            frmCodeExe.index = index;
            frmCodeExe.ShowDialog();
        }
        public override void Show()
        {
            MessageBox.Show("有效编码行数:"+CodingLines+"\n遗留问题:"+Bugs+"\n工作日:"+WorkDay,"指标完成情况",MessageBoxButtons.OK);
        }
    }
}

编码类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lesson7_2
{
    //辅助类
    public class Employee
    {
        public List<Job> Worklist { get; set; }

        public Employee(List<Job> worklist)
        {
            this.Worklist = worklist;
        }
    }
}

辅助类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lesson7_2
{
    public abstract class Job
    {
        //工作类型
        public string Type { get; set; }
        //工作名称
        public string Name{ get; set; }
        //描述
        public string Description { get; set; }

        public Job(string type, string name, string description)
        {
            this.Type = type;
            this.Name = name;
            this.Description = description;
        }
        public Job()
        {
        }
        //执行
        public abstract void Execute(Form1 f, int index);

        public abstract void Show();
    }
}

Job类

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 lesson7_2
{
    public partial class Form1 : Form
    {
       public  Employee emps;
        public Form1()
        {
            InitializeComponent();
            Init();
        }
        /// <summary>
        /// 绑定初始值
        /// </summary>
        public void Init()
        {
            List<Job> joblist = new List<Job>();
            joblist.Add(new CodeJob("编码","编码","实现购物车模块"));
            joblist.Add(new CodeJob("编码", "编码基类", "完成项目基类编码"));
            joblist.Add(new TestJob("测试", "压力测试", "测试项目实现模块"));

            emps = new Employee(joblist);
            this.dgvlist.AutoGenerateColumns = false;
            this.dgvlist.DataSource = emps.Worklist;

        }
        /// <summary>
        /// 绑定dgv
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tmsiExecute_Click(object sender, EventArgs e)
        {
            int index = this.dgvlist.CurrentRow.Index;
            emps.Worklist[index].Execute(this,index);
        }
        /// <summary>
        /// 显示完成情况
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 完成情况ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int index = this.dgvlist.CurrentRow.Index;
            emps.Worklist[index].Show();
        }
    }
}

主窗体

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 lesson7_2
{
    public partial class FrmTestExe : Form
    {
        TestJob testjob = new TestJob();
        public FrmTestExe()
        {
            InitializeComponent();
        }

        public int index;
        public Form1 f;
        //显示员工工作情况
        private void btninsert_Click(object sender, EventArgs e)
        {
            bool isError = false;
            try
            {
                ((TestJob)f.emps.Worklist[index]).FindBugs = int.Parse(txtbugcount.Text);
                ((TestJob)f.emps.Worklist[index]).CaseNum = int.Parse(txtcecount.Text);
                ((TestJob)f.emps.Worklist[index]).WorkDay = int.Parse(txtday.Text);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
                isError = true;
            }
            if (!isError)
            {
                MessageBox.Show("提交成功!", "提示");
                this.Close();
            }
        }
        /// <summary>
        /// 取消
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnclear_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

测试窗体

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 lesson7_2
{
    public partial class FrmCodeExe : Form
    {
        CodeJob job = new CodeJob();
        public FrmCodeExe()
        {
            InitializeComponent();
        }

        public int index;
        public Form1 f;
        //显示员工工作情况
        private void btninsert_Click(object sender, EventArgs e)
        {

            bool isError = false;
            try
            {
                ((CodeJob)f.emps.Worklist[index]).Bugs =int.Parse(txtquestion.Text);
                ((CodeJob)f.emps.Worklist[index]).CodingLines = int.Parse(txtrows.Text);
                ((CodeJob)f.emps.Worklist[index]).WorkDay = int.Parse(txtdays.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                isError = true;

            }
            if (!isError)
            {
                MessageBox.Show("提交成功!", "提示");
                this.Close();
            }
        }
        /// <summary>
        /// 取消
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnclear_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

编码窗体

时间: 2024-10-10 18:24:36

第七章课后作业的相关文章

第七章 课后习题P206

第七章 课后习题P206 原文地址:https://www.cnblogs.com/chouqiuqiu/p/8857920.html

第二章 课后作业 2.82,2.90

课后作业:2.90,2.82,3.55,3.62 2.90: A: 格式    SEEEEEEE    EMMMMMMM    MMMMMMMM    MMMMMMMM pi的二进制数表示为:0 10000000 10010010000111111101011, S: 为0,是个正数.       E:为 10000000  转为10进制为128,128-127=1,即实际指数部分为1.       M:为 10010010000111111101011. 这里,在底数左边省略存储了一个1,使用

《计算机科学导论》第四章课后作业解答(个人版)

1.逻辑运算和算术运算有什么区别? 算术运算就是平常我们所用的加减乘除,而逻辑运算是在二进制位上进行非.与.或和异或运算,逻辑运算中的二进制位只有两种状态:0(假)和1(真),结果中的二进制位也只有这两种状态. 4.解释“溢出”这个词. 当我们进行计算机数字中的算术运算时,要记住每个数字和结果应该在分配的二进制位的定义范围之内.若计算结果无法用被分配的二进制位数来正确表示时,该结果出现溢出. 5.在浮点数的加法运算中,怎样调整指数不同的数的表示方法? 在运算中先以某个数的指数为标准,通过去规范化

《计算机科学导论》第二章课后作业解答(个人版)

1.定义一个数字系统. 数字系统定义了如何用独特的符号表示一个数字.在不同的系统中,数字有不同的表示方法 2.辨析位置化和非位置化数字系统. 位置化数字系统中,数字中符号所占据的位置决定了其表示的值:非位置化数字系统中,符号所占用的位置通过与其值无关——每个符号的值都是固定的. 3.定义位置化数字系统中的底或基数.位置化数字系统中底与符号的数量有什么关系? 底与位置化数字系统中符号所表示的值有关.位置化数字系统中底与符号的数量相同. 4.简述十进制系统.为什么称作decimal?该系统的底是多少

第五章课后作业

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 Lesson5_1 { public partial

S2T40.第四章.课后作业.20170407

简答题4:  简答题4效果图如下: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 简答题5: 简答题5效果图如下:

《计算机科学导论》第三章课后作业解答(个人版)

1.说出5种计算机可以处理的数据. 数字.文本.音频.图像和视频. 2.位模式的长度如何与其能表示的符号数量相关? 若位模式的长度为n,则其能表示的符号数量为2n. 3.位图方法是如何以位模式来表示一个图像的? 一张图像由模拟数据组成,数据密度(色彩)因空间变化,意味着数据需要采样.样本被称为像素,换言之,整个图像被分成小的像素,每个像素有单独的密度值,而该值由位模式表示. 4.矢量图方法优先于位图方法的优点是什么?其缺点又是什么? 矢量图图像编码方法并不存储每个像素的位模式.一个图像被分解成几

《计算机科学导论》第一章课后作业解答(个人版)

1.定义一个基于图灵模型的计算机. 这是一种图灵设想的通用计算设备,所有的计算都可以在这种设备上运行.通过给这种计算机输入数据,计算机中的程序就可以指导计算机来给数据进行处理,处理完后输出结果. 2.定义一个基于冯·诺伊曼模型的计算机. 基于冯·诺伊曼模型的计算机由存储器.算术逻辑单元.控制单元和输入/输出单元组成.存储器用来存储数据和程序:算术逻辑单元用来进行计算和逻辑运算:控制单元对该计算机内的子系统进行控制:输入/输出于从外部接收输入数据和程序以及将计算机的处理结果输出到计算机外部. 3.

第六章课后作业

*6.24 T_seek = 3 ms T_maxrotate = 60*1000/12000 ms = 5 ms T_avgrotate = 0.5*T_maxrotate = 2.5 ms T_transfer = T_maxrotate/500 = 0.01 ms T = T_seek + T_avgrotate + T_transfer = 5.51 ms