




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 C語言課程設計 隨米打印訂單管理系統(tǒng) 學 院: 計算機與信息科學學院 學生姓名: 謝潤發(fā) 指導教師: 王新祥 職稱 教授 專 業(yè): 網絡工程 班 級: 1501 完成時間: 2016-6 目 錄1 問題要求及任務描述31.1 題目要求31.2 主要任務32 解決問題的主要思路和方法42.1 關鍵問題42.2 擬采用解決問題的方法42.3 主要算法和處理流程圖53 程序實現63.1 程序實現時應考慮的問題63.2 主要源代碼及說明64 測試或調試214.1 調試過程:216 參考文獻:271 問題要求及任務描述 1.1 題目要求設計隨米打印訂單系統(tǒng),要求訂單編號,文件名,打印份數,單雙面打印方
2、式,打印狀態(tài),送貨狀態(tài)信息,地址信息和聯系人電話信息。試設計“隨米”打印訂單處理系統(tǒng),使之能提供以下功能:(1) 主菜單 :進入系統(tǒng)需要密碼核實確認,登入系統(tǒng)以菜單的方式工作(2) 瀏覽打印訂單信息:可以瀏覽全部訂單信息(3) 添加訂單信息:可以添加訂單信息(以文件形式保存)(4) 刪除訂單信息:可以刪除訂單信息(5) 修改訂單信息:可以修改訂單人員信息(6) 查詢訂單信息:可以任意查出某種狀態(tài)的所有訂單(7) 退出系統(tǒng) 1.2 主要任務(1) 根據題目要求,由于訂單信息是存放在文件中,所以應提供文件的輸入和輸出等操作;(2) 應提供一個界面來調用各個功能;(3) 功能模塊: 本人負責程序設計
3、與訂單信息瀏覽、添加、刪除功能。2 解決問題的主要思路和方法2.1 關鍵問題 如何將信息用文本的方式正確的保存下來,再不出錯的讀取。如何將信息標準化的輸出在程序中。(1) 為查詢訂單信息的人提供了一個簡單而又真實的情境,使一目了然。(2) 提供各種工具,充分發(fā)揮網絡的共享性、開放性和交互性等特點,讓使用者充分發(fā)揮其主導作用。(3) 利用系統(tǒng),為消費操作者提供方便快捷的操作,為其搭好支架,很好的引導和幫助使用者的使用。(4) 在基本要求達成后,進行創(chuàng)新,如進行刪除和插件操作。(5) 需要列出程序清單,并加以詮釋寫出調試程序的方法。 2.2 擬采用解決問題的方法首先將c文件基礎知識了解清楚,即文件
4、的基本標志 ,文件的分類,文件的緩沖區(qū).熟悉C文件的引用,以及在文件讀寫時文件使用方式即(r,w,a,rb,wb,ab等)的區(qū)別.熟悉使用鏈表和指針使程序的運行效率更高,熟練輸出的操作使得數據的操作更加美觀. 2.3 主要算法和處理流程圖3 程序實現3.1 程序實現時應考慮的問題要考慮到數據的安全性和數據的讀取速度,以及程序的便捷使用性; 3.2 主要源代碼及說明struct account /定義賬戶名和密碼結構體char name20;char pwd20;struct ord /定義訂單結構體char id10;/訂單編號char name20;/ 文件名char num10; /打印份
5、數char type20;/單雙面char status10; /打印狀態(tài)char status210;/送貨狀態(tài)char address20; /地址char price20;/價格char phone15; /聯系人電話;/主要函數int main()login();return 0;void submit() /系統(tǒng)首次建立管理員賬戶struct account admin;char pwd20; /用于注冊第二次確認密碼int flag=0;FILE *fp;if(fp=fopen("account.txt","r")=NULL)/如果沒有賬戶信
6、息新建管理員信息MessageBox(NULL,"無管理員賬戶請首次建立賬戶!","信息",MB_ICONWARNING);printf("nnt請輸入管理員賬戶名:");scanf("%s",);do/兩次確認管理員密碼是否輸入正確 printf("nnt請輸入管理員密碼:");scanf("%s",admin.pwd);printf("nnt請再次輸入管理員密碼:");scanf("%s",pwd);if(str
7、cmp(admin.pwd,pwd)=0) flag=1; else printf("nnt你輸的賬戶名和密碼不匹配請重新輸入密碼");/ while(flag!=1);printf("nnt注冊成功,請牢記你的賬戶名和密碼!");/將注冊的賬戶密碼信息保存到文件 fp=fopen("account.txt","a");fwrite(&admin,sizeof(struct account),1,fp);fclose(fp);/關閉指針指向 getchar();getchar();system("
8、cls");/登錄系統(tǒng)void login()system("cls");int static count=0;/定義靜態(tài)變量count統(tǒng)計輸入次數char name20,pwd20; FILE *fp;struct account admin; /用戶名和密碼submit();printf("nnttt*歡迎 進入*");printf("nnttt* 隨米打印-送貨上床 *");printf("nnttt* 管理 系統(tǒng) *");fp=fopen("account.txt","
9、;r");fread(&admin,sizeof(struct account),1,fp);fclose(fp);printf("nnt請輸入您的賬戶名:");scanf("%s",name);printf("nnt請輸入您的密碼:");scanf("%s",pwd);count+;/比較用戶輸入的賬戶名和密碼是否匹配if(strcmp(name,)=0 && strcmp(pwd,admin.pwd)=0)MessageBox(NULL,"登錄成功
10、","信息",MB_OK); /信息提示 else if(count>=3)/三次登錄系統(tǒng)機會 printf("nnt輸入次數錯誤過多無法登陸系統(tǒng)");elseprintf("nnt你輸入的賬戶名或密碼錯誤按ENTER請重新輸入<你還有%d機會>",3-count);getchar();getchar();/提示重新輸入login();getchar();getchar();menu();void menu ()system("cls");int option=0,count=0;pri
11、ntf("nntt*-隨米打印管理-*");printf("nntt*主菜單-*");printf("nntt*1瀏覽打印訂單信息-*");printf("nntt*2添加訂單信息 -*");printf("nntt*3查詢訂單信息 -*");printf("nntt*4修改訂單信息 -*");printf("nntt*5刪除訂單信息 -*");printf("nntt*6退出客房系統(tǒng) -*");/用switch來進行選擇操作 doif
12、(count=0)printf("nnt請選擇你要進行的操作16n");else printf("nnt你輸入的信息有誤請重新選擇操作(16)n");count+;scanf("%d",&option);while(option<=0 | option>6);switch(option)case 1:view();break;case 2:add();break;case 3:search();break;case 4:update();break;case 5:del();break;case 6:system(
13、"exit");break;void view()system("cls");struct ord infoN;int count=0,i;FILE *fp;printf("nnttt*歡迎 進入*");printf("nntttt* 隨米打印-送貨上床 *");printf("nnttt* 訂單瀏覽系統(tǒng) *");/打開讀取文件if(fp=fopen("order.txt","r")=NULL)/說明文件不存在printf("nt暫無訂單信息&q
14、uot;);else/如果能打開文件,則循環(huán)讀取文件中數據while(!feof(fp)/feof:file end offread(&infocount,sizeof(struct ord),1,fp);count+;fclose(fp);printf("nn打印單號t打印文件名t打印數量t單/雙面 t打印狀態(tài)t配送狀態(tài)t配送宿舍t(yī)聯系電話");/遍歷數據 for(i=0;i<count-1;i+)printf("nn%-8st%-8st%-8st%-8st%-8st%-8st%-8st%-8s",infoi.id,,
15、infoi.num,infoi.type,infoi.status,infoi.status2,infoi.address,infoi.phone);printf("nnt按ENTER返回主菜單"); getchar();getchar();menu();void add()system("cls");struct ord info,infosN;FILE *fp;int flag=0,count=0,i;if(fp=fopen("order.txt","r")!=NULL)/如果訂單數據文件不為空將訂單數據存入i
16、nfos信息中 while(!feof(fp)fread(&infoscount,sizeof(struct ord),1,fp); count+;fclose(fp);printf("nntt*歡迎隨米打印管理系統(tǒng)*");printf("nntttt* 隨米打印-送貨上床 *");printf("nnttt-添加訂單信息-");doprintf("nnt請輸入訂單編號:"); /輸入添加訂單信息; scanf("%s",info.id);if(count>0)for(i=0;i&
17、lt;count-1;i+)if(strcmp(info.id,infosi.id)=0) / 判斷訂單單號是否已經存在 printf("nt該編號已經存在請重新輸入"); break;while(i<count-1);printf("nnt請輸入聯系人電話號碼:"); /用戶輸入信息 scanf("%s",&info.phone);printf("nnt請輸入打印文件名:");scanf("%s",&);printf("nnt請輸入訂單數量(份
18、):");scanf("%s",&info.num);printf("nnt請輸入打印單雙面類型:");scanf("%s",&info.type);printf("nnt請輸入配送宿舍地址:");scanf("%s",&info.address);strcpy(info.status,"未打印");strcpy(info.status2,"未配送");flag=MessageBox(NULL,"你確定要添加此次
19、信息嗎?","信息確認",MB_YESNO|MB_ICONWARNING);/存入數據文件printf("nn打印單號t打印文件名t打印數量t單/雙面 t打印狀態(tài)t配送狀態(tài)t配送宿舍t(yī)聯系電話");printf("nn%-8st%-8st%-8st%-8st%-8st%-8st%-8st%-8s",info.id,,info.num,info.type,info.status,info.status2,info.address,info.phone);if(flag)fp=fopen("order
20、.txt","a");fwrite(&info,sizeof(struct ord),1,fp);fclose(fp);printf("nt數據添加成功.");getchar();getchar();menu();void search()system("cls");struct ord infosN,infoN;FILE *fp;int count=0,i=0,j=0,total=0;char status10;printf("nnt*歡迎隨米打印管理系統(tǒng)*");printf("nnt
21、-查詢訂單信息-");if(fp=fopen("order.txt","r")=NULL)printf("暫無訂單信息!");elsewhile(!feof(fp)fread(&infoscount,sizeof(struct ord),1,fp);count+;fclose(fp);printf("nnt請輸入要查詢訂單的狀態(tài):");scanf("%s",status);for(i=0;i<count-1;i+)if(strcmp(status,infosi.statu
22、s)=0)infototal=infosi;total+;if(strcmp(status,infosi.status2)=0)infototal=infosi;total+;if(total=0)printf("nnt暫無此狀態(tài)的訂單");elseprintf("nn打印單號t打印文件名t打印數量t單/雙面 t打印狀態(tài)t配送狀態(tài)t配送宿舍t(yī)聯系電話");for(j=0;j<total;j+)printf("nn%-8st%-8st%-8st%-8st%-8st%-8st%-8st%-8s",infoj.id,infoj.nam
23、e,infoj.num,infoj.type,infoj.status,infoj.status2,infoj.address,infoj.phone); getchar();getchar();menu();void update() system("cls");struct ord infosN;FILE *fp;int count=0,i=0,j=0,flag=0,flag2=0;int print=0,send=0; /訂單狀態(tài)2個char id10;printf("nnttt*歡迎 進入*");printf("nnttt* 隨米打印-
24、送貨上床 *");printf("nnttt* 訂單管理系統(tǒng) *");if(fp=fopen("order.txt","r")=NULL)/讀取文件數據是否存在printf("nt暫無訂單信息.");elsewhile(!feof(fp)fread(&infoscount,sizeof(struct ord),1,fp);/將數據循環(huán)存入數組中count+;fclose(fp);printf("nt請輸入要管理的訂單編號:");scanf("%s",id);
25、for(i=0;i<count-1;i+)if(strcmp(infosi.id,id)=0)printf("nn打印單號t打印文件名t打印數量t單/雙面 t打印狀態(tài)t配送狀態(tài)t配送宿舍t(yī)聯系電話");printf("nn%-8st%-8st%-8st%-8st%-8st%-8st%-8st%-8s",infosi.id,,infosi.num,infosi.type,infosi.status,infosi.status2,infosi.address,infosi.phone);flag2=MessageBox(NULL,
26、"將訂單標記為已打印狀態(tài)請選擇是,將訂單標記為未打印狀態(tài)請選擇否","信息確認",MB_YESNO|MB_ICONWARNING);if(flag2=6) strcpy(infosi.status,"已打印");printf("nnt訂單%s已打印",infosi.id);flag=1; else strcpy(infosi.status,"未打印");printf("nnt標記為未打印"); break;if(i=count-1)printf("nt對不起暫無該訂
27、單信息.");elseif(flag=1)/已經被打印的訂單才能被標記為已配送 flag2=MessageBox(NULL,"將訂單標記為已配送狀態(tài)請選擇是,將訂單標記為未配送狀態(tài)請選擇否","信息提示",MB_YESNO|MB_ICONWARNING); if(flag2=6) strcpy(infosi.status2,"已配送");printf("nnt訂單%s已配送",infosi.id); else strcpy(infosi.status2,"未配送");printf(&q
28、uot;nnt標記為未配送"); fp=fopen("order.txt","w");for(i=0;i<count-1;i+)fwrite(&infosi,sizeof(struct ord),1,fp);fclose(fp);printf("nt訂單管理成功.");getchar();getchar();menu();void del()system("cls");struct ord infosN;FILE *fp;int count=0,i=0,j;char roomid10;pri
29、ntf("nnttt*歡迎 進入*");printf("nnttt* 隨米打印-送貨上床 *");printf("nnttt* 刪除上訂單信息 *");if(fp=fopen("order.txt","r")=NULL)printf("暫無訂單信息無法刪除!");elsewhile(!feof(fp)fread(&infoscount,sizeof(struct ord),1,fp);count+;fclose(fp);printf("nnt請輸入要刪除的訂單編號:");scanf("%s",roomid);for(i=0;i<count-1;i+)if(strcmp(infosi.id,roomid)=0)break;if(i=count-1)printf("nnt你輸入的訂單編號不存在;");elsefp=fopen("order.txt","w");for(j=0;j<count-1;j+)if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國陳皮市場運營格局及發(fā)展趨勢分析報告
- 2025-2030年中國鋁合金金屬型鑄件行業(yè)十三五規(guī)劃及發(fā)展策略研究報告
- 2025-2030年中國重卡汽車市場發(fā)展狀況及前景趨勢分析報告
- 2025-2030年中國酒精制造行業(yè)運營現狀及發(fā)展規(guī)劃分析報告
- 2025安徽省建筑安全員《C證》考試題庫及答案
- 2025-2030年中國觀光船游覽市場發(fā)展狀況與投資戰(zhàn)略研究報告
- 2025-2030年中國營銷服務行業(yè)市場競爭狀況及發(fā)展前景分析報告
- 2025-2030年中國米爾貝肟市場運營現狀及發(fā)展規(guī)劃分析報告
- 2025-2030年中國電解鋅行業(yè)十三五規(guī)劃與發(fā)展建議分析報告
- 酒店精裝修工程施工組織設計策劃方案
- 教科版小學一年級科學下冊全冊教案(最新)
- 碎石運輸合同標準范文
- 餐飲店長競聘報告PPT課件
- 高考語文一輪復習文學類文本閱讀(小說閱讀)教案
- 輪崗培養(yǎng)計劃表
- 小學二年級數學下冊教材研說稿
- 薄弱學科、薄弱班級原因分析及改進措施課件資料
- 可編輯模板中國風春節(jié)喜慶信紙精選
- 小學生幽默搞笑相聲臺詞
- A4方格紙-無需排版直接打印完美版
評論
0/150
提交評論