namespace Hw1_Hashing
{
 public class Program
 {
 static List PhoneData1 = new List(); //arraylist for phone number 
 static List PersonData1 = new List(); //arraylist for person 
 static Hashtable Hash = new Hashtable();
 static string path = @"PhoneBook1.txt";
 static void Main(string[] args)
 {
 try
 {
 readData();
 char x;
 bool isExit = false;
 do
 {
 Console.Write("Phonebook - Input your command (h for help):");
 string m = Console.ReadLine();
 x = char.ToLower(m[0]);
 switch (x)
 {
 case 'i': insert(); //func insert a phone number 
 break;
 case 'd': delete(); //delete a phone number
 break;
 case 'm': modify(); //modify
 break;
 case 's':
 {
 search(); //search phone no
 break;
 }
 case 'x':
 {
 isExit = true;
 //write data to textfiles
 writeData();
 break;
 }
 case 'h':
 {
 help();
 break;
 }
 default: break;
 }
 } while (!isExit);
 }
 catch (Exception ex)
 {
 Console.WriteLine("Program Error : " + ex.Message);
 Console.Read();
 }
 }
 static void insert()
 {
 bool m = false;
 string x = string.Empty;
 string newList = "The new list is:";
 do
 {
 Console.Write("Enter a phone number to be inserted: ");
 x = Console.ReadLine();
 x = x.Trim();
 int y = x.Length;
 if (y > 10)
 Console.WriteLine("Error - the number is too long");
 else if (y < 10)
 Console.WriteLine("Error - the number is too short");
 else
 {
 m = true;
 foreach (PhoneData item in PhoneData1)
 {
 if (String.Compare(item.PhoneNumber, x) == 0)
 {
 Console.WriteLine("Error - the phone number is already in this phone book.");
 m = false;
 }
 }
 }
 } while (m == false);
 Console.WriteLine("The list is:");
 showList(null);
 //Show for Enter input new person or not
 Console.Write("Enter the person id to append the phone number or 'n' for new phone number :");
 string inputNP = Console.ReadLine();
 int no;
 //if it new person
 if ("nN".Contains(inputNP))
 {
 Console.Write("Enter the name (8 Characters maximum) :");
 string inputName = Console.ReadLine();
 while (inputName.Length > 8)
 {
 Console.Write("Error name is more that 8 Characters, Please Enter new name:");
 inputName = Console.ReadLine();
 }
 //insert new name
 PersonData p = new PersonData();
 p.PersonNo = PersonData1.Count + 1;
 p.Name = inputName;
 p.CountPhoneNo++;
 PersonData1.Add(p);
 //insert new phone no. to list
 PhoneData ph = new PhoneData();
 ph.no = p.PersonNo;
 ph.PhoneNumber = x;
 ph.phoneOrder = 1;
 PhoneData1.Add(ph);
 //add key to hashtable
 InsertHashTable(ph);
 //print new list
 Console.WriteLine(newList);
 showList(null);
 }
 else if (int.TryParse(inputNP, out no) == true)
 {
 int noIndex = PersonData1.FindIndex(i => i.PersonNo == no);
 //checking is it full 5 phone no for that person
 //if it full show error and input the replace no for replace that phone no
 if (PersonData1[noIndex].CountPhoneNo == 5)
 {
 Console.Write(PersonData1[noIndex].Name + " has 5 phone numbers already,"+Environment.NewLine+" enter replaced number or any key for cancel:");
 string inputRC = Console.ReadLine();
 int tryParseInputRC;
 //if not cancel replace that phone no to another one
 if (int.TryParse(inputRC, out tryParseInputRC))
 {
 //replace and remove key of that phone no. from hash table
 //int indexperson = PersonData1.FindIndex(i => i.PersonNo == PersonData1[no].PersonNo);
 PhoneData ph = new PhoneData();
 ph.no = no;
 int indexphone = PhoneData1.FindIndex(i => i.phoneOrder == tryParseInputRC);
 ph.PhoneNumber = PhoneData1[indexphone].PhoneNumber;
 ph.phoneOrder = tryParseInputRC;
 PhoneData ph2 = new PhoneData();
 ph2.no = ph.no;
 ph2.PhoneNumber = x;
 ph2.phoneOrder = ph.phoneOrder;
 PhoneData1[indexphone] = ph2;
 //delete hash table data
 DeleteHashTable(ph);
 //insert new hash table data
 InsertHashTable(ph2);
 //show new list
 Console.WriteLine(newList);
 showList(null);
 }
 }
 else
 {
 Console.Write("Enter replaced number or 'n' for new phone number:");
 string inputPHID = Console.ReadLine();
 if ("nN".Contains(inputPHID))
 {
 //add new phone number and position
 PhoneData ph = new PhoneData();
 ph.phoneOrder = PersonData1[noIndex].CountPhoneNo + 1;
 ph.no = no;
 ph.PhoneNumber = x;
 PhoneData1.Add(ph);
 PersonData1[noIndex].CountPhoneNo++;
 //increase phone item in person
 int indexPer = PersonData1.FindIndex(i => i.PersonNo == no);
 //insert phone no to hash table
 InsertHashTable(ph);
 }
 else
 {
 int phoneN;
 bool isNumberic = int.TryParse(inputPHID, out phoneN);
 //ask to replace phone no.
 if (phoneN  0)
 {
 int j = 0;
 for (int i = 0; i < PhoneData1.Count; i++)
 {
 if (PhoneData1[i].phoneOrder == phoneN && PhoneData1[i].no == no)
 {
 j = i;
 break;
 }
 }
 string pp1;
 string p1 = PhoneData1[j].PhoneNumber;
 pp1 = p1;
 p1 = p1.Substring(0, 3) + " " + p1.Substring(3, 3) + " " + p1.Substring(6, 4);
 string p2 = x;
 p2 = p2.Substring(0, 3) + " " + p2.Substring(3, 3) + " " + p2.Substring(6, 4);
 Console.Write("Do you want to replace " + PersonData1[noIndex].Name + "'s contact " + p1 + " with " + p2 +Environment.NewLine+ " ('y' for yes, any key to cancel)? :");
 string checkR = Console.ReadLine();
 if ("yY".Contains(checkR))
 {
 //replace that phone no.
 PhoneData ph1 = new PhoneData();
 ph1.no = no;
 ph1.PhoneNumber = x.Trim();
 ph1.phoneOrder = phoneN;
 PhoneData1[j] = ph1;
 PhoneData ph2 = new PhoneData();
 ph2.no = no;
 ph2.PhoneNumber = pp1;
 ph2.phoneOrder = phoneN;
 //remove hash table about that phone no.
 DeleteHashTable(ph2);
 //insert new hash table of this phone no.
 InsertHashTable(ph1);
 }
 }
 else
 {
 //insert phone no in next position
 PhoneData ph = new PhoneData();
 ph.PhoneNumber = x;
 ph.no = no;
 
เนมสเปซ Hw1_Hashing{ สาธารณะประเภทโปรแกรม { รายการแบบคง PhoneData1 =รายการใหม่(); arraylist หมายเลขโทรศัพท์  รายการแบบคง PersonData1 =รายการใหม่(); arraylist สำหรับบุคคล  คง Hashtable แฮ = Hashtable() ใหม่ เส้นทางสายคง =แอท "PhoneBook1.txt" คงเป็นโมฆะหลัก (สตริงที่[]อาร์กิวเมนต์) { ลอง { readData() อักขระ x bool isExit = false ทำ { Console.Write ("สมุดโทรศัพท์ - ป้อนข้อมูลคำสั่ง (h สำหรับความช่วยเหลือ): "); สาย m = Console.ReadLine() x =อักขระ ToLower(m[0]) สวิตช์ (x) { กรณี 'i': insert() func แทรกหมายเลขโทรศัพท์  ทำลาย กรณีจะ ': delete (); ลบหมายเลขโทรศัพท์ ทำลาย กรณีกำลัง ': modify() ปรับเปลี่ยน ทำลาย กรณีของ ': { search() ค้นหาโทรศัพท์ไม่ ทำลาย } กรณี 'x': { isExit = true เขียนข้อมูลไปยัง textfiles writeData() ทำลาย } กรณี 'h': { help() ทำลาย } เริ่มต้น: ทำลาย } } ขณะ (! isExit); } จับ (ยกเว้นแฟนเก่า) { Console.WriteLine ("โปรแกรมข้อผิดพลาด: " + อดีต ข้อ); Console.Read() } } insert() คงเป็นโมฆะ { bool m = false สายอักขระ x =สาย ว่างเปล่า สตริ newList = "รายใหม่: "; ทำ { Console.Write ("ใส่หมายเลขโทรศัพท์ที่จะแทรก: "); x = Console.ReadLine() x = x.Trim() int y = x.Length ถ้า (y > 10) Console.WriteLine ("ข้อผิดพลาด - หมายเลขยาวเกินไป"); ถ้าที่อื่น (y < 10) Console.WriteLine ("ข้อผิดพลาด - หมายจะสั้นเกินไป"); อื่น { m = true foreach (PhoneData สินค้าใน PhoneData1) { ถ้า ((รายการ String.Compare PhoneNumber, x) == 0) { Console.WriteLine ("ข้อผิดพลาด - หมายเลขโทรศัพท์อยู่ในสมุดโทรศัพท์นี้"); m = false } } } } ขณะ (m == false); Console.WriteLine ("รายการ: "); showList(null) แสดงบุคคลใหม่ป้อนเข้า หรือไม่ Console.Write ("ป้อนรหัสบุคคลผนวกหมายเลขโทรศัพท์หรือเอ็นสำหรับหมายเลขโทรศัพท์ใหม่: "); สตริ inputNP = Console.ReadLine() int ไม่ ถ้าได้คนใหม่ ถ้า ("nN" Contains(inputNP)) { Console.Write ("ใส่ชื่อ (8 อักขระสูงสุด): "); สตริ inputName = Console.ReadLine() ในขณะที่ (inputName.Length > 8) { Console.Write ("มากว่า 8 ตัว กรุณาป้อนชื่อใหม่เป็นชื่อข้อผิดพลาด: "); inputName = Console.ReadLine() } ใส่ชื่อใหม่ PersonData p = PersonData() ใหม่ p.PersonNo = PersonData1.Count + 1 p.Name = inputName p.CountPhoneNo++ PersonData1.Add(p) ใส่โทรศัพท์มือถือใหม่ไม่ การแสดงรายการ PhoneData ph = PhoneData() ใหม่ ph.no = p.PersonNo ph PhoneNumber = x ph.phoneOrder = 1 PhoneData1.Add(ph) เพิ่มคีย์ hashtable InsertHashTable(ph) พิมพ์รายการใหม่ Console.WriteLine(newList) showList(null) } ถ้าที่อื่น (ของดอกเบี้ย TryParse(inputNP, out no) ==จริง) { int noIndex = PersonData1.FindIndex (ผม = > i.PersonNo ==ไม่); การตรวจสอบคือ มันเต็ม 5 โทรศัพท์สำหรับบุคคลที่ไม่มี ถ้ามันเต็มแสดงข้อผิดพลาด และเข้าแทนที่สำหรับ เปลี่ยนโทรศัพท์ที่ไม่ ถ้า (PersonData1 [noIndex] CountPhoneNo == 5) { Console.Write (PersonData1 [noIndex] ชื่อ + "มี already,"+Environment.NewLine+ หมายเลขโทรศัพท์ 5"ป้อนแทนเลขหรือคีย์ใด ๆ สำหรับการยกเลิก: "); สตริ inputRC = Console.ReadLine() int tryParseInputRC ถ้า ไม่ยกเลิกการแทนที่โทรศัพท์ไม่เป็นหนึ่ง ถ้า (ของดอกเบี้ย TryParse (inputRC ออก tryParseInputRC)) { แทน และเอาคีย์ที่โทรศัพท์ไม่ จากตารางแฮช int indexperson = PersonData1.FindIndex (ผม = > i.PersonNo == PersonData1 [ไม่] PersonNo); PhoneData ph = PhoneData() ใหม่ ph.no = no int indexphone = PhoneData1.FindIndex (ผม = > i.phoneOrder == tryParseInputRC); ph PhoneNumber = PhoneData1 [indexphone] PhoneNumber ph.phoneOrder = tryParseInputRC PhoneData ph2 = PhoneData() ใหม่ ph2.no = ph.no ph2 PhoneNumber = x ph2.phoneOrder = ph.phoneOrder PhoneData1 [indexphone] = ph2 ลบข้อมูลในตารางแฮ DeleteHashTable(ph) แทรกข้อมูลในตารางแฮใหม่ InsertHashTable(ph2) แสดงรายการใหม่ Console.WriteLine(newList) showList(null) } } อื่น { Console.Write (" Enter แทนหมายเลขหรือเอ็นสำหรับหมายเลขโทรศัพท์ใหม่: "); สตริ inputPHID = Console.ReadLine() ถ้า ("nN" Contains(inputPHID)) { เพิ่มหมายเลขโทรศัพท์ใหม่และตำแหน่ง PhoneData ph = PhoneData() ใหม่ ph.phoneOrder = PersonData1 [noIndex] CountPhoneNo + 1 ph.no = no ph PhoneNumber = x PhoneData1.Add(ph) PersonData1 [noIndex] CountPhoneNo ++ เพิ่มสินค้าโทรศัพท์คน int indexPer = PersonData1.FindIndex (ผม = > i.PersonNo ==ไม่); ใส่โทรศัพท์ไม่ให้ตารางแฮช InsertHashTable(ph) } อื่น { int phoneN bool isNumberic =ของดอกเบี้ย TryParse (inputPHID ออก phoneN); ขอให้แทนโทรศัพท์ไม่ ถ้า (phoneN < = PersonData1 [noIndex] CountPhoneNo และ & phoneN > 0) { int j = 0 สำหรับ (int ฉัน = 0 ฉัน < PhoneData1.Count; i ++) { ถ้า (PhoneData1 [i] .phoneOrder == phoneN & & PhoneData1 [i] รวด==ไม่มี) { j =ฉัน ทำลาย } } สตริ pp1 สตริ p1 = PhoneData1 [j] PhoneNumber pp1 = p1 p1 = p1 ด้วย (0, 3) + "" + p1 ด้วย (3, 3) + "" + p1 ด้วย (6, 4); สตริ p 2 = x p 2 = p 2 ด้วย (0, 3) + "" + p 2 ด้วย (3, 3) + "" + p 2 ด้วย (6, 4); Console.Write ("คุณต้องการแทน" + PersonData1 [noIndex] ชื่อ + "ของผู้ติดต่อ" + p1 + "กับ" + +Environment.NewLine+ p 2 " ('y' สำหรับใช่ แป้นใด ๆ เพื่อยกเลิก) หรือไม่?: "); สตริ checkR = Console.ReadLine() ถ้า ("yY" Contains(checkR)) { แทนที่เบอร์โทรศัพท์ PhoneData ph1 = PhoneData() ใหม่ ph1.no = no ph1 PhoneNumber = x.Trim() ph1.phoneOrder = phoneN PhoneData1 [เจ] = ph1 PhoneData ph2 = PhoneData() ใหม่ ph2.no = no ph2 PhoneNumber = pp1 ph2.phoneOrder = phoneN เอาตารางแฮชเกี่ยวกับโทรศัพท์ที่ไม่ DeleteHashTable(ph2) แทรกตารางแฮใหม่ของโทรศัพท์นี้ไม่ InsertHashTable(ph1) } } อื่น { ใส่โทรศัพท์ไม่ในตำแหน่งถัดไป PhoneData ph = PhoneData() ใหม่ ph PhoneNumber = x ph.no = no
การแปล กรุณารอสักครู่..

 
 
namespace Hw1_Hashing {โปรแกรมเรียนสาธารณะ{คงที่รายชื่อ
 PhoneData1 = รายชื่อใหม่(); // ArrayList 
สำหรับหมายเลขโทรศัพท์คงที่รายชื่อ PersonData1 = รายชื่อใหม่(); // ArrayList 
คนคงแฮHashtable = Hashtable ใหม่ (); 
เส้นทางสตริงคงที่ = @ "PhoneBook1.txt"; เป็นโมฆะคง main (String args []) {ลอง{readData (); x ถ่าน; บูล isExit = false; สิ่งที่ต้องทำ{Console.Write ("สมุดโทรศัพท์ - การป้อนคำสั่งของคุณ (h เพื่อขอความช่วยเหลือ):"); มสตริง = Console.ReadLine (); x = char.ToLower (ม [0]); สวิทช์ (x) {กรณี 'i' : แทรก(); // บำบัดใส่หมายเลขโทรศัพท์แบ่ง; กรณี 'D': ลบ (); // ลบหมายเลขโทรศัพท์แบ่ง; กรณี 'M': ปรับเปลี่ยน (); // แก้ไขแบ่ง; กรณีของ ': {การค้นหา (); // โทรศัพท์ค้นหาไม่แบ่ง;} กรณี 'x': {isExit = true; // เขียนข้อมูลไปยัง textfiles writeData (); แบ่ง;} กรณี 'เอช': {ความช่วยเหลือ (); แบ่ง;} ค่าเริ่มต้น: แบ่ง;}} ในขณะที่ (isExit!);} catch (ยกเว้นอดีต) {Console.WriteLine ("ข้อผิดพลาดโปรแกรม:" + ex.Message); Console.Read ();}} แทรกโมฆะคงที่ () {บูลเมตร = false; สตริง x = string.Empty; สตริง newList = "รายการใหม่คือ" ทำ{Console.Write ("ป้อนหมายเลขโทรศัพท์ที่จะแทรก:"); x = Console.ReadLine (); x = x.Trim (); int Y = x.Length; ถ้า (y> 10) Console.WriteLine ("ข้อผิดพลาด - จำนวนยาวเกินไป"); อื่นถ้า (y <10) Console.WriteLine ("ข้อผิดพลาด - จำนวนสั้นเกินไป"); อื่น{เมตร = true; foreach (รายการ PhoneData ใน PhoneData1) {if (String.Compare (item.PhoneNumber, x) == 0) {Console.WriteLine ("ข้อผิดพลาด - หมายเลขโทรศัพท์ที่มีอยู่แล้วในสมุดโทรศัพท์นี้."); ม. = false;}}}} ในขณะที่ (เมตร == เท็จ); Console.WriteLine ("รายการคือ:"); showList (null); // แสดงสำหรับการป้อนข้อมูลใส่คนใหม่หรือไม่Console.Write ("ใส่ รหัสคนที่จะผนวกหมายเลขโทรศัพท์หรือ 'n' สำหรับหมายเลขโทรศัพท์ใหม่: "); สตริง inputNP = Console.ReadLine (); int ไม่มี; // ถ้ามันคนใหม่ถ้า(" nN ".Contains (inputNP)) {คอนโซล.Write ("ป้อนชื่อ (8 ตัวอักษรสูงสุด):"); สตริง inputName = Console.ReadLine (); ในขณะที่ (inputName.Length> 8) {Console.Write ("ชื่อเป็นข้อผิดพลาดที่ 8 ตัวละครโปรดใส่ใหม่ ชื่อ: "); inputName = Console.ReadLine ();} // ใส่ชื่อใหม่PersonData p = PersonData ใหม่ (); p.PersonNo = PersonData1.Count + 1; p.Name = inputName; p.CountPhoneNo ++; PersonData1.Add (P); // ใส่โทรศัพท์มือถือใหม่ไม่มี ในรายการPhoneData ค่า pH = PhoneData ใหม่ (); ph.no = p.PersonNo; ph.PhoneNumber = x; ph.phoneOrder = 1; PhoneData1.Add (pH); // เพิ่มกุญแจสำคัญในการ Hashtable InsertHashTable (pH); // พิมพ์รายการใหม่Console.WriteLine (newList); showList (null);} อื่นถ้า (int.TryParse (inputNP ออกไม่ได้) == จริง) {int noindex = PersonData1.FindIndex (i => i.PersonNo == ไม่ได้) ; // การตรวจสอบมันเต็ม 5 โทรศัพท์ไม่มีบุคคลนั้น// ถ้ามันมีข้อผิดพลาดการแสดงเต็มรูปแบบและใส่แทนที่ไม่มีเปลี่ยนโทรศัพท์ว่าไม่มีถ้า(PersonData1 [noindex] .CountPhoneNo == 5) {Console.Write (PersonData1 [noindex ] .Name + "มี 5 หมายเลขโทรศัพท์แล้ว" + Environment.NewLine + "ใส่หมายเลขแทนที่หรือคีย์ใด ๆ สำหรับการยกเลิก:"); สตริง inputrc = Console.ReadLine (); int tryParseInputRC; // ถ้าไม่ยกเลิกแทนที่โทรศัพท์ที่ไม่มี กับอีกคนหนึ่งถ้า(int.TryParse (inputrc ออก tryParseInputRC)) {// แทนที่และลบที่สำคัญของโทรศัพท์ที่ไม่มี จากตารางแฮช// int indexperson = PersonData1.FindIndex (i => i.PersonNo == PersonData1 [ไม่มี] .PersonNo); PhoneData ค่า pH = ใหม่ PhoneData (); ph.no = ไม่; int indexphone = PhoneData1.FindIndex (i => i.phoneOrder == tryParseInputRC); ph.PhoneNumber = PhoneData1 [indexphone] .PhoneNumber; ph.phoneOrder = tryParseInputRC; PhoneData PH2 = PhoneData ใหม่ (); ph2.no = ph.no; ph2.PhoneNumber = x; PH2 .phoneOrder = ph.phoneOrder; PhoneData1 [indexphone] = PH2; // ลบข้อมูลตารางแฮชDeleteHashTable (pH); // แทรกตารางแฮชใหม่ข้อมูลInsertHashTable (PH2); // แสดงรายชื่อใหม่Console.WriteLine (newList); showList (null);}} อื่น{Console.Write ("ป้อนหมายเลขเปลี่ยนหรือ 'n' สำหรับหมายเลขโทรศัพท์ใหม่:"); สตริง inputPHID = Console.ReadLine (); if ("nN" .Contains (inputPHID)) {/ / เพิ่มหมายเลขโทรศัพท์ใหม่และตำแหน่งPhoneData ค่า pH = PhoneData ใหม่ (); ph.phoneOrder = PersonData1 [noindex] .CountPhoneNo + 1; ph.no = ไม่; ph.PhoneNumber = x; PhoneData1.Add (pH); PersonData1 [noindex ] .CountPhoneNo ++; // รายการโทรศัพท์เพิ่มขึ้นในคนint indexPer = PersonData1.FindIndex (i => i.PersonNo == ไม่มี); // โทรศัพท์แทรกไม่มีกัญชาตารางInsertHashTable (pH);} อื่น{int phoneN; บูล isNumberic = int.TryParse (inputPHID ออก phoneN); // ขอเปลี่ยนโทรศัพท์ no. ถ้า (phoneN <= PersonData1 [noindex] .CountPhoneNo && phoneN> 0) {int เจ = 0; สำหรับ (int i = 0; i <PhoneData1.Count; ฉัน ++) {if (PhoneData1 [ผม] .phoneOrder == phoneN && PhoneData1 [ผม] .no == ไม่ได้) {ญ = ฉัน; แบ่ง;}} PP1 สตริง; สตริง p1 = PhoneData1 [เจ] .PhoneNumber; PP1 = p1 ; p1 = p1.Substring (0, 3) + "" + p1.Substring (3, 3) + "" + p1.Substring (6, 4) สตริง p2 = x; p2 = p2.Substring (0, 3 ) + "" + p2.Substring (3, 3) + "" + p2.Substring (6, 4) Console.Write ("คุณต้องการที่จะเปลี่ยน" + PersonData1 [noindex] .Name + "ของการติดต่อ" + p1 + "ด้วย" + + p2 Environment.NewLine + "('Y' สำหรับใช่ปุ่มใด ๆ เพื่อยกเลิก):"); สตริง checkR = Console.ReadLine (); if ("YY" .Contains (checkR)) {// แทนที่โทรศัพท์ที่ไม่มี. PhoneData PH1 = ใหม่ PhoneData (); ph1.no = ไม่; ph1.PhoneNumber = x.Trim (); ph1.phoneOrder = phoneN; PhoneData1 [เจ] = PH1; PhoneData PH2 = PhoneData ใหม่ (); ph2.no = ไม่; ph2.PhoneNumber = PP1; ph2.phoneOrder = phoneN; // เอาตารางแฮชเกี่ยวกับโทรศัพท์ว่าไม่มี. DeleteHashTable (PH2); // แทรกตารางแฮชใหม่ของโทรศัพท์นี้ไม่มี. InsertHashTable (PH1 );}} อื่น{// โทรศัพท์แทรกในตำแหน่งต่อไปค่าpH = PhoneData PhoneData ใหม่ (); ph.PhoneNumber = x; ph.no = ไม่;
การแปล กรุณารอสักครู่..

 
 
namespace hw1_hashing 
 { 
 
 โปรแกรมระดับสาธารณะ { 
 
 คงรายการ < phonedata > phonedata1 = รายการใหม่ < phonedata > ( ) ; / / arraylist หมายเลขโทรศัพท์ 
 ไฟฟ้าสถิตรายการ < persondata > persondata1 = รายการใหม่ < persondata > ( ) ; / / สำหรับคน arraylist 
 ไฟฟ้าสถิต HashTable hash ใหม่ = hashtable() ; 
 ไฟฟ้าสถิต สตริงเส้นทาง = @ " phonebook1 . txt " ; 
 
 คงเป็นโมฆะหลัก ( string [ ] มีอาร์กิวเมนต์ ) 
 
 ลอง 
 
 readdata() { { ; 
 ถ่าน X ; 
 
 บูล isexit = เท็จทำ 
 { 
 คอนโซล เขียน ( " สมุดโทรศัพท์ - คุณป้อนคำสั่ง ( H ช่วย ) : " ) ; 
 ) M = คอนโซล readline() ; 
 x = ชาร์ tolower ( m [ 0 ] ) ; เปลี่ยน 
 
 ( x ) 
 
 { : insert() กรณี ' ฉัน ' ; / / ใส่ func หมายเลขโทรศัพท์ 
 
 กรณีแบ่ง ; ' D ' : delete() ; / / ลบหมายเลขโทรศัพท์ 
 
 แบ่ง ; กรณี ' ' : modify() ; / / แก้ไข 
 
 แบ่ง ; กรณี ' s ' { : 
 
 search() ; โทรศัพท์ / / ไม่มีการค้นหา 
 
 
 กรณีแบ่ง ; } ' X ' : 
 { 
 
 isexit = true ;/ / เขียนข้อมูลที่จะ textfiles 
 
 writedata() ; แบ่ง ; 
 } 
 กรณี ' H ' : 
 { 
 
 
 } help() ; แบ่ง ; เริ่มต้นแบ่ง ; } : 
 
 
 
 } ในขณะที่ ! isexit ) ; 
 } 
 จับ ( ยกเว้นอดีต ) 
 { 
 คอนโซล writeline ( โปรแกรม " ข้อผิดพลาด : " ex.message ) ; 
 คอนโซล read() ; 
 } 
 } 
 
 คงเป็นโมฆะ insert() 
 { 
 บูล M = false ; 
 ) X = สตริงสตริงที่ว่างเปล่า ; 
 newlist = " รายการใหม่ : " ; { 
 
 
 ทำคอนโซล เขียน ( " ระบุหมายเลขโทรศัพท์ที่จะแทรก :" ) ; 
 x = คอนโซล readline() ; 
 x = x trim() ; 
 1 y = x ความยาว ; 
 ( ถ้า Y > 10 ) 
 คอนโซล writeline ( ข้อผิดพลาด - หมายเลขที่ยาวเกินไป " ) ; 
 อีกถ้า ( y < 10 ) 
 คอนโซล writeline ( ข้อผิดพลาด - หมายเลข จะสั้นเกินไป " ) ; 
 อีก 
 { 
 M = true ; 
 foreach ( phonedata รายการใน phonedata1 ) 
 { 
 
 ถ้า ( ข้อความ เปรียบเทียบ ( item.phonenumber , X ) = = 0 ) 
 { 
 คอนโซล writeline ( ข้อผิดพลาด - เบอร์โทรศัพท์อยู่ในมือถือหนังสือ . " ) ; 
M = false ; 
 
 
 
 
 } } } } ในขณะที่ ( M = = เท็จ ) ; 
 
 คอนโซล writeline ( " รายการ : " ) ; 
 showlist ( null ) ; 
 
 / / แสดงเข้าใส่คนใหม่หรือไม่ 
 คอนโซล เขียน ( " ใส่รหัสบุคคล ผนวกหมายเลขโทรศัพท์หรือ ' n ' ใหม่ เบอร์โทร : " ) ; 
 สตริง inputnp = คอนโซล readline() ; 
 1 ไม่มี ; 
 / / ถ้ามัน 
 คนใหม่ถ้า ( " nn " ประกอบด้วย ( inputnp ) 
 { 
 คอนโซล เขียน ( " ใส่ชื่อ ( 8 ตัวอักษรสูงสุด ) : 
 " ) ;สาย inputname = คอนโซล readline() ; 
 ในขณะที่ ( inputname.length > 8 ) 
 { 
 คอนโซล เขียน ( ข้อผิดพลาด " ชื่อมากกว่า 8 ตัวอักษร กรุณาป้อนชื่อใหม่ " ) ; 
 inputname = คอนโซล readline() ; 
 } 
 
 / / ใส่ชื่อใหม่ 
 persondata P = ใหม่ persondata() ; 
 p.personno = persondata1 นับ 1 ; 
 หน้าชื่อ = inputname p.countphoneno ; 
 ; 
 persondata1 เพิ่ม ( P ) 
 
 / / เบอร์โทรศัพท์ใส่ใหม่ 
 รายการphonedata pH ใหม่ = = p.personno ph.no phonedata() ; 
 ; 
 ph.phonenumber = x ; 
 ph.phoneorder = 1 ; 
 phonedata1 เพิ่ม ( pH ) ; 
 
 / / เพิ่มคีย์ HashTable 
 inserthashtable ( pH ) ; 
 / / พิมพ์รายการใหม่ 
 คอนโซล writeline ( newlist ) ; 
 
 showlist ( null ) } 
 อีกถ้า ( int.tryparse ( inputnp ออกมาไม่มี ) = = true ) 
 { 
 INT Ѻ = persondata1 . findindex ( ฉัน = > i.personno = = ไม่ ) ; 
 / / ตรวจสอบมันเต็ม 5 โทรศัพท์ไม่มีคนคนนั้น 
/ / ถ้ามันเต็มแสดงข้อผิดพลาดและเข้าแทนที่เพื่อแทนที่ไม่มีโทรศัพท์ไม่มี 
 ถ้า ( persondata1 [ Ѻ ] countphoneno = = 5 ) { 
 
 คอนโซล เขียน ( persondata1 [ Ѻ ] . ชื่อ " มี 5 หมายเลขโทรศัพท์แล้ว " environment.newline " เข้ามาแทนที่ตัวเลขหรือคีย์ใด ๆเพื่อยกเลิก : " ) ; 
 ) inputrc = คอนโซล readline() ; 
 1 tryparseinputrc ; 
 / / ถ้าไม่ยกเลิกแทนที่โทรศัพท์ไม่ไปอีกหนึ่ง 
 ถ้า ( Int .tryparse ( inputrc ออก tryparseinputrc ) 
 { 
 / / แทนที่และลบคีย์ที่โทรศัพท์หมายเลขจากตารางแฮช 
 / / int indexperson = persondata1 . findindex ( ฉัน = > i.personno = = persondata1 [ ไม่ ] personno ) ; 
 phonedata pH = ใหม่ phonedata() ; 
 ph.no = ไม่ ; 
 1 indexphone = phonedata1 . findindex ( ฉัน = > i.phoneorder = = tryparseinputrc ) ; 
 ph.phonenumber = phonedata1 [ indexphone ] phonenumber ; 
 .phoneorder = tryparseinputrc ; 
 
 phonedata PH2 ใหม่ = = ph.no ph2.no phonedata() ; 
 ; 
 ph2.phonenumber = x ; 
 ph2.phoneorder ph.phoneorder = [ ] = ; 
 phonedata1 indexphone PH2 ; 
 
 / / ลบข้อมูลตาราง hash deletehashtable 
 ( pH ) ; 
 
 / / แทรกตารางข้อมูล ( แฮกใหม่ 
 inserthashtable PH2 ) 
 
 / / แสดงรายการ 
 คอนโซลใหม่ writeline ( newlist ) ; 
 showlist ( null ) ; 
 } { 
 
 } 
 
 คนอื่นคอนโซลเขียน ( " เข้ามาแทนที่หมายเลขหรือ ' n ' ใหม่ เบอร์โทร : " ) ; 
 สตริง inputphid = คอนโซล readline() ; 
 ( ถ้า " nn " ประกอบด้วย ( inputphid ) 
 { 
 / / เพิ่มเบอร์ใหม่และตำแหน่ง 
 phonedata pH = ใหม่ phonedata() ; 
 ph.phoneorder = persondata1 [ Ѻ ] countphoneno 1 ; 
 ph.no = ไม่ ; 
 ph.phonenumber = x ; 
 phonedata1 เพิ่ม ( pH ) ; 
 
 persondata1 [ Ѻ ] countphoneno ; 
 / / เพิ่มสินค้าในบุคคล 
 โทรศัพท์1 indexper = persondata1 . findindex ( ฉัน = > i.personno = = ไม่ ) ; 
 
 / / ใส่โทรศัพท์ไม่มีตารางแฮช 
 inserthashtable ( pH ) ; 
 } { 
 
 
 อีก 1 phonen ; 
 บูล isnumberic = int.tryparse ( inputphid ออก phonen ) ; 
 / / ถามแทน 
 ถ้าโทรศัพท์ไม่ ( phonen < = persondata1 [ Ѻ ] countphoneno && phonen > 0 ) 
 { 
 1 j = 0 ; 
 ( int i = 0 ; i < phonedata1 นับ ; I ) 
 { 
 ถ้า ( phonedata1 [ ฉัน ]phoneorder = = phonen && phonedata1 [ i ] . = = ไม่มี ) 
 { 
 J = I ; 
 
 } 
 
 แบ่ง ; } pp1 สตริงสตริง ; 
 P1 = phonedata1 [ J ] phonenumber pp1 = P1 
 ; 
 ; P1 = P1 . ข้อความ ( 0 , 3 ) " " P1 . ข้อความ ( 3 , 3 ) " " P1 . ข้อความ ( 6 , 4 ) ; 
 ) P2 = x ; 
 P2 = P2 . ข้อความ ( 0 , 3 ) " " P2 . ข้อความ ( 3 , 3 ) " " P2 . ข้อความ ( 6 , 4 ) ; 
 คอนโซล เขียน ( " คุณต้องการ เพื่อแทนที่ " persondata1 [ Ѻ ]ชื่อ " ติดต่อ " " กับ " " P1 P2 environment.newline ( 'y ' ครับ คีย์ใด ๆเพื่อยกเลิก ) : " ) ; 
 สตริง checkr = คอนโซล readline() ; 
 ( ถ้า " YY " ประกอบด้วย ( checkr ) 
 { 
 / / แทนที่โทรศัพท์หมายเลข 
 phonedata ph1 ใหม่ = phonedata() ; 
 ph1.no = ไม่ ; 
 ph1.phonenumber = x = phonen ph1.phoneorder trim() ; 
 ; 
 phonedata1 [ j ] = ph1 ; 
 
 phonedata PH2 ใหม่ = phonedata() ; 
 ph2.no = ไม่ ; ph2.phonenumber = pp1 
 
 ;ph2.phoneorder = phonen ; 
 
 / / ลบตาราง hash เกี่ยวกับโทรศัพท์หมายเลข 
 deletehashtable ( PH2 ) ; 
 
 / / แทรกใหม่ตารางแฮชของโทรศัพท์นี้ . . 
 inserthashtable ( ph1 ) ; 
 } { 
 
 } 
 
 อีก / / ใส่โทรศัพท์ไม่มีหน้าในตำแหน่งใหม่ phonedata() phonedata pH = 
 
 ; ph.phonenumber = x ; 
 
 ph.no = ไม่มี
การแปล กรุณารอสักครู่..
