c++課程設計保安值班安排系統(tǒng)_第1頁
c++課程設計保安值班安排系統(tǒng)_第2頁
c++課程設計保安值班安排系統(tǒng)_第3頁
c++課程設計保安值班安排系統(tǒng)_第4頁
c++課程設計保安值班安排系統(tǒng)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄一 課程設計目的 4二 課程設計任務和內(nèi)容 4三 系統(tǒng)設計方案 5 3.1系統(tǒng)詳細描述53.2功能模塊劃分6四 系統(tǒng)實現(xiàn)與測試64.1 主菜單模塊實現(xiàn)64.1.1流程圖64.1.2代碼64.1.3模塊測試94.2 排班模塊實現(xiàn)104.2.1流程圖104.2.2代碼104.2.3模塊測試184.3 輸入資料模塊實現(xiàn)4.3.1流程圖204.3.2代碼214.3.3模塊測試244.4 查詢資料模塊實現(xiàn)4.4.1流程圖254.4.2代碼274.4.3模塊測試274.5 刪除資料模塊實現(xiàn)4.5.1流程圖284.5.2代碼294.5.3模塊測試314.6 修改資料模塊實現(xiàn)4.7 查詢工齡模塊實現(xiàn)4.

2、7.1流程圖324 .7.2代碼324.7.3模塊測試344.8 查詢休息時間模塊實現(xiàn)4.8.1流程圖344.8.2代碼344.8.3模塊測試354.9 輸出資料模塊實現(xiàn)4.9.1代碼364.9.2模塊測試384.10 修改密碼模塊實現(xiàn)4.10.1流程圖394.10.2代碼404.10.3模塊測試414.11 退出模塊實現(xiàn)4.11.1代碼42五 程序調試中出現(xiàn)的問題及解決方法42六 參考文獻42七 附錄42一、課程設計的目的1) 學習綜合運用c高級語言課程和其他先修課程的知識,提高分析和解決實際問題的的能力,進一步鞏固、加深和拓寬所學的知識;進一步加強結構化程序設計的思想,加深對高級語言基本語

3、言要素和控制結構的理解。2) 全面系統(tǒng)的學習面向對象程序設計的基本概念、基本語法和編程方法;獨立完成有一定工作量的程序設計任務,同時強調好的程序設計風格。3) 掌握程序設計中的常用算法和c語言的編程技巧和上機調試程序的方法。4) 在參與一系列子項目的實踐過程中,提高如何綜合運用所學知識解決實際問題的能力,以及獲得相關項目管理和團隊合作等眾多方面的具體經(jīng)驗。2、 課程設計任務和內(nèi)容學校有7名保安人員:趙、錢、孫、李、周、吳、陳。由于工作需要進行輪休制度,一星期中每人休息一天。預先讓每一個人選擇自己認為合適的休息日。請編制一程序,打印輪休的所有可能方案。當然使每個人都滿意,例如每人選擇的休息日,每

4、個人先選擇自己的休息,然后經(jīng)過分析和商量,列出有關的可能的方案。系統(tǒng)的創(chuàng)建與實施可以為生活區(qū)或者企業(yè)提供很方便的服務。便于保安人員的工作服務。管理員可以修改值班的信息以及基本的信息。同時為了使每個人都滿意,可以實施輪流的方案,這樣每個人就處于平等的優(yōu)勢,當然保安人員可以請假或者經(jīng)過他們自己的商量,暫時的替班。三 系統(tǒng)設計方案 3.1系統(tǒng)詳細描述軟件使用說明:保安值班安排系統(tǒng)主要有四個功能:第一 保安排班管理,管理員可以通過登錄界面進入信息界面查看保安人員的值班信息;第二 管理員管理,管理員可以通過信息修改表修改保安人員的值班信息:第三 保安排班查詢.,保安人員可以通過登陸界面查詢值班情況:第四

5、程 序管理權限的設置,即管理員和保安人員的登陸后進入的界面不同?;疽笥邢旅鎺c:1該程序要求應該是能夠輸入每人選擇的休息日期,由于工作需要進行輪休制度,一星期中每人只能休息一天。2先讓每一個人選擇自己認為合適的休息日,判斷是否符合條件3此程序可以打印輪休的所有可能方案。當然使每個人都滿意。4每個人先給出自己的想休息的星期天,然后,經(jīng)過商量,讓主管人員給出可能的方案。概要設計:3.2流程圖如圖3.2:開始排班輸入資料查詢刪除資料更改資料查詢工齡查詢休息時間輸出資料修改密碼退出 圖3.2輸入相應數(shù)字可進入相應菜單,刪除和更改資料需要輸入密碼。四 系統(tǒng)實現(xiàn)與測試4.1 主菜單 41.1流程圖如圖

6、,4.1.1開始輸出可選擇項判斷是否退出結束退出輸入選擇的項目進行選擇的操作 圖.2代碼int main()int m;string p;int t=1;while(t!=0)system(cls);cout*歡迎進入排班系統(tǒng)*endl;cout# * #endl;cout# * #endl;cout# * #endl;cout# *快樂排班* #endl;cout# * #endl;cout# * #endl;cout# * #endl;cout*歡迎進入排班系統(tǒng)*endl;cout排班請輸入1;輸入資料請輸入2;查詢請輸入3;刪除資料endl請輸入4;更改資料請輸入5;查詢

7、工齡請輸入6;查詢休息endl時間請輸入7;輸出資料請輸入8;修改密碼請輸入9;退出endl請輸入0m;if(m=1)case1();else if(m=2)if(case0()=0)case2();else if(m=3)case3();else if(m=4)if(case0()=0)case4();else if(m=5)if(case0()=0)case2();else if(m=6)case6();else if(m=7)case7();else if(m=8)case8();else if(m=9)case9();else if(m=0)t=0;elsecout無該選項請重新選擇!

8、endl;cout輸入任意數(shù)值返回主菜單。p;return 0;4.1.3模塊測試測試如下: 圖 模塊一:排班模塊開始4.2.1流程圖輸出主頁面輸入1輸出輸入選擇輸入選擇輸出可能方案if(保存)輸入選擇的方案保存 圖.2代碼void case1(void)int m,i;string o;int z7;int j,k,h,n=0,flag=1;int a,b,c,d,e,f,g;int achoice,bchoice,cchoice,dchoice,echoice,fchoice,gchoice;int q77;int a7;cout*歡迎進入排班系統(tǒng)*endl

9、;cout# 特別注意! #endl;cout# 請各位工作人員輸入自己想要輪休的日期 #endl;cout# 請先選擇你要選擇的次數(shù) #endl;cout# 再選擇你要輪休的日期 #endl;cout# #endl;cout# #endl;cout# #endl;cout*歡迎進入排班系統(tǒng)*endl;cout請趙輸入你想選擇的次數(shù)endl;scanf(%d,&achoice);cout請趙輸入輪休日期endl: ;for(j=0;jachoice;j+)scanf(%d,&qj0);cout請錢輸入你想選擇的次數(shù)endl;scanf(%d,&bchoice);cout請錢輸入輪休日期endl

10、: ;for(j=0;jbchoice;j+)scanf(%d,&qj1);cout請孫輸入你想選擇的次數(shù)endl;scanf(%d,&cchoice);cout請孫輸入輪休日期endl: ;for(j=0;jcchoice;j+)scanf(%d,&qj2);cout請李輸入你想選擇的次數(shù)endl;scanf(%d,&dchoice);cout請李輸入輪休日期endl: ;for(j=0;jdchoice;j+)scanf(%d,&qj3);cout請周輸入你想選擇的次數(shù)endl;scanf(%d,&echoice);cout請周輸入輪休日期endl: ;for(j=0;jechoice;j

11、+)scanf(%d,&qj4);cout請吳輸入你想選擇的次數(shù)endl;scanf(%d,&fchoice);cout請吳輸入輪休日期endl: ;for(j=0;jfchoice;j+)scanf(%d,&qj5);cout請陳輸入你想選擇的次數(shù)endl;scanf(%d,&gchoice);cout請陳輸入輪休日期endl: ;for(j=0;jgchoice;j+)scanf(%d,&qj6);for(a=0;aachoice&qa0!=0;a+) for(b=0;bbchoice&qb1!=0;b+)for(c=0;ccchoice&qc2!=0;c+)for(d=0;ddchoic

12、e&qd3!=0;d+)for(e=0;eechoice&qe4!=0;e+)for(f=0;ffchoice&qf5!=0;f+)for(g=0;ggchoice&qg6!=0;g+)a0=qa0; a1=qb1; a2=qc2; a3=qd3; a4=qe4; a5=qf5; a6=qg6;flag=1;for(k=0;k6;k+)for(h=k+1;h7;h+)if(ak=ah) flag=0; if(flag=1)cout得到以下組合:endl;cout趙: ; cout星期a0endl;cout錢: ; cout星期a1endl;cout孫: ; cout星期a2endl;cout李

13、: ; cout星期a3endl;cout周: ; cout星期a4endl;cout吳: ; cout星期a5endl;cout陳: ; cout星期a6endl;cout ;n+;if(n=0)cout對不起,你們的選擇不能實現(xiàn)排班,請重新選擇!endl;else cout保存請輸入1;cout退出請輸入0m;if(m=0)cout ;else if(m=1)cout請按次序和選擇的方案輸入休息日endl;for(i=0;izi; fstream outfile(f1.txt,ios:out); if(!outfile) coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!

14、endl;for(i=0;i=6;i+)outfilezi ;outfile.close();cout已保存!endl;cout請輸入任意值返回主菜單。o;4.2.3測試輸入1回車將分別請錢、趙、孫、李、周、吳、陳輸入選擇次數(shù)和輪休日期然后自動排班,輸入2選擇方案并保存數(shù)據(jù)。 圖 圖 圖 圖4.3 模塊二:輸入資料模塊輸入1輸出主頁面開始4.3.1流程圖如圖4.3.1 輸入密碼if(正確)輸出請輸入資料輸入資料if(保存)保存 圖.2代碼void case2(void)int n,t;string i;struct bao

15、anint num;string name;char sex;int age;string telephone;int day;int days;string addr;baoan8;fstream infile(f2.txt,ios:in);if(!infile)coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(n=1;baoann.sexbaoann.telephonebaoann.agebaoann.daybaoann.daysbaoann.addr; ;infile.close();cout請按提示輸入信息

16、按回車確認。endl;coutn;if(n=8)cout無此工號請重新輸入n;baoann.num=n;;coutbaoann.sex;coutbaoann.telephone;coutbaoann.age;coutbaoann.day;coutbaoann.days;coutbaoann.addr;cout輸入以下資料:endl;coutbaoann.num baoann.sex baoann.telephone baoann.age baoann.day baoann.days baoann.addrendl;cout確認請輸入2;重新

17、輸入請輸入1t;if(t=2)fstream outfile(f2.txt,ios:out);if(!outfile) coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(n=1;n=7;n+)outfilebaoann.num baoann.sex baoann.telephone baoann.age baoann.day baoann.days baoann.addr ;outfile.close();cout已儲存!endl;else if(t=1)cout未儲存請重新選擇!endl;cout請輸入任意值返回主菜單。i;4.3.

18、3測試輸入2將要求輸入密碼輸入正確密碼后將提示輸入各種信息男m女w,輸入后將要求輸入2保存數(shù)據(jù),輸入1將不保存。 圖 模塊三:查詢模塊4.4.1流程圖開始輸出主菜單輸入3輸入查詢工號輸出信息 圖.2代碼void case3(void)int n;string i;struct baoanint num;string name;char sex;int age;string telephone;int day;int days;string addr;baoan8;fstream infile(f2.txt,ios:in); if(!infile) coutope

19、n error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(n=1;baoann.sexbaoann.telephonebaoann.agebaoann.daybaoann.daysbaoann.addr; ;infile.close();cout信息按工號、姓名、性別、電話、年齡、休息日、工齡、地址如下:endl;for(n=1;n=7;n+)coutbaoann.num baoann.sex baoann.telephone baoann.age baoann.day baoann.days baoann.ad

20、drendl;cout請輸入任意值返回主菜單!i;4.4.3測試輸入3本模塊查詢所有信息從“f2.txt”中讀取信息并顯示信息按工號、姓名、性別、電話、年齡、休息日、工齡、地址顯示。 圖 模塊四:刪除資料模塊4.5.1流程圖如圖4.5.1開始輸出主菜單輸入4輸入密碼 否 是if(輸入0)if(正確) 否輸入刪除工號 圖.2代碼void case4(void)int n;string i;struct baoanint num;string name;char sex;int age;string telephone;int day;int days;string

21、 addr;baoan8;fstream infile(f2.txt,ios:in); if(!infile) coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(n=1;baoann.sexbaoann.telephonebaoann.agebaoann.daybaoann.daysbaoann.addr; ;infile.close();cout請輸入要刪除的工號:n;baoann.num=0;=x;baoann.sex=x;baoann.telephone=0;baoann.age=0;b

22、aoann.day=0;baoann.days=0;baoann.addr=x;fstream outfile(f2.txt,ios:out);if(!outfile)coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(n=1;n=7;n+)outfilebaoann.num baoann.sex baoann.telephone baoann.age baoann.day baoann.days baoann.addr ;outfile.close();cout已刪除!endl請輸入任意值返回主菜單i;4.5.3測試輸入4要求輸入密碼

23、輸入正確密碼后輸入要刪除信息的工號然后將刪除該工號下所有信息! 圖 模塊五:修改資料模塊和模塊2相似 圖4.64.7 模塊六:查詢工齡從“f2.txt”文件夾中提取信息輸出工齡開始4.7.1流程圖輸出主菜單輸入6從文件提取信息輸出所有工齡 圖.2代碼void case6(void)int n;string i;struct baoanint num;string name;char sex;int age;string telephone;int day;int days;string addr;baoan8;fstream infile(f2.txt,ios:

24、in); if(!infile) coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(n=1;baoann.sexbaoann.telephonebaoann.agebaoann.daybaoann.daysbaoann.addr; ;infile.close();for(n=1;n=7;n+)的工齡為:;coutbaoann.days天endl;cout請輸入任意值返回主菜單!i;4.7.3測試 圖 模塊七:查詢休息時間從“f2.txt”文件夾中提取信息輸出休息時間4.

25、8.1流程圖開始輸出主菜單輸入6從文件提取信息輸出所有工齡 圖.2代碼void case7(void)int i;string o;int a7;fstream infile(f1.txt,ios:in); if(!infile) coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(i=0;iai;coutendl錢周a0休息;趙周a1休息;孫周a2休息;李周a3休息;周周a4休息;吳周a5休息;陳周a6休息endlendlendl;infile.close();cout輸入任意值返回主菜單o;4.8.3測試 圖 模塊八:輸出模

26、塊從“f2.txt”文件夾中提取信息輸出到“f3.txt”中將輸出所有信息4.9.1代碼void case8(void)int n;string i;struct baoanint num;string name;char sex;int age;string telephone;int day;int days;string addr;baoan8;fstream infile(f2.txt,ios:in); if(!infile) coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(n=1;baoann.sexb

27、aoann.telephonebaoann.agebaoann.daybaoann.daysbaoann.addr; ;infile.close();fstream outfile(f3.txt,ios:out);if(!outfile)coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!endl;for(n=1;n=7;n+)outfile工號為:baoann.num的性別為:baoann.sex,電話為:baoann.telephone,年齡為:baoann.age,休息日為:baoann.day,工齡為:baoann.days,地址為:baoann.

28、addrendl;cout已輸出到“f3.txt”文件中endl輸入任意值返回主菜單。i;4.9.2測試 圖 圖4.10 模塊九:修改密碼4.10.1流程圖輸入10輸入原密碼判斷是否爭確輸入0返回輸入新密碼保存 圖0.2代碼void case9(void)int s;string a,b,i;s=case0();while(s=0)cout請輸入新密碼:a;cout請再次輸入密碼:b;if(a=b)cout修改成功!endl;fstream outfile(f4.txt,ios:out);if(!outfile)coutopen error!end

29、l請退出程序并檢查相應數(shù)據(jù)文件!endl;outfilea;outfile.close();s=1;cout請輸入任意值返回主菜單!i;else cout輸入錯誤請重新輸入!endl;4.10.3測試管理員才有權限修改和刪除資料需要密碼,修改密碼先要輸入正確密碼然后輸入兩次新密碼后保存新密碼。 圖1 模塊十:退出4.11.1代碼int main()int m;string p;int t=1;while(t!=0)system(cls);cout*歡迎進入排班系統(tǒng)*endl;cout# * #endl;cout# * #endl;cout# * #endl;cout# *快樂

30、排班* #endl;cout# * #endl;cout# * #endl;cout# * #endl;cout*歡迎進入排班系統(tǒng)*endl;cout排班請輸入1;輸入資料請輸入2;查詢請輸入3;刪除資料endl請輸入4;更改資料請輸入5;查詢工齡請輸入6;查詢休息endl時間請輸入7;輸出資料請輸入8;修改密碼請輸入9;退出endl請輸入0m;if(m=1)case1();else if(m=2)if(case0()=0)case2();else if(m=3)case3();else if(m=4)if(case0()=0)case4();else if(m=5)if(case0()=0)

31、case2();else if(m=6)case6();else if(m=7)case7();else if(m=8)case8();else if(m=9)case9();else if(m=0)t=0;elsecout無該選項請重新選擇!endl;cout輸入任意數(shù)值返回主菜單。p;return 0;五 程序調試中出現(xiàn)的問題及解決方法1. 曾在選擇時輸入字母會死循環(huán) 解決方法把整形定義為字符串;2. 修改密碼時忘記密碼無法退出 解決方法添加了個退出函數(shù);3. 找不到保存文件時陷入死循環(huán) 解決方法輸出找不到數(shù)據(jù)文件;六 參考文獻1譚浩強,c+程序設計,清華大學出版社, 2011。2鄭莉,c

32、+程序設計(第三版),清華大學出版社, 2005。 3錢能,c+程序設計教程,清華大學出版社, 2004。4武俊亮,visual c+課程設計與系統(tǒng)開發(fā)案例,清華出版社。5黃維通,visual c+程序設計教程,清華大學出版社, 2005。七 附錄(源代碼)#include #include #include using namespace std;int case0()int s=1;string a,b,c; c=0;fstream infile(f4.txt,ios:in);if(!infile)coutopen error!endl請退出程序并檢查相應數(shù)據(jù)文件!a;infile.clo

33、se();while(s=1)cout請輸入密碼:b;if(b=a)s=0;else if(b=c)s=2;else cout密碼錯誤請重新輸入!退出請輸入0。endl;return s;void case1(void)int m,i;string o;int z7;int j,k,h,n=0,flag=1;int a,b,c,d,e,f,g;int achoice,bchoice,cchoice,dchoice,echoice,fchoice,gchoice;int q77;int a7;cout*歡迎進入排班系統(tǒng)*endl;cout# 特別注意! #endl;cout# 請各位工作人員輸入自己想要輪休的日期 #endl;cout# 請先選擇你要選擇的次數(shù) #endl;cout# 再選擇你要輪休的日期 #endl;cout# #endl;cout# #endl;cout# #endl;cout*歡迎進入排班系統(tǒng)*endl;cout請趙輸入你想選擇的次數(shù)en

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論