freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c++課程設(shè)計報告--酒店點菜管理系統(tǒng)設(shè)計-文庫吧

2024-12-27 23:19 本頁面


【正文】 戶名跟密碼,然后判斷是否正確,注冊的時候會尋找是否存在該用戶名,不存在才能注冊。另外菜名用的也是 string類型,每份菜的數(shù)量用的是 int 類型的數(shù)組。 。 程序時間復(fù)雜度 的瓶頸主要是文件的操作太過于頻繁,導(dǎo)致程序的執(zhí)行效率變低 。 另外在驗證用戶名跟密碼的過程中,會代開文件并且進行搜索,復(fù)雜度取決于文件中用戶的數(shù)目,由于運用的是暴力搜索,最壞的時間復(fù) 雜度是 O(2*n), n 是 文件中存儲的用戶的數(shù)目,用戶注冊的時候也會打開文件進行暴力搜索,最壞的時間復(fù)雜度也是 O( 2*n)。在點菜的過程中會把菜名跟其對應(yīng)的數(shù)量一一寫入文件,其復(fù)雜度也是 O( n) ,此時 n 是用戶點的菜的數(shù)目。在用戶進行修改訂單操作的時候,運用了 map 數(shù)據(jù)結(jié)構(gòu),將用戶所點的菜都加入到 map 中,復(fù)雜度為 O( n*logn), n 為用戶點的菜的數(shù)目,顯示的時候找每樣菜所對應(yīng)的菜的數(shù)目,涉及到 map 的查詢操作,復(fù)雜度也是 O( n*logn)。 空間復(fù)雜度在尋找用戶名與密碼的時候用了一個字符串 ,因此這里的空間復(fù) 雜度最多為最長用戶名的大小 ,在管理訂單的時候用 map存儲了用戶點的菜和每份菜對應(yīng)的份數(shù) ,因此這里的時間復(fù)雜度與用戶點的菜的數(shù)目有關(guān) .用戶名與密碼都是存放在文件中的,每次程序需要就從文件中讀取。 。 上機過程中出現(xiàn)的主要問題就是我創(chuàng)建的是 C++窗體應(yīng)用程序, 跟 MFC 有一定的區(qū)別,其中的控件中的內(nèi)容本以為都是 std 中 string 類型的,結(jié)果卻是 System::String^類型的,內(nèi)容全是 String 的引用,對于 String^一點都不了解,上網(wǎng)查網(wǎng)頁上也沒多少內(nèi)容 ,然后想著把 String^轉(zhuǎn)化為常用的 std::string 來進行各項操作,去網(wǎng)上搜索試了各種方法也都不行,被困擾了一下午,后來偶然間看了微軟官網(wǎng)中標準的 System::String 轉(zhuǎn)化為 std::string 的函數(shù),因此問題解決。另一個問題是設(shè)計了兩個不同的界面,設(shè)計從一個界面點擊按鈕跳到另一個界面中去,也是去網(wǎng)上搜索了好長時間,試過了各種方法 才把它搞定。解決方法是把此界面類中引入要彈出的界面的類所在的文件,并且在按鈕響應(yīng)函數(shù)中實例化要彈出界面的類,在8 調(diào)用該對象的 ShowDialog()函數(shù)。再就是要注意 在每次打開文件的時候要先把文件關(guān)閉的語句寫上,免得以后忘記關(guān)閉文件導(dǎo)致出錯。 在操作中另一個文件中要用到另一個文件中的變量(用戶名),不會定義全局變量,因此我把用戶名存放在文件中,要用的地方就去訪問該文件。 。 程序中的文件感覺特別混亂,一個用戶有三個文件 ,分別是當前未支付的訂單內(nèi)容,歷史消費記錄,用戶的信息存儲。登錄后在別的類中會用到用戶名,我把它保存在文件中,要用到用戶名的類就打開這個文件,然后讀取用戶名,可能導(dǎo)致效率變低,可以把用戶名設(shè)置為全局變量,哪個類用到就直接 訪問他,不用再去執(zhí)行打開文件這一步操作,這樣會提高效率。 另外界面也是可以改進的,軟件應(yīng)該盡量使用暖色調(diào),這樣會給用戶一種溫暖的感覺,會增加用戶的食欲,同時用戶會感到服務(wù)非常的周到,增加用戶對服務(wù)的滿意度。 。 可以擴充的功能就是將用戶名與密碼存放在文件中改為存放在數(shù)據(jù)庫中,然后進行排序,查找用戶名與密碼的時候可以用二分查找,這樣在用戶數(shù)量比較大的時候也可以非常快速的進行查找。另外支付功能可以實現(xiàn)聯(lián)網(wǎng)進行網(wǎng)上支付操作 ,通過與網(wǎng)上銀行、支付寶等網(wǎng)站鏈接實現(xiàn)支付功 能 。 用戶對菜譜的評分也可以反饋給酒店的經(jīng)理,讓酒店進行相應(yīng)的調(diào)整。另外可以設(shè)計用戶 VIP 功能,擁有 VIP 的用戶可以享受打折服務(wù),用戶擁有 VIP 的條件可以是用戶的歷史消費超過一定的價錢,然后升級 VIP,在計算總價錢的時候系統(tǒng)會自動提供打折服務(wù),另外還可以設(shè)計送外賣功能,為提供送外賣服務(wù)的酒店提供方便。 四、 用戶手冊 ( 說明程序的運行環(huán)境,程序執(zhí)行結(jié)果,詳細列出每一步的操作步驟??梢圆鍒D ) 本程序的運行環(huán)境是 Windows 系統(tǒng)。 運行程序首先會出現(xiàn)登錄界面 9 輸入用戶名與密碼之后便可以進入功能界面,如果沒 有帳號,那么可以點擊注冊按鈕注冊一個帳號。 注冊成功之后便可以進入功能頁面 10 功能頁面有六個功能選項可供選擇,點擊點餐按鈕后顯示如下界面 11 頁面顯示的菜譜都可供用戶選擇,每份菜都有對應(yīng)的價格,下拉菜單可以選擇菜的份數(shù)。選擇好之后便可以點擊提交按鈕,此時自動生成訂單。 點餐成功便顯示如下界面 如果菜肴點好之后還想進行修改,如增加或者減少菜的份數(shù),此時可以點擊功能界面的訂單管理,如下所示 12 他會顯示用戶初次選菜時候?qū)γ繕硬怂x擇的情況,如果想更改,就可以像點菜那樣進行操作,修改之后點擊提交就行了。 點擊買單按鈕會顯示當前用戶未支付的訂單,如下所示 點擊支付按鈕可以進行支付。 支付成功便會顯示 點餐成功界面 13 歷史消費可以查看自己以前所消費的情況 點擊菜譜評分可以對菜譜中的菜肴進行評分,14 對相應(yīng)的菜肴進行評分之后點擊提交按鈕便提交成功。 提交評分之后可以查看自己的評分 15 另外用戶可以管理自己的信息,點擊管理我的信息按鈕便可以進入如下頁面 在這個頁面中用戶可以修改自己的密碼以及各種信息。 五、 設(shè)計總結(jié) (可談一談本次課程設(shè)計的經(jīng)驗和體會) 通過本次課程設(shè)計,我掌握了如何給自己的程序 設(shè)計上漂亮的界面,以及如何把不同的界面通過按鈕連接起來,在這個界面中點擊按鈕,另一個界面會彈出來,并且實現(xiàn)相應(yīng)的功能。實驗過程中碰到許多問題,有個問題卡住了整整一下午,通過不斷在網(wǎng)上查資料、問同學、查書籍,把所有的問題都解決了,走了不少彎路。但這些都成為了我的經(jīng)驗,因為走彎路會給人更多思考的機會,使我更加周全的考慮事情。把課程設(shè)計做完之后感覺自己又進步了許多,許多以前學不到的東西以及不熟悉的東西,甚至是一些以為自己明白了但實際上確實錯誤的東西都重新學習了一遍,加深了一遍。 至今我感慨頗多的應(yīng)當是一些難以查出 的錯誤,編譯時查不出的錯誤,其被發(fā)現(xiàn)時很可能只是位置的錯誤,僅隔數(shù)行,這些微小的信息卻極大地影響了整體的效果。這不僅存在于一個程序之中,因而我對于生活中的細節(jié)也有了改觀,對于整體和局部的觀念也有了更多的見解 . 六、 參考文獻 [1] 李蘭 , 任鳳華 . C++面向?qū)ο蟪绦蛟O(shè)計 . 西安 : 西安電子科技大學出版社 , 2022 [2] 李蘭 , 任鳳華 . 《 C++面向?qū)ο蟪绦蛟O(shè)計》實驗指導(dǎo)及習題解析 . 西安 : 西安電子科技大學出版社 , 2022 [3] 鄭莉 , 董淵 . C++程序設(shè)計基礎(chǔ)教程 . 北京 : 清華大學出版社 , 2022 [4] 鄭莉 . C++程序設(shè)計基礎(chǔ)教程學生用書 . 北京 : 清華大學出版社 , 2022 七、 附錄 ( 要加上注釋。 ) 以下是非系統(tǒng)生成的、自己寫的代碼,系統(tǒng)自動生成的代碼比較多,沒有附上。 16 private: System::Void button_login_Click(System::Object^ sender, System::EventArgs^ e) { String^ userName。 String^ password。 userName=textBox_userNameText。 password=textBox_passwordText。 string s_use ,s_pass。 MarshalString(userName,s_use)。 //System::String^ std::string MarshalString(password,s_pass)。 if(!judge(s_use,s_pass)) { label2Text = 用 174。?戶 161。236。名 ?或 168。176。密 168。185。碼 ?錯 228。168。170。誤 168。174。 ! 234。?。 return。 } string name = 。 name += s_use。 name += .txt。 ofstream output()。 outputnameendl。 ()。 // 驗 168。166。證 161。232。 通 170。161。167。過 y 顯 ?示 186。? 功 |能 168。185。菜 ?單 204。163。164。 thisHide()。 功 |能 168。185。 p。 ()。 thisClose()。 } private: System::Void button_register_Click(System::Object^ sender, System::EventArgs^ e) { thisHide()。 userRegister p1 。 ()。 thisClose()。 } private: bool judge(string s_use,string s_pass){ string acount。 string password。 ifstream input。 17 ()。 if(!input){ ofstream output()。 output。 ()。 } int t = 1。 while(inputacount) { if(t%2==1) { if(acount == s_use) { inputpassword。 if(password != s_pass) { ()。 return 0。 } else { ()。 return 1。 } } } t++。 } ()。 return 0。 //not found user } void MarshalString ( String ^ s, stringamp。 os ) { using namespace Runtime::InteropServices。 const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer()。 os = chars。 Marshal::FreeHGlobal(IntPtr((void*)chars))。 } 18 private: System::Void button_registerOk_Click(System::Object^ sender, System::EventArgs^ e) { String^ acount = textBox1Text。 string s_user。
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1