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
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:小程序音视频产品经理 腾讯云提供了全套技术文档和源码来帮助您快速构建一个音视频小程序,但是再好的源码和文档也有学习成本,为了尽快的能调试起 ...
随机推荐
- 【VBA】查看当前窗口的宽与高
打开的Excle如何使用VBA查看当前窗口的宽与高呢?代码如下: Sub 查看宽度与高度() Dim myWidth As Double Dim myHeigth As Double myWidth ...
- 如何为Apache JMeter开发插件(二)—第一个JMeter插件
文章内容转载于:http://lib.csdn.net/article/softwaretest/25700,并且加上个人一些截图 本篇将开启为JMeter开发插件之旅,我们选择以Function(函 ...
- HTTP协议断点续传
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;usi ...
- ASP.NET中的配置文件
ASP.NET中的配置文件 原创 2014年10月13日 08:15:27 1199 在机房收费系统的时候曾经应用过配置文件,当时也就那么一用对配置文件了解的不是很透彻,下面就来总结一下有关配置文 ...
- 零基础学python-1.5 第一个程序
这一个章节我们来说说怎么建立一个python程序 1.打开idle 2.点击File->new file,然后会弹出一个编辑窗体 3.在编辑窗体里面输入命令代码 程序代码: print(&quo ...
- stage3D基础五-----Working with 3D cameras(转)
原文地址:http://www.adobe.com/cn/devnet/flashplayer/articles/3d-cameras.html 原文是英文的,这里就不贴了,内容主要介绍直接使用相机坐 ...
- php正則表達式中的非贪婪模式匹配的使用
php正則表達式中的非贪婪模式匹配的使用 通常我们会这么写: $str = "http://www.baidu/.com? url=www.sina.com/"; preg_mat ...
- 一个方便的图片载入框架——ImageViewEx
我的博客:http://mrfufufu.github.io/ 一.前言 近期在整理项目中的一些代码,以备即将开展的新项目中使用,刚刚整理到一个图片载入的 lib.用起来很的简单,和 picasso ...
- Java应用一般架构
转载一下文章: 自己连看三便方的其要点精髓. 当我们架设一个系统的时候通常需要考虑到如何与其他系统交互,所以我们首先需要知道各种系统之间是如何交互的,使用何种技术实现. 1. 不同系统不同语言之间的交 ...
- JVM调优- jmap(转)
http://blog.csdn.net/fenglibing/article/details/6411953 1.介绍 打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些 ...