排班系統(tǒng)C語言課程設(shè)計(jì)_第1頁
排班系統(tǒng)C語言課程設(shè)計(jì)_第2頁
排班系統(tǒng)C語言課程設(shè)計(jì)_第3頁
排班系統(tǒng)C語言課程設(shè)計(jì)_第4頁
排班系統(tǒng)C語言課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C程序課程設(shè)計(jì)報(bào)告201 201 學(xué)年第 學(xué)期課程名稱 C語言課程設(shè)計(jì) 設(shè)計(jì)題目 排班系統(tǒng) 學(xué)生姓名 學(xué) 號 專業(yè)班級 指導(dǎo)教師 201 年 月 日目錄一、設(shè)計(jì)任務(wù)書31、題目與要求32、本程序涉及的知識(shí)點(diǎn)3二、程序流程圖4三、程序代碼設(shè)計(jì)5四、程序調(diào)試過程6五、程序運(yùn)行過程6六、程序有待改進(jìn)的地方9七、程序設(shè)計(jì)總結(jié)9八、致謝9參考文獻(xiàn)9附錄 10一、設(shè)計(jì)任務(wù)書1、題目與要求趙:星期二、星期四本程序?qū)崿F(xiàn)的功能是對7名保安人員進(jìn)行排班,要求每個(gè)人在一星期中可以休息一天。每名保安可以自行選擇自己想要的休息日,而對于休息日的選擇既可以是某一天,也可以是某幾天中的其中一天。當(dāng)7名保安依次輸入自己想要的

2、休息日后,系統(tǒng)將會(huì)給出可能的值班安排。若系統(tǒng)給出的值班安排是0種,證明系統(tǒng)對7名保安的選擇無法作出排班,需要重新輸入。具體題目:學(xué)校實(shí)驗(yàn)樓有7名保安人員:錢、趙、孫、李、周、吳、陳。由于工作需要進(jìn)行輪休制度,一星期中每人休息一天。預(yù)先讓每一個(gè)人選擇自己認(rèn)為合適的休息日。請編制程序,打印輪休的所有可能方案。當(dāng)然使每個(gè)人都滿意,例如每人選擇的休息日如下:錢:星期一、星期六孫:星期三、星期日李:星期五周:星期一、星期四、星期六吳:星期二、星期五陳:星期三、星期六、星期日2、本程序涉及的知識(shí)點(diǎn)輸入函數(shù)和輸出函數(shù)、變量的定義、for語句和switch-case語句的使用等二、程序流程圖開始輸出顯示歡迎使

3、用排班系統(tǒng)循環(huán)錄入每個(gè)保安選擇的休息日判斷輸入的休息日是否合理輸出滿足條件的值班安排結(jié)束三、程序代碼設(shè)計(jì)輸入函數(shù)和輸出函數(shù)、變量的定義、for語句和switch-case語句、ss字符串的使用等。輸入函數(shù):1)函數(shù)原形:自定義swap(int *a, int *b)函數(shù) 2) 功 能:swap()函數(shù)利用取地址符號&完成對程序中某個(gè)變量的賦值,進(jìn)而程序中判斷交換的功能。3)函數(shù)原形:get char()4)功 能:向計(jì)算機(jī)輸入一個(gè)字符。5)變量及類型: int a,b,m,k: 整型形參變量,接收main()傳過來的隨機(jī)數(shù)字。 int i:循環(huán)控制變量,其中i 具有自加功能。 int

4、j: 整型形參變量,其中j 具有自加功能。6)說 明:輸入字符后需要輸入-1,待系統(tǒng)做出判斷后往下執(zhí)行。選擇判斷結(jié)構(gòu) switch-case語句:從表達(dá)式值等于某個(gè)case語句后的值開始,它下方的所有語句都會(huì)一直運(yùn)行,直到遇到一個(gè)break為止。隨后,switch語句將結(jié)束,程序從switch結(jié)束大括號之后的第一個(gè)語句繼續(xù)執(zhí)行,并忽略其他case;假如任何一個(gè)case語句的值都不等于表達(dá)式的值,就運(yùn)行可選標(biāo)簽default之下的語句。 假如表達(dá)式的值和任何一個(gè)case標(biāo)簽都不匹配,同時(shí)沒有發(fā)現(xiàn)一個(gè)default標(biāo)簽,程序會(huì)跳過整個(gè)switch語句,從它的結(jié)束大括號之后的第一個(gè)語句繼續(xù)執(zhí)行。fo

5、r語句:for(語句1 ; 語句2 ; 語句3 ) 循環(huán)體 執(zhí)行時(shí),先執(zhí)行一次語句1(注意只執(zhí)行一次) 之后判斷語句2是否成立 1).如果成立執(zhí)行循環(huán)體,之后執(zhí)行語句3。再返回語句2判斷條件是否成立?成立執(zhí)行循環(huán)體后再執(zhí)行語句3,如此直到循環(huán)體不成立則跳出循環(huán) 2)如果語句2不成立,則不執(zhí)行循環(huán)體也不執(zhí)行語句3直接跳出循環(huán)。輸出函數(shù):1)函數(shù)原形:printf(“=”,*)2)功 能:輸出相關(guān)提示信息及最后結(jié)果。3)相關(guān)變量: int n:輸出正確結(jié)果。 int i,j:輸出計(jì)算正確,計(jì)算排班情況。4)說 明:輸出時(shí)要把要輸出的信息用雙引號括起來,輸出數(shù)字時(shí)要在其代表變量前加逗號。四、程序調(diào)試

6、過程由于對C語言知識(shí)儲(chǔ)備有限,且時(shí)間精力有限,我們在設(shè)計(jì)程序程序的過程中遇到了不少問題。首先遇到的問題是:使用何種數(shù)組以及如何使輸出變得簡潔易懂,易操作。在思考討論之后,我們決定盡量“使輸入數(shù)字化,輸出結(jié)果文字化”的做法,也就是再輸入星期幾的時(shí)候直接用數(shù)字代替,在輸出的時(shí)候,為了更加直觀,就需要把原先的數(shù)字輸出為星期幾這種文字的形式;在單個(gè)對象輸出結(jié)束之后,我們選擇了 -1這個(gè)不會(huì)與其他日期混淆的數(shù)字,以此表示可以對下一個(gè)對象進(jìn)行輸出。這就需要重新定義一個(gè)二維數(shù)組,數(shù)組中存放“星期一,星期二”等文字形式的定義,這樣我們可以通過前面輸入的數(shù)字來引用對應(yīng)的文字。解決了最基本的問題之后,我們遇到的問

7、題是:程序使用過程還是不夠直觀,不能讓使用者直接觀察到每個(gè)保安可能選擇的休息日,在無法自行解決的情況下我們向老師求助。在解釋程序、說明目的之后,我們重新進(jìn)行了一次討論,最后老師建議我們重新定義一個(gè)新的數(shù)組。為此我們找了很多相關(guān)資料,不斷地進(jìn)行調(diào)試,修改,卻始終無法完全達(dá)到我們的預(yù)想;在老師的指導(dǎo)下,再次經(jīng)歷了數(shù)組選擇以及一系列的調(diào)試與修改之后,我們重新定義了 ss字符串,采用了 char ss數(shù)組。在選擇了char ss數(shù)組之后遇到的問題就是輸出語句繁瑣,每次都會(huì)顯示“請輸入下列人選擇休息的可能時(shí)間”,后來我們對“printf("請輸入下列人選選擇休息的可能時(shí)間:n");”

8、這個(gè)語句進(jìn)行修改與位置的調(diào)整,使得其變得簡潔。調(diào)試的過程比較繁瑣,除了跟版本有一定的關(guān)系外,有時(shí)候就因?yàn)橐粋€(gè)小錯(cuò)誤,程序調(diào)試了好久也出不來想要的結(jié)果,最后通過我們組員的一起討論、利用課本、網(wǎng)上的資源和老師的幫助,這些問題都被我們逐一解決了。五、程序運(yùn)行過程1、輸出多種結(jié)果2、輸出0種結(jié)果(說明輸入有誤,需要重新輸入)3、只輸出一種結(jié)果(如題目要求)六、程序有待改進(jìn)的地方本程序是根據(jù)保安可能選擇的休息日,給出滿足條件的值班安排這一功能,系統(tǒng)功能相對單一,不夠人性化。在對C語言有更深的了解后,可以考慮對程序進(jìn)行修改,增加系統(tǒng)功能,例如:1、增設(shè)特殊情況顯示以及分析,根據(jù)況進(jìn)行人性化排班,例如:看病

9、>辦證>旅游2、在系統(tǒng)無法排班時(shí),判斷周幾沒有值班人員;3、當(dāng)有某個(gè)保安請假一周,也就是剩下的6名保安有一個(gè)人一周要值兩天時(shí)如何排班;4、增設(shè)投票功能:當(dāng)有多種值班安排時(shí),通過投票隨機(jī)決定使用哪一種值班安排;5、可增設(shè)當(dāng)天值班保安的工號、電話、地址等信息的顯示;七、程序設(shè)計(jì)總結(jié)在完成本次課程設(shè)計(jì)的過程中,一方面讓我們在實(shí)際運(yùn)用中更加深刻地理解了課堂學(xué)到的知識(shí);另一方面,通過查詢資料、咨詢老師,培養(yǎng)了我們在有限時(shí)間內(nèi)搜集資料以及寫論文的能力;與此同時(shí),在編寫程序時(shí),也讓我們體會(huì)到想要學(xué)好一個(gè)程序,不僅要上課認(rèn)真聽老師講,還要在課外多閱讀一些相關(guān)的資料和書籍。同時(shí),相關(guān)的資料和老師的指

10、導(dǎo)對我們完成程序的編寫提供很大的幫助。除此之外,我們還認(rèn)識(shí)到編寫程序時(shí)必須要耐心仔細(xì),真可謂,細(xì)節(jié)決定成敗;一個(gè)標(biāo)點(diǎn)和字符或是中英文等輸入細(xì)節(jié)都要注意,否則就可能導(dǎo)致整個(gè)程序運(yùn)行錯(cuò)誤,這極大地培養(yǎng)了我們務(wù)實(shí)求真,發(fā)現(xiàn)問題的科學(xué)素養(yǎng)。此外,思考、討論、查找資料以及調(diào)試、修改的過程是非常繁瑣的,但是我們要盡量做到盡善盡美,只有這樣,才能設(shè)計(jì)出簡潔的、比較人性化的程序。八、致謝本次課程設(shè)計(jì)的完成,除了感謝百度文庫提供的資料以及網(wǎng)友的不吝賜教之外,還要特別感謝C語言課程李老師的耐心指導(dǎo),讓我們在繁瑣的調(diào)試中尋找到樂趣以及不斷改進(jìn)的動(dòng)力。參考文獻(xiàn)1譚浩強(qiáng),C程序設(shè)計(jì)(第四版),北京:清華大學(xué)出版社,20

11、10.62 豆丁網(wǎng)-3- C語言論壇 - 編程論壇4-3億文庫-5附錄源程序:#include <stdio.h>int n = 0;int rest77;void swap(int *a, int *b) int m; m = *a; *a = *b; *b = m; void perm(int list, int k, int m) int i; int j; if(k > m) for (i=0; i<7; i+) for (j=0; j<7; j+) if (restij = -1) return; if (restij != listi) continu

12、e; if (restij = listi) break; n+; printf("Solution: %dn", n); printf("趙 錢 孫 李 周 吳 陳n"); printf("=n"); for(i = 0; i <= m; i+) switch (listi) case 1: printf("星期一 "); break; case 2: printf("星期二 "); break; case 3: printf("星期三 "); break; case

13、 4: printf("星期四 "); break; case 5: printf("星期五 "); break; case 6: printf("星期六 "); break; case 7: printf("星期日 "); break; default: break; printf("nnn"); else for(i = k; i <= m; i+) swap(&listk, &listi); perm(list, k + 1, m); swap(&listk, &listi); int main() int list = 1, 2, 3, 4, 5, 6, 7; int i, j; char ss720="趙","錢","孫","李","周","吳","陳" printf("=歡迎使用排班系統(tǒng)=n");printf("請輸入下列人選選擇休息的可能時(shí)間:n"); for(i = 0; i < 7; i+) pr

溫馨提示

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

評論

0/150

提交評論