




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 計算機學院信息管理與信息系統(tǒng)專業(yè)程序設計綜合課程設計報告 (2010/2011學年 第一學期)學生姓名: 章士倩學生班級: 信管092001班學生學號: 200920020132指導教師: 趙紅燕 2011年1月 8日目錄第一章 課程設計的目的和要求11.1課程設計的目的11.2課程設計的目標11.3課程設計要求2第二章 課程設計任務內(nèi)容32.1背景32.2任務內(nèi)容3第三章 詳細設計說明43.1 模塊描述43.2 總體結構流程圖53.3 主函數(shù)的流程圖63.4 管理員登錄函數(shù)的流程圖73.5保安登錄函數(shù)的流程圖8第四章 軟件使用說明及運行結果94.1使用說明94.2 運行結果9主函數(shù)調(diào)試圖9
2、管理員登錄調(diào)試圖10保安登錄調(diào)試圖12第五章 課程設計心得與體會13附錄1:參考文獻15附錄2:程序清單16保安休息時間排班系統(tǒng)第一章 課程設計的目的和要求1.1課程設計的目的C+課程設計的主要目的是根據(jù)課堂講授內(nèi)容,學生做相應的自主練習,在進行課程設計的過程中,消化自己所學的內(nèi)容,使得課堂教學與實驗實踐之間關系更為密切,同時也培養(yǎng)綜合運用C+程序設計課程所學到的知識和編寫C+程序解決實際問題的能力,以及良好的程序設計習慣。通過課程設計的訓練,學生了解程序設計的基本開發(fā)過程,掌握編寫、調(diào)試和測試C+語言程序的基本技巧,充分理解結構化程序設計的基本方法,熟悉運用結構化程序設計的方法。1.2課程設
3、計的目標本課程設計的目標:1. 鞏固和加深學生對C+語言課程的基本知識的理解和掌握;2. 掌握C+語言編程和程序調(diào)試的基本技能;3. 掌握利用C+語言進行軟件設計的方法;4. 提高書寫程序設計說明文檔的能力;5. 提高運用C+語言解決實際問題的能力。1.3課程設計要求基本要求:1. 分析課程設計題目的要求;2. 對系統(tǒng)功能模塊進行分析,寫出詳細設計說明文檔;3. 編寫程序代碼,調(diào)試程序使其能正確運行;4. 設計完成的軟件要便于操作和使用;5. 設計完成后提交課程設計報告。第二章 課程設計任務內(nèi)容2.1背景如今是信息高速發(fā)展的時代,我們已經(jīng)進入了信息社會。作為計算機專業(yè)的學生,我們更應該了解信息
4、的重要性,而電腦是當今社會的重要交流工具。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。作為電腦操作者,動手能力無疑是最重要的環(huán)節(jié),課程設計就是鍛煉動手能力的不錯平臺。作為高科技人才,我們必須會運用C+,編寫應用程序,是一個計算機學院學生必備的技能。無論是以后的工作,還是現(xiàn)在的學習,都要求我們能夠做好課程設計。保安人員休息時間安排系統(tǒng)是一個簡單的軟件,通過它,可以讓我們掌握一個完整系統(tǒng)的設計和實現(xiàn)的方法,鞏固所學的程序設計的知識。2.2任務內(nèi)容下面是本程序的具體功能要求:1、 管理員和保安通過輸入不同的信息進入不同的界面;2、 保安通過輸入信息查詢所有的休息時間安排情況
5、;3、 管理員查詢所有保安的休息時間安排情況;4、 管理員輸入每個保安自己認為適合的休息日,并進行判斷。第三章 詳細設計說明該程序使得管理員能夠輸入每個保安選擇的休息日期,然后經(jīng)過程序運算分析,輸出所有的排班情況。同時程序也可以讓保安人員只能看見排班情況而不能進行修改相關信息。3.1 模塊描述1. 主函數(shù)主函數(shù)為無返回值空類型函數(shù),主要功能是實現(xiàn)登錄界面。2. 管理員登錄函數(shù) 此函數(shù)為無返回值空類型函數(shù),主要功能是通過調(diào)用文件生成函數(shù)、轉(zhuǎn)換函數(shù)和判斷七個變量是否兩兩相等的函數(shù)輸入保安自己認為合適的休息時間,并輸出所有的休息時間排班情況。其參數(shù)為文件名char file_name30。3. 文件
6、生成函數(shù) 此函數(shù)為無返回值空類型函數(shù),主要功能是通過輸入數(shù)據(jù)存儲的文件名打開文件。其參數(shù)有文件名char file_name。4. 轉(zhuǎn)換函數(shù) 此函數(shù)為有返回值的函數(shù),主要功能是將字符轉(zhuǎn)換為整型,并返回整型值。其參數(shù)為char cha。5. 判斷七個變量是否兩兩相等的函數(shù) 此函數(shù)為有返回值的函數(shù),主要功能是判斷變量是否兩兩相 等。其參數(shù)為七個整型形參。6. 保安登錄函數(shù) 此函數(shù)為無返回值空類型函數(shù),主要功能是輸出所有的保安休息時間排班情況。開始3.2 總體結構流程圖登錄界面保安人員管理人員所有保安休息時間安排信息輸入保安休息信息所有保安休息時間安排情況圖3-1 總體結構流程圖 管理員登錄后與保安
7、人員登錄后的界面不同。管理員可以修改相關的保安信息,而保安人員卻不能,他只能查看自己的休息時間信息。3.3 主函數(shù)的流程圖 根據(jù)界面提示,輸入字符k,進入所需要的界面,其流程圖如下所示:開始輸出歡迎使用排班系統(tǒng)輸入字符k顯示:管理員:P保安:S退出:et調(diào)用保安登錄函數(shù)退出調(diào)用管理員登錄函數(shù)其他PSe這是一個員工休息時間安排的程序請查看所有排班情況圖3-2 主函數(shù)流程圖3.4 管理員登錄函數(shù)的流程圖 根據(jù)要求輸入數(shù)據(jù)存儲的文件名打開文件,然后輸入保安人員自己認為合適的休息日,經(jīng)判斷后輸入完成后輸出所有的休息時間排班情況。函數(shù)流程圖如下所示:開始調(diào)用文件生成函數(shù)輸入所有保安認為合適的休息日調(diào)用判
8、斷七個變量是否兩兩相等的函數(shù)YN不合理合理輸出所有方案結束圖3-3管理員登錄函數(shù)流程圖3.5保安登錄函數(shù)的流程圖 保安登錄函數(shù)是一個輸出所有的保安休息時間排班情況的函數(shù),流程圖如下所示:開始調(diào)用bool IsChecked(int p)經(jīng)循環(huán)判斷輸入的休息日是否合理不合理合理輸出結果為空輸出所有的排班情況結束圖3-4 保安登錄函數(shù)流程圖第四章 軟件使用說明及運行結果4.1使用說明使用該系統(tǒng),打開之后首先進入初始界面,“歡迎使用排班查詢與管理系統(tǒng)”以及下面的選項,按選擇提示進行選擇,比如管理員,則選擇p,并在“請選擇您所需要的服務”之后輸入“p”,輸入之后提示輸入數(shù)據(jù)存儲的文件名,按提示進行輸入
9、,經(jīng)過系統(tǒng)加載成功后,按提示輸入所有保安自己認為合適的休息日,程序經(jīng)分析后輸出所有的休息時間安排情況。保安,則是選擇s,輸入后按下”Enter”鍵之后屏幕上會直接顯示所有排班情況。若選擇e,則會退出。4.2 運行結果主函數(shù)調(diào)試圖執(zhí)行void main()/*主函數(shù)*/,其調(diào)試圖如下所示:圖4-1 主函數(shù)調(diào)試圖4.2.2管理員登錄調(diào)試圖 執(zhí)行void manager()/*管理員登錄函數(shù)*/ 通過輸入p進入管理員登錄界面,輸入數(shù)據(jù)存儲的文件名,經(jīng)加載成功后輸入保安自己認為合適的休息日,最終得到所有可能的排班情況。其調(diào)試圖如下所示:圖4-2-1管理員登錄函數(shù)調(diào)試圖1圖4-2-2管理員登錄函數(shù)調(diào)試圖
10、2圖4-2-3管理員登錄函數(shù)調(diào)試圖34.2.3保安登錄調(diào)試圖執(zhí)行void security()/*保安登錄函數(shù)*/,其函數(shù)調(diào)試圖如下所示:圖4-3 保安登錄調(diào)試圖第五章 課程設計心得與體會這次課程設計歷時三個多星期。剛開始時,思緒全無,舉步維艱,對于理論知識學習不夠扎實的我深感“書到用時方恨少”,再加上因為已經(jīng)過去一個學期了,期間又沒有怎么看書,考完試就放下了,許多知識都已經(jīng)忘記了。于是我重拾教材與實驗手冊,對知識系統(tǒng)而全面進行了梳理,遇到難處先是自己思考再向同學老師請教,終于基本掌握了基本理論知識。最終我完成了這個C+語言程序的設計,認真完成了課程設計報告。我做的是保安休息時間安排系統(tǒng),雖然
11、是很簡單的一個小程序,但對我一個C+學得不怎么好的人來說卻是一個很大的困難,更何況這是第一次做課程設計。所以,在得知自己要做這個課程設計時,真不知道應該如何開始。這時才知道上課時老師們不厭其煩的教導是多么的寶貴,這時才后悔上課時自己沒有認真聽課。可是現(xiàn)在一切都晚了,現(xiàn)在要做的是拿出書本重新復習一下。經(jīng)過幾天的努力,大體上把課本上的知識點看了一遍,然后在網(wǎng)上找了一下相關資料,體會別人是如何編程?;仡欉@次課程設計,我收獲了很多。首先,在這過程中,收獲知識,提高能力的同時,我也學到了很多人生的哲理,懂得怎么樣去制定計劃,如何去實現(xiàn)這個計劃;其次,在設計過程中,我認識到學好計算機要重視實踐操作,不僅僅
12、是學習C+語言,還是其它的語言,以及其它的計算機方面的知識都要重在實踐;最后,我還大致了解了軟件開發(fā)的大體過程及各個步驟,這對將來的學習和工作是很有幫助的。對于計算機專業(yè)的大學生來說,積累實戰(zhàn)經(jīng)驗是一項極其重要的內(nèi)容,很可能成為將來就業(yè)的敲門磚。而綜合課程設計就是積累實戰(zhàn)經(jīng)驗的一個過程,雖然程序的規(guī)模不是很大,但是能夠讓我們盡早地認識軟件開發(fā)的重要性和必要性,為將來的就業(yè)打下堅實的基礎。 附錄1:參考文獻1、譚浩強編著.C+程序設計.北京:清華大學出版社,20042、Decoder編著.C+程序設計.北京:中國鐵道出版社,20023、夏云慶編著.Visual C+ 6.0數(shù)據(jù)庫高級編程.北京:
13、希望電子出版社 20024、伍俊良編著:Visual C+6.0課程設計與系統(tǒng)開發(fā)案例.北京:清華大學出版社,2002.115、(美)戴特爾(Deitel,H.M.)等編著,張引等譯:C+大學基礎教程(第五版),北京:電子工業(yè)出版社,2006.6附錄2:程序清單以下是保安休息時間安排系統(tǒng)的源代碼:#include <iostream>#include <string>#include <fstream>using namespace std;void manager();/*管理員登錄函數(shù)聲明*/void security(); /*保安登錄函數(shù)聲明*/vo
14、id file_edit(ofstream& fout,char file_name); /文件生成函數(shù)聲明int compare_values(int a,int b,int c,int d,int e,int f,int g);/判斷七個變量是否兩兩相等的函數(shù)聲明int exchange(char cha);/字符轉(zhuǎn)換為整型的函數(shù)聲明void load();void main()/*主函數(shù)*/char k;cout<<" * "<<endl;cout<<" 歡迎使用排班查詢與管理系統(tǒng)! "<<e
15、ndl;cout<<" 制作人:章士倩 時間:2010-12-28 "<<endl;cout <<" * "<<endl<<endl;cout <<" 請選擇您所需要的服務 "<<endl; cout<<" p:管理員n s:保安n e:退出n"<<endl;cin>>k;switch(k)case 'p':cout<<"這是一個員工休息時間安排的程序。n&q
16、uot;<<endl;manager ();break;case 's':cout<<"請查看所有排班情況:n"<<endl;security ();break;case 'e':exit(0);default:cout<<"輸入信息錯誤!n請輸入字母p或s或e.n"<<endl;break;void manager()/*管理員登錄函數(shù)*/char file_name30; ofstream fout; /int choose;file_edit(fout,fi
17、le_name); /調(diào)用文件生成函數(shù) /*cout << "1:選擇自己的休息日" << endl; cout << "2:顯示排班的結果"<< endl; cout << "請選擇:" cin >> choose; switch(choose) case 1:*/load();system("cls");system("date /t");system("time /t");system("
18、color fc");loop:int a77=0,i,j; string select7;string name="星期日","星期一","星期二","星期三","星期四","星期五","星期六"for(j=0;j<7;j+) / 進行數(shù)據(jù)輸入switch(j)case 0:cout<<"趙"break;case 1:cout<<"錢"break;case 2:cout<
19、;<"孫"break;case 3:cout<<"李"break;case 4:cout<<"周"break;case 5:cout<<"吳"break;case 6:cout<<"陳"break; cout<<"選擇的休息日(0為周日,16為周一到周六):"cin>>selectj;for(i=0;i<7;i+) /對特定元素賦值為1for(j=0;j<selecti.length()
20、;j+)aiexchange(selectij)=1;/調(diào)用轉(zhuǎn)換函數(shù),將字符型數(shù)據(jù)轉(zhuǎn)化為整型int b77;int m7=0,0,0,0,0,0,0;for(i=0;i<7;i+) /將輸入數(shù)據(jù)傳給二維數(shù)組b77for(j=0;j<7;j+)if(aij=1)bimi=j;mi=mi+1; /用mi記錄bi中有用數(shù)據(jù)個數(shù)cout<<"ntt"<<"經(jīng)分析結果為:n"int x1,x2,x3,x4,x5,x6,x7;int count=0; /定義計數(shù)變量for(x1=0;x1<m0;x1+) /輸出每條記錄for
21、(x2=0;x2<m1;x2+)for(x3=0;x3<m2;x3+)for(x4=0;x4<m3;x4+)for(x5=0;x5<m4;x5+)for(x6=0;x6<m5;x6+)for(x7=0;x7<m6;x7+)if(!(compare_values(b0x1,b1x2,b2x3,b3x4,b4x5,b5x6,b6x7)/調(diào)用判斷七個變量是否兩兩相等的函數(shù)count+;cout<<"Solution:"<<count<<":n" /輸出結果到屏幕<<"
22、趙"<<"t"<<"錢"<<"t"<<"孫"<<"t"<<"李"<<"t"<<"周"<<"t"<<"吳"<<"t"<<"陳"<<endl;cout << "="
23、<< endl; cout<<nameb0x1<<"t"<<nameb1x2<<"t"<<nameb2x3<<"t"<<nameb3x4<<"t"<<nameb4x5<<"t"<<nameb5x6<<"t"<<nameb6x7<<endl<<endl;fout<<"
24、Solution:"<<count<<":n" /輸出結果到文件中保存<<"趙"<<"t"<<"錢"<<"t"<<"孫"<<"t"<<"李"<<"t"<<"周"<<"t"<<"吳"<<
25、;"t"<<"陳"<<endl; fout<<nameb0x1<<"t"<<nameb1x2<<"t"<<nameb2x3<<"t"<<nameb3x4<<"t"<<nameb4x5<<"t"<<nameb5x6<<"t"<<nameb6x7<<e
26、ndl<<endl;if(count=0) /判斷是否重新開始cout<<"此方案行不通,請重新輸入。"<<endl;goto loop;elsecout<<"經(jīng)分析總共有"<<count<<"種方案"<<endl;int exchange(char cha)/字符轉(zhuǎn)換為整型的函數(shù)定義char q2;q0=cha;return atoi(q); /字符轉(zhuǎn)換為整型int compare_values(int a,int b,int c,int d,int
27、 e,int f,int g)/判斷七個變量是否兩兩相等的函數(shù)定義if(a=b|a=c|a=d|a=e|a=f|a=g|b=c|b=d|b=e|b=f|b=g|c=d|c=e|c=f|c=g|d=e|d=f|d=g|e=f|e=g|f=g) /判斷變量是否兩兩相等return 1;elsereturn 0;void file_edit(ofstream& fout,char file_name)/文件生成函數(shù)定義cout<<"請輸入數(shù)據(jù)存儲的文件名:"cin>>file_name;fout.open(file_name,ios:app);if
28、(fout.fail() /判斷是否能打開文件cout<<"打開文件失敗。"<<endl;exit(1);fout<<endl<<endl; void load() system("cls");system("date /t");system("time /t");system("color 1f");cout << "nnn"cout << "nnnntttt 系統(tǒng)加載中."cout
29、 << "nnnnt " ;for (int i0=0;i0<10000000;i0+)if(i0%1000000=0)for(int j0=0;j0<10000000;j0+)if(j0%10000000=0)cout << " "system("color 1f");cout << "系統(tǒng)" ;for (int i1=0;i1<10000000;i1+)if(i1%1000000=0)for(int j1=0;j1<10000000;j1+)if(j1
30、%10000000=0)cout << ">"system("color 2f");cout << "加載"for (int i2=0;i2<10000000;i2+)if(i2%1000000=0)for(int j2=0;j2<10000000;j2+)if(j2%10000000=0)cout << ">"system("color 3f");cout << "成功." for (int i3=0;
31、i3<10000000;i3+)if(i3%1000000=0)for(int j3=0;j3<10000000;j3+)if(j3%8000000=0)cout << " "bool IsChecked(int p) int i, j; for (i=0; i<7; +i) for (j=0; j<7&&pj!=i; +j); /*從0到6循環(huán),如果數(shù)組中缺少0-6的任何一位數(shù)字,則返回0,如果0-6億權,則返回。*/ if (j = 7) return false; return true; /*這個函數(shù)的作用是確保0-6這7個數(shù)字均包含在該書組中*/ void security()/*保安登錄函數(shù)*/ char *WEEK7 = "日", "一", "二", "三&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- AI時代數(shù)據(jù)價值最大化:從底層架構到大模型應用落地實踐
- 園區(qū)地面車輛管理辦法
- 物業(yè)公司員工績效考核與獎懲制度
- 鋼結構廠房施工組織設計優(yōu)化與鋼結構部分研究
- 園區(qū)弱電維護管理辦法
- 城市更新與拆遷工作的策略與實施
- 智慧停車試點管理辦法
- 沈陽快遞管理辦法細則
- 凍傷事故應急處置措施
- 安全生產(chǎn)責任制的認識和理解
- 【中考真題】2025年北京市中考數(shù)學真題(含解析)
- 浙江省臺州市2024-2025學年高一下學期6月期末英語試題
- 光伏發(fā)電項目施工方案(安裝)光伏施工方案
- 行為安全觀察與溝通
- 疲勞風險培訓課件
- GB/T 45707-2025皮革鉻鞣鞋面用坯革規(guī)范
- 2025年中小學教師職稱評審考試試卷及答案
- 中職學校教材管理制度
- 海綿城市建設中的BIM技術應用實例
- 員工定崗定員管理制度
- 高校教師資格證考試《高等教育心理學》真題及解析(2025年)
評論
0/150
提交評論