學(xué)生考勤系統(tǒng)C語言課程設(shè)計_第1頁
學(xué)生考勤系統(tǒng)C語言課程設(shè)計_第2頁
學(xué)生考勤系統(tǒng)C語言課程設(shè)計_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余9頁可下載查看

下載本文檔

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

文檔簡介

1、程序設(shè)計宇文皓月課程設(shè)計說明書課程名稱程序設(shè)計設(shè)計題目C語言課程設(shè)計學(xué)生考勤系統(tǒng)專業(yè)班級學(xué)生姓名指導(dǎo)教師起止日期2013年6月8日至2013年6月14日福建林業(yè)職業(yè)技術(shù)學(xué)院白動化工系目錄第1章設(shè)計目的第2章總體設(shè)計第3章詳細(xì)設(shè)計第4章調(diào)試與測試第5章總結(jié)與體會附:源程序清單和執(zhí)行結(jié)果第1章設(shè)計目的本次c語言課程設(shè)計是對本學(xué)期程序設(shè)計基礎(chǔ)課程的實(shí)際應(yīng)用,也算是對所學(xué)知識的一次檢驗(yàn),通過本次課程設(shè)計能達(dá)到的目的如下:1. 鞏固和加深對C課程基本內(nèi)容和理論知識的理解和掌握。2. 掌握C語言編譯和程序調(diào)試的基本技能。3. 利用C語言進(jìn)行基本的程序設(shè)計從而逐步了解文件的一些相關(guān)操縱和掌握函數(shù)的使用技巧,

2、包含函數(shù)類型的選擇,含參數(shù)的傳遞方式。4. 掌握使用數(shù)組,指針,引用,文件等編譯的方法,提高運(yùn)用C語言解決實(shí)際問題的能力。5. 通過對學(xué)生考勤系統(tǒng)的設(shè)計、編寫源代碼,以及對C語言中各個語法和函數(shù)的使用,使得對比較復(fù)雜的結(jié)構(gòu)體、鏈接、文件的操縱更加熟悉。通過課程設(shè)計,將本學(xué)期所學(xué)知識與實(shí)際應(yīng)用聯(lián)系和結(jié)合起來,培養(yǎng)白己的動手能力,以及加強(qiáng)各學(xué)科之間的聯(lián)系,從而提高個人的團(tuán)隊(duì)意識,增強(qiáng)團(tuán)隊(duì)之間協(xié)調(diào)和配合第2章總體設(shè)計2.1學(xué)生考勤信息記錄系統(tǒng)的要求通過該系統(tǒng)實(shí)現(xiàn)對學(xué)生考勤信息進(jìn)行創(chuàng)建、錄入、修改、查詢、保管等操縱的管理。實(shí)驗(yàn)考勤信息包含學(xué)生姓名,學(xué)號,學(xué)科種類,各科的考勤信息。主要功能:1)、能夠完

3、成對考勤的錄入和修改2)、創(chuàng)建一個班級的信息3)、設(shè)備的查詢4)、將考勤信息保管到文件中根據(jù)設(shè)計要求,畫出如下流程圖:5.查詢2錄入函數(shù)*/查詢函數(shù)_1*/6.退出2.2流程圖voidenter(void);/*voidsearch_1(void);/*voidsearch_2(void);/*查詢函數(shù)_2*/voidadd(void);voidmodify(void);/*修改函數(shù)*/voidback(void);/*退出函數(shù)*/voidmune_1();/*界面-1*/voidmune_2();/*界面-2*/mune_1();mune_2();第3章詳細(xì)設(shè)計3.1函數(shù)以及調(diào)用關(guān)系void

4、mune_1();/*菜單函數(shù)1*/菜單函數(shù)2*/voidenter(void);voidsearchi開始6Menu_2BreakBrerkbreakBreak'錄入函數(shù)*/Brebreak/*開始->num=a3r-C-(void);/*B-息2目、I、3O/輸入A人所/H級和力號真假p->nm=a-IV.voidsearch_2(void);/*輸入要詢娜J班別查詢班級信息*/返回菜單2voidmodify(void);/*輸她郵郵勒信啟彳湫*/真假和座位號a輸入你些I也芝尊p->num=ajvoidsave(structStudent*目/111、char重叫

5、輸入假鬲料葉坊勤T);structStudent*load(charfilename)3.2結(jié)構(gòu)的應(yīng)用If-else結(jié)構(gòu)和while結(jié)構(gòu)嵌套結(jié)構(gòu):voidmune_2()/*while(p1->num!=0)(n=n+1;if(n=1)head=p1;elsep2->next=p1;p2=p1;p1=(structStudent*)malloc(LEN);scanf("%s%d%s”,p1->name,&p1->num,p1->sex);p1->math=p1->English=p1->physics=p1->Mks=p1

6、->C=p1->teal=p1->PE=0;p2->next=NULL;p=head;while(p!=NULL)(fwrite(p,LEN,1,fp);p=p->next;fclose(fp);printf("ttt創(chuàng)建成功,按任意鍵返回主菜單n");getch();system("cls");mune_2();2switch結(jié)構(gòu)switch(sub)(case1:p->math+=num;break;case2:p->English+=num;break;case3:p->physics+=num;br

7、eak;case4:p->Mks+=num;break;case5:p->C+=num;break;case6:p->teal+=num;break;case7:p->PE+=num;break;3while結(jié)構(gòu)while(p!=NULL)(if(p->num=a)(printf("ntt請重新輸入高等數(shù)學(xué)缺勤節(jié)數(shù):,scanf("%d”,&p->math);printf("ntt請重新輸入大學(xué)英語缺勤節(jié)數(shù):");scanf("%d”,&p->English);printf("

8、ntt請輸入大學(xué)物理缺勤節(jié)數(shù):");scanf("%d”,&p->physics);printf("ntt請重新輸入馬克思主義基來源根基理與概論缺勤節(jié)數(shù):");scanf("%d”,&p->Mks);printf("ntt請重新輸入C語言缺勤節(jié)數(shù):");scanf("%d",&p->C);printf("ntt請重新輸入英語口語缺勤節(jié)數(shù):");scanf("%d",&p->teal);printf("

9、ntt請重新輸入體育缺勤節(jié)數(shù)目:");scanf("%d",&p->PE);flag=1;save(head,cla);printf("ntt修改成功!ntt");break;p=p->next;第4章調(diào)試與測試4.1調(diào)試執(zhí)行程序時,顯示如下信息選擇分歧的選項(xiàng),執(zhí)行相應(yīng)的功能。(選擇3),創(chuàng)建一個班級的基本信息。(詵擇1).錄入本次課者勤情況。專祚脊若祎帶典梆琳宥*裨伸*磚神祥訐*村村宥*伸釁禱訐祎*請輸入本秋課缺席同學(xué)的匿號I5、.*>L1UII-_<.I1、錄入本次課考勤情況L查詢學(xué)生考勤信息(選擇4),修改

10、學(xué)生個人考勤信息。(選擇5),檢查一個班級的考勤信息。(選擇6),退出學(xué)生考勤信息系統(tǒng)。第5章總結(jié)與體會三周的課程設(shè)計已經(jīng)結(jié)束了?;叵雽W(xué)習(xí)C語言的過程中,既有快樂又有煩惱。從領(lǐng)到書的那一刻,我就很郁悶,C語言程序設(shè)計到底事學(xué)什么的,有什么用。剛開始上課時,還在迷茫這門課程是用來做什么的。不過,這些感受都是在對這門課程不了解的情況下發(fā)生的。后來慢慢的接觸多了,聽老師講的多了,了解多了,漸漸的發(fā)生了興趣。尤其是學(xué)到語句和函數(shù)時,上機(jī)操縱程序,經(jīng)過編譯,調(diào)試和運(yùn)行后,出現(xiàn)界面,當(dāng)時覺得很好奇,想真正的學(xué)好這門課程。通過半個學(xué)期的學(xué)習(xí),我掌握了基本知識。下學(xué)期開始時,被通知要進(jìn)行課程設(shè)計。當(dāng)時有點(diǎn)懵,

11、感覺學(xué)的東西很少,彳艮零散,不知該怎么連到一起,就要課程設(shè)計,是不是太難為我們了。第一天基本上都是在看書,把基本知識再熟悉一遍。到了下午的時候,看了很多練習(xí)題,從這些練習(xí)題上我得到了很多啟發(fā),然后我們組把整個程序的思路理清了,開始著手寫程序。第一周結(jié)束的時候,我感覺白己收獲挺大的,從一開始的迷茫,不知道從何下手到把程序中的幾個模塊編寫出來,心里挺開心的。但是,接下來,我們又不克不及不再次陷入困境。在整個程序的編寫過程中,最難的就是修改和刪除這兩個模塊,這也是我們要解決的重點(diǎn)問題。開始編寫修改和刪除時,很頭疼,去向其他人尋求幫忙,在他人的幫忙和提示下,我編完了修改程序,但編譯時老出錯,修改后的內(nèi)

12、容將文本內(nèi)的信息全部覆蓋了。困難之時,我們組的其他人,幫忙了我,完成了修改和刪除,這讓我認(rèn)識到團(tuán)隊(duì)的力量。這樣的話,整個程序基本上全部完成了,就剩下完善工作了。我們組寫了兩個程序,最后,兩個程序相互組合,互補(bǔ),大功告成雖然設(shè)計時完成了,但是我覺得其中還是有一些缺乏之處:1. 警告句。程序中缺少一些警告句,例如:“是否真的刪除(y/n)?”。2. 重名的情況。由于考慮的不周全,沒有設(shè)計遇到重名的情況該怎么處理。3. 選擇單一。我們設(shè)計的程序中,只設(shè)計了按名字選擇,進(jìn)行操縱,忽略了重名的情況。整個程序完成了,還有很多不完善的地方,希望白己以后處事的時候要認(rèn)真,仔細(xì),考慮周全。短短的幾周課程設(shè)計結(jié)束

13、了,但是這段時間里,我又學(xué)到了更多C知識,如:對象數(shù)組,string類,文件流,鏈表以及文件對鏈表的操縱等,同時我也被提醒以后處事的時候要認(rèn)真,仔細(xì),考慮周全,也看到了團(tuán)隊(duì)精神和互幫互助的重要性。這一點(diǎn)會讓我終生受益。通過這次課程設(shè)計,我覺得白己肚子里的墨水多了,收獲也挺大的,這幾周過的挺充實(shí)!*附:源程序清單和執(zhí)行結(jié)果#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#defineLENsizeof(structStudent)structStudenti

14、ntnum;charname15;charsex4;intmath,English,physics,Mks,C,teal,PE;structStudent*next;intn;voidmain()voidcreat(void);voidsave(structStudent*,char);structStudent*load(char);voidenter(void);/*錄入函數(shù)*/voidsearch_1(void);/*查詢函數(shù)_1*/voidsearch_2(void);/*查詢函數(shù)_2*/voidmodify(void);/*修改函數(shù)*/voidback(void);/*退出函數(shù)*/v

15、oidmune_1();/*界面-1*/voidmune_2();/*界面-2*/mune_1();mune_2();printf("n");voidmune_1()printf("nnnnnn");printf("t*");printf("ttt*");printf("tttprintf("ttt*歡迎使用班級考勤系統(tǒng)*ii);printf("nt*nnn");printf(");printf("nnntttt<getch();system(&qu

16、ot;cls");voidmune_2()intoption,ch;printf("nnn");按任意鍵進(jìn)入nttttt");/*/*定義一個選項(xiàng)的數(shù)據(jù)類型*/制作的一個漂亮的選擇界面*/printf("t*n");printf("t*ttttttt*n");printf("t*ttttttt*n");、錄入本次課考勤情況tprintf("t*1*n");printf("t*tttttttprintf("t*n");printf("t*

17、tttttttprintf("t*5*n");printf("t*ttttttt*n");3、創(chuàng)建學(xué)生信息tt*n");、檢查班級考勤情況t、查詢學(xué)生考勤信息t4、修改學(xué)生信息t6、退出考勤系統(tǒng)t*n");printf("t*ttttttt*n");printf("t*n");printf("n");printf("tttwhile(1)請輸入您所需的操縱(16):ntttt");scanf("%d”,&option);switch(op

18、tion)case1:ch=getchar();system("cls");enter();break;case2:ch=getchar();system("cls");search_1();break;case3:ch=getchar();system("cls");creat();break;case4:ch=getchar();system("cls");modify();break;case5:ch=getchar();system("cls");search_2();break;cas

19、e6:ch=getchar();system("cls");back();break;default:printf("ttt輸入錯誤,請重新輸入!");printf("ntttt");ch=getchar();voidsave(structStudent*head,charfilename)(FILE*fp;structStudent*p=head;if(fp=fopen(filename,"wb")=NULL)(printf("cannotopenfilen");exit(0);while(p

20、!=NULL)(fwrite(p,LEN,1,fp);p=p->next;fclose(fp);structStudent*load(charfilename)(FILE*fp;structStudent*head,*p1,*p2;head=NULL;p1=NULL;if(fp=fopen(filename,"rb")=NULL)(printf("cannotopenfilen");exit(0);while(!feof(fp)(p2=(structStudent*)malloc(LEN);if(fread(p2,LEN,1,fp)=1)(if(h

21、ead=NULL)head=p2;if(p1)p1->next=p2;p1=p2;p1->next=NULL;return(head);錄入函數(shù)*/voidenter()/*(structStudent*head,*p;charselect='y',cla10;intsub,stu,num,flag=0;printf("請輸入上課班級:");scanf("%s",cla);strcat(cla,".dat");p=head=load(cla);system("cls");while(se

22、lect='y'|select='Y')(printf("nnn");printf("t*n");printf("t*ttttttt*n");printf("t*tttttttprintf("t*1*n");、高等數(shù)學(xué)tt2tt*n");printf("t*ttttttt*n");printf("t*3、大學(xué)物理tt4、馬克思基來源根基理概論*n");、C程序設(shè)計基礎(chǔ)t6、教師口語ttprintf("t*ttttt

23、tt*n");printf("t*5*n");printf("t*tttttttprintf("t*7printf("t*tttttttprintf("t*ttttttt*n");*n");*n");tttttt*n");printf("t*n");printf("n");printf("ttt請輸入科目選項(xiàng)(17):ntttt");scanf("%d”,&sub);while(1)(if(sub>0&

24、amp;&sub<8)break;elseprintf("ttt輸入錯誤,請重新輸入ntttt");scanf("%d”,&sub);system("cls");printf("請輸入本次課缺席同學(xué)的座號:");scanf("%d",&stu);printf("n");printf("請輸入該同學(xué)的缺課節(jié)數(shù):");scanf("%d",&num);while(p!=NULL)if(p->num=stu)

25、switch(sub)case1:p->math+=num;break;case2:p->English+=num;break;case3:p->physics+=num;break;case4:p->Mks+=num;break;case5:p->C+=num;break;case6:p->teal+=num;break;case7:p->PE+=num;break;p=p->next;printf("nntt*輸入成功*!n");printf("是否繼續(xù)輸入(yn):");scanf("%c&

26、quot;,&select);save(head,cla);getch();system("cls");mune_2();voidsearch_1(void)/*查詢個人信B*/structStudent*head,*p;charselect='y',cla10;intnum,flag=0;printf("請輸入上課班級:");scanf("%s",cla);strcat(cla,”.dat");p=head=load(cla);printf("請輸入要查詢同學(xué)的座號:");sca

27、nf("%d”,&num);system("cls");while(p!=NULL)(if(p->num=num)(printf("nn");printf("*n");座號姓名性別數(shù)學(xué)英語物理馬克思C語言教師口語體育n");%3d%8s%4s%5d%5d%5d%5d%3d%7d%8dn",p-printf("printf(">num,p->name,p->sex,p->math,p->English,p->physics,p->M

28、ks,p->C,p->teal,p->PE);printf("*n");flag=1;p=p->next;if(flag=0)printf("tt!沒有這個學(xué)生信息,請核對后再輸入!!nn");getch();system("cls");mune_2();voidsearch_2(void)/*詢某班級信息*/(charcla10;structStudent*head,*p;printf("請輸入您要查詢的班級名:");gets(cla);system("cls");printf("nttt%s班的考勤情況nn",cla);strcat(cla,”.dat");p=head=load(cla);printf(*n");printf("座號姓名性別數(shù)學(xué)英語物理馬克思C語言教師口語體育n");u*while(p!=NULL)(printf("%3d%8s%4s%5d%5d%5d%5d%3d%7d%8dn",p->num,p->name,p->sex,

溫馨提示

  • 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

提交評論