版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 C語言課程設(shè)計 隨米打印訂單管理系統(tǒng) 學 院: 計算機與信息科學學院 學生姓名: 謝潤發(fā) 指導教師: 王新祥 職稱 教授 專 業(yè): 網(wǎng)絡(luò)工程 班 級: 1501 完成時間: 2016-6 目 錄1 問題要求及任務(wù)描述31.1 題目要求31.2 主要任務(wù)32 解決問題的主要思路和方法42.1 關(guān)鍵問題42.2 擬采用解決問題的方法42.3 主要算法和處理流程圖53 程序?qū)崿F(xiàn)63.1 程序?qū)崿F(xiàn)時應(yīng)考慮的問題63.2 主要源代碼及說明64 測試或調(diào)試214.1 調(diào)試過程:216 參考文獻:271 問題要求及任務(wù)描述 1.1 題目要求設(shè)計隨米打印訂單系統(tǒng),要求訂單編號,文件名,打印份數(shù),單雙面打印方
2、式,打印狀態(tài),送貨狀態(tài)信息,地址信息和聯(lián)系人電話信息。試設(shè)計“隨米”打印訂單處理系統(tǒng),使之能提供以下功能:(1) 主菜單 :進入系統(tǒng)需要密碼核實確認,登入系統(tǒng)以菜單的方式工作(2) 瀏覽打印訂單信息:可以瀏覽全部訂單信息(3) 添加訂單信息:可以添加訂單信息(以文件形式保存)(4) 刪除訂單信息:可以刪除訂單信息(5) 修改訂單信息:可以修改訂單人員信息(6) 查詢訂單信息:可以任意查出某種狀態(tài)的所有訂單(7) 退出系統(tǒng) 1.2 主要任務(wù)(1) 根據(jù)題目要求,由于訂單信息是存放在文件中,所以應(yīng)提供文件的輸入和輸出等操作;(2) 應(yīng)提供一個界面來調(diào)用各個功能;(3) 功能模塊: 本人負責程序設(shè)計
3、與訂單信息瀏覽、添加、刪除功能。2 解決問題的主要思路和方法2.1 關(guān)鍵問題 如何將信息用文本的方式正確的保存下來,再不出錯的讀取。如何將信息標準化的輸出在程序中。(1) 為查詢訂單信息的人提供了一個簡單而又真實的情境,使一目了然。(2) 提供各種工具,充分發(fā)揮網(wǎng)絡(luò)的共享性、開放性和交互性等特點,讓使用者充分發(fā)揮其主導作用。(3) 利用系統(tǒng),為消費操作者提供方便快捷的操作,為其搭好支架,很好的引導和幫助使用者的使用。(4) 在基本要求達成后,進行創(chuàng)新,如進行刪除和插件操作。(5) 需要列出程序清單,并加以詮釋寫出調(diào)試程序的方法。 2.2 擬采用解決問題的方法首先將c文件基礎(chǔ)知識了解清楚,即文件
4、的基本標志 ,文件的分類,文件的緩沖區(qū).熟悉C文件的引用,以及在文件讀寫時文件使用方式即(r,w,a,rb,wb,ab等)的區(qū)別.熟悉使用鏈表和指針使程序的運行效率更高,熟練輸出的操作使得數(shù)據(jù)的操作更加美觀. 2.3 主要算法和處理流程圖3 程序?qū)崿F(xiàn)3.1 程序?qū)崿F(xiàn)時應(yīng)考慮的問題要考慮到數(shù)據(jù)的安全性和數(shù)據(jù)的讀取速度,以及程序的便捷使用性; 3.2 主要源代碼及說明struct account /定義賬戶名和密碼結(jié)構(gòu)體char name20;char pwd20;struct ord /定義訂單結(jié)構(gòu)體char id10;/訂單編號char name20;/ 文件名char num10; /打印份
5、數(shù)char type20;/單雙面char status10; /打印狀態(tài)char status210;/送貨狀態(tài)char address20; /地址char price20;/價格char phone15; /聯(lián)系人電話;/主要函數(shù)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你輸?shù)馁~戶名和密碼不匹配請重新輸入密碼");/ while(flag!=1);printf("nnt注冊成功,請牢記你的賬戶名和密碼!");/將注冊的賬戶密碼信息保存到文件 fp=fopen("account.txt","a");fwrite(&admin,sizeof(struct account),1,fp);fclose(fp);/關(guān)閉指針指向 getchar();getchar();system("
8、cls");/登錄系統(tǒng)void login()system("cls");int static count=0;/定義靜態(tài)變量count統(tǒng)計輸入次數(shù)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輸入次數(shù)錯誤過多無法登陸系統(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)讀取文件中數(shù)據(jù)while(!feof(fp)/feof:file end offread(&infocount,sizeof(struct ord),1,fp);count+;fclose(fp);printf("nn打印單號t打印文件名t打印數(shù)量t單/雙面 t打印狀態(tài)t配送狀態(tài)t配送宿舍t(yī)聯(lián)系電話");/遍歷數(shù)據(jù) 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)/如果訂單數(shù)據(jù)文件不為空將訂單數(shù)據(jù)存入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) / 判斷訂單單號是否已經(jīng)存在 printf("nt該編號已經(jīng)存在請重新輸入"); break;while(i<count-1);printf("nnt請輸入聯(lián)系人電話號碼:"); /用戶輸入信息 scanf("%s",&info.phone);printf("nnt請輸入打印文件名:");scanf("%s",&);printf("nnt請輸入訂單數(shù)量(份
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);/存入數(shù)據(jù)文件printf("nn打印單號t打印文件名t打印數(shù)量t單/雙面 t打印狀態(tài)t配送狀態(tài)t配送宿舍t(yī)聯(lián)系電話");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數(shù)據(jù)添加成功.");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打印數(shù)量t單/雙面 t打印狀態(tài)t配送狀態(tài)t配送宿舍t(yī)聯(lián)系電話");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)/讀取文件數(shù)據(jù)是否存在printf("nt暫無訂單信息.");elsewhile(!feof(fp)fread(&infoscount,sizeof(struct ord),1,fp);/將數(shù)據(jù)循環(huán)存入數(shù)組中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打印數(shù)量t單/雙面 t打印狀態(tài)t配送狀態(tài)t配送宿舍t(yī)聯(lián)系電話");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)/已經(jīng)被打印的訂單才能被標記為已配送 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(j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學學校章程
- 肇慶醫(yī)學高等??茖W校《古建測繪與制圖》2023-2024學年第一學期期末試卷
- 區(qū)塊鏈技術(shù)應(yīng)用前景定量分析報告
- 財稅規(guī)劃報告模板
- DB2201T 66.5-2024 肉牛牛舍建設(shè)規(guī)范 第5部分:育肥牛
- 專業(yè)案例(動力專業(yè))-專業(yè)案例(動力專業(yè))押題密卷2
- 二零二五年酒店客房租賃及場地使用規(guī)則協(xié)議3篇
- 陽泉師范高等??茖W校《工程測量綜合實訓》2023-2024學年第一學期期末試卷
- 二零二五版房地產(chǎn)項目整合營銷策劃合同3篇
- 二零二五年快餐連鎖餐飲外包合作協(xié)議書2篇
- 監(jiān)理單位組織結(jié)構(gòu)圖
- 身份證地區(qū)對應(yīng)碼表
- 牙齦癌護理查房課件
- (完整版)鋁礬土進口合同中英文
- 《庖丁解牛》獲獎?wù)n件(省級公開課一等獎)-完美版PPT
- 化工園區(qū)危險品運輸車輛停車場建設(shè)標準
- 6月大學英語四級真題(CET4)及答案解析
- 氣排球競賽規(guī)則
- 電梯維修保養(yǎng)報價書模板
- 危險化學品目錄2023
- FZ/T 81024-2022機織披風
評論
0/150
提交評論