圖書管理系統的需求:
用結構體來實現圖書管理系統,需要在cmd中運行
用MonoDevelop或者VS進行編碼
用結構體寫圖書管理系統,此代碼可以在Monodevelop上或者在VS上運行
需要實現的第一個功能是能夠進行圖書的添加將圖書的信息保存到一個數組中,數組的類型為結構體所命名的類型
第二個功能能夠進行圖書的刪除
第三個功能能夠進行圖書的修改
第四個功能能夠進行圖書的查詢
第五個功能能夠進行圖書系統的退出
以下是兩種不一樣的編程思想(一一遍嗎列舉了出來)
第一種:
using System; using System.Collections.Generic; namespace Book_Manage { class MainClass { struct Book { //公司變量名前面加一個m_ /// <summary> /// 書的名字 /// </summary> public string m_BookName; /// <summary> /// 書的作者 /// </summary> public string m_BookAuthor; /// <summary> /// 書的價格 /// </summary> public float m_Price; } public static void Main(string[] args) { Book book1 = new Book (); book1.m_BookName="平凡的世界"; book1.m_BookAuthor = "路遙"; book1.m_Price = 10; Book book2; book2.m_BookName="射雕英雄傳"; book2.m_BookAuthor="金庸"; book2.m_Price=23.5f; List<Book> m_Books = new List<Book> (); m_Books.Add(book1); m_Books.Add(book2); while (true) { Console.WriteLine ("**************************************************"); Console.WriteLine ("* 歡迎進入圖書管理系統 *"); Console.WriteLine ("*A:添加 D:刪除 C:修改 S:查看 Q:退出 P:全部顯示 *"); Console.WriteLine ("**************************************************"); Console.Write ("請輸入你要進行的選擇(Q表示退出!):"); string input = Console.ReadLine (); //把input字符串轉換成大寫 然后再賦值給input input=input.ToUpper(); switch (input) { //添加 case "A": { //往數組里面加一本書 Book book; Console.Write ("請輸入要添加的圖書的名字:"); string name = Console.ReadLine (); Console.Write ("前輸入要添加的圖書的作者:"); string author = Console.ReadLine (); Console.Write ("請輸入要添加的圖書的價格:"); float price = float.Parse (Console.ReadLine ()); book.m_BookName = name; book.m_BookAuthor = author; book.m_Price = price; m_Books.Add (book); //進行其中的顯示的清除 Console.Clear (); } break; //刪除 case "D": { Console.WriteLine ("E:按名稱刪除 R:按作者刪除"); Console.Write ("請輸入您的選擇:"); string str = Console.ReadLine (); switch (str) { case "E": Book book = new Book (); //判斷是否找到此書 bool isFind = false; Console.Write ("請輸入您要進行刪除的圖書的名字:"); string strName = Console.ReadLine (); for (int i = 0; i < m_Books.Count; i++) { if (m_Books[i].m_BookName==strName) { isFind = true; book.m_BookAuthor = m_Books [i].m_BookAuthor; book.m_BookName = m_Books [i].m_BookName; book.m_Price = m_Books [i].m_Price; } } if (isFind) { m_Books.Remove (book); Console.WriteLine ("刪除成功!!!!!"); } else { Console.WriteLine ("刪除失敗!!!!!"); } break; case "R": //判斷是否找到此書 bool isFind1 = false; Book book3 = new Book (); Console.Write ("請輸入您要進行刪除的圖書的作者:"); string strAuthor = Console.ReadLine (); for (int i = 0; i < m_Books.Count; i++) { if (m_Books[i].m_BookAuthor==strAuthor) { isFind = true; book3.m_BookAuthor = m_Books [i].m_BookAuthor; book3.m_BookName = m_Books [i].m_BookName; book3.m_Price = m_Books [i].m_Price; } } if (isFind1) { m_Books.Remove (book3); Console.WriteLine ("刪除成功!!!!!"); } else { Console.WriteLine ("刪除失敗!!!!!"); } break; } //進行其中的顯示的清除 Console.Clear (); } break; //修改 case "C": { int index = 0; bool isFind = false; Book book3 = new Book ();; Console.Write ("請輸入要修改的書的名字:"); string strName = Console.ReadLine (); for (int i = 0; i < m_Books.Count; i++) { if (m_Books[i].m_BookName==strName) { isFind = true; index = i; } } if (isFind) { Console.WriteLine ("Y:修改圖書名稱 H:修改圖書作者 G:修改圖書價格"); Console.Write ("請輸入您的選擇:"); string str = Console.ReadLine (); switch (str) { case "Y": Console.Write ("請輸入您要修改成的圖書名稱:"); string strName1 = Console.ReadLine (); book3.m_BookName = strName1; book3.m_BookAuthor = m_Books[index].m_BookAuthor; book3.m_Price = m_Books[index].m_Price; break; case "H": Console.Write ("請輸入您要修改成的圖書作者:"); string strAuthor = Console.ReadLine (); book3.m_BookName = m_Books[index].m_BookName; book3.m_BookAuthor = strAuthor; book3.m_Price = m_Books[index].m_Price; break; case "G": Console.Write ("請輸入您要修改成的圖書名稱:"); int price = int.Parse (Console.ReadLine ()); book3.m_Price = price; book3.m_BookName = m_Books[index].m_BookName; book3.m_BookAuthor = m_Books[index].m_BookAuthor; break; } m_Books.RemoveAt (index); m_Books.Insert (index,book3); book3.m_BookAuthor = ""; book3.m_BookName = ""; book3.m_Price = 0; } else { Console.WriteLine ("沒有此圖書無法進行修改!!!!!"); } //進行其中的顯示的清除 Console.Clear (); } break; //查看 case "S": { Console.WriteLine ("N:按名稱查找 Z:按作者查找"); Console.Write ("請輸入您的選擇:"); string str = Console.ReadLine (); str = str.ToUpper (); switch (str) { case "N": { Console.Write ("請輸入要查找書的名稱:"); string strName = Console.ReadLine (); //判斷是否找到此書 bool isFind = false; //記錄找到的書的下標 int index = 0; for (int i = 0; i < m_Books.Count; i++) { if (m_Books [i].m_BookName == strName) { isFind = true; index = i; } } if (isFind) { Console.WriteLine ("書的名字為:{0},書的作者為:{1},書的價格為:{2}", m_Books [index].m_BookName, m_Books [index].m_BookAuthor, m_Books [index].m_Price); } else { Console.WriteLine ("沒有找到這本書!!!!!!"); } } break; case "Z": { Console.Write ("請輸入要查找書的作者:"); string strAuthor = Console.ReadLine (); //判斷是否找到此書 bool isFind = false; //記錄找到的書的下標 int index = 0; for (int i = 0; i < m_Books.Count; i++) { if (m_Books [i].m_BookName == strAuthor) { isFind = true; index = i; } } if (isFind) { Console.WriteLine ("書的名字為:{0},書的作者為:{1},書的價格為:{2}", m_Books [index].m_BookName, m_Books [index].m_BookAuthor, m_Books [index].m_Price); } else { Console.WriteLine ("沒有找到這本書!!!!!!"); } } break; } //進行其中的顯示的清除 Console.Clear (); } break; case "P": for (int i = 0; i < m_Books.Count; i++) { Console.WriteLine ("書的名字:{0},書的作者:{1},書的價格:{2}", m_Books[i].m_BookName, m_Books[i].m_BookAuthor, m_Books[i].m_Price); } break; } if (input=="Q") { break; } } Console.WriteLine ("退出程序成功!!!!!"); } } }
第二種:
using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; namespace books_Manage { enum Bookstate { 增加圖書=1,刪除圖書=2,修改圖書=3,查看圖書=4,退出系統=5 } /// <summary> /// 圖書的所有屬性 /// </summary> class Book { private string bookid; private string bookname; private int bookprice; private int bookcount; public string Bookid{ get{ return bookid; } set{ bookid = value; } } public string Bookname{ get{ return bookname; } set{ bookname = value; } } public int Bookprice{ get{ return bookprice; } set{ bookprice = value; } } public int Bookcount{ get{ return bookcount; } set{ bookcount = value; } } } class MainClass { public static void Main(string[] args) { bool flag = false; List<Book> list = new List<Book> (); Book b1 = new Book ();; b1.Bookid = "1"; b1.Bookname = "lanou"; b1.Bookcount = 12; b1.Bookprice = 34; BookBean bookbean = new BookBean (); while (true) { Console.WriteLine (" 圖書管理系統"); Console.WriteLine ("*********************************"); Console.WriteLine ("* 1.增加圖書 *"); Console.WriteLine ("* 2.刪除圖書 *"); Console.WriteLine ("* 3.修改圖書 *"); Console.WriteLine ("* 4.查看圖書 *"); Console.WriteLine ("* 5.退出系統 *"); Console.WriteLine ("*********************************"); Console.Write ("請輸入你要進行的操作:"); int number = int.Parse (Console.ReadLine()); Bookstate bookstate = (Bookstate)number; switch (bookstate) { case Bookstate.修改圖書: bookbean.updateBook (list); break; case Bookstate.刪除圖書: list = bookbean.delBook (list); break; case Bookstate.增加圖書: list=bookbean.AddBook (list); break; case Bookstate.查看圖書: bookbean.ShowBook (list); break; case Bookstate.退出系統: flag = true; break; default: Console.WriteLine ("沒有其對應的輸入請重新輸入!!!!!"); break; } //點擊退出系統后所進行的操作 if (flag) { break; } } Console.WriteLine ("退出圖書管理系統成功!!!!!!"); } } class BookBean { /// <summary> /// 進行圖書的添加 /// </summary> public List<Book> AddBook(List<Book> list) { int temp = list.Count; Console.Write ("請輸入要進行添加的圖書的數目:"); int count = int.Parse (Console.ReadLine ()); for (int i = 0; i < count; i++) { Console.WriteLine ("請輸入第{0}本書的信息:",(i+1)); Console.Write ("請輸入要添加的圖書的編號:"); string bookid = Console.ReadLine (); Console.Write ("請輸入要添加的圖書的名稱:"); string bookname = Console.ReadLine (); Console.Write ("請輸入要添加的圖書的數量:"); int bookcount =int.Parse(Console.ReadLine ()); Console.Write ("請輸入要添加的圖書的價格:"); int bookprice =int.Parse(Console.ReadLine ()); Book book = new Book (); book.Bookid = bookid; book.Bookname = bookname; book.Bookcount = bookcount; book.Bookprice = bookprice; list.Add (book); } if (temp<list.Count) { Console.WriteLine ("添加成功!!!!!"); } else { Console.WriteLine ("添加失敗!!!!!"); } return list; } /// <summary> /// 進行圖書的查看 /// </summary> /// <param name="list">List.</param> public void ShowBook(List<Book> list) { int counti=1; Console.WriteLine ("-----------------------------------------------------------------"); Console.WriteLine (" | 圖書編號 | 圖書名稱 | 圖書價格 | 圖書數量 |"); Console.WriteLine ("-------|---------------------------------------------------------"); foreach (var item in list) { Console.Write (" {0} | {1} | {2} | {3} | {4} |",counti,item.Bookid,item.Bookname,item.Bookprice,item.Bookcount); Console.WriteLine (); Console.WriteLine ("-----------------------------------------------------------------"); counti++; } Console.WriteLine (); Console.WriteLine ("一共{0}條數據!!!!",list.Count); Console.WriteLine (); } /// <summary> /// 進行圖書的刪除 /// </summary> /// <param name="list">List.</param> public List<Book> delBook(List<Book> list) { int temp = list.Count; Console.Write ("請輸入你要刪除的圖書的名字:"); string strname = Console.ReadLine(); int temp1=0; int column = 0; foreach (Book item in list) { if (item.Bookname==strname) { temp1=column; } column++; } list.RemoveAt(temp1); if (temp>list.Count) { Console.WriteLine ("刪除成功!!!!!"); column = 0; } else { Console.WriteLine ("刪除失敗!!!!!"); } return list; } /// <summary> /// 進行圖書的修改 /// </summary> /// <returns>The book.</returns> /// <param name="list">List.</param> public void updateBook(List<Book> list) { bool flag = false; Console.Write ("請輸入要進行修改的學生的姓名:"); string strname = Console.ReadLine (); int temp1=0; int column = 0; foreach (Book item in list) { if (item.Bookname==strname) { temp1=column; } column++; } Console.WriteLine (); Console.WriteLine ("圖書的信息為:"); Console.WriteLine ("圖書的編號:{0}",list[temp1].Bookid); Console.WriteLine ("圖書的名稱:{0}", list[temp1].Bookname); Console.WriteLine ("圖書的數量:{0}",list[temp1].Bookcount); Console.WriteLine ("圖書的價格:{0}",list[temp1].Bookprice); Console.WriteLine (); Console.WriteLine ("請選擇要進行修改的信息:"); Console.WriteLine ("1.圖書編號!!!"); Console.WriteLine ("2.圖書名稱!!!"); Console.WriteLine ("3.圖書數量!!!"); Console.WriteLine ("4.圖書價格!!!"); Console.WriteLine ("5.退出修改!!!"); Console.Write ("請選擇:"); int number = int.Parse (Console.ReadLine()); switch (number) { case 1: { Console.Write ("請輸入要修改成的圖書編號:"); string strbookid = Console.ReadLine (); list [temp1].Bookid = strbookid; //判斷是否修改成功 if (list[temp1].Bookid==strbookid) { Console.WriteLine ("修改成功!!!!!"); } else { Console.WriteLine ("修改失敗!!!!!"); } } break; case 2: { Console.Write ("請輸入要修改成的圖書名稱:"); string strbookname = Console.ReadLine (); list [temp1].Bookname = strbookname; //判斷是否修改成功 if (list[temp1].Bookname==strbookname) { Console.WriteLine ("修改成功!!!!!"); } else { Console.WriteLine ("修改失敗!!!!!"); } } break; case 3: { Console.Write ("請輸入要修改成的圖書價格:"); int strbookprice =int.Parse(Console.ReadLine ()); list [temp1].Bookprice = strbookprice; //判斷是否修改成功 if (list[temp1].Bookprice==strbookprice) { Console.WriteLine ("修改成功!!!!!"); } else { Console.WriteLine ("修改失敗!!!!!"); } } break; case 4: { Console.Write ("請輸入要修改成的圖書數量:"); int strbookcount =int.Parse(Console.ReadLine ()); list [temp1].Bookcount = strbookcount; //判斷是否修改成功 if (list[temp1].Bookcount==strbookcount) { Console.WriteLine ("修改成功!!!!!"); } else { Console.WriteLine ("修改失敗!!!!!"); } } break; case 5: flag = true; break; } if (flag) { Console.WriteLine ("退出修改成功!!!!"); } } } }
以上是兩種編程思路 也是兩種編程思想,供大家參考一下,大家有好的題目可以在下方評論提出來,一起分享討論!!!!!!
