By GokiSoft.com| 19:44 19/10/2021|
C Sharp

[Video] Kỹ thuật switch mới - Viết chương trình quản lý tiêm chủng Vacxin COVID-19 - Lập trình C Sharp nâng cao.


Link Video Bài Giảng

Bài tập - Bài tập - Viết chương trình quản lý tiêm chủng Vacxin COVID-19 - Lập trình C Sharp nâng cao.

#Program.cs


using System;
using System.Collections.Generic;
using System.IO;

namespace BT2466
{
    delegate void SwitchCase();

    class Program
    {
        static List<Record> recordList;

        static void Main(string[] args)
        {
            recordList = new List<Record>();

            SwitchCase[] switchCases = { Input, Display, SearchByCmtnd, SaveText,
                    ReadText, SaveObject, ReadObject, SaveJson, ReadJson, ExitProgram};

            int choose;
            do
            {
                ShowMenu();
                choose = int.Parse(Console.ReadLine());

                if(choose <= switchCases.Length)
                {
                    switchCases[choose - 1]();
                } else
                {
                    Console.WriteLine("Nhap sai!!!");
                }
            } while (choose != 10);
        }

        static void Input()
        {
            Console.WriteLine("Nhap so ban ghi can them N = ");
            int N = int.Parse(Console.ReadLine());

            for(int i=0;i<N;i++)
            {
                Record record = new Record();
                record.Input();

                recordList.Add(record);
            }
        }

        static void Display()
        {
            Console.WriteLine("=== Danh sach ban ghi");
            foreach(Record record in recordList)
            {
                record.Display();
            }
        }

        static void SearchByCmtnd()
        {
            //Rule tiem chung 1 -> 2: 14 ngay
            //Check 2 (tiem gan nhat) -> so sanh-> 14 ngay -> dua ra thong bao phu hop
            Console.WriteLine("Nhap Cmtnd can kiem tra: ");
            string cmtnd = Console.ReadLine();

            int count = 0;
            DateTime? lastDateTime = null;

            foreach(Record record in recordList)
            {
                if(record.Cmtnd == cmtnd)
                {
                    if(count == 0 || record.VacxinDate > lastDateTime)
                    {
                        lastDateTime = record.VacxinDate;
                    }
                    count++;
                }
            }

            DateTime twoWeeksBefore = DateTime.Now.AddDays(-14);
            if (count > 2) {
                Console.WriteLine("The xanh");
            } else if(count == 2 && lastDateTime <= twoWeeksBefore)
            {
                Console.WriteLine("The xanh");
            } else if(count == 2 || (count == 1 && lastDateTime <= twoWeeksBefore)) {
                Console.WriteLine("The vang");
            } else if(count > 0)
            {
                Console.WriteLine("Normal");
            } else
            {
                Console.WriteLine("Chua tiem chung");
            }

        }

        static void SaveText()
        {
            string content = "";
            foreach(Record record in recordList)
            {
                content += record.GetFileLine();
            }

            System.IO.File.WriteAllText(@"db.txt", content);
            Console.WriteLine("***** Lu Thanh Cong TEXT *****");
        }

        static void ReadText()
        {
            try
            {
                string content = System.IO.File.ReadAllText(@"db.txt");
                string[] lines = content.Split("\n");

                foreach(string line in lines)
                {
                    if (line.Trim() == "") continue;
                    Record record = new Record();
                    record.ParseFileLine(line);

                    recordList.Add(record);
                }

                Display();
            }
            catch (Exception e) { }
        }

        static void SaveObject()
        {
            //serialize
            using (Stream stream = File.Open(@"db.dat", FileMode.Create))
            {
                var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();

                bformatter.Serialize(stream, recordList);
            }
            Console.WriteLine("***** Lu Thanh Cong OBJECT *****");
        }

        static void ReadObject()
        {
            //deserialize
            try
            {
                using (Stream stream = File.Open(@"db.dat", FileMode.Open))
                {
                    var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();

                    recordList = (List<Record>)bformatter.Deserialize(stream);

                    Display();
                }
            } catch(Exception e) {}
        }

        static void SaveJson()
        {
            //B1. Convert List -> json string
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(recordList);

            //B2. Save File
            System.IO.File.WriteAllText(@"db.json", json);

            Console.WriteLine("***** Lu Thanh Cong JSON *****");
        }

        static void ReadJson()
        {
            try
            {
                //B1. Doc noi dung trong db.json
                string json = System.IO.File.ReadAllText(@"db.json");

                //B2. Chuyen json string -> List
                recordList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Record>>(json);

                Display();
            }
            catch (Exception e) { }
        }

        static void ExitProgram()
        {
            Console.WriteLine("Thoat chuong trinh!!!");
        }

        static void ShowMenu()
        {
            Console.WriteLine("1. Nhap N ban ghi");
            Console.WriteLine("2. Hien thi thong tin");
            Console.WriteLine("3. Tim kiem thong tin cong dan");
            Console.WriteLine("4. Luu db.txt");
            Console.WriteLine("5. Doc noi dung db.txt");
            Console.WriteLine("6. Luu db.dat");
            Console.WriteLine("7. Doc db.dat");
            Console.WriteLine("8. Luu db.json");
            Console.WriteLine("9. Doc db.json");
            Console.WriteLine("10. Thoat");
            Console.WriteLine("Chon: ");
        }
    }
}


#Utility.cs


using System;
namespace BT2466
{
    public class Utility
    {
        public static string ConvertDateTimeToString(DateTime myDate)
        {
            return myDate.ToString("yyyy-MM-dd");
        }

        public static DateTime ConvertStringToDateTime(string str)
        {
            DateTime myDate = DateTime.ParseExact(str, "yyyy-MM-dd",
                                       System.Globalization.CultureInfo.InvariantCulture);
            return myDate;
        }
    }
}


#Record.cs


using System;
namespace BT2466
{
    [Serializable]
    public class Record
    {
        public string Fullname { get; set; }
        public string Cmtnd { get; set; }
        public string PhoneNumber { get; set; }
        public string Address { get; set; }
        public DateTime VacxinDate { get; set; }
        public string VacxinAddress { get; set; }
        public string VacxinName { get; set; }

        public Record()
        {
        }

        public Record(string fullname, string cmtnd, string phoneNumber,
            string address, DateTime vacxinDate, string vacxinAddress,
            string vacxinName)
        {
            Fullname = fullname;
            Cmtnd = cmtnd;
            PhoneNumber = phoneNumber;
            Address = address;
            VacxinDate = vacxinDate;
            VacxinAddress = vacxinAddress;
            VacxinName = vacxinName;
        }

        public void Input()
        {
            Console.WriteLine("================================");
            Console.WriteLine("Nhap ten: ");
            Fullname = Console.ReadLine();

            Console.WriteLine("Nhap Cmtnd: ");
            Cmtnd = Console.ReadLine();

            Console.WriteLine("Nhap SDT: ");
            PhoneNumber = Console.ReadLine();

            Console.WriteLine("Nhap dia chi: ");
            Address = Console.ReadLine();

            Console.WriteLine("Nhap ngay tiem vacxin (yyyy-MM-dd): ");
            VacxinDate = Utility.ConvertStringToDateTime(Console.ReadLine());

            Console.WriteLine("Nhap dia chi tiem: ");
            VacxinAddress = Console.ReadLine();

            Console.WriteLine("Nhap ten vacxin: ");
            VacxinName = Console.ReadLine();
        }

        public void Display()
        {
            Console.WriteLine("Ten: {0}, Cmtnd: {1}, SDT: {2}, Dia chi: {3}, " +
                "Ngay tiem vaxcin: {4}, dia chi tiem: {5}, " +
                "ten vacxin: {6}", Fullname, Cmtnd, PhoneNumber, Address,
                Utility.ConvertDateTimeToString(VacxinDate), VacxinAddress, VacxinName);
        }

        public string GetFileLine()
        {
            return string.Format("{0},{1},{2},{3},{4},{5},{6}\n", Fullname, Cmtnd, PhoneNumber, Address,
                Utility.ConvertDateTimeToString(VacxinDate), VacxinAddress, VacxinName);
        }

        public void ParseFileLine(string line)
        {
            string[] elements = line.Split(",");
            Fullname = elements[0];
            Cmtnd = elements[1];
            PhoneNumber = elements[2];
            Address = elements[3];
            VacxinDate = Utility.ConvertStringToDateTime(elements[4]);
            VacxinAddress = elements[5];
            VacxinName = elements[6];
        }
    }
}


Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)