体检套餐管理系统
1.任务描述
1.加载默认体检套餐
2.维护体检套餐
维护功能主要有以下几个方面
1.显示指定套餐的项目明细
2.向指定套餐添加检查项目信息
3.删除套餐中的项目信息
4.新建套餐
2.实现代码
1.搭建体检套餐管理系统的主窗体
2.创建体检套餐项目维护中的检查项目类,体检套餐类
3.系统默认提供一种套餐“入学套餐”填充检查项目对象到窗体
1 //套餐类
2 public class HealthCheckSet
3 {
4 private string name;
5
6 public string Name
7 {
8 get { return name; }
9 set { name = value; }
10 }
11
12 private int price;
13
14 public int Price
15 {
16 get { return price; }
17 set { price = value; }
18 }
19
20 private Dictionary<string, HealthCheckItem> item;
21
22 public Dictionary<string, HealthCheckItem> Item
23 {
24 get { return item; }
25 set { item = value; }
26 }
27
28 public HealthCheckSet()
29 {
30 item = new Dictionary<string, HealthCheckItem>();
31 }
32
33 public HealthCheckSet(string name,Dictionary<string,HealthCheckItem> item)
34 {
35 this.Name = name;
36 this.Item = item;
37 }
38
39 public void GetPrice()
40 {
41 int sum = 0;
42 foreach (HealthCheckItem i in item.Values)
43 {
44 sum += i.Price;
45 }
46 this.price = sum;
47 }
48 }
1 //项目类
2 public class HealthCheckItem
3 {
4 private string name;
5
6 public string Name
7 {
8 get { return name; }
9 set { name = value; }
10 }
11 private int price;
12
13 public int Price
14 {
15 get { return price; }
16 set { price = value; }
17 }
18 private string description;
19
20 public string Description
21 {
22 get { return description; }
23 set { description = value; }
24 }
25 public HealthCheckItem(string name, int price, string description)
26 {
27 this.Name = name;
28 this.Price = price;
29 this.Description = description;
30 }
31 }
1 //窗体中主要实现代码
2 public frmMain()
3 {
4 InitializeComponent();
5 }
6 //用于保存单个项目
7 HealthCheckItem h1, h2, h3, h4, h5, h6, h7, h8;
8 //单个项目集合
9 Dictionary<string, HealthCheckItem> allItem = new Dictionary<string, HealthCheckItem>();
10 //一个套餐所包含的项目
11 Dictionary<string, HealthCheckItem> items = new Dictionary<string, HealthCheckItem>();
12 //套餐集合
13 Dictionary<string, HealthCheckSet> allSet = new Dictionary<string, HealthCheckSet>();
14 //定义一个初始化套餐
15 HealthCheckSet set;
16 //向初始化的套餐添加各个项目
17 public void GetItems()
18 {
19 h1 = new HealthCheckItem("身高",5,"用于检查身高");
20 h2 = new HealthCheckItem("体重", 5, "用于检查体重");
21 h3 = new HealthCheckItem("视力", 5, "用于检查视力");
22 h4 = new HealthCheckItem("听力", 5, "用于检查听力");
23 h5 = new HealthCheckItem("B超", 30, "用于检查B超");
24 h6 = new HealthCheckItem("肝功能", 30, "用于检查肝功能");
25 h7 = new HealthCheckItem("心电图", 50, "用于检查心电图");
26 h8 = new HealthCheckItem("血常规", 50, "用于检查血常规");
27 allItem.Add(h1.Name, h1);
28 allItem.Add(h2.Name, h2);
29 allItem.Add(h3.Name, h3);
30 allItem.Add(h4.Name, h4);
31 allItem.Add(h5.Name, h5);
32 allItem.Add(h6.Name, h6);
33 allItem.Add(h7.Name, h7);
34 allItem.Add(h8.Name, h8);
35
36 }
37 //添加一个套餐
38 public void GetSet()
39 {
40 items.Add(h1.Name,h1);
41 items.Add(h3.Name, h3);
42 items.Add(h4.Name, h4);
43 set = new HealthCheckSet("入学体检",items);
44 set.GetPrice();
45 allSet.Add("入学体检",set);
46 }
47 //绑定下拉框
48 public void GetCbo()
49 {
50 cboSetList.Items.Clear();
51 cboSetList.Items.Add("请选择");
52 foreach (string a in allSet.Keys)
53 {
54 cboSetList.Items.Add(a);
55 }
56 this.cboSetList.SelectedIndex = 0;
57
58 cbolitemsList.Items.Clear();
59 cbolitemsList.Items.Add("请选择");
60 foreach (string a in allItem.Keys)
61 {
62 cbolitemsList.Items.Add(a);
63 }
64 this.cbolitemsList.SelectedIndex = 0;
65 }
66 //窗体加载时调用各个方法
67 private void frmMain_Load(object sender, EventArgs e)
68 {
69
70 GetItems();
71 GetSet();
72 GetCbo();
73 }
实现效果:
4.实现删除体检套餐信息
//删除
private void btnDelete_Click(object sender, EventArgs e)
{
string name = this.dgvList.SelectedRows[0].Cells[0].Value.ToString();
string Setname = this.cboSetList.Text;
MessageBox.Show(string.Format("确定要删除"+name+"这一项吗?","提示"));
allSet[Setname].Item.Remove(name);
UpdateSet(allSet[Setname]);
}
实现效果:
5.向套餐中添加检查项目
//向套餐中添加项目
private void btnItemAdd_Click(object sender, EventArgs e)
{
if(this.cbolitemsList.SelectedIndex==0)
{
MessageBox.Show("请选择要添加的项目");
return;
}
string name=this.cboSetList.Text;
if(name=="请选择")
{
MessageBox.Show("请选择套餐");
return;
}
if (!allSet[name].Item.Keys.ToList().Contains(this.cbolitemsList.Text))
{
allSet[name].Item.Add(this.cbolitemsList.Text, allItem[this.cbolitemsList.Text]);
this.lblName.Text = name;
GetPrice();
UpdateSet(allSet[name]);
}
else
{
MessageBox.Show("已有该项目");
}
}
实现效果:
6.新建套餐
1 //添加套餐
2 private void btnSetAdd_Click(object sender, EventArgs e)
3 {
4 string setName=this.txtSetName.Text;
5 if (this.txtSetName.Text.Trim() != null && this.txtSetName.Text.Trim() != "")
6 {
7 HealthCheckSet set = new HealthCheckSet();
8 allSet.Add(txtSetName.Text, set);
9 GetCbo();
10 this.cboSetList.SelectedIndex = allSet.Count();
11 }
12 else
13 {
14 MessageBox.Show("请输入套餐名称");
15 }
16 }
17 //下拉框中套餐名字改变时DataGridView里面所绑定的项目也改变
18 private void cboSetList_SelectedIndexChanged(object sender, EventArgs e)
19 {
20 string name = this.cboSetList.Text;
21 if (name == "请选择")
22 {
23 this.dgvList.DataSource = new BindingList<HealthCheckItem>();
24 this.lblName.Text = "";
25 this.lblPrice.Text = "";
26 return;
27 }
28 this.lblName.Text = name;
29 GetPrice();
30 UpdateSet(allSet[name]);
31 }
实现效果:
项目基本功能实现,希望对你有所帮助
请关注我,Call_迪迦