1. 程式人生 > >MVC及List泛型集合案例之使用者管理系統

MVC及List泛型集合案例之使用者管理系統

一、MVC簡介:

MVC是一種設計模式,是一種程式碼開發的思想和套路

將要實現的功能分成三個部分:

M:(Model)模型層   主要對資料進行操作。

V:(View)檢視層    主要負責和使用者進行輸入輸出的互動。

C:(Controller)互動層  主要負責該功能的邏輯部分。

以網站的登入介面為例進行說明:

登入介面(V)<-------->登入,註冊(C)<-------->資料庫相關操作(M).

二、使用LIst集合對資料進行增刪改查

定義User實體類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UserManagementSystenm
{
    /// <summary>
    /// 實體類
    /// </summary>
    class User
    {
        private string name;
        private int age;
        private string address;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        public int Age
        {
            get { return age; }
            set { age = value; }
        }
        public string Address
        {
            get { return address; }
            set { address = value; }
        }
        public User(string name,int age,string address) {
            this.name = name;
            this.age = age;
            this.address = address;
        }
        public override string ToString()
        {
            return string.Format("{0}|{1}|{2}",name,age,address);
        }

    }
}

UserControll(使用者控制類)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UserManagementSystenm
{
    /// <summary>
    /// C(Controll)控制器層---用於處理邏輯
    /// </summary>
    class UserController
    {
        //例項化一個User集合
        List<User> userList = new List<User>();
        /// <summary>
        /// 新增資料
        /// </summary>        
        public void AddItem(User user)
        {
            userList.Add(user);
        }
        //修改資料
        /// <summary>
        /// 修改第i個數據的名字
        /// </summary>
        public void AlterByName(string name,int num) {
            userList[num].Name = name;
        }
        /// <summary>
        /// 修改第i個數據的年齡
        /// </summary>
        public void AlterByAge(int age, int num)
        {
            userList[num].Age = age;
        }
        /// <summary>
        /// 修改第i個數據的地址
        /// </summary>
        public void AlterByAddress(string address, int num)
        {
            userList[num].Address = address;
        }
        //刪除資料
        /// <summary>
        /// 通過名字刪除
        /// </summary>
        public void RemoveByName(string name)
        {
            for (int i = 0; i < userList.Count; i++)
            {
                if (userList[i].Name==name) {
                    userList.Remove(userList[i]);
                }
            }
        }
        /// <summary>
        /// 通過地址刪除
        /// </summary>
        public void RemoveByAddress(string address)
        {
            for (int i = 0; i < userList.Count; i++)
            {
                if (userList[i].Address == address)
                {
                    userList.Remove(userList[i]);
                }
            }
        }
        //查詢資料
        public void ShowAll() {
            if (userList.Count== 0)
            {
                Console.WriteLine("還未新增資料");
            }
            for (int i = 0; i < userList.Count; i++)
            {
                Console.WriteLine(i+1+":"+userList[i]);
            }
        }
    }
}

Program(檢視層)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UserManagementSystenm
{
    /// <summary>
    /// V(View)檢視層----和使用者進行互動
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("----------------------");
            Console.WriteLine("------使用者管理系統----");
            Console.WriteLine("----------------------");

            UserController uc = new UserController();
            //  
            while (true) { 
            Console.WriteLine("輸入你要進行的操作:1.新增,2.修改3.刪除4.查詢");
            //接收使用者輸入的資訊
            string command= Console.ReadLine();
            //對使用者輸入的命令進行判斷
            switch (command)
            {
                case "1":
                    Console.WriteLine("輸入名字");
                    string name = Console.ReadLine();
                    Console.WriteLine("輸入年齡");
                    int age =int.Parse(Console.ReadLine());
                    Console.WriteLine("輸入地址");
                    string address = Console.ReadLine();

                    uc.AddItem(new User(name,age,address));
                    break;
                case "2":
                        uc.ShowAll();
                        Console.WriteLine("請輸入要修改第幾個資料");
                        int num = int.Parse(Console.ReadLine())-1;
                        Console.WriteLine("輸入修改的屬性1.名字2.年齡3.地址");
                        string AlterConn = Console.ReadLine();
                        if (AlterConn == "1")
                        {
                            Console.WriteLine("輸入修改後的名字");
                            string AlterName = Console.ReadLine();
                            uc.AlterByName(AlterName,num);
                        }
                        else if (AlterConn == "2")
                        {
                            Console.WriteLine("輸入修改後的年齡");
                            int AlterAge = int.Parse(Console.ReadLine());
                            uc.AlterByAge(AlterAge,num);
                        }
                        else if (AlterConn == "3")
                        {
                            Console.WriteLine("輸入修改後的地址");
                            string AlterAddress = Console.ReadLine();
                            uc.AlterByAddress(AlterAddress, num);
                        }
                        else
                        {
                            Console.WriteLine("請輸入指定命令符");
                        }

                        break;
                case "3":
                        Console.WriteLine("輸入按什麼型別來修改1.名字2.地址");
                        string DeletConn = Console.ReadLine();
                        if (DeletConn == "1")
                        {
                            Console.WriteLine("輸入要刪除的名字");
                            string DeletName = Console.ReadLine();
                            uc.RemoveByName(DeletName);
                        } else if (DeletConn == "2") {
                            Console.WriteLine("輸入要刪除的地址");
                            string DeletAddress = Console.ReadLine();
                            uc.RemoveByAddress(DeletAddress);
                        } else {
                            Console.WriteLine("請輸入指定命令符");
                        }
                    break;
                case "4":
                    uc.ShowAll();
                    break;
                default:
                    Console.WriteLine("請輸入指定命令符");
                    break;
            }
          }
            
        }
    }
}