体验套餐管理系统

namespace 体验套餐管理系统
{//项目
    public class Project
    {
        //保存项目的具体内容
        public Project(string name, int price, string description)
        {
            this.proName  = name;
            this.Description = description;
            this.proPrice = price;
        }
        public string  Description { get; set; }
        public string proName { get; set; }
        public int proPrice { get; set; }
        public Project()
        {
        }
       
    }
}



namespace 体验套餐管理系统
{//套餐
    public class Package
    {
        //保存所有项目(暂未使用)
        public List<Project> Allproject;
        //保存入学体检中的项目
        public List<Project> project;
        //构造函数(所有项目)
        public Package(List<Project> items) 
        {
            this.Allproject = items;
        }
        //构造函数(套餐名称和入学体检中的项目)
        public Package(string name, List<Project> items)
        {
            this.pacName = name;
            this.project = items;
        }
       
      
        public string  pacName { get; set; }
        public int pacPrice { get; set; }//套餐总和
        //计算套餐总和
        public void CalcPrice()
        {
            int totalPrice = 0;
            foreach (Project item in project)
            {
                totalPrice += item.proPrice;
            }
            this.pacPrice = totalPrice;
        
        
        }
    }
}

namespace 体验套餐管理系统
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }
        
        //初始化package,Project构造函数
        Project height, weight, sight, gan, wei;

        Package p1, p2, p3;

        //临时保存所有的体检项目
        List<Project> AllItems = new List<Project>();
        //临时保存套餐中的体检项目
        List<Project> items = new List<Project>();
        //使用字典保存套餐集合
        public Dictionary<string, Package> HealthSet = new Dictionary<string, Package>();
        //保存新建套餐中的体检项目
        List<Project> newitems = new List<Project>();
        public void AddProject()
        {
            //向临时项目表(AllItems)添加所有的项目
            gan = new Project("肝", 20, "检查肝");
            wei = new Project("胃", 20, "检查胃");
            weight = new Project("体重", 10, "检查体重.");
            sight = new Project("视力", 10, "检查视力.");
            height = new Project("身高", 10, "检查身高.");
            AllItems.Add(height);
            AllItems.Add(sight);
            AllItems.Add(weight);
            AllItems.Add(gan);
            AllItems.Add(wei);
            p2 = new Package(AllItems);
        }
        public void AddPackage()
        {
            //向临时项目表(items)加项目
            items = new List<Project>();
            items.Add(height);
            items.Add(sight);
            items.Add(weight);
            //将临时项目表(items)传给package的project项目表
            p1 = new Package("入学体检", items);
            p1.CalcPrice();
            //将(入学体检)和package的项目表绑定到Heathset集合
            this.HealthSet.Add("入学体检", p1);
        }

        public void InitHealthSetList()
        {

            this.cbPackage.Items.Clear();
            this.cbPackage.Items.Add("请选择");
            //将所有项目的名称绑定到cbProject
            foreach (Project item in AllItems)
            {
                this.cbProject.Items.Add(item.proName);
            }
            this.cbProject.SelectedIndex = 0;
            //将所有套餐的名称绑定到cbPackage
            foreach (string key in this.HealthSet.Keys)
            {
                this.cbPackage.Items.Add(key);
            }
            this.cbPackage.SelectedIndex = 0;
        }


        //进行刷新dataGridview的套餐集合
        public void Update(Package p)
        {
            dataGridView1.DataSource = new BindingList<Project>(p.project);

        }
       // 窗口加载事件
        private void Main_Load(object sender, EventArgs e)
        {
            AddProject();
            AddPackage();
            InitHealthSetList();
        }

        //套餐列表改变事件
        private void cbPackage_SelectedIndexChanged(object sender, EventArgs e)
        {

            //判断套餐类别中选中的类型
            string setName = this.cbPackage.Text;

            if (setName == "请选择")
            {
                this.dataGridView1.DataSource = new BindingList<Project>();
                this.lbPackageName.Text = "";
                this.lbPackagePrice.Text = "";
                return;


            }

            lbPackageName.Text = this.HealthSet[setName].pacName;
            //设置套餐总价
            lbPackagePrice.Text = this.HealthSet[setName].pacPrice.ToString();
            //更新套餐检查项目
            Update(HealthSet[setName]);
            this.btDelete.Enabled = true;

        }
        //删除套餐中的项目
        public void Delete()
        {
            string xiangmuName = "";
            xiangmuName = this.dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
            MessageBox.Show(xiangmuName);
            //判断套餐列表选中的套餐
            if (cbPackage.Text == "入学体检")
            {
                 foreach (Project item in items)
            {

                if (item.proName == xiangmuName)
                {
                    items.Remove(item);
                    break;
                }

            } 
                p1 = new Package(this.cbPackage.Text, items);

            p1.CalcPrice();
            this.lbPackagePrice.Text = p1.pacPrice.ToString();

            this.dataGridView1.DataSource = new BindingList<Project>(items);
            MessageBox.Show("Test");
            }
            else
            {
                foreach (Project item in newitems)
                {

                    if (item.proName == xiangmuName)
                    {
                        newitems.Remove(item);
                        break;
                    }

                }
                p3.CalcPrice();
                this.dataGridView1.DataSource = new BindingList<Project>(newitems);
                this.lbPackagePrice.Text = p3.pacPrice.ToString();
            }
          

           

        }
        //点击删除button事件
        private void btDelete_Click(object sender, EventArgs e)
        {
            Delete();
        }
        //向套餐中添加新的项目
        public void AddNewProject()
        {
            string projectName = "";
            projectName = this.cbProject.Text;
            MessageBox.Show(projectName);

            foreach (Project item in AllItems)
            {
                if (item.proName == projectName)
                {
                    //判断套餐列表选中的套餐
                    if (cbPackage.Text == "入学体检")
                    {
                        items.Add(item);
                        break;
                    }
                    else
                    {
                        newitems.Add(item);
                        break;
                    }

                }
                //判断套餐列表选中的套餐
            } if (cbPackage.Text == "入学体检")
            {
                this.dataGridView1.DataSource = new BindingList<Project>(items);
                p1 = new Package(this.cbPackage.Text, items);
                p1.CalcPrice();
                this.lbPackagePrice.Text = p1.pacPrice.ToString();
            }
            else
            {
                p3.CalcPrice();
                this.dataGridView1.DataSource = new BindingList<Project>(newitems);
                this.lbPackagePrice.Text = p3.pacPrice.ToString();
            }
        }
        //点击添加项目事件
        private void btAddProject_Click(object sender, EventArgs e)
        {
            AddNewProject();
        }
        //添加新套餐并将新套餐添加至套餐集合HeathSet中
        public void AddNewPackage()
        {
            string NewPackage = "";
            NewPackage = this.tbAdd.Text;
            if (cbPackage.Items.ToString() == NewPackage)
            {
                Console.WriteLine("该套餐已存在");

            }

            this.tbAdd.Clear();
            this.cbPackage.Items.Add(NewPackage);
            p3 = new Package(NewPackage, newitems);
            p3.CalcPrice();
            HealthSet.Add(NewPackage, p3);
            

        }
        //点击添加套餐button事件
        private void btAdd_Click(object sender, EventArgs e)
        {
            AddNewPackage();
        }




    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值