(深入.Net平台和C#编程)第七章.上机练习.20170412
================================================实体================================================
-------------------------------------------员工类-------------------------------------------
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace SJ2.entity 8 { 9 /// <summary> 10 /// 员工类 11 /// </summary> 12 public class Empolyee 13 { 14 /// <summary> 15 /// 姓名 16 /// </summary> 17 public string Name { get; set; } 18 /// <summary> 19 /// 工作列表 20 /// </summary> 21 public List<Job> WorkList { get; set; } 22 public Empolyee(string name,List<Job> workList) 23 { 24 this.Name = name; 25 this.WorkList = workList; 26 } 27 } 28 }
Empolyee
-------------------------------------------父类工作类-------------------------------------------
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace SJ2.entity 8 { 9 /// <summary> 10 /// 工作类 11 /// </summary> 12 public abstract class Job 13 { 14 /// <summary> 15 /// 工作名称 16 /// </summary> 17 public string Name { get; set; } 18 /// <summary> 19 /// 工作类型 20 /// </summary> 21 public string Type { get; set; } 22 /// <summary> 23 /// 工作描述 24 /// </summary> 25 public string Desc { get; set; } 26 27 public Job(string name,string type,string desc) 28 { 29 this.Desc = desc; 30 this.Name = name; 31 this.Type = type; 32 } 33 public Job() 34 { 35 } 36 37 /// <summary> 38 /// 打开窗体 39 /// </summary> 40 public abstract void Execute(frmMain fm,int index); 41 42 /// <summary> 43 /// 打开提示框 44 /// </summary> 45 public abstract void Show(); 46 } 47 }
Job
-------------------------------------------子类测试类-------------------------------------------
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Windows.Forms; 7 8 namespace SJ2.entity 9 { 10 /// <summary> 11 /// 测试类 12 /// </summary> 13 public class CeShi:Job 14 { 15 public CeShi(string name, string type, string desc) 16 : base(name, type, desc) 17 { 18 } 19 public CeShi() 20 { 21 } 22 23 /// <summary> 24 /// 测试用例个数 25 /// </summary> 26 public int CeShiNo { get; set; } 27 28 /// <summary> 29 /// f发现的BUG数量 30 /// </summary> 31 public int BugCount { get; set; } 32 33 /// <summary> 34 /// 所需工作日 35 /// </summary> 36 public int NeedDay { get; set; } 37 38 /// <summary> 39 /// 打开测试窗体 40 /// </summary> 41 public override void Execute(frmMain fm,int index) 42 { 43 frmCeShi fcs = new frmCeShi(); 44 //传相应信息 45 fcs.fm = fm; 46 fcs.index = index; 47 fcs.ShowDialog(); 48 } 49 50 /// <summary> 51 /// 打开提示框 52 /// </summary> 53 public override void Show() 54 { 55 StringBuilder sb = new StringBuilder(); 56 sb.Append("测试用例个数:" + CeShiNo + "\n发现的BUG数量:" + BugCount + "\n工作日:" + NeedDay); 57 MessageBox.Show(sb.ToString(),"指标完成情况"); 58 } 59 } 60 }
CeShi
-------------------------------------------子类编码类-------------------------------------------
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Windows.Forms; 7 8 namespace SJ2.entity 9 { 10 /// <summary> 11 /// 编码类 12 /// </summary> 13 public class BianMa:Job 14 { 15 public BianMa(string name, string type, string desc) 16 : base(name, type, desc) 17 { 18 } 19 public BianMa() 20 { 21 } 22 23 /// <summary> 24 /// 有效编码行数 25 /// </summary> 26 public int YesRow { get; set; } 27 28 /// <summary> 29 /// 遗留问题 30 /// </summary> 31 public string Pro { get; set; } 32 33 /// <summary> 34 /// 所需工作日 35 /// </summary> 36 public int NeedDay { get; set; } 37 38 /// <summary> 39 /// 打开编码窗体 40 /// </summary> 41 public override void Execute(frmMain fm,int index) 42 { 43 frmBianMa fbm = new frmBianMa(); 44 //传相应信息 45 fbm.fm = fm; 46 fbm.index = index; 47 fbm.ShowDialog(); 48 } 49 50 /// <summary> 51 /// 打开提示框 52 /// </summary> 53 public override void Show() 54 { 55 StringBuilder sb = new StringBuilder(); 56 sb.Append("有效编码行数:" + YesRow + "\n遗留问题:" + Pro + "\n工作日:" + NeedDay); 57 MessageBox.Show(sb.ToString(), "指标完成情况"); 58 } 59 } 60 }
BianMa
================================================窗体================================================
-------------------------------------------主窗体-------------------------------------------
1 using SJ2.entity; 2 using System; 3 using System.Collections.Generic; 4 using System.ComponentModel; 5 using System.Data; 6 using System.Drawing; 7 using System.Linq; 8 using System.Text; 9 using System.Threading.Tasks; 10 using System.Windows.Forms; 11 12 namespace SJ2 13 { 14 public partial class frmMain : Form 15 { 16 public frmMain() 17 { 18 InitializeComponent(); 19 } 20 /// <summary> 21 /// 员工 22 /// </summary> 23 public Empolyee empolyee ; 24 25 private void frmMain_Load(object sender, EventArgs e) 26 { 27 Init(); 28 BangGroupBoxText(); 29 BangList(); 30 } 31 32 /// <summary> 33 /// 初始化 34 /// </summary> 35 public void Init() 36 { 37 List<Job> lj =new List<Job>(); 38 Job job = new CeShi("压力测试", "测试", "测试项目"); 39 Job job1 = new BianMa("编码", "编码", "实现购物车模块"); 40 Job job2 = new BianMa("编码基类", "编码", "完成项目基类"); 41 lj.Add(job); 42 lj.Add(job1); 43 lj.Add(job2); 44 45 46 empolyee = new Empolyee("王小毛",lj); 47 } 48 49 /// <summary> 50 /// 绑定GroupBox名字 51 /// </summary> 52 public void BangGroupBoxText() 53 { 54 gbName.Text = empolyee.Name; 55 } 56 57 /// <summary> 58 /// 绑定列表 59 /// </summary> 60 public void BangList() 61 { 62 dgvList.DataSource = empolyee.WorkList; 63 } 64 65 /// <summary> 66 /// 单击执行 67 /// </summary> 68 /// <param name="sender"></param> 69 /// <param name="e"></param> 70 private void tsmiDo_Click(object sender, EventArgs e) 71 { 72 //找到选中行的索引 73 int index = this.dgvList.CurrentRow.Index; 74 //按照添加顺序用索引找对应方法,并传本窗体和索引过去 75 empolyee.WorkList[index].Execute(this,index); 76 } 77 78 private void 完成情况ToolStripMenuItem_Click(object sender, EventArgs e) 79 { 80 int index = this.dgvList.CurrentRow.Index; 81 empolyee.WorkList[index].Show(); 82 } 83 } 84 }
frmMain
-------------------------------------------测试窗体-------------------------------------------
1 using SJ2.entity; 2 using System; 3 using System.Collections.Generic; 4 using System.ComponentModel; 5 using System.Data; 6 using System.Drawing; 7 using System.Linq; 8 using System.Text; 9 using System.Threading.Tasks; 10 using System.Windows.Forms; 11 12 namespace SJ2 13 { 14 public partial class frmCeShi : Form 15 { 16 public frmCeShi() 17 { 18 InitializeComponent(); 19 //name = fm.empolyee.WorkList[index].Name; 20 //type = fm.empolyee.WorkList[index].Type; 21 //des = fm.empolyee.WorkList[index].Desc; 22 } 23 //string name; 24 //string type; 25 //string des; 26 27 28 public frmMain fm; 29 public int index; 30 private void btnSubmit_Click(object sender, EventArgs e) 31 { 32 //按照传过来的信息更改对应内容 33 ((CeShi)fm.empolyee.WorkList[index]).NeedDay = int.Parse(txtNeedDay.Text); 34 ((CeShi)fm.empolyee.WorkList[index]).BugCount = int.Parse(txtBugCount.Text); 35 ((CeShi)fm.empolyee.WorkList[index]).CeShiNo = int.Parse(txtCeShiNo.Text); 36 37 MessageBox.Show("提交成功"); 38 this.Close(); 39 } 40 41 42 } 43 }
frmCeShi
-------------------------------------------编码窗体-------------------------------------------
1 using SJ2.entity; 2 using System; 3 using System.Collections.Generic; 4 using System.ComponentModel; 5 using System.Data; 6 using System.Drawing; 7 using System.Linq; 8 using System.Text; 9 using System.Threading.Tasks; 10 using System.Windows.Forms; 11 12 namespace SJ2 13 { 14 public partial class frmBianMa : Form 15 { 16 public frmBianMa() 17 { 18 InitializeComponent(); 19 } 20 21 public frmMain fm; 22 public int index; 23 private void btnSubmit_Click(object sender, EventArgs e) 24 { 25 //按照传过来的信息更改对应内容 26 ((BianMa)fm.empolyee.WorkList[index]).NeedDay = int.Parse(txtNeedDay.Text); 27 ((BianMa)fm.empolyee.WorkList[index]).YesRow = int.Parse(txtYesRow.Text); 28 ((BianMa)fm.empolyee.WorkList[index]).Pro = txtPro.Text; 29 30 MessageBox.Show("提交成功"); 31 this.Close(); 32 } 33 } 34 }
frmBianMa
转载于:https://www.cnblogs.com/1-2-3-4/p/6699250.html
(深入.Net平台和C#编程)第七章.上机练习.20170412相关推荐
- [转]Windows Shell 编程 第七章
第七章 侵入Shell 与所有其它Win32进程一样,Shell也有其自己的内存地址空间,这是其它应用完全不可知的地址空间.为了进入这个地址空间,我们必须传递一定数量的控制点,就象我们正在跨过国家边界 ...
- Windows Shell编程-第七章.侵入Shell
第七章 侵入Shell 与所有其它Win32进程一样,Shell也有其自己的内存地址空间,这是其它应用完全不可知的地址空间.为了进入这个地址空间,我们必须传递一定数量的控制点,就象我们正在跨过国家边界 ...
- 转:Windows Shell 编程 第七章_1
转自:http://yadang418.blog.163.com/blog/static/2684365620096534257530/ 第七章侵入Shell 与所有其它Win32进程一样,Shell ...
- Windows Shell 编程 第七章
与所有其它 Win32 进程一样, Shell 也有其自己的内存地址空间,这是其它应用完全不可知的地址空间.为了进入这个地址空间,我们必须传递一定数量的控制点,就象我们正在跨过国家边界一样.在 Win ...
- UNIX环境高级编程--第七章
1进程终止 进程正常终止: view plaincopy to clipboard #include<stdlib.h> void exit(int status); void ...
- Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)
7.6 运用结构环境 现在应该懂得环境结构在线程调度中所起的重要作用了.环境结构使得系统能够记住线程的状态,这样,当下次线程拥有可以运行的C P U时,它就能够找到它上次中断运行的地方. 知道这样低层 ...
- java获取其他类的线程,使用Java实现面向对象编程——第七章 多线程
1.进程:是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间): Eg:用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间.当用户再次点击左面的IE浏览器, ...
- ros高效编程第七章
7.4.3 7.5 抓取和放置 场景规划 两种方式:三维感知,通过rgd 通过编程加入物体. 他这里其实就是在rviz中通过编程手动加入了几个物体,位置刚好与gazebo的对应上了,与点云信息也同时对 ...
- 105-网络编程——第七章原始套接字编程(上)
1.原始套接字是允许访问底层传输协议的一种套接字类型,提供了普通套接字所不具备的功能,能够对网络数据包进行某种程度的控制操作 因此原始套接字通常用于开发简单网络性能监视程序以及网络探测.网络攻击 2. ...
最新文章
- 一个二维码能装10T电影?看样子我也能改变世界了
- android_N项目(高通平台 CTS修改总结
- 中国阻燃纤维板市场运行局势分析与产销需求前景展望报告2022年
- 【offer去哪了】我一连面试了十个Java岗,统统石沉大海!
- 数字电路反相器符号_数字电路の门电路(1)
- What means the error-message 'java.lang.OutOfMemoryError: GC overhead limit exceeded' in Java?
- 八、PHP框架Laravel学习笔记——表单伪造和 CSRF 保护
- rpm方式安装MySQL-5.6
- php 对mvc的认识,【PHP】MVC框架为何这么难! 4年后终于明白了,被ThinkPHP害得!...
- 人生苦短,我用python-- Day6 面向对象
- 字符串转数组的几种方法和字符串的截取
- symantec病毒服务器的部署及配置
- 分类和聚类有什么区别?
- Adapter 模式
- android手机的短信文件,手机短信下载的文件在哪里(教你如何查看手机短信内容)...
- undo歌词中文音译_T-ara - Lovey Dovey 罗马拼音+中文歌词+韩文歌词+中文音译
- ALEXA解释(日IP500,可以使你进10万内)
- 办公计算机班半学期总结,计算机班的班主任工作总结.docx
- Android-原笔迹钢笔手写的探索与开发
- 机器学习笔记:特征处理——相关性分析GINI impurity