華夏理工學院保安排班值班系統設計報告_第1頁
華夏理工學院保安排班值班系統設計報告_第2頁
華夏理工學院保安排班值班系統設計報告_第3頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學號武漢華夏理工學院課 程 設 計課程名稱 C語言課程設計題 目保安值班排班系統設計專 業軟件工程班 級姓 名成 績指導教師2017年2月27日至2017年3月3日課程設計任務書學生姓名:專業班級:指導教師:工作單位:信息工程學院設計題目:保安值班排班系統設計要求完成的主要任務:1. 任務描述學校實驗樓有7名保安人員:錢、趙、孫、李、周、吳、陳。由于工作需要進行輪休 制度,一星期中每人休息一天。預先讓每一個人選擇自己認為合適的休息日。請編制程序, 打印輪休的所有可能方案。當然使每個人都滿意,例如每人選擇的休息日如下:錢:星期一、星期六、趙:星期二、星期四孫:星期三、星期日、李:星期五周:星期一

2、、星期四、星期六、吳:星期二、星期五陳:星期三、星期六、星期日2. 本課程涉及的知識點變量的定義、輸入和輸出函數、循環語句、數組、結構體等。3. 要求完成的任務 完成整個規定任務的設計及調試,且一定要畫出程序流程圖, 最后得出正確結果,并經教師檢查及答辯;寫出規范的課程設計說明書;課程設計結束后交設計說明書等文檔和設計內容: 從2月27日起,學生每天至少要到設計教室半天以上;設計報告撰寫格式要求:設計報告的主要內容是詳細寫出在設計過程中所用到的主要技術或方法;課程設計報告按國際通用格式書寫,具體格式要求請見資料:“課程設計說明書的書寫內容與格式”時間安排:第一天:學生先在實驗室集中, 由指導教

3、師介紹課程設計的目的、布置任務后選題;第二天- 第五天:第四天:學生在實驗室完成設計,經教師檢查并回答提問,確認設計完成; 教師在計算機上先檢查設計報告、學生修改后打印提交指導教師簽字:2017年2月24日系主任簽字:!2017年2月24日目錄設計內容1設計題目12開發環境13開發工具14完成時間 15設計思想 16設計過程及設計步驟17測試運行78評價與修訂109設計體會1010參考文獻10附錄: 121源程序122流程圖162.1打印所有值班方案的流程圖 162.2主函數流程圖 172.3打印保安愿意休息的日期的流程圖 17設計內容1設計題目保安值班排班系統設計2開發環境硬件環境:微機系列

4、,內存在1G以上,軟件環境:Microsoft Win dows XP3開發工具Visual C+6.04完成時間2017-2- 275設計思想設計一個保安排班系統,分為5個模塊,分別0-退出系統!1-打印所有值班方案! 2-打印所有保安名字!3-顯示保安人數! 4-打印某名保安合適的休息時間。設計這個程序希望可以把保安輪休的所有可能方案打印出來,同時添加了相應的查詢模塊.第1個模塊是實現退出功能的一個模塊;第2個模塊是打印所有可能輪休方案的一個模塊;第3個模塊是瀏覽所有保安姓名的一個模塊;第4個模塊是顯示保安人數的一個模塊;第5個模塊選項可以對想要查詢的保安進行查詢(查詢不同保安的合適休息時

5、間),該查詢選項可以通過輸入保安姓名將對應保安的信息打印到屏幕上.使用C+6.0制作。6設計過程及設計步驟1-1所示。圖1-1保安值班排班系統的功能模塊圖1.先制作整個系統的功能模塊圖。保安值班排班系統的功能模塊圖如圖2.3.然后制作菜單,為使界面更好看,多使用一些符號,例如*,-,完成后保存在函數 menu中,菜單程序代碼如圖1-2所示。g泊Menu()/嚴菜單+printfO'*! to this proram!* * *");1j閃曬“叭冇一-請輸入一個數字從0到4中選擇一pri ntf| %討一一一一一一一一_ 一* ” 加priirtf('nn*0 退出系統

6、!*,)printf|1 -打印所育值班方案!printff'VnAn*2-打印所有保安名宇1printf(' nni*3 -顯示保安人數!printfL"nn*4 -打印某名保安合適的休息時間!*1.print"nn*printfrnnnnr 請選擇數宇:J 滬圖1-2菜單的程序代碼圖再制作打印菜單,使用一個do while循環,循環條件設置為a<0|a>4,確保在輸入0-4的時候程序開始運行,否則返回a。打印菜單程序代碼如圖1-3所示。int choicej)"宅打E卩菜單zint珅do Mmn叫艸scartfjW&aPwh

7、lle(a<o| |aM)yreturn 合;"圖1-3打印菜單的程序代碼圖4. 主函數制作,輸入 c后使用switch語句進行判斷,caseO為退出程序,case1為打印 所有值班情況,case2打印保安名字,case3打印保安數量,case4打印保安愿意休息 的日期。主函數流程圖如圖1-4-1所示,主函數程序代碼如圖1-4-2所示。打印藍騎艱住杵就的休束時何iMih宅 rhlcMT UH血rnkbfeakbm*冷卻圖1-4-1主函數流程圖皿dmsinu屮主兇加>inc附dpfzYmrcIs'bH1r=crpj-switthjcj-cast Q:礦1 ntfl

8、EnF祇r.:朋Icom fcttilt progra m! ':, snesk: coseEfi'intt(|.searchn(9);-httUh-SedrchJJflt*1flu$h3l>gLchd-|: 1j;treak;4J口 e 2:-師阿如趙祓孫李圖吳煉Hfl幅網I扣getchi<():-Hrub« B;1pi<<'i±有丁宕保到1卜AuUMlh»讓-£0艸kbre;別匕心ca se 4:匚ho celOp*-'flus冶11(計jetEharif);k;b紀k嚴冊hl何產5. 打印保安

9、愿意休息的日期,輸入保安名字后進行判斷,使用if else語句,若輸入的字符是7個保安中的任意一個則給b賦一個值,然后使用switch語句進行輸出。打印保安愿意休息日期的流程圖如圖1-5-1所示,打印保安愿意休息日期的程序代碼如圖1-5-2所示。圖1-5-1打印保安愿意休息的日期的流程圖void choicelf)F/*打印保安愿意休息日期*, int b;charsl10;+JPintT請輸入保安名字;iflstrcmplsX11 趙牛電 b=l;*else if(5trcTnp(51/'錢=0) b=2剜else iffstrcmptsir11 孫卞b=3;*else rffstr

10、cmpfsl/11 i=C) b=4;+Jelse iftstrcmpfsl/'Jf lh)-=0) b=5;*-else rffstrcmpfBL11 吳卞=0) b=6;else if|stremp(sl,"陳學列 b=7評else b=0;i5witch(b)ca&e “pfinttf對不起,姓名輸入有詞陶如case 1: printfl11 趙 case 2:prlntf"錢 case3;printQ"孫 caseJi:pnntf("$ case 5: printf(p 周 case6:printff': case/jpr

11、intfC'K星朋二,星期四'febreakx星期三”星期An);break星期三,是期天"鈾閑kk星期五5breaks'星期一星期四,星期A"hbreak;p星期二,星期五爭b©熾星期三星期六-星期BHibreak16. easel的內容制作,先記錄每天可以休息的人,再打印方案。打印所有值班方案的流程圖如圖1-6-1所示,用于記錄每天可以休息的人的程序代碼如圖1-6-2所示,打印方案的程序代碼如圖1-6-3所示。開始InntO初始化找非空void inttlf)-irt i;Afor£ il;i<8:i+>Jr【i】

12、【O】=O屮叩1卻rffl2=0Pr(l(0=2;r|l(l=5r'r20=l; r2l-6;r3O=3;f3l=7r'r4HO=l; r(*K11=5rW 回=4; rMHl=fir(&(=2; r(&(l=5; r(&(2=7;/*記錄霉天可以休息的人#rni0=3?rpl=7Int l;dBi=O;-5i=0 產,HK圖1-6-2記錄每天可以休息的人的程序代碼圖void print2()臚打E卩所有可能的值班方蓉int i;+Jfor.儀Switch (BCQ1 Keasel: printff1 趙 case 2 : pintf("鈦 c

13、ase 3 : print ff'Jj «5e4: pintf("李 cases : printff周 casG : printff'吳 case? : printf("B KKprifitfCV')int canpace(int n)Prffsfnh-lreturn 0;return 1;+J");break "Ijbreak- H);break*J "Jjbreak+J ");break:*J ');break * ";beak*檢查當前選擇的人罡否已經安排過休假"&q

14、uot;*該人已痊安排休息日期圖1-6-3打印方案的程序代碼圖7測試運行1. 歡迎界面運行圖如圖1-1所示。圖1-1歡迎界面運行圖2. 選項1打印所有值班方案執行圖如圖1-2所示XXJCJCMJCXJCJCMJCXXK M! XBLZMkRe IgOHI 10 t 11 IS IFO g 時已皿 t XKMiXXZMJCMiXJtJCXMlJOtJCXMi* 請輸入一個數字從0亍I國中選擇打* 0-退岀系統豊*”1-打印所有値班方案f* 2-打印所有保安名字P”* 3-顯示保安人數辛* 4-打E卩某名保安合適的休息時間F*戔戔吳吳UK吳周氧錢st3.選項2打印所有保安名字執行圖如圖1-3所示。

15、Sj8-S1«請輸入一個數于從0刮4中選擇. -一一iM*e-退出系績?* 1-打印所有值班方索t-M* 2-打印所有保安名宇?*3-顯示保安人數T*4-打印某名保安合適的休息時間請選擇數字! 2趙錢孫李周吳陳圖1-3選項2打印所有保安名字執行圖4. 選項3顯示保安人數執行圖如圖1-4 所示lco m t & this pi*b住i*akin、jotatuxjtxxjotxjtjtxjtuxjtH !' - .- .-請=1刖入一個數亍從0到4中選擇*0 -退岀系統?WM1 -打印所有值班方案!*2-打印所有保安名字?*3 -顯示保安人數?*Jf4打印某名保安合適的休

16、息時間?*9(-臆選擇數字幻共有7名保茹5. 選項4打印某名保安合適的休息時間(以周為例)執行圖如圖1-5所示hjch XM)i KJtxMX 興且貝試 moot 制 e Icon to th is pio fframf xjtJtxMxx 且貝* 請輸入一個數字從 0 到叫中選擇*M 4«* 0-退岀系:統甲* 1-打印所有值班方案?«p2-打印所有保安名字?* 3-顯示保安人數?-k4-打印某名保安合適的休息時間豊*黔爍舊爹周星期-星期六圖1-5選項4打印某名保安合適的休息時間執行圖(以周為例)6. 選項4打印某名保安合適的休息時間(輸入不符要求)如圖 1-6 所示嚴耳

17、耳e lc om t o th is ppof施員 tcitxxit 買"-請輸入一"數于從0到弓中選擇AC«=鬢W-退出系統P 1-打印所有值別壬方案?* 2-打印所有保安名字半it*3-顯示保安人數?*4-打印某名保安合適的休息時即WH.霖創音誤tK圖1-6選項4打印某名保安合適的休息時間圖(輸入不符要求)8評價與修訂程序整體較好,只不過用時較長,打印方案處加上對應的星期會顯得更加明顯,菜單的排版較為美觀,嘗試下使用不同顏色的字體會是使用者更加喜歡,另外給程序加上一個有色背景的話亦可使人賞心悅目。9設計體會程序設計是一次讓我們綜合自己所學習的知識,把他應用到實

18、際的一次機會,平常我們學的編程語言總顯得那么的不靈活,很多時候我們一本書學下來了,仍編不出一個簡單的程序,通過對一個小項目功能的實現,我們不僅重溫了平時所學的知識點,還增強了自己的動手能力。對于一個程序,在我看來,最重要的莫過于思路,同一個程序可以由多個思路來實現,然而我們所要做的就是通過多次的編碼調試找出最簡,最優思路。好的思路能無疑能使一個程序員實現事半功倍的效果。接著就要根據自己的思路為該程序設計算法,只有輪廓形成后才能開始編碼,編寫的過程中還應搜索記憶中的語言基礎,找到最簡便的表達方式,增加程序的可讀性, 代碼編寫完成后,經過多次編譯后無錯誤了也不代表 程序就完成了,運行程序時還應通過

19、多組不同情況,看能否實現。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正提高自己的實際動手能力和獨立思考 的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題, 同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。通過這次課程設計之后,讓我養成了編程的好習慣, 就是先列清自己的思路, 寫清自己的算法,必要時還要畫流程圖, 編寫程序時也不是依次 由上而下寫,而是先把主要函數列出來再一一編寫。10參考文獻1. C語言編程

20、常見問題解答,美Paul S. R. Chishohm 等著,張芳妮呂波譯,清華大 學出版社,2013年12月。2. C語言程序設計題解與上機指導,譚浩強編,清華大學出版社,2011年11月。與教材配套的上機指導。3. C程序設計(第二版),譚浩強編,清華大學出版社,2014年12月。設計過程中現場提問(或答辯)記載:Q:制作過程中使用了哪些學過的知識?A:數組,循環結構等。Q:打印所有方案的原理是什么?A:使用switch語句遍歷查找。 學生Q:如何制作一個菜單的選項? 教師A:使用switch語句制作。Q:制作過程中如何克服知識點不足的問題?A:通過查找資料或百度。指導教師評語:成績評定等

21、級:指導教師(簽名):2017年3月6 日附錄:1源程序#i nclude "stdio.h"#include "string.h"#in clude "stdlib.h"int r83; /*不同日期可以輪休的人int B8;/*記錄當前日期對應人員安排int s8;/*記錄當前人的休息安排情況void Me nu(); /*int choice();void in tt1();int can place(i nt n);void prin t2();void search11(i nt m);void choice1();函數聲明

22、void mai n()/*主函數int c;dosystem("cls");c=choice();switch(c) case O:pri ntf("nnntttWelcom to this program!");break;case 1:in tt1();search11(9);in tt1();search11(1);flushall();getchar();break;case 2:printf("n 趙錢孫李周吳陳”);flushall();getchar();break;case 3:prin tf("共有7 名保安!&q

23、uot;);flushall();getchar();break;case 4: choice1();flushall();getchar();break;while(c);void Menu()/*菜單printf("n*Welcomtothisprogram!*") printf("nn*");printf("nn* ");prin tf("nn*");prin tf("nn*");prin tf("nn*");prin tf("nn*");prin

24、tf("nn*");印所有值打印所有保安名字!顯示保安人數!4 -打印某名保安合適的休息時間!printf("nn*");prin tf("nnnnnin t choice() /*int a;do Men u(); scan f("%d", &a);while(a<0|a>4); return a;void choice1() /* int b;char s110;printf("請輸入保安名字:");sca nf("%s",s1);請選擇數字:”);打印菜單打印

25、保安愿意休息日期if(strcmp(s1," 趙")=0) b=1;錢")=0) b=2;孫")=0) b=3;李")=0) b=4;周")=0) b=5; 吳")=0) b=6;陳")=0) b=7;r60=2;r61=5;2=7;/*記錄每天可以休息的人else if(strcmp(s1,"else if(strcmp(s1,"else if(strcmp(s1,"else if(strcmp(s1,"else if(strcmp(s1," else if(st

26、rcmp(s1," else b=0;case 0:pri ntf(”對不起,姓名輸入有誤 門;break;case 1:pri ntf(”趙星期二,星期四”);break;case 2:pri ntf(”錢星期三,星期六”);break;case 3:pri ntf(”孫星期三,星期天");break;case 4:pri ntf(”李星期五");break;case 5:pri ntf(”周星期一,星期四,星期六");break;case 6:pri ntf(”吳星期二,星期五");break;case 7:pri ntf(”陳星期三,星期六,星期日");break;switch(b)void in tt1()i nt i;for( i=1;i<8;i+)ri0=0; ri1=0; ri2=0;r10=2;r11=5;r20=1;r21=6;r30

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論