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)