用結構體書寫圖書管理系統(C#程序)

圖書管理系統的需求:node

用結構體來實現圖書管理系統,須要在cmd中運行小程序

用MonoDevelop或者VS進行編碼數組

用結構體寫圖書管理系統,此代碼能夠在Monodevelop上或者在VS上運行編碼

須要實現的第一個功能是可以進行圖書的添加將圖書的信息保存到一個數組中,數組的類型爲結構體所命名的類型spa

第二個功能可以進行圖書的刪除code

第三個功能可以進行圖書的修改blog

第四個功能可以進行圖書的查詢ci

第五個功能可以進行圖書系統的退出字符串

 

代碼以下:input

using System; using System.Threading; namespace book_Manager { struct Book { //公司變量名前面加一個m_

        /// <summary>
        /// 書的名字 /// </summary>
        public string m_BookName; /// <summary>
        /// 書的做者 /// </summary>
        public string m_BookAuthor; /// <summary>
        /// 書的價格 /// </summary>
        public float m_Price; } class MainClass { 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; //數組的容量
            int m_Capacity=4; //數組所添加圖書的個數
            int m_Count=0; Book[] m_Books = new Book[4]; m_Books [0] = book1; m_Books [1] = book2; m_Count = 2; 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": { if (m_Count < m_Capacity) { //往數組裏面加一本書
 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; //進行其中的顯示的清除
 Console.Clear (); m_Books [m_Count] = book; m_Count++; } else { //須要把數組的容量變大
                                m_Capacity += 4; //經過容量建立一個新的數組
                                Book[] temp = new Book[m_Capacity]; //把原有的數組裏面的元素所有拷貝到新數組裏面
                                for (int i = 0; i < m_Count; i++) { temp [i] = m_Books [i]; } //賦值之後原數組和新數組爲用一個數組,都是新建立的那個數組
                                m_Books = temp; } } break; //刪除
                    case "D": { Console.WriteLine ("E:按名稱刪除 R:按做者刪除"); Console.Write ("請輸入您的選擇:"); string str = Console.ReadLine (); switch (str) { case "E": //判斷是否找到此書
                                    bool isFind = false; Console.Write ("請輸入您要進行刪除的圖書的名字:"); string strName = Console.ReadLine (); for (int i = 0; i < m_Count; i++) { if (m_Books[i].m_BookName==strName) { isFind = true; } } if (isFind) { Console.WriteLine ("刪除成功!!!!!"); m_Books [m_Count].m_BookName = ""; m_Books [m_Count].m_BookAuthor = ""; m_Books [m_Count].m_Price = 0; m_Count--; } else { Console.WriteLine ("刪除失敗!!!!!"); } break; case "R": //判斷是否找到此書
                                    bool isFind1 = false; Console.Write ("請輸入您要進行刪除的圖書的做者:"); string strAuthor = Console.ReadLine (); for (int i = 0; i < m_Count; i++) { if (m_Books[i].m_BookAuthor==strAuthor) { isFind = true; } } if (isFind1) { Console.WriteLine ("刪除成功!!!!!"); m_Books [m_Count].m_BookName = ""; m_Books [m_Count].m_BookAuthor = ""; m_Books [m_Count].m_Price = 0; m_Count--; } else { Console.WriteLine ("刪除失敗!!!!!"); } break; } } break; //修改
                    case "C": { int index = 0; bool isFind = false; Console.Write ("請輸入要修改的書的名字:"); string strName = Console.ReadLine (); for (int i = 0; i < m_Count; i++) { if (m_Books[i].m_BookName==strName) { index = i; isFind = true; } } if (isFind) { Console.WriteLine ("Y:修改圖書名稱 H:修改圖書做者 G:修改圖書價格"); Console.Write ("請輸入您的選擇:"); string str = Console.ReadLine (); switch (str) { case "Y": Console.Write ("請輸入您要修改爲的圖書名稱:"); string strName1=Console.ReadLine(); m_Books[index].m_BookName=strName1; Console.WriteLine ("修改爲功!!!!!!"); break; case "H": Console.Write ("請輸入您要修改爲的圖書做者:"); string strAuthor=Console.ReadLine(); m_Books[index].m_BookAuthor=strAuthor; Console.WriteLine ("修改爲功!!!!!!"); break; case "G": Console.Write ("請輸入您要修改爲的圖書名稱:"); int price=int.Parse(Console.ReadLine()); m_Books[index].m_Price=price; Console.WriteLine ("修改爲功!!!!!!"); break; } } else { Console.WriteLine ("沒有此圖書沒法進行修改!!!!!"); } } 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_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_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; } } break; case "P": for (int i = 0; i < m_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 ("退出程序成功!!!!!"); } } }

 

以上代碼中應用了數組的擴容方法,隨着數組的擴大數組的容量也應該跟着擴大,那樣的話就須要首先將原數組的數據放到新數組中,而後賦值原數組等於新數組

//經過容量建立一個新的數組
Book[] temp = new Book[m_Capacity]; //把原有的數組裏面的元素所有拷貝到新數組裏面
for (int i = 0; i < m_Count; i++) { temp [i] = m_Books [i]; } //賦值之後原數組和新數組爲用一個數組,都是新建立的那個數組
m_Books = temp;

 

明天分享用集合書寫圖書管理系統,有需求的能夠在下方評論區寫下本身的要作的cmd小程序的需求,你們能夠一塊兒分享一塊兒討論作???

相關文章
相關標籤/搜索