![會(huì)議簽到系統(tǒng)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/b0d8831c-27fe-41d8-ba80-b315d1cbeb96/b0d8831c-27fe-41d8-ba80-b315d1cbeb961.gif)
![會(huì)議簽到系統(tǒng)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/b0d8831c-27fe-41d8-ba80-b315d1cbeb96/b0d8831c-27fe-41d8-ba80-b315d1cbeb962.gif)
![會(huì)議簽到系統(tǒng)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/b0d8831c-27fe-41d8-ba80-b315d1cbeb96/b0d8831c-27fe-41d8-ba80-b315d1cbeb963.gif)
![會(huì)議簽到系統(tǒng)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/b0d8831c-27fe-41d8-ba80-b315d1cbeb96/b0d8831c-27fe-41d8-ba80-b315d1cbeb964.gif)
![會(huì)議簽到系統(tǒng)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/b0d8831c-27fe-41d8-ba80-b315d1cbeb96/b0d8831c-27fe-41d8-ba80-b315d1cbeb965.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、沈 陽(yáng) 航 空 工 業(yè) 學(xué) 院 課程設(shè)計(jì)學(xué) 號(hào) 200604021035班 級(jí) 6402101 姓 名 趙晨指導(dǎo)教師 王曉巖2007年 9 月 20 日沈陽(yáng)航空工業(yè)學(xué)院課程設(shè)計(jì)任務(wù)書院系:電子 專業(yè):電子信息工程 班級(jí):6402101學(xué)號(hào):200604021035 題目:會(huì)議簽到系統(tǒng)一、課程設(shè)計(jì)時(shí)間2007年9月10日至2007年9月14日,共計(jì)1周,20學(xué)時(shí)。二、課程設(shè)計(jì)內(nèi)容用C語(yǔ)言編寫軟件完成以下任務(wù):(1)數(shù)據(jù)信息(參加會(huì)議人員代號(hào),姓名,性別,工作單位,職務(wù),聯(lián)系方式,是否簽到等)保存在meeting.dat文件中。(2)簽到。(3)按工作單位將數(shù)據(jù)信息排序。(4)統(tǒng)計(jì)實(shí)際參加會(huì)議的人
2、數(shù)和缺席的人數(shù)。三、課程設(shè)計(jì)要求1. 程序質(zhì)量:² 貫徹結(jié)構(gòu)化的程序設(shè)計(jì)思想。² 用戶界面友好,功能明確,操作方便。² 用戶界面中的菜單至少應(yīng)包括“名單錄入”、“人員簽到”、“數(shù)據(jù)排序”、“統(tǒng)計(jì)參加和缺席人數(shù)”、“退出”5項(xiàng),所有數(shù)據(jù)的改變都應(yīng)該在相關(guān)文件中有所體現(xiàn)。² 代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。2. 課程設(shè)計(jì)說(shuō)明書:課程結(jié)束后,上交課程設(shè)計(jì)說(shuō)明書和源程序。課程設(shè)計(jì)說(shuō)明書的格式和內(nèi)容參見提供的模板。四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師:_ 學(xué)生簽名:_五、說(shuō)明書成績(jī)六、教師評(píng)語(yǔ)沈 陽(yáng) 航 院 設(shè) 計(jì) 用 紙目錄一、需求分析1二、程序
3、流程圖2三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段9四、個(gè)人總結(jié)15五、參考文獻(xiàn)15六、源程序1621一、需求分析經(jīng)過(guò)對(duì)程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為三個(gè)模塊,其中每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù),他們的功能分別是:錄入?yún)⒓訒?huì)議人員信息數(shù)據(jù)函數(shù)(add),人員簽到數(shù)據(jù)函數(shù)(signin),排序函數(shù)(compositor)。在這些函數(shù)當(dāng)中,錄入信息和排序函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而簽到和統(tǒng)計(jì)參加人數(shù)和缺席人數(shù)都放到了函數(shù)(signin)里。1、錄入?yún)⒓訒?huì)議人員信息數(shù)據(jù)函數(shù) 主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)參加會(huì)議人員信息數(shù)據(jù)的錄入以及其后的運(yùn)行中人員數(shù)據(jù)的追加功能;2、人員簽到數(shù)據(jù)函數(shù) 實(shí)現(xiàn)的功能是
4、按照參加會(huì)議人員的代號(hào)對(duì)人員進(jìn)行簽到,并對(duì)簽到人員進(jìn)行標(biāo)記,最后統(tǒng)計(jì)并輸出參加人數(shù)和缺席人數(shù)。3、排序函數(shù) 實(shí)現(xiàn)的功能是按照人員代號(hào)的增序顯示。 除上面介紹的功能之外,程序還具有退出功能,可以在程序運(yùn)行完畢后選擇退出。每一個(gè)參加會(huì)議人員信息都包含參加會(huì)議人員代號(hào),姓名,性別,工作單位,職務(wù),聯(lián)系方式,是否簽到,在程序當(dāng)中,將人員信息類型定義為結(jié)構(gòu)體類型,添加以及追加的人員信息直接寫入D盤的meeting.dat文件中,其他函數(shù)每次對(duì)人員記錄的訪問(wèn),其數(shù)據(jù)來(lái)源都是meeting.dat文件,這樣做不但可以保證人員數(shù)據(jù)的一致性,而且可以對(duì)人員數(shù)據(jù)進(jìn)行永久保存,保證每次運(yùn)行程序都可以采用原來(lái)的數(shù)據(jù)。
5、二、程序流程圖1、程序總體結(jié)構(gòu)圖2、具體功能框圖(1)錄入人員數(shù)據(jù)函數(shù)add開始定義文件指針定義頭指針鏈表信息存入文件輸入信息到鏈表結(jié)束圖2 錄入人員數(shù)據(jù)函數(shù)(2)人員簽到函數(shù)signin開始定義變量初值,文件指針,鏈表指針能否打開文件輸出不能打開文件結(jié)束否feof(f1)是將文件中的信息讀入鏈表釋放P指針?lè)耜P(guān)閉f1文件 a=0輸出:請(qǐng)員工輸入序號(hào)簽到,輸入0時(shí)結(jié)束簽到否是是輸入%d是M是否為空否i+輸出結(jié)束簽到,人員出勤結(jié)果如下輸出應(yīng)到%d人,實(shí)到%d人,缺席%d人,j,i,j-i結(jié)束圖3人員簽到函數(shù)3)按代號(hào)排序函數(shù)compositor開始定義文件指針,鏈表指針能否打開文件 meeting
6、1.dat!feof(f1)定義指針n輸出:不能打開文件輸出:不能打開文件將信息輸入鏈表釋放指針r=top結(jié)束結(jié)束能否打開文件 meeting2.datP是否為零否能否能否是是否否r指針內(nèi)容小于p內(nèi)容且r!=p是r=r->nextr!=p否是q=p;p=p0否r=topq->next=r;r0->next=q是q->next=top;top=qp0=p;p=p->nextp=NULL;p=top,否P不為空是輸出鏈表中的信息關(guān)閉文件f1,f2結(jié)束圖4按代號(hào)排序函數(shù)三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段本程序主要由三個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)
7、用其他函數(shù)來(lái)實(shí)現(xiàn)要求的所有功能。在這些函數(shù)當(dāng)中,錄入數(shù)據(jù)函數(shù)、簽到函數(shù)和排序函數(shù)是程序中較為核心的部分,下面分別進(jìn)行說(shuō)明。1、錄入數(shù)據(jù)函數(shù)錄入數(shù)據(jù)分為兩種情況,其一是在會(huì)議文件(meeting.dat)不存在的情況下,首先由程序創(chuàng)建一個(gè)新文件,并將錄入的人員信息寫入該文件當(dāng)中;其二是在會(huì)議文件(meeting.dat)已經(jīng)存在的情況下,此時(shí)文件要以讀寫方式或追加的方式打開,這樣才可以保證以前已經(jīng)存在的數(shù)據(jù)不丟失。具體的程序段如下:void add() /*錄入員工信息子函數(shù)*/FILE *f1;finger top=NULL,p=NULL,t=NULL;p=(finger)malloc(siz
8、eof(message);top=p;while(1)printf("n請(qǐng)輸入員工信息,輸入0時(shí)結(jié)束錄入");scanf("%d%s%s%s%s%d",&p->number,p->name,p->sex,p->workplace,p->job,&p->tel);/*分部分輸入*/ p->flag=0;if(p->number=0)free(p);t->next=NULL;break;t=p;p=(finger)malloc(sizeof(message);t->next=p; p
9、=NULL; if(f1=fopen("D:meeting.dat","w")=NULL) /*把鏈表中信息存入文件*/ printf("不能創(chuàng)建文件!"); exit(0); p=top; while(p!=NULL) fprintf(f1,"%d %s %s %s %s %dn",p->number,p->name,p->sex,p->workplace,p->job,p->tel); p=p->next; 2、人員簽到函數(shù)該函數(shù)的核心內(nèi)容是人員簽到和統(tǒng)計(jì)參加人數(shù)和缺席
10、人數(shù)。該函數(shù)執(zhí)行時(shí),首先把meeting.dat文件中信息讀入鏈表,并由用戶輸入人員代號(hào),而后按0結(jié)束簽到。如果文件中存在該人員的數(shù)據(jù),則進(jìn)行標(biāo)記,否則不標(biāo)記。這時(shí)被標(biāo)記的為1,未被標(biāo)記的為0,最后統(tǒng)計(jì)出參加人數(shù)和缺席人數(shù),具體程序段如下:void signin() /*簽到,標(biāo)記*/int a=1,i=0,j=0;FILE *f1;finger m=NULL,p=NULL,t=NULL,top=NULL;if(f1=fopen("D:meeting.dat","r")=NULL) /*把文件中信息讀入鏈表*/printf("不能打開文件mee
11、ting.dat!");exit(0);p=(finger)malloc(sizeof(message);top=p;while(!feof(f1)fscanf(f1,"%d%s%s%s%s%dn",&p->number,p->name,p->sex,p->workplace,p->job,&p->tel);p->flag=0;t=p;p=(finger)malloc(sizeof(message);t->next=p;free(p);t->next=NULL;fclose(f1);m=top;
12、while(a!=0) /*簽到*/printf("請(qǐng)員工輸入序號(hào)簽到,輸入0時(shí)結(jié)束簽到"); scanf("%d",&a);while(m!=NULL)if(m->number=a)m->flag=1;i+;m=m->next;j+;printf("結(jié)束簽到,人員出勤結(jié)果如下:n");printf("應(yīng)到%d人,實(shí)到%d人,缺勤%d人n",j,i,j-i);3、按代號(hào)排序函數(shù)對(duì)于代號(hào)的排序采用的排序算法是鏈表插入法,首先讀取文件meeting.dat信息,在創(chuàng)建meeting2.dat文
13、件,以便保存排序后的信息,該程序的實(shí)現(xiàn)主要是把指針變量插入到各個(gè)結(jié)點(diǎn),進(jìn)行比較,最終實(shí)現(xiàn)按代號(hào)的升序排列。具體的程序段如下:void compositor() /*排序*/FILE *f1; FILE *f2;finger m=NULL,n=NULL,t=NULL,top=NULL,p,p0,r,r0,q;if(f1=fopen("D:meeting.dat","r")=NULL) /*讀取文件meeting.dat信息*/printf("不能打開文件meeting.dat!");exit(0); if(f2=fopen("
14、D:meeting2.dat","w")=NULL) /*創(chuàng)建meeting2.dat文件*/printf("不能創(chuàng)建文件meeting2.dat!");exit(0);n=(finger)malloc(sizeof(message);top=n;while(!feof(f1) /*排序*/fscanf(f1,"%d%s%s%s%s%dn",&n->number,n->name,n->sex,n->workplace,n->job,&n->tel);n->flag=0
15、;t=n;n=(finger)malloc(sizeof(message);t->next=n;free(n); /*/t->next=NULL;p0=NULL;p=top;while(p!=NULL)r=top;while(r->number<p->number)&&(r!=p)r0=r;r=r->next;if(r!=p)q=p;p0->next=p->next;p=p0;if(r=top)q->next=top;top=q; elseq->next=r;r0->next=q;p0=p;p=p->nex
16、t;p=NULL; p=top; while(p!=NULL) /*將排序后信息寫入文件meeting2.dat*/ fprintf(f2,"%d %s %s %s %s %dn",p->number,p->name,p->sex,p->workplace,p->job,p->tel); printf("%d %s %s %s %s %dn",p->number,p->name,p->sex,p->workplace,p->job,p->tel); p=p->next;fclo
17、se(f1); fclose(f2);四、個(gè)人總結(jié)一周的課程設(shè)計(jì)使我更一深層次地學(xué)習(xí)了C語(yǔ)言,了解了C語(yǔ)言,曾經(jīng)課本沒有認(rèn)真地閱讀,現(xiàn)在通過(guò)這門課程,使我不僅認(rèn)真地看,反復(fù)地看,而且還仔細(xì)地研究了一翻,補(bǔ)上了以前學(xué)習(xí)的漏洞,剛開始時(shí)認(rèn)為這門課程很難,但是經(jīng)過(guò)了一翻研究和與老師和其他同學(xué)的溝通,一些問(wèn)題還是解決了,但可以說(shuō)這門課程還是有難度的,所以以后還要加強(qiáng)對(duì)這方面知識(shí)的學(xué)習(xí),掌握好這門課程對(duì)我以后的專業(yè)也有很大的好處。程序大體上完成了課程的要求,但還是有些毛病不能解決,主函數(shù)不是總是循環(huán)的結(jié)構(gòu),如果改成這種結(jié)構(gòu),簽到和排序都出問(wèn)題,也許問(wèn)題出現(xiàn)在我程序的各個(gè)部分都是我在書上找的,然后拼接在一
18、起的,各個(gè)部分的連貫性不好,導(dǎo)致改后出錯(cuò)。五、參考文獻(xiàn)1 譚浩強(qiáng)C程序設(shè)計(jì)北京:清華大學(xué)出版社,20052 劉成等C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集北京:中國(guó)鐵道出版社,2006六、源程序#include <stdlib.h>#include <malloc.h>#include <stdio.h>#include <string.h>#include <math.h>typedef struct message /*定義數(shù)據(jù)結(jié)構(gòu)*/long int number;char name10;char sex3;char workplace2
19、0;char job5;long int tel;int flag;struct message *next;*finger; /*指向結(jié)構(gòu)體的指針*/void menu() /*屏幕輸出菜單*/printf("*n");printf("*1.錄入員工信息 *n");printf("*2.在此簽到,并輸出人員簽到結(jié)果 *n");printf("*3.排序 *n");printf("*4.退出 *n");printf("*n");void add() /*錄入員工信息子函數(shù)*/
20、FILE *f1;finger top=NULL,p=NULL,t=NULL;p=(finger)malloc(sizeof(message);top=p;while(1)printf("n請(qǐng)輸入員工信息,輸入0時(shí)結(jié)束錄入");scanf("%d%s%s%s%s%d",&p->number,p->name,p->sex,p->workplace,p->job,&p->tel);/*分部分輸入*/ p->flag=0;if(p->number=0)free(p);t->next=NULL
21、;break;t=p;p=(finger)malloc(sizeof(message);t->next=p; p=NULL; if(f1=fopen("D:meeting.dat","w")=NULL) /*把鏈表中信息存入文件*/ printf("不能創(chuàng)建文件!"); exit(0); p=top; while(p!=NULL) fprintf(f1,"%d %s %s %s %s %dn",p->number,p->name,p->sex,p->workplace,p->jo
22、b,p->tel); p=p->next; void signin() /*簽到,標(biāo)記*/int a=1,i=0,j=0;FILE *f1;finger m=NULL,p=NULL,t=NULL,top=NULL;if(f1=fopen("D:meeting.dat","r")=NULL) /*把文件中信息讀入鏈表*/printf("不能打開文件meeting.dat!");exit(0);p=(finger)malloc(sizeof(message);top=p;while(!feof(f1)fscanf(f1,&qu
23、ot;%d%s%s%s%s%dn",&p->number,p->name,p->sex,p->workplace,p->job,&p->tel);p->flag=0;t=p;p=(finger)malloc(sizeof(message);t->next=p;free(p);t->next=NULL;fclose(f1);m=top;while(a!=0) /*簽到*/printf("請(qǐng)員工輸入序號(hào)簽到,輸入0時(shí)結(jié)束簽到"); scanf("%d",&a);while
24、(m!=NULL)if(m->number=a)m->flag=1;i+;m=m->next;j+;printf("結(jié)束簽到,人員出勤結(jié)果如下:n");printf("應(yīng)到%d人,實(shí)到%d人,缺勤%d人n",j,i,j-i);void compositor() /*排序*/FILE *f1; FILE *f2;finger m=NULL,n=NULL,t=NULL,top=NULL,p,p0,r,r0,q;if(f1=fopen("D:meeting.dat","r")=NULL) /*讀取文件m
25、eeting.dat信息*/printf("不能打開文件meeting.dat!");exit(0); if(f2=fopen("D:meeting2.dat","w")=NULL) /*創(chuàng)建meeting2.dat文件*/printf("不能創(chuàng)建文件meeting2.dat!");exit(0);n=(finger)malloc(sizeof(message);top=n;while(!feof(f1) /*排序*/fscanf(f1,"%d%s%s%s%s%dn",&n->number,n->name,n->sex,n->workplace,n->job,&n->tel);n
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 12富起來(lái)到強(qiáng)起來(lái) 第一課時(shí)(說(shuō)課稿)-2023-2024學(xué)年道德與法治五年級(jí)下冊(cè)統(tǒng)編版
- 13《貓》說(shuō)課稿-2023-2024學(xué)年四年級(jí)語(yǔ)文下冊(cè)統(tǒng)編版
- Unit 4 Customs and Traditions:Review of Passives 語(yǔ)法銜接活動(dòng)案例說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)滬外版必修第一冊(cè)
- 8 安全記心上《平安出行》(說(shuō)課稿)-部編版道德與法治三年級(jí)上冊(cè)
- 西藏小區(qū)變壓器施工方案
- 27《巨人的花園》(說(shuō)課稿)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文四年級(jí)下冊(cè)
- 《3 我的本領(lǐng)大-循環(huán)模塊與執(zhí)行器模塊組合應(yīng)用》說(shuō)課稿-2023-2024學(xué)年清華版(2012)信息技術(shù)六年級(jí)下冊(cè)001
- 9元日說(shuō)課稿-2023-2024學(xué)年三年級(jí)下冊(cè)語(yǔ)文統(tǒng)編版
- Unit 3 Seasons Lesson 2(說(shuō)課稿)-2023-2024學(xué)年人教新起點(diǎn)版英語(yǔ)二年級(jí)下冊(cè)
- 倒賣人口合同范例
- 2023年全國(guó)4月高等教育自學(xué)考試管理學(xué)原理00054試題及答案新編
- 邵陽(yáng)市職工勞動(dòng)能力鑒定表
- 稀土配合物和量子點(diǎn)共摻雜構(gòu)筑發(fā)光軟材料及其熒光性能研究
- 衛(wèi)生部手術(shù)分級(jí)目錄(2023年1月份修訂)
- JJG 921-2021環(huán)境振動(dòng)分析儀
- 中藥炮制學(xué)-第五、六章
- 中國(guó)風(fēng)軍令狀誓師大會(huì)PPT模板
- 小兒高熱驚厥精品課件
- 2022年電拖實(shí)驗(yàn)報(bào)告伍宏淳
- 豐田汽車戰(zhàn)略規(guī)劃與戰(zhàn)略管理體系研究(2021)
- 即興口語(yǔ)(姜燕)-課件-即興口語(yǔ)第一章PPT-中國(guó)傳媒大學(xué)
評(píng)論
0/150
提交評(píng)論