博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#自己写的第一个小程序,庆祝一下
阅读量:5072 次
发布时间:2019-06-12

本文共 5668 字,大约阅读时间需要 18 分钟。

Packages.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Examination{    public class Packages    {        public string Name        {            get;            set;        }        public Dictionary
Items { get; set; } public double Price { get { return Get_Price(); } } public Packages() { Items = new Dictionary
(); } public Packages(string n,Dictionary
it) { Name = n; Items = it; } public double Get_Price() { double result = 0; if (Items.Count > 0) { foreach(Module mo in Items.Values) { result += mo.Price; } } return result; } }}

 

Module.cs

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Examination{    public class Module    {        public string Name        {            get;            set;        }        public double Price        {            get;            set;        }        public string Remark        {            get;            set;        }        public Module()        {        }        public Module(string n, double p, string r)        {            Name = n;            Price = p;            Remark = r;        }    }}

 

Form1.cs

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Examination{    public partial class Form1 : Form    {        Module m1, m2, m3, m4, m5, m6, m7, m8;        Packages p1, p2, p3;        Dictionary
AllModule; Dictionary
AllPackages; public Form1() { InitializeComponent(); } private void InitDisplay() { m1 = new Module("Arduino UNO R3",40,"核心板"); m2 = new Module("Arduino面包板",10,"做试验用"); m3 = new Module("Arduino面包板线",10,"做试验用"); m4 = new Module("16*16点阵模块", 39, "能显示单个汉字的点阵模块"); m5 = new Module("LCD12864模块", 39, "大液晶"); m6 = new Module("GPS模块", 100, "采用ublox模块"); m7 = new Module("SIM900A模块", 100, "采用SIM900A模块"); AllModule = new Dictionary
(); AllModule.Add(m1.Name, m1); AllModule.Add(m2.Name, m2); AllModule.Add(m3.Name, m3); AllModule.Add(m4.Name, m4); AllModule.Add(m5.Name, m5); AllModule.Add(m6.Name, m6); AllModule.Add(m7.Name, m7); Dictionary
P1_Module = new Dictionary
(); P1_Module.Add(m1.Name, m1); P1_Module.Add(m2.Name, m2); P1_Module.Add(m3.Name, m3); p1 = new Packages("基础版",P1_Module); Dictionary
P2_Module = new Dictionary
(); P2_Module.Add(m1.Name, m1); P2_Module.Add(m2.Name, m2); P2_Module.Add(m3.Name, m3); P2_Module.Add(m4.Name, m4); P2_Module.Add(m5.Name, m5); p2 = new Packages("提高版", P2_Module); Dictionary
P3_Module = new Dictionary
(); P3_Module.Add(m1.Name, m1); P3_Module.Add(m2.Name, m2); P3_Module.Add(m3.Name, m3); P3_Module.Add(m4.Name, m4); P3_Module.Add(m5.Name, m5); P3_Module.Add(m6.Name, m6); P3_Module.Add(m7.Name, m7); p3 = new Packages("至尊版", P3_Module); AllPackages = new Dictionary
(); AllPackages.Add(p1.Name, p1); AllPackages.Add(p2.Name, p2); AllPackages.Add(p3.Name, p3); } private void Form1_Load(object sender, EventArgs e) { InitDisplay(); cb_taocan.Text = "请选择套餐"; foreach(Packages pk in AllPackages.Values) { cb_taocan.Items.Add(pk.Name); } ListViewItem lvi; foreach (Module md in AllModule.Values) { clb1.Items.Add(md.Name); } } private void cb_taocan_SelectedIndexChanged(object sender, EventArgs e) { if (cb_taocan.Text == p1.Name) { DisplayPackage(p1); } else if (cb_taocan.Text == p2.Name) { DisplayPackage(p2); } else if (cb_taocan.Text == p3.Name) { DisplayPackage(p3); } } private void DisplayPackage(Packages p) { lv1.Items.Clear(); ListViewItem lvi; foreach(Module m in p.Items.Values) { lvi = new ListViewItem(m.Name); lvi.SubItems.Add(m.Price.ToString()); lvi.SubItems.Add(m.Remark); lv1.Items.Add(lvi); } lbl_name.Text = p.Name; lbl_price.Text = p.Price.ToString(); } private void button1_Click(object sender, EventArgs e) { if (cb_taocan.Text != "请选择套餐" && clb1.CheckedItems.Count > 0) { Packages pa; for (int i = 0; i < clb1.CheckedItems.Count; i++) { pa = AllPackages[cb_taocan.Text]; Module md = AllModule[clb1.CheckedItems[i].ToString()]; if (!pa.Items.ContainsValue(md)) { pa.Items.Add(md.Name, md); DisplayPackage(pa); } else { MessageBox.Show(md.Name + "已经存在了哦!"); } } } else { MessageBox.Show("别想糊弄我!你就没选择套餐/模块 --!"); } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if(checkBox1.Checked) { for (int i = 0; i < clb1.Items.Count; i++) { clb1.SetItemChecked(i, true); } } else { for (int i = 0; i < clb1.Items.Count; i++) { clb1.SetItemChecked(i, false); } } } private void button2_Click(object sender, EventArgs e) { if (lv1.SelectedItems.Count > 0) { Packages pa = AllPackages[cb_taocan.Text]; foreach (ListViewItem lvi in lv1.SelectedItems) { Module md = pa.Items[lvi.Text]; if (pa.Items.ContainsValue(md)) { pa.Items.Remove(md.Name); } } DisplayPackage(pa); } else { MessageBox.Show("啥都没选,移除毛线啊!"); } } }}

显示效果

转载于:https://www.cnblogs.com/Mysterious/p/3414727.html

你可能感兴趣的文章
IOS-图片操作集合
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
session如何保存在专门的StateServer服务器中
查看>>
react展示数据
查看>>
测试计划
查看>>
选择器
查看>>
Mysql与Oracle 的对比
查看>>
jquery实现限制textarea输入字数
查看>>
thinkphp5 csv格式导入导出(多数据处理)
查看>>
PHP上传RAR压缩包并解压目录
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
多服务器操作利器 - Polysh
查看>>
[LeetCode] Candy
查看>>
jQuery 自定义函数
查看>>