05章 体检套餐管理系统
1:搭建窗体
2:用户自定义类:HealthCheckItem和HealthCheckSet
1 namespace 体检套餐管理2 {3 public class HealthCheckItem4 {5 public HealthCheckItem(string name, int price, string description)//定义带参构造为三个属性赋初值6 {7 this.Name = name;8 this.Description = description;9 this.Price = price; 10 } 11 private string name; 12 public string Name//项目名 13 { 14 get { return name; } 15 set { name = value; } 16 } 17 private string description; 18 public string Description//项目描述 19 { 20 get { return description; } 21 set { description = value; } 22 } 23 private int price; 24 public int Price//项目价格 25 { 26 get { return price; } 27 set { price = value; } 28 } 29 } 30 }
1 namespace 体检套餐管理 2 { 3 public 4 class HealthCheckSet 5 { 6 public HealthCheckSet()//初始化HealthCheckItems项的集合 7 { 8 items = new List<HealthCheckItem>(); 9 } 10 public HealthCheckSet(string name, List<HealthCheckItem> items)//有项目时给集合赋值的构造函数 11 { 12 this.Name = name; 13 this.items = items; 14 } 15 private string name; 16 public string Name 17 { 18 get { return name; } 19 set { name = value; } 20 } 21 private List<HealthCheckItem> items; 22 public List<HealthCheckItem> Items//表示HealthCheckItems中的项的集合 23 { 24 get { return items; } 25 set { items = value; } 26 } 27 private int price; 28 public int Price//套餐价格 29 { 30 get { return price; } 31 } 32 public void CalcPrice()//计算套餐价格的方法 33 { 34 int totalPrice = 0; 35 foreach (HealthCheckItem item in items) 36 { 37 totalPrice += item.Price; 38 } 39 this.price = totalPrice; 40 } 41 } 42 }
3:定义两个List<T>单列集合,一个Dictionary<K,V>双列集合并且默认初始化一个体检套餐。
1 HealthCheckItem height, weight, eyes, ears, gan, Bchao, heart; 2 List<HealthCheckItem> allitems = new List<HealthCheckItem>();//保存所有的体检项目 3 List<HealthCheckItem> items = new List<HealthCheckItem>();//保存套餐中的体检项目 4 public Dictionary<string, HealthCheckSet> item = new Dictionary<string, HealthCheckSet>();//保存所有套餐 5 public HealthCheckSet numA;
4:初始化保存在allitems中的所有的体检项目以及默认套餐中的所有的体检项目。
1 public void Show()//保存所有体检项目2 {3 height = new HealthCheckItem("身高", 5, "测量身高");4 weight = new HealthCheckItem("体重", 5, "检测体重");5 eyes = new HealthCheckItem("视力", 10, "测视力");6 ears = new HealthCheckItem("听力", 10, "测听力");7 gan = new HealthCheckItem("肝功能", 20, "测试肝功能");8 Bchao = new HealthCheckItem("B超", 20, "检测身体内部");9 heart = new HealthCheckItem("心电图", 50, "检查心脏"); 10 allitems.Add(height); 11 allitems.Add(weight); 12 allitems.Add(eyes); 13 allitems.Add(ears); 14 allitems.Add(gan); 15 allitems.Add(Bchao); 16 allitems.Add(heart); 17 } 18 public void Num1()//默认的体检套餐 19 { 20 items = new List<HealthCheckItem>(); 21 items.Add(height); 22 items.Add(weight); 23 items.Add(eyes); 24 numA = new HealthCheckSet("入学体检", items); 25 numA.CalcPrice(); 26 this.item.Add("入学体检", numA); 27 28 }
5:向下拉框中添加数据,由于此控件是套餐下拉框,其储存的数据是双列集合dictionary<K,V>中的key值,即代码如下
1 public void Chushi()2 {3 this.comboBox1.Items.Clear();4 this.comboBox1.Items.Add("请选择");5 6 foreach (string key in this.item.Keys)7 {8 this.comboBox1.Items.Add(key);9 } 10 this.comboBox1.SelectedIndex = 0; 11 }
6:在下拉框的SelectedIndexChanged事件中编写如下代码,目的是点击下拉框选项后将数据加载到datagridview控件中,并且实现显示套餐名称和价格的功能。
1 string text = this.comboBox1.Text;2 if (text == "请选择")3 {4 this.label3.Text = "";5 this.label5.Text = "";6 this.dataGridView1.DataSource = new BindingList<HealthCheckItem>();7 return;8 }9 label3.Text = this.item[text].Name; 10 label5.Text = this.item[text].Price.ToString(); 11 load(item[text]); 12 this.button2.Enabled = true;
备注:load()作用是将所有的体检项目的信息加载到datagridview中
1 public void load(HealthCheckSet set)//将所有的体检项目的信息加载到datagridview中 2 { 3 this.dataGridView1.DataSource = new BindingList<HealthCheckItem>(set.Items); 4 }
7:实现删除套餐中的项目的功能,setName是套餐下拉框中所有项的文本的集合。item[setName].Item是指HealthCheckItems中所有项的集合,datagridview控件中加载的也是HealthCheckItems项的集合,所以可以根据datagridview中被选中行的下表来删除集合中的数据。并且重新加载标签中的价格
1 string setName = this.comboBox1.Text;2 3 if (this.dataGridView1.SelectedRows.Count == 0)4 {5 MessageBox.Show("没有选择删除项。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);6 return;7 }8 9 int index = this.dataGridView1.SelectedRows[0].Index; 10 11 this.item[setName].Items.RemoveAt(index); 12 13 this.item[setName].CalcPrice(); 14 15 load(item[setName]); 16 17 this.label3.Text =numA.Name; 18 this.label5.Text = numA.Price.ToString(); 19 MessageBox.Show("删除成功。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
8:实现添加项目的操作,首先判断集合中是否已经存在要添加的项目了,如果要添加的项目不在集合中,则执行添加操作。其次,从allitems所有体检项目的集合中提取数据,使用foreach遍历,如果被选择的项目等于allitems中的项目,将此项目添加到HealthCheckItem项的集合中去,并且改变价格,刷新datagridview控件
1 if (this.comboBox2.SelectedIndex == 0)2 {3 MessageBox.Show("请选择一个项目。");4 return;5 }6 7 string text = this.comboBox1.Text;8 if (text == "请选择")9 { 10 MessageBox.Show("请选择套餐!"); 11 return; 12 } 13 14 15 foreach (HealthCheckItem cboitem in item[text].Items) 16 { 17 if (cboitem.Name == comboBox2.SelectedItem.ToString()) 18 { 19 MessageBox.Show("该项目存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); 20 return; 21 } 22 } 23 foreach (HealthCheckItem addItem in allitems) 24 { 25 if (addItem.Name == comboBox2.SelectedItem.ToString()) 26 { 27 item[text].Items.Add(addItem); 28 } 29 this.item[text].CalcPrice(); 30 load(this.item[text]); 31 this.label3.Text = this.item[text].Name; 32 this.label5.Text = this.item[text].Price.ToString(); 33 34 35 }
9:实现添加套餐操作,通过添加dictionary<K,V>中的Key值来添加套餐,并且刷新下拉列表。并在套餐下拉框中自动定位到刚被添加的套餐。
1 HealthCheckSet he = new HealthCheckSet(); 2 this.item.Add(textBox1.Text, he); 3 this.Chushi(); 4 this.comboBox1.SelectedIndex = item.Count; 5 MessageBox.Show("添加成功!");
转载于:https://www.cnblogs.com/ainiaiwo/p/5373906.html
05章 体检套餐管理系统相关推荐
- java集合体检套餐管理系统_体检套餐管理系统
体检套餐管理系统 首先搭建一个窗体 创建体检项目的两个类一个是检查项目类(HealthCheckItem),另一个是套餐类(HealthCheckSet) 在HealthCheckItem类 中有 项 ...
- 案例 体检套餐管理系统 需求一览 c# 1614099219
案例 体检套餐管理系统 需求一览 c# 1614099219 界面一览 步骤一 窗体搭建 查看与删除功能 给套餐添加检察项目 注意: 可帮助查询对象是否在数组中 列表.Contains(数据) 新建套 ...
- 第五章项目 体检套餐管理系统
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Da ...
- 深入.NET 第五章 体检套餐
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- C# 体检套餐管理系统
1.创建体检项目维护系统中的检查项目类 ,体检套餐类和一个泛型类如下图 2.窗体的搭建,如下图: 3.编写代码: using System; using System.Collections.Gene ...
- java 体检套餐_体检套餐管理系统的综合版
步骤: 定义几个类: HealthCheckItem类:检查项目 属性: public string Description { get; set; }public int Price { get; ...
- (深入.Net平台和C#编程)第五章.体检套餐管理项目.20170408
-----------------------------------------------------体检项目类------------------------------------------ ...
- java集合体检套餐管理系统_基于ssm vue的综合项目 健康体检管理系统-第六章
移动端开发对体检预约进行的查询 当页面加载完毕时,利用vue的钩子函数 已加载页面就直接查询数据将数据进行渲染 created() { axios.post("/setmeal/getSet ...
- C#oop体检套餐管理系统
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
最新文章
- 04:sqlalchemy操作数据库 不错
- ValueError: need at most 63 handles, got a sequence of length 65
- HttpClient 连接池设置不当引发的一次雪崩
- STM32的时钟系统RCC详细整理
- 用CSS伪元素制作箭头
- 【问链-Eos公开课】第四课 EOS 的钱包创建、导入私钥
- 链接服务器 '(null)' 的 OLE DB 访问接口'STREAM' 返回了对列 '[!BulkInsert].field' 无效的数据...
- JavaOne 2012:Lambda之路
- 生活感悟——和尾号990的滴滴师傅的聊天
- 库克去年薪酬约6亿元,超员工1400倍,机构建议其降薪
- 015-请问如果想进行bug的测评,怎么去评测bug?
- UVA785 LA5281 Grid Colouring【DFS】
- [转载] Numpy数组对象ndarray
- python with open as yaml_python – pyyaml并仅使用字符串引号
- vmware开机自动进入BIOS vmware 进入BIOS方法
- 你们要的Windows IDEA 快捷键终极大全,速度收藏!
- 基于python的注册登录界面_基于python的Tkinter编写登陆注册界面
- 微博中微服务缓存_新浪微博温情:基于微服务的微博直播互动架构设计经验分享...
- 在线多功能工具箱php源码
- 生物信息学最基础知识
热门文章
- ORA-01502: 索引或这类索引的分区处于不可用状态 [已解决]
- 总结一下最近面试经常被问到的问题(2019年4月)
- 10个受欢迎的英文名
- xlc mysql_mysql – 用于存储产品信息的noSQL?
- HTTP版本/层次/响应/状态之高屋建瓴
- 使用 golang-plugins 时要避免的事情
- Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换
- golang之正则校验(验证某字符串是否符合正则表达式)
- 游戏机制新设计工具(Machinations)工作原理
- 如何制作一个横版格斗过关游戏 Cocos2d-x 2.0.4