參會人員管理系統(tǒng)設(shè)計說明書_第1頁
參會人員管理系統(tǒng)設(shè)計說明書_第2頁
參會人員管理系統(tǒng)設(shè)計說明書_第3頁
參會人員管理系統(tǒng)設(shè)計說明書_第4頁
參會人員管理系統(tǒng)設(shè)計說明書_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、程序設(shè)計課程設(shè)計報告課題 參會人員管理系統(tǒng)專業(yè)計算機(jī)科學(xué)與技術(shù)(軟件工程)學(xué)生姓名班級學(xué)號指導(dǎo)教師張靜林完成日期2010年6月目錄一課程設(shè)計的目的.1二 課程設(shè)計任務(wù)與要求.1三主要設(shè)計指標(biāo)及特點(diǎn).23.1 人員登錄23.2 顯示報道人員信息23.3 查詢.43.4 統(tǒng)計.43.5 修改.63.6 刪除.63.7 退出.7四 設(shè)計小結(jié).8五 參考文獻(xiàn).9六 源程序.10一課程設(shè)計的目的1、加深對C語言程序設(shè)計課程知識的理解,掌握C語言應(yīng)用程序的開發(fā)方法和步驟;2、進(jìn)一步掌握和利用C語言程序設(shè)計能力;3、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計的思想和方法;4、初步掌握開發(fā)一個小型實(shí)用系統(tǒng)的基本方法;5、

2、學(xué)會調(diào)試一個較長程序的基本方法;6、學(xué)會利用流程圖或N-S圖表示算法;7、掌握書寫程序設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計報告)。二 課程設(shè)計任務(wù)與要求1設(shè)計內(nèi)容1.登錄參會人員的下列信息:·姓名、性別、年齡、單位·房間號(設(shè)每個房間只住一人,房間號為101#120#,···.,501#520#)。2、主菜單應(yīng)至少包括以下幾個菜單項(xiàng): 人員登錄、顯示報道人員信息、查詢、統(tǒng)計、修改、刪除3、程序應(yīng)分別用幾個函數(shù)實(shí)現(xiàn)以上功能:·隨時對報道人員進(jìn)行登錄(login),來客登記的房間是根據(jù)客人要求分配的;如果客人申請的房間已有人登記了,可以讓客人

3、重新申請;如果所有房間都已經(jīng)住滿,則拒絕再進(jìn)行人員登錄;·隨時按所住房間號(由小到大)輸出(print)已報道人員信息;·能夠根據(jù)姓名實(shí)現(xiàn)對人員信息的查詢;·能夠根據(jù)單位對與會人員進(jìn)行分類統(tǒng)計,并輸出統(tǒng)計結(jié)果;·能夠修改與會人員信息;·能夠刪除某個參會人員,并清空其所住房間。2流程圖參會人員管理系統(tǒng)人 員 登 錄顯示報道人員信息查 詢修 改刪 除統(tǒng) 計1三 主要設(shè)計指標(biāo)及特點(diǎn)3.1人員登錄主程序通過Menu函數(shù)實(shí)現(xiàn)該程序的主界面,函數(shù)體包含相應(yīng)的printf語句來實(shí)現(xiàn)相應(yīng)的菜單輸出。void menu() printf("*n&quo

4、t;); printf("Meeting attendant Managing System Demon"); printf("1.Staff loginn"); printf("2.Print Infon"); printf("3.SearchByNamen"); printf("4.Statisticsn"); printf("5.Modifyn"); printf("6.Deleten"); printf("0.Quitn");

5、printf("*n");3.2顯示2對應(yīng)的login界面,是通過調(diào)用login函數(shù)實(shí)現(xiàn)的。根據(jù)提示輸入登錄的信息,就完成了參會人員的基本信息的錄入。strcpy(stafflength.room_num,room_num); /* 錄入登陸信息*/ printf("Type in your name:"); scanf("%s",&); printf("Type in your gender:"); scanf("%s",&stafflength

6、.sex); printf("Type in your age:"); scanf("%d",&stafflength.age); printf("Type in your dapartment:"); scanf("%s",&stafflength.department); length+; /*參會人數(shù)加一*/ 在對有人登錄的房間排好序后,用printf語句輸出信息,如下:33.3查找按照提示輸入3,進(jìn)入查找界面。運(yùn)用SearchByName功能,根據(jù)程序給出的提示:Type in the st

7、affs name :根據(jù)輸入信息,程序用for循環(huán)對已經(jīng)登錄的人員信息進(jìn)行對比,看是否相符。 for(i=0;i<length;i+) if(strcmp(,name)=0) /*判斷名字是否相同,相同則輸出人員信息*/ printf("%st",); printf("%st",staffi.sex); printf("%dt",staffi.age); printf("%st",staffi.department); printf("%13s"

8、;,staffi.room_num); printf("n"); counter+; 3.4統(tǒng)計4按照提示輸入4,運(yùn)行S flag=0; /*輔助標(biāo)記*/ char department10030; /*用于記錄不同單位的名字*/ int counter100; /*分別記錄相應(yīng)不同單位的參會人數(shù)*/ if(length!=0) k=0; /*單獨(dú)處理數(shù)組第一個元素*/ strcpy(departmentk,staff0.department); /*記錄單位*/ counterk=0;/*計數(shù)器清零*/ for(j=0;j<length;j

9、+)/*計算次單位參會的總?cè)藬?shù)*/ if(strcmp(departmentk,staffj.department)=0) counterk+; for(i=1;i<length;i+) for(index=0;index<=k;index+) if(strcmp(departmentindex,staffi.department)=0) flag+; /*當(dāng)前此單位在前面已經(jīng)統(tǒng)計過*/ if(flag=0) /*出現(xiàn)一個未統(tǒng)計過的單位*/ k+; /*用兩數(shù)組的下一個元素分別存放單位和該單位參會人數(shù)*/ strcpy(departmentk,staffi.department);

10、/*記錄單位*/ counterk=0;/*計數(shù)器清零*/ for(j=0;j<length;j+)/*計算次單位參會的總?cè)藬?shù)*/ if(strcmp(departmentk,staffj.department)=0) counterk+; flag=0; /*輔助標(biāo)志清零*/ 否則,輸出"No one logined yet. 53.5修改運(yùn)行修改時,輸入原先的房間號,根據(jù)提示再次輸入要求進(jìn)入的新的房間號,再次錄入自己的個人信息。系統(tǒng)會輸出Edit successfully 提示修改成功。3.6刪除根據(jù)提示,選擇6,運(yùn)行delete 。輸入要求刪除的房間號。系統(tǒng)輸出Delet

11、e successfully 表示操作成功。63.7退出選擇0,退出程序。7四 設(shè)計小結(jié)這次的課程設(shè)計是一個巨大的挑戰(zhàn),是我們從未涉獵過的將多個函數(shù)運(yùn)用起來,使之成為系統(tǒng)的課程。經(jīng)過兩個禮拜的努力,終于完成了這次的課程設(shè)計。盡管結(jié)果并不是很令人滿意,但是,不得不說,在這次的學(xué)習(xí)中,我學(xué)會了很多。在一開始的茫然不知所措到現(xiàn)在的漸入佳境,我是付出了很大的努力的。由于自身的素養(yǎng),有很多的問題不能夠解決。但是,在查閱了不少的資料,借鑒了一些類似作品后,又在同學(xué)與老師的幫助下,搞清楚了解決問題的關(guān)鍵所在。一步一步的解決了所有前行的問題。在這次設(shè)計里,對C語言里面的很多的概念有了新的認(rèn)識,關(guān)于指針、鏈表等

12、,對于這些核心的知識有了進(jìn)一步的了解。而自己以前一直沒有好好的重視這些。忽略了很多有用的東西,慚愧不已。在這次的學(xué)習(xí)中,我怕了解到了對于調(diào)用函數(shù)熟練掌握的重要性。對于這些常用函數(shù),我們有必要下狠功夫。仔細(xì)想來,自己真的還有很多不足的地方。雖然,最終結(jié)果是可喜的,我也不能忘記曾經(jīng)歷過的困難,我要時刻牢記時刻提醒自己提高自己的能力。像是一個個函數(shù)組成一個系統(tǒng),我們平時的學(xué)習(xí)也是一塊塊的累積在一起才能夠發(fā)揮功效的。我們要保持學(xué)科齊頭并進(jìn),將各科組合起來,完美的完成工作。在這個競爭日益激烈的社會,我們只有不斷的提高自身素養(yǎng),不斷完善自己,才能在社會上有立足之地。8五 參考文獻(xiàn)譚浩強(qiáng)。 C程序設(shè)計(第三

13、版)。 北京:清華大學(xué)出版社,20059六 源程序#include<stdio.h>#include<stdlib.h>#include<string.h> #define MAXSIZE 100 /*定義最大參會人數(shù)*/typedef struct /*參會人員的數(shù)據(jù)結(jié)構(gòu)*/ char name20; /*姓名*/ char sex7; /*性別*/ int age; /*年齡*/ char department30;/*單位*/ char room_num10; /*房間號*/STAFF;void menu() printf("*n"

14、); printf("Meeting attendant Managing System Demon"); printf("1.Staff loginn"); printf("2.Print Infon"); printf("3.SearchByNamen"); printf("4.Statisticsn"); printf("5.Modifyn"); printf("6.Deleten"); printf("0.Quitn"); pr

15、intf("*n");/*函數(shù)的定義*/int login(STAFF staff,int length) int i; if(length=100) /*房間已滿,拒絕登陸*/ printf("There is no any empty room left!n login prohibited!"); exit(-1); /*異常退出程序*/ else char room_num4; printf("The room_num is range from 101# to 120#.from 501# to 520#!n"); prin

16、tf("Type in the room_num:"); scanf("%s",&room_num); for(i=0;i<length;i+) if(strcmp(room_num,staffi.room_num)=0) /*申請的房間已經(jīng)有人*/ printf("The room you chose was logined,please choose anther.n"); printf("Type in another different room_num:");/*讓參會人選擇別的空房間*/

17、scanf("%s",&room_num); i=-1; /*為檢驗(yàn)新的房間是否為空作準(zhǔn)備*/10 /*end for*/ strcpy(stafflength.room_num,room_num); /* 錄入登陸信息*/ printf("Type in your name:"); scanf("%s",&); printf("Type in your gender:"); scanf("%s",&stafflength.sex); pr

18、intf("Type in your age:"); scanf("%d",&stafflength.age); printf("Type in your dapartment:"); scanf("%s",&stafflength.department); length+; /*參會人數(shù)加一*/ /*end else*/ return length; /*end login()*/void print(STAFF staff,int length) STAFF temp; int i,j; if(

19、length!=0) for(i=0;i<length;i+) /*冒泡排序 排序房間號 小到大*/ for(j=i;j<length-i-1;j+) if(strcmp(staffj.room_num,staffj+1.room_num)>0) temp=staffj; staffj=staffj+1; staffj+1=temp; printf("Staff logined info:n"); printf("Name Sex Age Department room-numn"); for(i=0;i<length;i+) p

20、rintf("%st",); /*輸出報到人員的信息*/ printf("%st",staffi.sex); printf("%dt",staffi.age); printf("%st",staffi.department); printf("%9s",staffi.room_num); printf("n"); else printf("No one logined yet.n");/*end print()*/void seach

21、ByName(STAFF staff,int length) char name20; int i; int counter=0; if(length!=0) printf("Tpye in the staff's name you search:"); scanf("%s",&name); printf("Name Sex Age Department room-numn");11 for(i=0;i<length;i+) if(strcmp(,name)=0) /*判斷名字是否相同,相同

22、則輸出人員信息*/ printf("%st",); printf("%st",staffi.sex); printf("%dt",staffi.age); printf("%st",staffi.department); printf("%13s",staffi.room_num); printf("n"); counter+; if(counter=0) /*查找的人還沒登錄*/ printf("n%s hasn't logined

23、yet.n",name); else printf("No one logined yet.n"); /*end seachByName*/void statistics(STAFF staff,int length) int i; int k,j; int index; int flag=0; /*輔助標(biāo)記*/ char department10030; /*用于記錄不同單位的名字*/ int counter100; /*分別記錄相應(yīng)不同單位的參會人數(shù)*/ if(length!=0) k=0; /*單獨(dú)處理數(shù)組第一個元素*/ strcpy(departmentk

24、,staff0.department); /*記錄單位*/ counterk=0;/*計數(shù)器清零*/ for(j=0;j<length;j+)/*計算次單位參會的總?cè)藬?shù)*/ if(strcmp(departmentk,staffj.department)=0) counterk+; for(i=1;i<length;i+) for(index=0;index<=k;index+) if(strcmp(departmentindex,staffi.department)=0) flag+; /*當(dāng)前此單位在前面已經(jīng)統(tǒng)計過*/ if(flag=0) /*出現(xiàn)一個未統(tǒng)計過的單位*/

25、 k+; /*用兩數(shù)組的下一個元素分別存放單位和該單位參會人數(shù)*/ strcpy(departmentk,staffi.department);/*記錄單位*/ counterk=0;/*計數(shù)器清零*/ for(j=0;j<length;j+)/*計算次單位參會的總?cè)藬?shù)*/ if(strcmp(departmentk,staffj.department)=0) counterk+; flag=0; /*輔助標(biāo)志清零*/ 12 printf("Statistics result:n"); printf("Department numbern"); f

26、or(i=0;i<=k;i+) printf("%s%20dn",departmenti,counteri); else printf("No one logined yet.n");/*end statistics()*/void modify(STAFF staff,int length) char room_num10; int i,k; if(length!=0) printf("Tpye in the staff's room-num you edit:"); scanf("%s",&

27、;room_num); for(i=0;i<length;i+) if(strcmp(staffi.room_num,room_num)=0) printf("Type in your room-num:"); scanf("%s",&room_num); for(k=0;k<length;k+) if(k=i) continue; /*可以選擇原來的房間*/ if(strcmp(room_num,staffk.room_num)=0) /*申請的房間已經(jīng)有人*/ printf("The room you chose is

28、full,please choose anther.n"); printf("Type in another different room-num:"); scanf("%s",&room_num); /*提示選擇別的空房間*/ k=-1; /*為檢驗(yàn)新的房間是否為空作準(zhǔn)備*/ /*修改人員信息*/ strcpy(staffi.room_num,room_num); printf("Type in your name:"); scanf("%s",&);13 prin

29、tf("Type in your gender:"); scanf("%s",&staffi.sex); printf("Type in your age:"); scanf("%d",&staffi.age); printf("Type in your dapartment:"); scanf("%s",&staffi.department); printf("Edit successfully."); else printf(&

30、quot;No one logined yet.n"); /*end modify*/int Delete(STAFF staff,int length) int i,k; int counter=length; char room_num10; if(length!=0) printf("Tpye in the staff's room-num you delete:"); scanf("%s",&room_num); for(i=0;i<length;i+) if(strcmp(staffi.room_num,room_num)=0) /*刪除人員*/ for(k=i;k

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論