C#自己写的第一个小程序,庆祝一下
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<string, Module> Items
{
get;
set;
} public double Price
{
get
{
return Get_Price();
}
} public Packages()
{
Items = new Dictionary<string, Module>();
} public Packages(string n,Dictionary<string,Module> it)
{
Name = n;
Items = it;
} public double Get_Price()
{
double result = ;
if (Items.Count > )
{
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<string, Module> AllModule;
Dictionary<string, Packages> AllPackages; public Form1()
{
InitializeComponent();
} private void InitDisplay()
{
m1 = new Module("Arduino UNO R3",,"核心板");
m2 = new Module("Arduino面包板",,"做试验用");
m3 = new Module("Arduino面包板线",,"做试验用"); m4 = new Module("16*16点阵模块", , "能显示单个汉字的点阵模块");
m5 = new Module("LCD12864模块", , "大液晶"); m6 = new Module("GPS模块", , "采用ublox模块");
m7 = new Module("SIM900A模块", , "采用SIM900A模块"); AllModule = new Dictionary<string, Module>();
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<string, Module> P1_Module = new Dictionary<string, Module>();
P1_Module.Add(m1.Name, m1);
P1_Module.Add(m2.Name, m2);
P1_Module.Add(m3.Name, m3);
p1 = new Packages("基础版",P1_Module); Dictionary<string, Module> P2_Module = new Dictionary<string, Module>();
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<string, Module> P3_Module = new Dictionary<string, Module>();
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<string, Packages>();
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 > )
{
Packages pa;
for (int i = ; 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 = ; i < clb1.Items.Count; i++)
{
clb1.SetItemChecked(i, true);
}
}
else
{
for (int i = ; i < clb1.Items.Count; i++)
{
clb1.SetItemChecked(i, false);
}
}
} private void button2_Click(object sender, EventArgs e)
{ if (lv1.SelectedItems.Count > )
{
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("啥都没选,移除毛线啊!");
} }
}
}
显示效果
C#自己写的第一个小程序,庆祝一下的更多相关文章
- Maven的第一个小程序
这里是介绍关于maven的第一个小程序 关于maven的安装 : Install Maven in your computer 先看看目录结构: 这是本来的项目目录结构,由于maven有自己的目录结构 ...
- TODO:即将开发的第一个小程序
TODO:即将开发的第一个小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验.个人理解小程序是寄宿在微信平台上的一个前端框架,具有跨平台功能, ...
- 微信小程序-----安装,编写第一个小程序和运行到手机端
第一步: 微信公众平台注册账号,并选择小程序,网址:mp.weixin.qq.com 填写相关信息,如:主体类型(个人或者企业) AppID 在开发中都是用的到的,服务器域名在网络请求也是用的到的. ...
- Struts2学习笔记——Struts2搭建和第一个小程序
1.新建web项目 2.配置Struts2核心过滤器 (1)打开web.xml文件,做以下配置: <?xml version="1.0" encoding="UTF ...
- 自学Android的第一个小程序(小布局、button点击事件、toast弹出)
因为上班,学习时间有限,昨晚才根据教程写了一个小程序,今天忙里偷闲写一下如何实现的,来加深一下印象. 首先创建一个Android项目, 通过activity_xxx.xml布局文件来添加组件来达到自己 ...
- Python3的tkinter写一个简单的小程序
一.这个学期开始学习python,但是看了python2和python3,最后还是选择了python3 本着熟悉python的原因,并且也想做一些小程序来增加自己对python的熟练度.所以写了一个简 ...
- C++写一个排列组合小程序
今天突然想到一个问题,有时候,针对同一个事件有多种反映,特别是游戏AI当中,这种情况下需要采取最适合的方案,哪种方案最适合,可以将每种方案的结果或影响都计算一遍,从而选择最合适的.最基本就是一个排列组 ...
- 人人都可以写的可视化Python小程序第二篇:旋转的烟花
兴趣是最好的老师 枯燥的编程容易让人放弃,兴趣才是最好的老师.无论孩子还是大人,只有发现这件事情真的有趣,我们才会非常执着的去做这件事,比如打游戏.如果编程能像玩游戏一样变得有趣,我相信很多人就特别愿 ...
- 动手搭建第一个小程序音视频Demo
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:小程序音视频产品经理 腾讯云提供了全套技术文档和源码来帮助您快速构建一个音视频小程序,但是再好的源码和文档也有学习成本,为了尽快的能调试起 ...
随机推荐
- django项目搭建
参见https://www.imooc.com/video/13931 1.安装python,从官网python.org下载msi安装2.7,安装完后,输入python可以看到版本 2.djangop ...
- Php 中如何将内容写入log日志中
$Str = '你想要存的内容'; file_put_contents('abc.log', "\r\n\r\n". $Str, FILE_APPEND); FILE_AP ...
- 嵌套矩形——DAG上的动态规划
有向无环图(DAG,Directed Acyclic Graph)上的动态规划是学习动态规划的基础.非常多问题都能够转化为DAG上的最长路.最短路或路径计数问题. 题目描写叙述: 有n个矩形,每一个矩 ...
- 字典转模型的过程中,空值和id特殊字符的处理
在IOS 中id是特殊字符,可是非常多时候从网络中下载的数据是以id保存的 假设在定义属性的时候 @property(nonatomic, copy) NSString *id; 就不会出现错误 当键 ...
- spring mvc controller中的异常封装
http://abc08010051.iteye.com/blog/2031992 一直以来都在用spring mvc做mvc框架,我使用的不是基于注解的,还是使用的基于xml的,在controlle ...
- Ubuntu Server 命令行下显示中文乱码(菱形)解决办法
如果Ubuntu Server在安装过程中,选择的是中文(很多新手都会在安装时选择中文,便于上手),这样在完成安装后,系统默认的语言将会是中文zh_CN.UTF- 8.但问题是我们安装的是服务器,只需 ...
- Intent获取Activity返回值
/* Intent获取Activity返回值* 三步:* 子Activity关闭后的返回值处理函数,requestCode是子Activity返回的请求码,与页面顶端的两个请求码相匹配,resultC ...
- UVa 437 The Tower of Babylon(DP 最长条件子序列)
题意 给你n种长方体 每种都有无穷个 当一个长方体的长和宽都小于还有一个时 这个长方体能够放在还有一个上面 要求输出这样累积起来的最大高度 由于每一个长方体都有3种放法 比較不好控制 ...
- mac权限
mac文件后面出现@权限 去除方法: xattr -c 文件名 目录也可以
- Android基础笔记(十八)- Fragment
博客的感悟终点-開始 什么是Fragment 加入fragment到Activity的两种方式 Fragment的生命周期 Fragment的向下兼容 Fragment之间的通信 博客的感悟,终点-開 ...