效果图如下:
实现的功能主要有以下几个方面:

  • 显示指定套餐的项目明细
  • 向指定套餐添加检查项目信息
  • 删除套餐中的项目信息
  • 新建套餐

具体代码及注释如下:

1:创建体检项目维护系统中的检查项目类(HealthCheckItem)、体检套餐类(HealthCheckSet)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 体检套餐管理系统
{//检查项目类class HealthCheckItem{private string description; //项目描述private string name;        //项目名称private int price;          //项目价格public string Description { get => description; set => description = value; }public string Name { get => name; set => name = value; }public int Price { get => price; set => price = value; }//带参构造函数public HealthCheckItem(string name,int price,string dec){this.Description = dec;this.Name = name;this.Price = price;}}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 体检套餐管理系统
{//体检套餐类class HealthCheckSet{private List<HealthCheckItem> items;  //检查项目private int price;                  //套餐价格,检查项目的价格之和private string name;                //套餐名称public int Price { get => price; set => price = value; }public string Name { get => name; set => name = value; }public List<HealthCheckItem> Items { get => items; set => items = value; }//套餐价格计算方法public void CalcPrice(){int totalPrice = 0;//循环累加体检项目的价格,获取套餐价格foreach (HealthCheckItem item in this.items){totalPrice += item.Price;}this.Price = totalPrice;        //赋值给当前套餐价格}//无参构造实例化itemspublic HealthCheckSet(){items = new List<HealthCheckItem>();}//带参构造方法public HealthCheckSet(string name,List<HealthCheckItem> items){Name = name;Items = items;}}
}

2:使用集合储存对应的数据,具体看代码和注释
注释一看就明白

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 体检套餐管理系统
{public partial class FrmMadin : Form{//采用泛型集合List保存所有的体检项目List<HealthCheckItem> AllItems = new List<HealthCheckItem>();//采用泛型集合List保存套餐中的体检项目List<HealthCheckItem> items = new List<HealthCheckItem>();//定义几个检查项目,用于初始化HealthCheckItem a1, a2, a3, a4, a5;//定义一个系统默认检查套餐“入学体检”HealthCheckSet ruxue;//用字典保存套餐集合Dictionary<string,HealthCheckSet> Heal = new Dictionary<string,HealthCheckSet>();public FrmMadin(){InitializeComponent();}//窗体加载事件private void FrmMadin_Load(object sender, EventArgs e){label6.Text = "";label7.Text = "";//调用绑定检查项目下拉框方法BangDing();//调用绑定检查套餐下拉框方法TaoCanBang();button2.Enabled = false;button3.Enabled = false;}//删除事件private void button3_Click(object sender, EventArgs e){DelectSet();}//添加事件private void button2_Click(object sender, EventArgs e){TianJia();}//添加套餐事件private void button1_Click(object sender, EventArgs e){TianJaiTaoCan();}//初始化几个检查项目,并绑定下拉框public void BangDing(){a1 = new HealthCheckItem("身高",5,"用于检查身高");a2 = new HealthCheckItem("体重",5,"用于检查体重");a3 = new HealthCheckItem("听力",15,"用于检查听力");a4 = new HealthCheckItem("B超",30,"用于检查B超");a5 = new HealthCheckItem("心电图",50,"用于检查心脏");//添加到泛型集合中AllItems.Add(a1);AllItems.Add(a2);AllItems.Add(a3);AllItems.Add(a4);AllItems.Add(a5);//添加“请选择”this.comboBox2.Items.Add("请选择");//循环向CombBox控件中添加数据foreach (HealthCheckItem item in AllItems){comboBox2.Items.Add(item.Name);}//默认选中第一项comboBox2.SelectedIndex = 0;}//初始化套餐,及绑定套餐列表public void TaoCanBang(){//创建泛型集合,保存套餐中的体检项目items = new List<HealthCheckItem>();items.Add(a1);items.Add(a2);items.Add(a4);//创建一个检查套餐对象ruxue = new HealthCheckSet("入学体检",items);//计算套餐价格ruxue.CalcPrice();//向套餐集合中添加一个检查套餐对象Heal.Add("入学体检", ruxue);//调用加载体检套餐下拉列表方法JiaZaiTiJian();}//加载体检套餐下拉列表方法public void JiaZaiTiJian(){//加载前,先清除下拉框数据comboBox1.Items.Clear();//绑定套餐下拉列表comboBox1.Items.Add("请选择");//循环向套餐下拉框中添加数据foreach (string item in Heal.Keys){comboBox1.Items.Add(item);}//默认选中第一项comboBox1.SelectedIndex = 0;}/// <summary>/// 绑定dataGridView,填充数据/// </summary>private void UpdateSet(HealthCheckSet hls){//绑定dataGridView,填充数据dataGridView1.DataSource = new BindingList<HealthCheckItem>(hls.Items);}//当套餐下拉框发生改变时,加载出相应的检查项目private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){//接收下拉框控件中的文本string cboName = comboBox1.Text;if (cboName == "请选择"){dataGridView1.DataSource = null;label6.Text = "";label7.Text = "";return;}//设置套餐名称,通过Key键访问套餐名称label6.Text = Heal[cboName].Name;//设置套餐价格,label7.Text = Heal[cboName].Price.ToString();//调用绑定dataGridView方法UpdateSet(Heal[cboName]);button3.Enabled = true;button2.Enabled = true;}/// <summary>/// 删除检查项目/// </summary>public void DelectSet(){//判断是否选中检查项目if (dataGridView1.SelectedRows.Count > 0){//获取用户选中的索引int ioo = dataGridView1.SelectedRows[0].Index;//用户选择的套餐文本string name = comboBox1.Text;//通过Key键,判断套餐,再通过套餐找到检查项目,最后通过索引删除检查项目。Heal[name].Items.RemoveAt(ioo);//重新计算价格Heal[name].CalcPrice();//重新绑定UpdateSet(Heal[name]);//重新接收总价格label7.Text = Heal[name].Price.ToString();               }else{MessageBox.Show("请选中一项检查项目");}}/// <summary>/// 添加检查项目方法/// </summary>public void TianJia(){//判断是否选中检查项目中的项if (comboBox2.SelectedIndex == 0){MessageBox.Show("请选择一个添加项目");return;}//接收套餐名称string cboSetText = comboBox1.Text;//接收选中的检查项目的索引int index = comboBox2.SelectedIndex - 1;//判断要添加的检查项目,是否已经存在,存在返回true,不存在返回falseif (!this.Heal[cboSetText].Items.Contains(AllItems[index])){//向该套餐中添加检查项目this.Heal[cboSetText].Items.Add(AllItems[index]);//重新计算价格Heal[cboSetText].CalcPrice();//设置套餐名称,通过Key键访问套餐名称label6.Text = Heal[cboSetText].Name;//设置套餐价格,label7.Text = Heal[cboSetText].Price.ToString();//重新绑定数据UpdateSet(Heal[cboSetText]);MessageBox.Show("添加成功!");}else{MessageBox.Show("该检查项目已存在!");}}//添加套餐方法public void TianJaiTaoCan(){if (textBox1.Text.Equals(string.Empty)){MessageBox.Show("请输入套餐名称!");return;}else{//循环判断要添加的套餐是否重复foreach (string item in Heal.Keys){if (item.Equals(textBox1.Text)){MessageBox.Show("套餐名称重复");return;}}//创建体检套餐类HealthCheckSet hs = new HealthCheckSet();//添加到泛型集合中Heal.Add(textBox1.Text,hs);//调用加载体检套餐下拉列表的方法JiaZaiTiJian();Heal[textBox1.Text].Name = textBox1.Text;}}}
}

体检套餐管理系统 C#相关推荐

  1. java集合体检套餐管理系统_体检套餐管理系统

    体检套餐管理系统 首先搭建一个窗体 创建体检项目的两个类一个是检查项目类(HealthCheckItem),另一个是套餐类(HealthCheckSet) 在HealthCheckItem类 中有 项 ...

  2. 案例 体检套餐管理系统 需求一览 c# 1614099219

    案例 体检套餐管理系统 需求一览 c# 1614099219 界面一览 步骤一 窗体搭建 查看与删除功能 给套餐添加检察项目 注意: 可帮助查询对象是否在数组中 列表.Contains(数据) 新建套 ...

  3. 第五章项目 体检套餐管理系统

    1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Da ...

  4. 05章 体检套餐管理系统

    1:搭建窗体 2:用户自定义类:HealthCheckItem和HealthCheckSet 1 namespace 体检套餐管理2 {3 public class HealthCheckItem4 ...

  5. C# 体检套餐管理系统

    1.创建体检项目维护系统中的检查项目类 ,体检套餐类和一个泛型类如下图 2.窗体的搭建,如下图: 3.编写代码: using System; using System.Collections.Gene ...

  6. java 体检套餐_体检套餐管理系统的综合版

    步骤: 定义几个类: HealthCheckItem类:检查项目 属性: public string Description { get; set; }public int Price { get; ...

  7. C#oop体检套餐管理系统

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. java集合体检套餐管理系统_基于ssm vue的综合项目 健康体检管理系统-第六章

    移动端开发对体检预约进行的查询 当页面加载完毕时,利用vue的钩子函数 已加载页面就直接查询数据将数据进行渲染 created() { axios.post("/setmeal/getSet ...

  9. 体检套餐管理系统 0421

    界面 结构分析 项目中的数据结构

  10. 基于Spring+SpringMVC+hibernate实现的体检中心管理系统

    源码及论文下载: http://www.byamd.xyz/tag/java/ 摘 要 随着人们生活水平的不断提高,人们的保健意识随之增强,体检已普遍成为人们保健的重要部分.特殊职业的体检.各种职业病 ...

最新文章

  1. 在YII2框架中使用UEditor编辑器发布文章
  2. php上传图片到非项目目录,前端页面的读取问题
  3. LED灯随机亮起几个灯
  4. Linux系统里存在两个剪切板
  5. Arduino--电容式土壤湿度传感器使用及原理
  6. weblogic下载安装
  7. GBK内码字符串转Unicode字符串
  8. 《软件测试方法和技术》电子课件下载
  9. 致远互联开始向云端生态发力奔跑
  10. PDF文档加密签名处理
  11. 8、乐趣国学—“不迁怒,不贰过”
  12. SpringMVC:生成Excel和PDF
  13. java jks 转pfx_JKS、BKS、PFX证书格式之间转换
  14. c语言错误c2059 void,c2059(c语言错误代码c2059)
  15. 什么是长连接和短连接,他们的定义区别及应用场景?
  16. 某代工大厂的勒索病毒处理案例
  17. xcode7.1生成打包上传时需要注意的东西
  18. 百度地图常用jsapi
  19. 【名词解释】LTE终端的五模、七模、十频、十一频
  20. windows黑客编程技术之隐藏技术(进程伪装,傀儡进程,进程隐藏)

热门文章

  1. 主板插线接口大全图解
  2. 人工智能可以替代人类?今天要来说说人工智能与人类意识到底差距在哪里!...
  3. JN5169 ZigBee 3.0 开发环境搭建
  4. 2019第四次新生周赛——YZJ的牛肉干
  5. 验证牛顿公式的局部收敛性,并找到对于牛顿公式不收敛(发散)的函数,比较二分法与牛顿公式的收敛速度
  6. 2022-2027年中国新能源汽车功率电子行业市场全景评估及发展战略规划报告
  7. js html title属性,HTML DOM title 属性
  8. iphone屏幕镜像如何全屏_苹果手机投到电视上能全屏嘛
  9. Pytorch深度学习实战教程(四):必知必会的炼丹法宝
  10. [la P4487] Exclusive-OR