保安值班系統(tǒng)課程設計_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計</p><p>  課程設計名稱:保 安 值 班 系 統(tǒng) </p><p>  專 業(yè) 班 級 : 電子信息工程2班 </p><p>  電子信息工程 專業(yè)課程設計任務書</p><p>  基本要求有下面幾點:</p><p>  1該程序要求應該是能夠

2、輸入每人選擇的休息日期,由于工作需要進行輪休制度,一星期中每人只能休息一天。</p><p>  2先讓每一個人選擇自己認為合適的休息日,判斷是否符合條件</p><p>  3此程序可以打印輪休的所有可能方案。當然使每個人都滿意</p><p>  4每個人先給出自己的想休息的星期天,然后,經(jīng)過商量,讓主管人員給出可能的方案。</p><p&g

3、t;  例如有下的例子和要求</p><p>  某公司有7名保安人員:趙、錢、孫、李、周、吳、陳。由于工作需要進行輪休制度,一星期中每人休息一天。預先讓每一個人選擇自己認為合適的休息日。請編制一程序,打印輪休的所有可能方案。當然使每個人都滿意,例如每人選擇的休息日,每個人先選擇自己的休息,然后經(jīng)過分析和商量,列出有關(guān)的可能的方案。</p><p><b>  趙:星期四<

4、/b></p><p><b>  錢:星期一、</b></p><p><b>  孫:星期三、</b></p><p><b>  李:星期五</b></p><p><b>  周:星期日</b></p><p><

5、;b>  吳:星期二、</b></p><p><b>  陳:星期六、</b></p><p>  基于上述分析,引入的思想,建立一套面向企業(yè)單位是十分必要的。系統(tǒng)的創(chuàng)建與實施可以為生活區(qū)或者企業(yè)提供很方便的服務。便于保安人員的工作服務。為了使每個人都滿意,可以實施輪流的方案,這樣每個人就處于平等的優(yōu)勢,當然保安人員可以請假或者經(jīng)過他們自己的商量,

6、暫時的替班。</p><p>  課程設計的目的和要求</p><p><b>  課程設計的目的</b></p><p>  C語言課程設計的主要目的是培養(yǎng)我們綜合運用C語言程序設計課程所學到的知識,做相應的自主練習,消化課堂所講解的內(nèi)容,通過編寫C程序,積累調(diào)試C程序的經(jīng)驗,完成所要求的題目,逐漸培養(yǎng)編程能力,解決實際問題的能力,以及嚴謹?shù)?/p>

7、工作態(tài)度和良好的程序設計習慣。</p><p>  進一步掌握和利用C語言進行程序設計的能力。</p><p>  進一步培養(yǎng)我們結(jié)構(gòu)化程序設計的思想,加深對高級語言基本語言要素和控制結(jié)構(gòu)的理解。</p><p>  針對C語言中的重點和難點內(nèi)容進行訓練,獨立完成有一定工作量的課程設計任務,同時強調(diào)好課程設計風格。</p><p>  掌握C

8、語言的編程技巧和上機調(diào)試程序的方法。</p><p>  掌握程序設計的常用算法。</p><p>  掌握書寫程序開發(fā)文檔的能力。</p><p>  通過課程設計的訓練,我們應該能夠了解程序設計的基本開發(fā)過程,掌握編寫、調(diào)試和測試C語言程序的基本技巧,充分理解結(jié)構(gòu)化程序設計的基本方法。</p><p>  另外,C語言本身的復雜性也是其比

9、較難學的原因之一。C不僅可以用來開發(fā)應用程序,更可用來設計系統(tǒng)程序。比起其他語言,C增加的許多特點就是為了設計高質(zhì)量的系統(tǒng)軟件。顯然,這些特點也增加了學習C的難度。</p><p>  因此,在程序設計的時候必須樹立以下觀念:學習思考的方法比學習語言更重要,琢磨程序設計的思維模式比琢磨C語言的知識更重要,培養(yǎng)自己的思考能力比記憶語言知識更重要。</p><p>  C語言程序設計的主要任務

10、是要求我們遵循軟件開發(fā)過程的基本規(guī)范,運用結(jié)構(gòu)化程序設計的方法,按照課程設計的題目要求,分析、設計、編寫、調(diào)試和測試C語言程序及編寫設計報告。</p><p>  1.2 課程設計的要求</p><p>  課程設計的選題必須圍繞本課程內(nèi)容,確定一個或幾個難度、份量適當?shù)木唧w的工程實際項目,以便較系統(tǒng)地訓練學生綜合運用本課程所學知識解決工程實際問題的能力。課程設計題目都應給出原始數(shù)據(jù)。課程

11、設計題目需要完成的工作量。課程設計的工作量包括:設計計算(包括程序控制),繪圖設計說明書。學生在課程設計中初次運用本課程內(nèi)容進行綜合計算及設計,課程設計指導書要比較詳細地指導學生進行規(guī)范化計算與設計步驟及有關(guān)要求,并附有完成各部分工作量所需時間及評分標準,以及檢查學生設計進度及每一步應達到的基本要求。課程設計的參考資料除本課程所用教材外,還應準備相應的工程設計規(guī)范、設計手冊,國家標準及其他資料。一方面為學生提供必要的設計資料,另一方面培

12、養(yǎng)學生查閱、使用資料的能力。課程設計任務書及指導書每個學生一份,并于課程設計之前發(fā)給學生。</p><p>  學生綜合解決問題的能力將反映在設計的程序和編寫的課程設計報告中,因此本課程設計的考核內(nèi)容應該由以下兩部分組成。</p><p> ?。?)編寫的C語言程序</p><p>  ●針對編寫的C程序,應該主要考查下列內(nèi)容:</p><p&

13、gt;  ●是否符合題目要求,是否完成了主要功能;</p><p>  ●是否存在語法錯誤、邏輯錯誤及運行錯誤;</p><p>  ●程序設計是否合理;</p><p>  ●程序是否具有良好的可讀性和可靠性;</p><p>  ●是否符合結(jié)構(gòu)化程序設計所倡導的基本理念;</p><p> ?。?)課程設計報告&

14、lt;/p><p>  ●針對提交的課程設計報告,應該主要考查下列內(nèi)容:</p><p>  ●程序設計的報告內(nèi)容是否全面,觀點是否正確;</p><p>  ●設計過程是否符合結(jié)構(gòu)化程序設計方法的基本原則;</p><p>  ●層次是否清楚,語言是否通順;</p><p>  ●各種圖表是否規(guī)范;是否具有良好的程序設計

15、習慣。</p><p>  第二章 課程設計任務內(nèi)容</p><p>  程序?qū)崿F(xiàn)的功能是對7個員工實現(xiàn)排班,7個員工每個員工有一天的休假日,但是這一天的休假日可由員工自行選擇,選擇他們想要休假的時間,可由多個選擇,也可只有一個選擇,7個員工依次輸入完畢后,程序會輸出滿足7個員工的多種排班方式。對于7個人選擇有沖突的,輸出相應的提示。</p><p>  具體題目:

16、學校實驗樓有7名保安人員:趙,錢,孫,李,周,吳,陳。由于工作需求要進行輪休制度,一星期中每人休息一天。預先讓每一個人選擇自己認為合適的休息日。輸出輪休的所有可能方案。當然使每個人都滿意。</p><p>  例如每人選擇的休息日如下:</p><p><b>  趙:星期二,星期四</b></p><p><b>  錢:星期一,星

17、期六</b></p><p><b>  孫:星期三,星期日</b></p><p><b>  李:星期五</b></p><p>  周:星期一,星期四,星期六</p><p><b>  吳:星期二,星期五</b></p><p>  

18、陳:星期三,星期六,星期日</p><p>  第三章 詳細設計說明</p><p>  3.1 程序設計思路</p><p>  該程序?qū)崿F(xiàn)對7個員工進行排班的功能,輸出7個員工的休息日。該程序首先給出提示對員工們實現(xiàn)數(shù)據(jù)錄入,錄入7個人對于休假日的不同選擇,這個需求本程序通過7個獨立的for循環(huán)來實現(xiàn),然后針對大家不同的選擇經(jīng)過編譯后通過7個嵌套的for循環(huán)采取

19、遍歷查找的方法輸出滿足要求的組合,對于7個人選擇有沖突,而未能輸出滿足要求組合的給予提示,讓他們重新選擇。</p><p>  該程序未通過定義和調(diào)用其他函數(shù)來實現(xiàn),僅一個main()函數(shù)就可以了,在main()函數(shù)里實現(xiàn)數(shù)據(jù)錄入和比較得出結(jié)果的功能</p><p><b>  1.定義變量</b></p><p><b>  2.輸

20、出歡迎界面;</b></p><p>  3.通過7個獨立的for循環(huán),依次輸入7個人的選擇情況;</p><p>  4.通過7個嵌套的循環(huán)依次進行遍歷按要求組合。</p><p>  5.通過兩個for循環(huán)依次判斷組合里的任意兩個數(shù)不相等</p><p>  6.若任意兩個數(shù)不相等,輸出對應組合。</p><

21、;p><b>  圖3-1 總流程圖</b></p><p><b>  3. 2函數(shù)說明</b></p><p><b>  1.定義變量:</b></p><p>  判斷性變量:intj,k,h,n=0,flag=1; </p><p>  用于二維數(shù)組中的變量:i

22、nt a,b,c,d,e,f,g(用代表每個人a=趙,b=錢,c=孫,d=李,e=周,f=吳,g=陳); </p><p>  存儲7個人輸入的選擇情況:int q[7][7]; </p><p>  存儲每個人輸入的選擇情況:int A[7];</p><p>  用于確定員工選擇個數(shù)的變量:int achoice,bchoice,cchoice,dchoice,

23、echoice,fchoice,gchoice;</p><p><b>  2.輸入函數(shù):</b></p><p>  此處函數(shù)的功能是用來輸入7位員工的休息日信息的。函數(shù)中通過7個scanf()函數(shù)配合上7個獨立的for()循環(huán),依次輸入7個人的選擇情況。</p><p>  說明:因為每個人都有可能輸入大于1的休息日選項,所以通過for

24、()循環(huán),將每個休息日都輸入到數(shù)組里,當輸入回車之后,當前該員工的輸入結(jié)束,系統(tǒng)提示下一員工的輸入開始。共有7名員工,所以需要7個scanf()函數(shù)配合上7個獨立的for()循環(huán)。</p><p><b>  3.主要函數(shù):</b></p><p>  此處函數(shù)通過7個嵌套的for()循環(huán)依次進行遍歷按要求排列出組合。每一次遍歷下來,就把a,b,c,d,e,f,g輸入

25、的選擇情況分別賦給A[0],A[1],A[2],A[3],A[4],A[5],A[6].</p><p>  說明:因為每個人有多個選擇,本程序利用的思想是通過7個嵌套的for遍歷循環(huán),找出符合條件的組合。從a的第一個選擇,b的第一個選擇,c的第一個選擇,d的第一個選擇,e的第一個選擇,f的第一個選擇,g的第一個選擇排出一個組合,再a的第一個選擇,b的第一個選擇,c的第一個選擇,d的第一個選擇,e的第一個選擇,f

26、的第一個選擇,g的第二個選擇。直到結(jié)束g的選擇為止,前面不變,開始從f的第二個選擇開始。這樣依次遍歷下去,得到N個組合,但是,這樣遍歷下來得到的N個組合必有兩個人選擇相同的情況。這時候就得定義兩個變量。一個是一維數(shù)組A[7]和判斷變量flag。</p><p>  圖3-2 7個嵌套for循環(huán)的流程圖</p><p><b>  4.判斷函數(shù):</b></p&g

27、t;<p>  此處函數(shù)通過兩個for循環(huán)依次判斷排出的組合里的任意兩個是否相等。</p><p>  說明:A[0],A[1],A[2],A[3],A[4],A[5],A[6]組成N組合,他們分別存放每個人輸入的休假日,為了判斷該組合里是否有重復的數(shù)字,通過兩個for循環(huán)依次判斷,任意兩個數(shù)是否相等,若相等,則給flag賦值為0.若不等則賦值1.若flag為1則輸出滿足條件的組合。</p&g

28、t;<p><b>  5.輸出函數(shù):</b></p><p>  此處函數(shù)的功能是用來輸出輸出相關(guān)提示信息及最后結(jié)果。利用printf()函數(shù)和相關(guān)變量flag來輸出。</p><p>  說明:當flag==1:輸出正確結(jié)果。既7個人選擇休息日的合理安排組合。當 n==0:輸出“對不起,你們的選擇不能實現(xiàn)排班,請重新選擇!!”。此時的提示說明之前輸入

29、的休息日無法讓所有人滿意,需重新輸入。</p><p>  圖3-3輸出函數(shù)流程圖</p><p>  第四章 軟件使用說明</p><p>  該軟件為管理者提供了一種自動排班功能,可任意選定員工的休息日,軟件可自動生成最為合理的排班方案。</p><p>  進入程序后,如圖所示:</p><p><b>

30、;  圖4-1 歡迎界面</b></p><p><b>  只輸出一組結(jié)果:</b></p><p>  圖4-2輸出一種結(jié)果的排序輸入</p><p><b>  結(jié)果:</b></p><p>  圖4-3輸出一種結(jié)果</p><p><b>  

31、不能輸出結(jié)果</b></p><p>  圖4-4無法輸出結(jié)果的排序輸入</p><p><b>  結(jié)果:</b></p><p>  圖4-5輸出無法實現(xiàn)排班的結(jié)果</p><p>  輸出多組結(jié)果(按題目中的休息日輸入)</p><p>  圖4-6輸出多種結(jié)果的排序輸入<

32、/p><p><b>  結(jié)果:</b></p><p>  圖4-7輸出多種組合</p><p>  第五章 課程設計心得與體會</p><p>  程序設計是一次讓我們綜合自己所學習的知識,把他應用到實際的一次機會,平常我們學的編程語言總顯得那么的不靈活,很多時候我們一本書學下來了,仍編不出一個簡單的程序,通過對一個小項

33、目功能的實現(xiàn),我們不僅重溫了平時所學的知識點,還增強了自己的動手能力。對于一個程序,在我看來,最重要的莫過于思路, 同一個程序可以由多個思路來實現(xiàn),然而我們所要做的就是通過多次的編碼調(diào)試找出最簡,最優(yōu)思路。好的思路能無疑能使一個程序員實現(xiàn)事半功倍的效果。接著就要根據(jù)自己的思路為該程序設計算法,只有輪廓形成后才能開始編碼,編寫的過程中還應搜索記憶中的語言基礎,找到最簡便的表達方式,增加程序的可讀性,代碼編寫完成后,經(jīng)過多次編譯后無錯誤了也

34、不代表程序就完成了,運行程序時還應通過多組不同情況,看能否實現(xiàn)。</p><p>  通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知

35、識理解得不夠深刻,掌握得不夠牢固。通過這次課程設計之后,讓我養(yǎng)成了編程的好習慣,就是先列清自己的思路,寫清自己的算法,必要時還要畫流程圖,編寫程序時也不是依次由上而下寫,而是先把主要函數(shù)列出來再一一編寫。</p><p>  通過這次實踐,我對很多函數(shù)有了新的認識,我也明白了寫程序的基本過程和基本方法。這次課程設計總的來說讓我受益匪淺。我相信,只要自己在每一次實踐中都能仔細思考,課程設計其實都不會很難,關(guān)鍵在于自

36、己能不能認真思考,能不能親自動手做實驗,而不是想著其他人的勞動果實,其次你還要多操作,只有多操作才能從中發(fā)現(xiàn)問題,才能及時請教,解決問題,從而更好的掌握書本中知識。還有通過這次實踐也讓我懂得了:學校安排課程設計目的不在于你做了多少,不在于你做得好不好,關(guān)鍵在于你能否認真去對待,在于你能否通過這次設計對課本上知識有了更深刻的認識,在于能否從中學到書本上學不到的知識。因此,我會認真地對待我的每一次實驗。</p><p&g

37、t;<b>  附錄一 參考文獻</b></p><p>  [1]譚浩強編著. C++程序設計. 北京:清華大學出版社,2005</p><p>  [2]譚浩強編著. C++程序設計解題與上機指導. 北京:清華大學出版社,2005</p><p>  [3]譚浩強編著. C程序設計(第二版). 北京:清華大學出版社,1999</p&g

38、t;<p>  [4]譚浩強編著. C程序設計設計解題與上機指導(第二版). 北京:清華大學出版社,1999</p><p>  [5] 孫淑霞等C/C++程序設計實驗指導與測試(第2版),電子工業(yè)出版社,2007.1 </p><p><b>  附錄二 程序代碼</b></p><p>  #include<stdio.

39、h></p><p>  int main(void)</p><p><b>  {</b></p><p>  int j,k,h,n=0,flag=1;//用于判斷的變量</p><p>  int a,b,c,d,e,f,g;</p><p>  int achoice,bchoic

40、e,cchoice,dchoice,echoice,fchoice,gchoice;//用于確定員工選擇個數(shù)的變量</p><p>  int q[7][7];//用于員工存儲所選擇的休假日的變量</p><p><b>  int A[7];</b></p><p>  printf("****************歡迎進入排班系

41、統(tǒng)*****************\n");</p><p>  printf("#\t\t特別注意!\t\t\t#\n");</p><p>  printf("#\t請各位工作人員輸入自己想要輪休的日期\t#\n");</p><p>  printf("#\t請先選擇你要選擇的次數(shù)\t\t\t#\n

42、");</p><p>  printf("#\t再選擇你要輪休的日期\t\t\t#\n");</p><p>  printf("#\t\t\t\t\t\t#\n");</p><p>  printf("#\t\t\t\t\t\t#\n");</p><p>  pri

43、ntf("#\t\t\t\t\t\t#\n");</p><p>  printf("****************歡迎進入排班系統(tǒng)*****************\n");//歡迎界面</p><p>  printf("請趙輸入你想選擇的次數(shù)\n");</p><p>  scanf("%

44、d",&achoice);</p><p>  printf("請趙輸入輪休日期\n: ");</p><p>  for(j=0;j<achoice;j++){</p><p>  scanf("%d",&q[j][0]); //a錄入休假日</p><p

45、><b>  }</b></p><p>  printf("請錢輸入你想選擇的次數(shù)\n");</p><p>  scanf("%d",&bchoice);</p><p>  printf("請錢輸入輪休日期\n: ");</p><p&

46、gt;  for(j=0;j<bchoice;j++){</p><p>  scanf("%d",&q[j][1]); //b錄入休假日</p><p><b>  }</b></p><p>  printf("請孫輸入你想選擇的次數(shù)\n");</p><p&g

47、t;  scanf("%d",&cchoice);</p><p>  printf("請孫輸入輪休日期\n: ");</p><p>  for(j=0;j<cchoice;j++){</p><p>  scanf("%d",&q[j][2]); //

48、c錄入休假日</p><p><b>  }</b></p><p>  printf("請李輸入你想選擇的次數(shù)\n");</p><p>  scanf("%d",&dchoice);</p><p>  printf("請李輸入輪休日期\n: &qu

49、ot;);</p><p>  for(j=0;j<dchoice;j++){</p><p>  scanf("%d",&q[j][3]); //d錄入休假日</p><p><b>  }</b></p><p>  printf("請周輸入你想選擇的

50、次數(shù)\n");</p><p>  scanf("%d",&echoice);</p><p>  printf("請周輸入輪休日期\n: ");</p><p>  for(j=0;j<echoice;j++){</p><p>  scanf("%d&qu

51、ot;,&q[j][4]);</p><p>  } //e錄入休假日</p><p>  printf("請吳輸入你想選擇的次數(shù)\n");</p><p>  scanf("%d",&fchoice);</p><p>

52、;  printf("請吳輸入輪休日期\n: ");</p><p>  for(j=0;j<fchoice;j++){</p><p>  scanf("%d",&q[j][5]);</p><p>  } //f錄入休假日</p

53、><p>  printf("請陳輸入你想選擇的次數(shù)\n");</p><p>  scanf("%d",&gchoice);</p><p>  printf("請陳輸入輪休日期\n: ");</p><p>  for(j=0;j<gchoice;j++){&

54、lt;/p><p>  scanf("%d",&q[j][6]);</p><p>  } //g錄入休假日</p><p>  for(a=0;a<achoice&&q[a][0]!=0;a++){ </p><p>

55、;  for(b=0;b<bchoice&&q[b][1]!=0;b++){</p><p>  for(c=0;c<cchoice&&q[c][2]!=0;c++){</p><p>  for(d=0;d<dchoice&&q[d][3]!=0;d++){</p><p>  for(e=0;e&

56、lt;echoice&&q[e][4]!=0;e++){</p><p>  for(f=0;f<fchoice&&q[f][5]!=0;f++){</p><p>  for(g=0;g<gchoice&&q[g][6]!=0;g++){ //7個循環(huán)實現(xiàn)遍歷</p><p>  

57、A[0]=q[a][0]; </p><p>  A[1]=q[b][1]; </p><p>  A[2]=q[c][2]; </p><p>  A[3]=q[d][3]; </p><p>  A[4]=q[e][4]; </p><p>  A[5]=q[f][5]; </p><p>

58、  A[6]=q[g][6];</p><p><b>  flag=1;</b></p><p>  for(k=0;k<6;k++){</p><p>  for(h=k+1;h<7;h++){</p><p>  if(A[k]==A[h]) flag=0; //比較任意兩

59、個數(shù)是否相等</p><p><b>  } </b></p><p><b>  } </b></p><p>  if(flag==1){ //如果不等則輸出結(jié)果</p><p>  printf("得到以

60、下組合:\n");</p><p>  printf("趙: "); printf("星期%d \n",A[0]);</p><p>  printf("錢: "); printf("星期%d \n",A[1]);</p><p>  printf("孫: &q

61、uot;); printf("星期%d \n",A[2]);</p><p>  printf("李: "); printf("星期%d \n",A[3]);</p><p>  printf("周: "); printf("星期%d \n",A[4]);</p><

62、p>  printf("吳: "); printf("星期%d \n",A[5]);</p><p>  printf("陳: "); printf("星期%d \n",A[6]);</p><p>  printf(" \n ");</p><p>

63、<b>  n++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>&l

64、t;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(n==0)</b></p><p>

65、  {printf("對不起,你們的選擇不能實現(xiàn)排班,請重新選擇!!\n");}</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  信息科學與工程 學院課程設計成績評價表</p><p>  課程名稱:綜合課程設計

溫馨提示

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

評論

0/150

提交評論