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
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:小程序音视频产品经理 腾讯云提供了全套技术文档和源码来帮助您快速构建一个音视频小程序,但是再好的源码和文档也有学习成本,为了尽快的能调试起 ...
随机推荐
- Oracle 格式化中文时间
SELECT TO_CHAR(SYSDATE, 'MM"月"DD"日"') A FROM dual; --注: 当格式字符串当中, 存在 自定义的字符信息的时候 ...
- 那些奇妙的"大师"是怎样炼成的(科学、迷信、心理)
近期王林大师从神坛上掉下来直接掉进了监狱,有关他的非常多神话也相同被撕下了. 事实上这类奇妙的大师在地球上非常多,美国的非常多"邪教"头目,国内的邪教头目都属于这一类.国内比較轰动 ...
- ubuntu下Tomcat绑定80端口
转载自:https://www.2cto.com/os/201102/84081.html 工作环境迁移到了Ubuntu,很多东西发生了变化,比如原先配置tomcat端口.只需要配置server. ...
- ASP.NET CORE RAZOR :将文件上传至 ASP.NET Core 中的 Razor 页面
本部分演示使用 Razor 页面上传文件. 本教程中的 Razor 页面 Movie 示例应用使用简单的模型绑定上传文件,非常适合上传小型文件. 有关流式传输大文件的信息,请参阅通过流式传输上传大文件 ...
- 《JavaScript权威指南》学习笔记之二十---XMLHttpRequest和AJAX解决方式
一.AJAX概述 AJAX是Asynchronous JavaScript and XML的缩写.中文译作异步JavaScript和XML.AJAX 不是新的编程语言,而是一种使用现有标准的新方法.在 ...
- Java 多线程 并发编程 (转)
一.多线程 1.操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种 ...
- IDEA下配置Spring Boot的热部署
© 版权声明:本文为博主原创文章,转载请注明出处 devtools简介 spring-boot-devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),因为其采用的 ...
- Linux中的一个命令行计算器bc简介
假如你在一个图形桌面环境中需要一个计算器时,你可能只需要一路进行点击便可以找到一个计算器.例如,Fedora 工作站中就已经包含了一个名为 Calculator 的工具.它有着几种不同的操作模式,例如 ...
- CentOS: Make Command not Found and linux xinetd 服务不能启动
在centos 安装编译器 yum -y install gcc automake autoconf libtool make linux xinetd 服务不能启动: [root@capaa xin ...
- memcached windows 修改端口
要想在windows中使用memcached,必须先下载memcached for win32安装. 下载地址:http://jehiah.cz/projects/memcached-win32/ 解 ...