IMG-LOGO
×

Giáo Trình Học

Khoá học lập trình C# (.NET Core)

Kiến Thức Căn Bản - Khai Báo Biến, Toán Tử, Mệnh Đề Điều Kiện, Lặp

[Video] Giới thiệu về ngôn ngữ lập trình C# & .NET Framework + Khai báo biến trong C# [Video] Hướng dẫn tìm hiểu biến + toán tử trong lập trình C# [Video] Hướng dẫn tìm hiểu mệnh đề điều kiện if - else - switch trong C# [Video] Tìm dãy số nguyên tố - Lập trình C# - Loop trong C# [Video] In dãy số chẵn & lẻ từ mảng số nguyên - Lập trình C# - Loop trong C#




Trang Chủ C Sharp 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.

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.

by GokiSoft.com - 15:35 28/10/2021 1,635 Lượt Xem

Tạo class object đặt tên Record gồm các thuộc tính: Họ tên (string), số CMTND (string), số điện thoại (string), địa chỉ (string), ngày tiêm (DateTime), địa chỉ tiêm (string), tên vacxin (string) -> Sử dụng CMTND làm trường khoá.


Yêu cầu: Viết menu chương trình sau

1.  Thêm N đối tượng Record

2. Hiển thị thông tin chi tiết

3. Tìm kiếm tiêm chủng theo CMTND

4. Lưu vào file db.json

5. Đọc nội dung file db.json

6. Thoát


Chú ý: Option #3 => Viết chức năng tìm kiếm tiêm chủng theo CMTND -> Hiển thị kết quả tiêm chủng của công dân đó theo yêu cầu sau:

+. Thẻ vàng: TH tiêm 1 mũi -> thời gian tiêm tới hiện tại >= 14 ngày

+ Thẻ xanh: TH tiêm 2 mũi -> Mũi gần đây nhất tới hiện tại >= 14 ngày

+ Chưa tiêm chủng: TH chưa tiêm mũi nào hoặc các mũi tiêm < 14 ngày.

Bình luận



Chia sẻ từ lớp học

Nam20021608 [community,AAHN-C2009G]

Ngày viết: 22:30 08/10/2021


#Program.cs



using System;
using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;

namespace lap8
{
    class Program
    {
        public static List<Record> Records = new List<Record>();
        public static void ShowMenu()
        {
            Console.WriteLine(
                "1. Input new Record\n" +
                "2. Display Records\n" +
                "3. Search Records\n" +
                "4. Save Records to JSON\n" +
                "5. Read Records from JSON\n" +
                "6. Exit\n");
        }

        public static void Input()
        {
            Console.WriteLine("Enter number of records to input:");
            int N = Utility.ReadInt();
            for (int i = 0; i < N; i++)
            {
                Record r = new Record();
                r.input();
                Records.Add(r);
            }
        }

        public static void Display()
        {
            int i = 0;
            foreach(Record r in Records)
            {
                i++;
                Console.WriteLine("Record[" + i + "]");
                r.display();
            }
        }
        public static void Search()
        {
            Console.WriteLine("Enter CMTND:");
            string str = Utility.ReadNum();
            string card = "";
            int count = 0;
            DateTime minDate = new DateTime();
            Record found = new Record();
            foreach (Record r in Records)
            {
                if (minDate < r.VaccinatedDate)
                {
                    minDate = r.VaccinatedDate;
                }

                int days = (DateTime.Now.Date - r.VaccinatedDate).Days;
                int daysMin = (DateTime.Now.Date - minDate).Days;

                if (r.CMTND.Equals(str))
                {
                    count++;
                    found = r;
                }
                if (count == 1 && days >= 14)
                {
                    card = "Yellow Card";
                } else if (count == 2 && daysMin >= 14)
                {
                    card = "Green Card";
                } else if (count == 0 || days < 14)
                {
                    card = "Not Vaccinated";
                }
            }
          
            Console.WriteLine("Full Name: {0}\n" +
                "CMTND: {1}\n" +
                "Phone: {2}\n" +
                "Address: {3}\n" +
                "Vaccine Card: {4}\n", found.FullName, found.CMTND, found.Phone, found.Address, card);
        }
        public static void SaveFile()
        {
            try
            {
                var data = JsonConvert.SerializeObject(Records);
                File.WriteAllText(@"Records.json", data);
            } catch (Exception e)
            {
                Console.WriteLine(e.Message);
            } finally
            {
                Console.WriteLine("Save Success");
            }
        }
        public static void ReadFile()
        {
            try
            {
                var data = File.ReadAllText(@"Records.json");
                Records = JsonConvert.DeserializeObject<List<Record>>(data);
            } catch (FileNotFoundException)
            {
                Console.WriteLine("No Record file exists!");
            } catch (Exception e)
            {
                Console.WriteLine(e.Message);
            } finally
            {
                Console.WriteLine("Read Complete!");
            }
            
        }
        static void Main(string[] args)
        {
            int choose;

            do
            {
                ShowMenu();
                choose = Utility.ReadInt();
                switch (choose)
                {
                    case 1:
                        Input();
                        break;
                    case 2:
                        Display();
                        break;
                    case 3:
                        Search();
                        break;
                    case 4:
                        SaveFile();
                        break;
                    case 5:
                        ReadFile();
                        break;
                    default:
                        Console.WriteLine("Wrong input");
                        break;
                }
            } while (choose != 6);
        }
    }
}


#Record.cs


using Newtonsoft.Json;
using System;

namespace lap8
{
    [Serializable]
    public class Record
    {
        [JsonProperty("fullname")]
        public string FullName { get; set; }
        [JsonProperty("cmtnd")]
        public string CMTND { get; set; }
        [JsonProperty("phone")]
        public string Phone { get; set; }
        [JsonProperty("address")]
        public string Address { get; set; }
        [JsonProperty("vaccinateddate")]
        public DateTime VaccinatedDate { get; set; }
        [JsonProperty("vaccineaddress")]
        public string VaccineAddress { get; set; }
        [JsonProperty("vaccinename")]
        public string VaccineName { get; set; }
        public Record()
        {

        }
        public Record(string FullName, string CMTND, string Phone, string Address, string VaccinatedDate, string VaccineAddress, string VaccineName)
        {
            this.FullName = FullName;
            this.CMTND = CMTND;
            this.Phone = Phone;
            this.Address = Address;
            this.VaccinatedDate = DateTime.Parse(VaccinatedDate);
            this.VaccineAddress = VaccineAddress;
            this.VaccineName = VaccineName;
        }
        public Record(string FullName, string CMTND, string Phone, string Address, DateTime VaccinatedDate, string VaccineAddress, string VaccineName)
        {
            this.FullName = FullName;
            this.CMTND = CMTND;
            this.Phone = Phone;
            this.Address = Address;
            this.VaccinatedDate = VaccinatedDate;
            this.VaccineAddress = VaccineAddress;
            this.VaccineName = VaccineName;
        }
        public void input()
        {
            Console.WriteLine("Input full name:");
            FullName = Utility.ReadAlp();
            Console.WriteLine("Input CMTND:");
            CMTND = Utility.ReadNum();
            while (CMTND.Length != 9)
            {
                Console.WriteLine("They must have at least 9 characters");
                CMTND = Utility.ReadNum();
            }
            Console.WriteLine("Input Phone Num:");
            Phone = Utility.ReadNum();
            while (Phone.Length != 10)
            {
                Console.WriteLine("They must have at least 10 characters");
                Phone = Utility.ReadNum();
            }
            Console.WriteLine("Input Address:");
            Address = Console.ReadLine();
            Console.WriteLine("Input Vaccinated Date:");
            VaccinatedDate = Utility.ReadDate();
            Console.WriteLine("Input Vaccine Address:");
            VaccineAddress = Console.ReadLine();
            Console.WriteLine("Input Vaccine Name:");
            VaccineName = Console.ReadLine();
        }

        public void display()
        {
            Console.WriteLine("Full Name: {0}\n" +
                "CMTND: {1}\n" +
                "Phone: {2}\n" +
                "Address: {3}\n" +
                "Vaccinated Date: {4}\n" +
                "Vaccine Location: {5}\n" +
                "Vaccine Name: {6}\n", FullName, CMTND, Phone, Address, VaccinatedDate, VaccineAddress, VaccineName);
        }
    }
}


#Records.json


[{"fullname":"Nam","cmtnd":"012345678","phone":"0123456789","address":"Ha noi","vaccinateddate":"2012-04-20T00:00:00","vaccineaddress":"Ha noi","vaccinename":"n"}]


#Utility.cs


using System;
using System.Text.RegularExpressions;

namespace lap8
{
    public class Utility
    {
        public static int ReadInt()
        {
            string str = Console.ReadLine();
            bool check()
            {
                try { int.Parse(str); } catch (Exception) { return false; }
                return true;
            }
            while (!check())
            {
                Console.WriteLine("Input is not numerical value");
                str = Console.ReadLine();
            }
            return int.Parse(str);
        }

        public static string ReadNum()
        {
            string str = Console.ReadLine();
            while (!Regex.Match(str, "^[0-9]*$").Success)
            {
                Console.WriteLine("Input can only accept numbers");
                str = Console.ReadLine();
            }
            return str;
        }

        public static string ReadAlp()
        {
            string str = Console.ReadLine();
            while (!Regex.Match(str, "^([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)*$").Success)
            {
                Console.WriteLine("Input only accepts alphabet letter");
                str = Console.ReadLine();
            }
            return str;
        }
        
        
        public static DateTime ReadDate()
        {
            DateTime date = new DateTime();
            string str = Console.ReadLine();
            bool checkParse()
            {
                try { DateTime.Parse(str); } catch (Exception) { return false; }
                return true;
            }
            bool checkConvert()
            {
                try { Convert.ToDateTime(str); } catch (Exception) { return false; }
                return true;
            }
            while (!checkParse() && !checkConvert())
            {
                str = Console.ReadLine();
            }
            if (checkParse())
            {
                date = DateTime.Parse(str);
            } else if (checkConvert())
            {
                date = Convert.ToDateTime(str);
            }
            return date;
        }
    }
}


Phân Loại Bài Viết

Tài Liệu Tham Khảo

Đã sao chép!!!