设计一个Windows应用程序,要求如下:
构造一个产品基类。
分别定义家电、日用百货、衣服等派生类,具体要求有不同的特征和行为。
定义一个泛型货架类,约束参数类型为产品类。该泛型的货架类包括一个泛型集合,用
于存放各种产品对象。并包括一个方法用于输出每个产品的相关信息。
仿照实例6-4,定义泛型的货架类对象,完成对产品的添加和信息的输出。

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 产品
{public partial class Form1 : Form{public Form1(){InitializeComponent();}Shelves<Product> prt = new Shelves<Product>();private void Form1_Load(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){prt.Products.Add(new Hea(textBox1.Text));label1.Text += string.Format("\n添加家电:{0},成功", textBox1.Text);}private void button2_Click(object sender, EventArgs e){prt.Products.Add(new Gm(textBox1.Text));label1.Text += string.Format("\n添加日用百货:{0},成功", textBox1.Text);}private void button3_Click(object sender, EventArgs e){prt.Products.Add(new Clothes(textBox1.Text));label1.Text += string.Format("\n添加衣服:{0},成功", textBox1.Text);}private void button4_Click(object sender, EventArgs e){label1.Text = prt.TypeTo();}}public abstract class Product                                    //产品基类{protected string name;                                       //产品名字public Product(string name){this.name = name;}public abstract string Type();                               //基类抽象方法Type()}public class Hea : Product                                       //家电类{public Hea(string name) : base(name) { }                     //自身类的构造函数加上继承基类的构造函数public override string Type()                                //重写基类Type()方法{return string.Format("{0}:我是家电!", name);}}public class Gm : Product                                        //日用百货类{public Gm(string name) : base(name) { }                      //继承基类的构造函数public override string Type()                                //重写基类Type()方法{return string.Format("{0}:我是日用百货!", name);}}public class Clothes : Product                                   //衣服类{public Clothes(string name) : base(name) { }                 //自身类的构造函数加上继承基类的构造函数public override string Type()                                //重写基类Type()方法{return string.Format("{0}:我是衣服!", name);}}public class Shelves<T> where T : Product                        //自定义泛型类Shelves{private List<T> prts = new List<T>();                        //定义一个T类型的数组,T继承于产品类public List<T> Products => prts;   //泛型的只读属性,此处省略get访问器/*public  List<T> Products{get{return prts;}} */         //如果出现类型不匹配使用get语句                 public string TypeTo()                                       //返回产品信息{string msg = string.Empty;                               //字符串初始化为空foreach (T prt in prts){ msg += "\n" + prt.Type(); }                            //调用T集合产品中的Type()方法return msg;                                              //返回字符串}}}


设计一个Windows应用程序,要求如下: 构造一个产品基类。 分别定义家电、日用百货、衣服等派生类,具体要求有不同的特征和行为。 定义一个泛型货架类,约束参数类型为产品相关推荐

  1. C#设计一个Windows应用程序,要求如下。 ①构造一个产品基类。 ②分别定义家电、日用百货、衣服等派生类,要求具有不同的特征和行为。 ③定义一个泛型货架类,约束参数类型为产品类。该泛型的货架类包

    设计一个Windows应用程序,要求如下. 1.构造一个产品基类. 2.分别定义家电.日用百货.衣服等派生类,要求具有不同的特征和行为. 3.定义一个泛型货架类,约束参数类型为产品类.该泛型的货架类包 ...

  2. C#设计一个Windows应用程序,在该程序中首先构造中学生、大学生等派生类,当输入相关数据,单击不同的按钮(“小学生”“中学生”“大学生”)将分别创建不同的学生对象,并输入当前的学生总人数,该学生的

    设计一个Windows应用程序,在该程序中首先构造中学生.大学生等派生类,当输入相关数据,单击不同的按钮("小学生""中学生""大学生")将 ...

  3. 使用C#设计一个Windows应用程序——记事本

    文章主要内容:通过本文介绍学习,可以进一步掌握MenuStrip(菜单).ToolStrip(工具栏).RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件的使用,以及如何 ...

  4. 以小组为单位,设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩。

    设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩. 实现如下要求的功能: 1.根据姓名查询该学生的总成绩: 2.统计全班 ...

  5. 【水汐のC#】计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩。实现如下要求的功能:

    设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩.实现如下要求的功能: 根据姓名查询该学生的总成绩: 统计全班学生总分的 ...

  6. 设计一个Windows窗体程序,设置程序,其运行结果如下图所示。垂直滚动条控制字体大小。

    设计一个Windows窗体程序,设置程序,其运行结果如下图所示.一个标签控件的Text属性为"缩放"两个字,它的字体大小取决于垂直滚动条的值(Maximum=72,Minimum= ...

  7. 我的第一个windows应用程序

    创建一个windows应用程序,有以下基本步骤 创建窗口类 注册窗口类 创建窗口 显示窗口 消息循环 编写窗口过程(消息处理函数) 代码如下: // Win32_01.cpp : Defines th ...

  8. 第一个 Windows 应用程序

    #include <windows.h> //窗口过程声明 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int __stdc ...

  9. 1.2 第一个Windows应用程序实例

    Windows相对DOS操作系统其中一个重大改进就是采用了图像用户界面(GUI),所以Windows中大多数应用程序采用的都是窗口界面. 1.2.1 技术要点: Windows程序和控制台程序类似,也 ...

最新文章

  1. 鸿蒙OS 2.0流畅度实测:差距到底多大?
  2. 原子设计_您需要了解的有关原子设计的4件事
  3. json字段 react_react里怎么对获得的json数据进行处理。
  4. java list 区别_Java中List和ArrayList的区别
  5. [poj] 1235 Farm Tour || 最小费用最大流
  6. 禁止电信远程控制服务器自动下发修改光猫配置信息
  7. 美团23届秋招全面启动!5000+机会,60+岗位,3次笔试机会!
  8. 树莓派开始,玩转Linux21:进程的生与死
  9. 如何通过组策略来缓解打印机后台处理程序漏洞CVE-2021-34527?
  10. TODO LIST案例
  11. Qt编写可视化大屏电子看板系统13-基础版
  12. mxgraph进阶(三)Web绘图——mxGraph项目实战(精华篇)
  13. INET_ATON() 和 INET_NTOA()
  14. 论文参考文献格式标准
  15. 产品vr全景摄影拍摄公司提升客户的体验感与满意度
  16. 2020研究生数模竞赛思路
  17. 计算机应用技术专业名词解释,计算机应用技术名词解释--02316(26页)-原创力文档...
  18. apt查看安装包可用版本号
  19. 【Java入门】统计字符串中“ a ~ z “各个字符出现的次数
  20. maya中adv插件绑定1

热门文章

  1. c51单片机音乐门铃C语言程序,单片机六首歌曲的音乐门铃程序
  2. Tomcat 集成 Resteasy
  3. JS实现数学排列组合公式
  4. 对于web安全测试的一些感悟
  5. 计算机硬盘分区win7,小编教你win7硬盘如何分区
  6. 基于 2D 激光雷达和实时回环优化的 SLAM 算法
  7. 2021.10.21 练习题
  8. 无向图,有向图,连通图,强连通图概念笔记
  9. 面板数据缺失填补-stata实现线性插值法过程
  10. c语言如何找小数点后有几位皇帝,C语言中,float类型怎么储存小数点后六位的,第六位会四舍五入么?...