版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第頁成績評定表學(xué)生姓名王金強(qiáng)班級學(xué)號14專業(yè)電子信息工程課程設(shè)計(jì)題目保安值班安排系統(tǒng)評語組長簽字:成績?nèi)掌?013年1月課程設(shè)計(jì)任務(wù)書學(xué)院信息科學(xué)及工程學(xué)院專業(yè)電子信息工程學(xué)生姓名王金強(qiáng)班級學(xué)號1203030224課程設(shè)計(jì)題目保安值班安排系統(tǒng)實(shí)踐教學(xué)要求及任務(wù):某公司有7名保安人員:趙、錢、孫、李、周、吳、陳。由于工作需要進(jìn)行輪休制度,一星期中每人休息一天。預(yù)先讓每一個人選擇自己認(rèn)為合適的休息日。請編制一程序,打印輪休的所有可能方案。當(dāng)然使每個人都滿意,例如每人選擇的休息日如下:趙:星期二、星期四錢:星期一、星期六孫:星期三、星期日李:星期五周:星期一、星期四、星期六吳:星期二、星期五陳:星期三、星期六、星期日工作計(jì)劃及進(jìn)度安排:本課程設(shè)計(jì)時間為19教學(xué)周。其中包含設(shè)計(jì)、代碼調(diào)試、課程設(shè)計(jì)論文撰寫幾個階段。第19周星期一:設(shè)計(jì)任務(wù)分析和總體設(shè)計(jì)星期五:軟件算法和流程設(shè)計(jì)、軟件編碼實(shí)現(xiàn)星期六:軟件總體調(diào)試、軟件運(yùn)行分析、答辯、驗(yàn)收程序、書寫課程設(shè)計(jì)報(bào)告,提交指導(dǎo)教師:201年月日專業(yè)負(fù)責(zé)人:201年月日學(xué)院教學(xué)副院長:201年月日
目錄1需求分析……………………..42概要設(shè)計(jì)…………………..…52.1題目概述……….………52.2算法流程圖……………….……….…..63詳細(xì)設(shè)計(jì)……………….….….83.1算法分析………………….….…83.2核心代碼………….….……..…94調(diào)試分析……………..…….135課設(shè)總結(jié)………………..…….176參考文獻(xiàn)………………..……..181需求分析該程序有多種功能,是一套保安值班安排系統(tǒng)。設(shè)計(jì)這個程序希望可以把保安輪休的所有可能方案打印出來,可以通過輸入保安姓名將對應(yīng)保安的信息打印到屏幕上;整個過程在一個可操作的界面內(nèi)實(shí)現(xiàn),操作方便,菜單簡單易懂,能準(zhǔn)確無誤的顯示需要的信息.該程序具有程序運(yùn)行效率高的優(yōu)點(diǎn),數(shù)據(jù)類型豐富,結(jié)構(gòu)化控制語句功能強(qiáng)等優(yōu)點(diǎn).2概要設(shè)計(jì)2.1題目概述程序?qū)崿F(xiàn)的功能是對7個員工實(shí)現(xiàn)排班,7個員工每個員工有一天的休假日,但是這一天的休假日可由員工自行選擇,選擇他們想要休假的時間,可由多個選擇,也可只有一個選擇,7個員工依次輸入完畢后,程序會輸出滿足7個員工的多種排班方式。對于7個人選擇有沖突的,輸出相應(yīng)的提示。具體題目:學(xué)校實(shí)驗(yàn)樓有7名保安人員:趙,錢,孫,李,周,吳,陳。由于工作需求要進(jìn)行輪休制度,一星期中每人休息一天。預(yù)先讓每一個人選擇自己認(rèn)為合適的休息日。輸出輪休的所有可能方案。當(dāng)然使每個人都滿意。例如每人選擇的休息日如下:趙:星期二,星期四錢:星期一,星期六孫:星期三,星期日李:星期五周:星期一,星期四,星期六吳:星期二,星期五陳:星期三,星期六,星期日2.2算法流程圖如圖2-2:圖2—2總流程圖2.3for循環(huán)的流程圖如圖2-3: 圖2-37個嵌套for循環(huán)的流程圖3詳細(xì)設(shè)計(jì)3.1算法分析該程序?qū)崿F(xiàn)對7個員工進(jìn)行排班的功能,輸出7個員工的休息日。該程序首先給出提示對員工們實(shí)現(xiàn)數(shù)據(jù)錄入,錄入7個人對于休假日的不同選擇,這個需求本程序通過7個獨(dú)立的for循環(huán)來實(shí)現(xiàn),然后針對大家不同的選擇經(jīng)過編譯后通過7個嵌套的for循環(huán)采取遍歷查找的方法輸出滿足要求的組合,對于7個人選擇有沖突,而未能輸出滿足要求組合的給予提示,讓他們重新選擇。該程序未通過定義和調(diào)用其他函數(shù)來實(shí)現(xiàn),僅一個main()函數(shù)就可以了,在main()函數(shù)里實(shí)現(xiàn)數(shù)據(jù)錄入和比較得出結(jié)果的功能1.定義變量2.輸出歡迎界面;3.通過7個獨(dú)立的for循環(huán),依次輸入7個人的選擇情況;4.通過7個嵌套的循環(huán)依次進(jìn)行遍歷按要求組合。5.通過兩個for循環(huán)依次判斷組合里的任意兩個數(shù)不相等6.若任意兩個數(shù)不相等,輸出對應(yīng)組合。此處函數(shù)通過7個嵌套的for()循環(huán)依次進(jìn)行遍歷按要求排列出組合。每一次遍歷下來,就把a(bǔ),b,c,d,e,f,g輸入的選擇情況分別賦給A[0],A[1],A[2],A[3],A[4],A[5],A[6].說明:因?yàn)槊總€人有多個選擇,本程序利用的思想是通過7個嵌套的for遍歷循環(huán),找出符合條件的組合。從a的第一個選擇,b的第一個選擇,c的第一個選擇,d的第一個選擇,e的第一個選擇,f的第一個選擇,g的第一個選擇排出一個組合,再a的第一個選擇,b的第一個選擇,c的第一個選擇,d的第一個選擇,e的第一個選擇,f的第一個選擇,g的第二個選擇。直到結(jié)束g的選擇為止,前面不變,開始從f的第二個選擇開始。這樣依次遍歷下去,得到N個組合,但是,這樣遍歷下來得到的N個組合必有兩個人選擇相同的情況。這時候就得定義兩個變量。一個是一維數(shù)組A[7]和判斷變量flag。3.2核心代碼#include<stdio.h>intmain(void)intj,k,h,n=0,flag=1;//用于判斷的變量inta,b,c,d,e,f,g;intachoice,bchoice,cchoice,dchoice,echoice,fchoice,gchoice;//用于確定員工選擇個數(shù)的變量intq[7][7];//用于員工存儲所選擇的休假日的變量intA[7];printf("****************歡迎進(jìn)入排班系統(tǒng)*****************\n");printf("#\t\t特別注意!\t\t\t#\n");printf("#\t請各位工作人員輸入自己想要輪休的日期\t#\n");printf("#\t請先選擇你要選擇的次數(shù)\t\t\t#\n");printf("#\t再選擇你要輪休的日期\t\t\t#\n");printf("#\t\t\t\t\t\t#\n");printf("#\t\t\t\t\t\t#\n");printf("#\t\t\t\t\t\t#\n");printf("****************歡迎進(jìn)入排班系統(tǒng)*****************\n");//歡迎界面printf("請趙輸入你想選擇的次數(shù)\n");scanf("%d",&achoice);printf("請趙輸入輪休日期\n:");for(j=0;j<achoice;j++){ scanf("%d",&q[j][0]);//a錄入休假日printf("請錢輸入你想選擇的次數(shù)\n");scanf("%d",&bchoice);printf("請錢輸入輪休日期\n:");for(j=0;j<bchoice;j++){ scanf("%d",&q[j][1]);//b錄入休假日printf("請孫輸入你想選擇的次數(shù)\n");scanf("%d",&cchoice);printf("請孫輸入輪休日期\n:");for(j=0;j<cchoice;j++){ scanf("%d",&q[j][2]);//c錄入休假日printf("請李輸入你想選擇的次數(shù)\n");scanf("%d",&dchoice);printf("請李輸入輪休日期\n:");for(j=0;j<dchoice;j++){ scanf("%d",&q[j][3]);//d錄入休假日printf("請周輸入你想選擇的次數(shù)\n");scanf("%d",&echoice);printf("請周輸入輪休日期\n:");for(j=0;j<echoice;j++){ scanf("%d",&q[j][4]);}//e錄入休假日printf("請吳輸入你想選擇的次數(shù)\n");scanf("%d",&fchoice);printf("請吳輸入輪休日期\n:");for(j=0;j<fchoice;j++){ scanf("%d",&q[j][5]);}//f錄入休假日printf("請陳輸入你想選擇的次數(shù)\n");scanf("%d",&gchoice);printf("請陳輸入輪休日期\n:");for(j=0;j<gchoice;j++){ scanf("%d",&q[j][6]);}//g錄入休假日for(a=0;a<achoice&&q[a][0]!=0;a++){ for(b=0;b<bchoice&&q[b][1]!=0;b++){ for(c=0;c<cchoice&&q[c][2]!=0;c++){ for(d=0;d<dchoice&&q[d][3]!=0;d++){ for(e=0;e<echoice&&q[e][4]!=0;e++){ for(f=0;f<fchoice&&q[f][5]!=0;f++){ for(g=0;g<gchoice&&q[g][6]!=0;g++){//7個循環(huán)實(shí)現(xiàn)遍歷 A[0]=q[a][0]; A[1]=q[b][1]; A[2]=q[c][2]; A[3]=q[d][3]; A[4]=q[e][4]; A[5]=q[f][5]; A[6]=q[g][6]; flag=1; for(k=0;k<6;k++){ for(h=k+1;h<7;h++){if(A[k]==A[h])flag=0;//比較任意兩個數(shù)是否相等 if(flag==1){//如果不等則輸出結(jié)果 printf("得到以下組合:\n"); printf("趙:");printf("星期%d\n",A[0]); printf("錢:");printf("星期%d\n",A[1]); printf("孫:");printf("星期%d\n",A[2]); printf("李:");printf("星期%d\n",A[3]); printf("周:");printf("星期%d\n",A[4]); printf("吳:");printf("星期%d\n",A[5]); printf("陳:");printf("星期%d\n",A[6]); printf("\n"); n++;if(n==0){printf("對不起,你們的選擇不能實(shí)現(xiàn)排班,請重新選擇!!\n");}return0;}4調(diào)試分析進(jìn)入程序后,如圖4-1所示:圖4-1歡迎界面只輸出一組如圖4-2:圖4-2輸出一種結(jié)果的排序輸入輸出結(jié)果如圖4-3:圖4-3輸出一種結(jié)果不能輸出結(jié)果的輸入如圖4-4:圖4-4無法輸出結(jié)果的排序輸入輸出結(jié)果如圖4-5:圖4-5輸出無法實(shí)現(xiàn)排班的結(jié)果輸出多組結(jié)果的輸入如圖4-6:圖4-6輸出多種結(jié)果的排序輸入輸出結(jié)果如圖4-7:圖4-7輸出多種組合5課程總結(jié)程序設(shè)計(jì)是一次讓我們綜合自己所學(xué)習(xí)的知識,把他應(yīng)用到實(shí)際的一次機(jī)會,平常我們學(xué)的編程語言總顯得那么的不靈活,很多時候我們一本書學(xué)下來了,仍編不出一個簡單的程序,通過對一個小項(xiàng)目功能的實(shí)現(xiàn),我們不僅重溫了平時所學(xué)的知識點(diǎn),還增強(qiáng)了自己的動手能力。對于一個程序,在我看來,最重要的莫過于思路,同一個程序可以由多個思路來實(shí)現(xiàn),然而我們所要做的就是通過多次的編碼調(diào)試找出最簡,最優(yōu)思路。好的思路能無疑能使一個程序員實(shí)現(xiàn)事半功倍的效果。接著就要根據(jù)自己的思路為該程序設(shè)計(jì)算法,只有輪廓形成后才能開始編碼,編寫的過程中還應(yīng)搜索記憶中的語言基礎(chǔ),找到最簡便的表達(dá)方式,增加程序的可讀性,代碼編寫完成后,經(jīng)過多次編譯后無錯誤了也不代表程序就完成了,運(yùn)行程序時還應(yīng)通過多組不同情況,看能否實(shí)現(xiàn)。通過這次課程設(shè)計(jì)使我懂得了理論及實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識及實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計(jì)的過程中發(fā)現(xiàn)了
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國六味香連膠囊市場發(fā)展?fàn)顩r與投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2025年浙教新版選擇性必修3物理上冊階段測試試卷
- 二零二五年度生物制藥研發(fā)與生產(chǎn)合同書封面樣本3篇
- 2025年人教五四新版必修3物理上冊階段測試試卷含答案
- 2025年人教版五年級英語上冊階段測試試卷含答案
- 2025年度蔬菜種植基地與科研機(jī)構(gòu)合作開發(fā)合同范本3篇
- 二零二五年度高效辦公空間租賃合同專業(yè)服務(wù)2篇
- 2024年邯鄲幼兒師范高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 2024版城市智能停車系統(tǒng)建設(shè)合同
- 2024年運(yùn)城護(hù)理職業(yè)學(xué)院高職單招職業(yè)技能測驗(yàn)歷年參考題庫(頻考版)含答案解析
- 統(tǒng)編版六年級語文上冊專項(xiàng) 專題12說明文閱讀-原卷版+解析
- 勞務(wù)派遣招標(biāo)文件
- 軟件無線電原理與應(yīng)用第3版 課件 【ch03】軟件無線電體系結(jié)構(gòu)
- 石油化工裝置火炬系統(tǒng)堵塞風(fēng)險分析
- 2023年山東省泰安市中考英語試卷(含解析)
- 防突抽采隊(duì)202年度工作總結(jié)
- 四川省石棉縣石石石材有限責(zé)任公司石棉縣大巖窩花崗石礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 2023年ERCP圍手術(shù)期用藥專家共識意見
- 2019年內(nèi)蒙古鄂爾多斯市中考數(shù)學(xué)試題(原卷+解析)
- 塑鋼門窗及鋁合金門窗制作和安裝合同
- 人衛(wèi)兒科學(xué)生兒缺氧缺血性腦病
評論
0/150
提交評論