C語言課程設(shè)計訂單管理系統(tǒng).doc_第1頁
C語言課程設(shè)計訂單管理系統(tǒng).doc_第2頁
C語言課程設(shè)計訂單管理系統(tǒng).doc_第3頁
C語言課程設(shè)計訂單管理系統(tǒng).doc_第4頁
C語言課程設(shè)計訂單管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

C語言課程設(shè)計 隨米打印訂單管理系統(tǒng) 學(xué) 院: 計算機與信息科學(xué)學(xué)院 學(xué)生姓名: 謝潤發(fā) 指導(dǎo)教師: 王新祥 職稱 教授 專 業(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 參考文獻(xiàn):271 問題要求及任務(wù)描述 1.1 題目要求設(shè)計隨米打印訂單系統(tǒng),要求訂單編號,文件名,打印份數(shù),單雙面打印方式,打印狀態(tài),送貨狀態(tài)信息,地址信息和聯(lián)系人電話信息。試設(shè)計“隨米”打印訂單處理系統(tǒng),使之能提供以下功能:(1) 主菜單 :進(jìn)入系統(tǒng)需要密碼核實確認(rèn),登入系統(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) 功能模塊: 本人負(fù)責(zé)程序設(shè)計與訂單信息瀏覽、添加、刪除功能。2 解決問題的主要思路和方法2.1 關(guān)鍵問題 如何將信息用文本的方式正確的保存下來,再不出錯的讀取。如何將信息標(biāo)準(zhǔn)化的輸出在程序中。(1) 為查詢訂單信息的人提供了一個簡單而又真實的情境,使一目了然。(2) 提供各種工具,充分發(fā)揮網(wǎng)絡(luò)的共享性、開放性和交互性等特點,讓使用者充分發(fā)揮其主導(dǎo)作用。(3) 利用系統(tǒng),為消費操作者提供方便快捷的操作,為其搭好支架,很好的引導(dǎo)和幫助使用者的使用。(4) 在基本要求達(dá)成后,進(jìn)行創(chuàng)新,如進(jìn)行刪除和插件操作。(5) 需要列出程序清單,并加以詮釋寫出調(diào)試程序的方法。 2.2 擬采用解決問題的方法首先將c文件基礎(chǔ)知識了解清楚,即文件的基本標(biāo)志 ,文件的分類,文件的緩沖區(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; /打印份數(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; /用于注冊第二次確認(rèn)密碼int flag=0;FILE *fp;if(fp=fopen(account.txt,r)=NULL)/如果沒有賬戶信息新建管理員信息MessageBox(NULL,無管理員賬戶請首次建立賬戶!,信息,MB_ICONWARNING);printf(nnt請輸入管理員賬戶名:);scanf(%s,);do/兩次確認(rèn)管理員密碼是否輸入正確 printf(nnt請輸入管理員密碼:);scanf(%s,admin.pwd);printf(nnt請再次輸入管理員密碼:);scanf(%s,pwd);if(strcmp(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(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*歡迎 進(jìn)入*);printf(nnttt* 隨米打印-送貨上床 *);printf(nnttt* 管理 系統(tǒng) *);fp=fopen(account.txt,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,登錄成功,信息,MB_OK); /信息提示 else if(count=3)/三次登錄系統(tǒng)機會 printf(nnt輸入次數(shù)錯誤過多無法登陸系統(tǒng));elseprintf(nnt你輸入的賬戶名或密碼錯誤按ENTER請重新輸入,3-count);getchar();getchar();/提示重新輸入login();getchar();getchar();menu();void menu ()system(cls);int option=0,count=0;printf(nntt*-隨米打印管理-*);printf(nntt*主菜單-*);printf(nntt*1瀏覽打印訂單信息-*);printf(nntt*2添加訂單信息 -*);printf(nntt*3查詢訂單信息 -*);printf(nntt*4修改訂單信息 -*);printf(nntt*5刪除訂單信息 -*);printf(nntt*6退出客房系統(tǒng) -*);/用switch來進(jìn)行選擇操作 doif(count=0)printf(nnt請選擇你要進(jìn)行的操作16n);else printf(nnt你輸入的信息有誤請重新選擇操作(16)n);count+;scanf(%d,&option);while(option6);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(exit);break;void view()system(cls);struct ord infoN;int count=0,i;FILE *fp;printf(nnttt*歡迎 進(jìn)入*);printf(nntttt* 隨米打印-送貨上床 *);printf(nnttt* 訂單瀏覽系統(tǒng) *);/打開讀取文件if(fp=fopen(order.txt,r)=NULL)/說明文件不存在printf(nt暫無訂單信息);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;i0)for(i=0;icount-1;i+)if(strcmp(info.id,infosi.id)=0) / 判斷訂單單號是否已經(jīng)存在 printf(nt該編號已經(jīng)存在請重新輸入); break;while(icount-1);printf(nnt請輸入聯(lián)系人電話號碼:); /用戶輸入信息 scanf(%s,&info.phone);printf(nnt請輸入打印文件名:);scanf(%s,&);printf(nnt請輸入訂單數(shù)量(份):);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,你確定要添加此次信息嗎?,信息確認(rèn),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.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-查詢訂單信息-);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;icount-1;i+)if(strcmp(status,infosi.status)=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;jtotal;j+)printf(nn%-8st%-8st%-8st%-8st%-8st%-8st%-8st%-8s,infoj.id,,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*歡迎 進(jìn)入*);printf(nnttt* 隨米打印-送貨上床 *);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);for(i=0;icount-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,將訂單標(biāo)記為已打印狀態(tài)請選擇是,將訂單標(biāo)記為未打印狀態(tài)請選擇否,信息確認(rèn),MB_YESNO|MB_ICONWARNING);if(flag2=6) strcpy(infosi.status,已打印);printf(nnt訂單%s已打印,infosi.id);flag=1; else strcpy(infosi.status,未打印);printf(nnt標(biāo)記為未打印); break;if(i=count-1)printf(nt對不起暫無該訂單信息.);elseif(flag=1)/已經(jīng)被打印的訂單才能被標(biāo)記為已配送 flag2=MessageBox(NULL,將訂單標(biāo)記為已配送狀態(tài)請選擇是,將訂單標(biāo)記為未配送狀態(tài)請選擇否,信息提示,MB_YESNO|MB_ICONWARNING); if(flag2=6) strcpy(infosi.status2,已配送);printf(nnt訂單%s已配送,infosi.id); else strcpy(infosi.status2,未配送);printf(nnt標(biāo)記為未配送); fp=fopen(order.txt,w);for(i=0;icount-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;printf(nnttt*歡迎 進(jìn)入*);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;icount-1;i+)if(strcmp(infosi.id,roomid)=0)break;if(i=count-1)printf(nnt你輸入的訂單編號不存在;);elsefp=fopen(order.txt,w);for(j=0;jcount-1;j+)if(j=i)continue;else fwrite(&infosj,sizeof(struct ord),1,fp);printf(nnt刪除客房成功;);fclose(fp);getchar();getchar();menu();4 測試或調(diào)試 4.1 調(diào)試過程:(1) 登入系統(tǒng)界面1 首次進(jìn)入系統(tǒng)要求注冊賬戶2 非首次系統(tǒng)要求輸入賬戶名及密碼登錄系統(tǒng)(2) 主界面(輸入正確賬戶名即密碼進(jìn)入主界面)(3) 瀏覽全部訂單信

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論