namespace Day05體檢套餐{ public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } PRivate void NewMethod() { this.dgv.AutoGenerateColumns = false; if (this.cmbName.SelectedIndex == 0) { this.dgv.DataSource = null; this.label5.Text = ""; this.label7.Text = ""; return; } this.label5.Text = this.cmbName.Text; List<TaoCanItems> list = HealthheckSet.FindItems(this.cmbName.Text); this.dgv.DataSource = new BindingList<TaoCanItems>(list); TaoCan tc = new TaoCan(); foreach (TaoCanItems item in list) { tc.canPrice = item.Price + tc.canPrice; } this.label7.Text = tc.canPrice.ToString(); } //窗體 private void Form1_Load(object sender, EventArgs e) { //下拉框 this.cmbName.Items.Add("請選擇"); this.cmbName.SelectedIndex = 0; List<string> list = HealthheckSet.FindAll(); foreach (string item in list) { this.cmbName.Items.Add(item); } List<string> itemList = HealthCheckItem.FindAllItems(); foreach (string item in itemList) { this.comboBox2.Items.Add(item); this.comboBox2.SelectedIndex = 0; } } //添加1 private void button1_Click_1(object sender, EventArgs e) { string result = HealthheckSet.AddTaoCao(this.txtName.Text); if (result == "已存在該套餐") { MessageBox.Show("已存在該套餐"); return; } MessageBox.Show("添加成功"); this.cmbName.Items.Add(this.txtName.Text); } //添加2 private void button2_Click_1(object sender, EventArgs e) { //判斷是否整行選中 if (this.cmbName.SelectedIndex == 0) { MessageBox.Show("請選擇一個套餐"); return; } TaoCanItems ietmes = HealthCheckItem.AllItem(this.comboBox2.Text); MessageBox.Show(HealthheckSet.addItem(this.cmbName.Text, ietmes)); NewMethod(); } //刪除 private void button3_Click_1(object sender, EventArgs e) { //判斷是否整行選中 if (this.dgv.RowCount == 0) { MessageBox.Show("沒有數據無需刪除"); return; } MessageBox.Show(HealthheckSet.deleteItem(this.cmbName.Text, this.dgv.SelectedRows[0].Cells[0].Value.ToString())); //刷新 NewMethod(); } //刷新套餐列表 private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e) { NewMethod(); } }}namespace Day05體檢套餐{ public class HealthCheckItem //檢查項目管理類 { private static Dictionary<string, TaoCanItems> canDi = null; public static void INit() { canDi = new Dictionary<string, TaoCanItems>() { {"身高",new TaoCanItems(){Name="身高",Description="檢查身高",Price=5}}, {"體重",new TaoCanItems(){Name="體重",Description="檢查體重",Price=15}}, {"視力",new TaoCanItems(){Name="視力",Description="檢查視力",Price=25}}, {"聽力",new TaoCanItems(){Name="聽力",Description="檢查聽力",Price=35}}, {"肝功能",new TaoCanItems(){Name="肝功能",Description="檢查肝功能",Price=45}}, }; } public static List<string> FindAllItems() { if (canDi == null) { INit(); } return canDi.Keys.ToList(); } //根據套餐項目的項目名獲取到該項目名的一個對象 public static TaoCanItems AllItem(string name) { return canDi[name]; } }}namespace Day05體檢套餐{ public class HealthheckSet { private static Dictionary<string, TaoCan> taoDi = null; //所有套餐集合 public static void Init() //初始化一個套餐 { taoDi = new Dictionary<string, TaoCan>() { {"入學體檢",new TaoCan(){canName="入學體檢", canDi = new Dictionary<string, TaoCanItems>() //項目集合 { {"身高",new TaoCanItems(){Name="身高",Description="檢查升高",Price=5}}, {"體重",new TaoCanItems(){Name="體重",Description="檢查體重",Price=15}}, {"視力",new TaoCanItems(){Name="視力",Description="檢查視力",Price=25}} }}} }; } public static List<string> FindAll() { if (taoDi == null) { Init(); } return taoDi.Keys.ToList(); } //根據選擇名稱獲取相應的套餐項目 public static List<TaoCanItems> FindItems(string name) { if (taoDi == null) { Init(); } return taoDi[name].canDi.Values.ToList(); } //通過傳遞的套餐名為該套餐添加新的項目 public static string addItem(string cName, TaoCanItems item) { //判斷添加是否重復 if (taoDi[cName].canDi.ContainsKey(item.Name)) { return "重復"; } taoDi[cName].canDi.Add(item.Name, item); return "添加成功"; } //通過選擇的項目刪除該套餐里面的該項目 public static string deleteItem(string tName, string iName) { taoDi[tName].canDi.Remove(iName); return "刪除成功"; } //添加一個新套餐 public static string AddTaoCao(string name) { //先判斷是否存在改套餐 if (taoDi.ContainsKey(name)) { return "已存在該套餐"; } taoDi.Add(name, new TaoCan() { canName = name, canDi = new Dictionary<string, TaoCanItems>() }); return "添加成功"; } }}namespace Day05體檢套餐{ public class TaoCan { public string canName { get; set; } public int canPrice { get; set; } public Dictionary<string, TaoCanItems> canDi { get; set; } }}namespace Day05體檢套餐{ public class TaoCanItems //套餐項目 { public string Name { get; set; } public string Description { get; set; } public int Price { get; set; } }}
新聞熱點
疑難解答