


版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)課題名稱(chēng) 學(xué)生考勤信息記錄系統(tǒng)專(zhuān) 業(yè)計(jì)算機(jī)科學(xué)和技術(shù)班 級(jí)1102姓 名學(xué) 號(hào) 111110063 111110077 111110081、111110098指導(dǎo)教師陳世基2012 年 06 月 18 日第1章設(shè)計(jì)目的第2章總體設(shè)計(jì)第3章詳細(xì)設(shè)計(jì)第4章調(diào)試和測(cè)試第5章總結(jié)和體會(huì)附:源程序清單和執(zhí)行結(jié)果 .第1章設(shè)計(jì)目的本次c語(yǔ)言課程設(shè)計(jì)是對(duì)本學(xué)期程序設(shè)計(jì)基礎(chǔ)課程的實(shí)際使用,也算是對(duì)所學(xué)知識(shí)的一次檢驗(yàn), 通過(guò)本次課程設(shè)計(jì)能達(dá)到的 目的如下:1. 鞏固和加深對(duì)C課程基本內(nèi)容和理論知識(shí)的理解和掌握。2. 掌握C語(yǔ)言編譯和程序調(diào)試的基本技能。3. 利用 C 語(yǔ)言進(jìn)行基本的程序設(shè)計(jì)從
2、而逐步了解文件的一些相 關(guān)操作和掌握函數(shù)的使用技巧, 包括函數(shù)類(lèi)型的選擇, 含參數(shù)的 傳遞方式。4. 掌握使用數(shù)組,指針,引用,文件等編譯的方法,提高運(yùn)用 C 語(yǔ)言解決實(shí)際問(wèn)題的能力。5. 通過(guò)對(duì)學(xué)生考勤系統(tǒng)的設(shè)計(jì)、編寫(xiě)源代碼,以及對(duì) C語(yǔ)言 中各個(gè)語(yǔ)法和函數(shù)的使用, 使得對(duì)比較復(fù)雜的結(jié)構(gòu)體、 鏈接、 文件的操作更加熟悉。6. 通過(guò)課程設(shè)計(jì), 將本學(xué)期所學(xué)知識(shí)和實(shí)際使用聯(lián)系和結(jié)合起來(lái), 培養(yǎng)自己的動(dòng)手能力, 以及加強(qiáng)各學(xué)科之間的聯(lián)系, 從而提高個(gè) 人的團(tuán)隊(duì)意識(shí),增強(qiáng)團(tuán)隊(duì)之間協(xié)調(diào)和配合第 2 章 總體設(shè)計(jì)2.1 學(xué)生考勤信息記錄系統(tǒng)的要求 通過(guò)該系統(tǒng)實(shí)現(xiàn)對(duì)學(xué)生考勤信息進(jìn)行創(chuàng)建、錄入、修改、查詢(xún)、
3、保存等操作的管理。 實(shí)驗(yàn)考勤信息包括學(xué)生姓名,學(xué)號(hào),學(xué)科種類(lèi),各科的考勤信息。主要功能:1)、能夠完成對(duì)考勤的錄入和修改2)、創(chuàng)建一個(gè)班級(jí)的信息3)、設(shè)備的查詢(xún)2.2流程圖根據(jù)設(shè)計(jì)要求,畫(huà)出如下流程圖:/*錄入函數(shù)*/*查詢(xún)函數(shù)_1*/*查詢(xún)函數(shù)2*/2.3設(shè)置的主要函數(shù)void creat(void);void save(struct Student *,char );struct Student *load(char );void enter(void);void search_1(void);void search_2(void);void add(void);void modify(v
4、oid);/*修改函數(shù)*/void back(void);/*退出函數(shù)*/void mune_1();/*界面-1*/void mune_2();/*界面-2*/mune_1();mune_2();第3章詳細(xì)設(shè)計(jì)3.1函數(shù)以及調(diào)用關(guān)系*菜單函數(shù)1*/*菜單函數(shù)2*/void mune_1();/void mune_2()退 出 系 統(tǒng)¥錄入記創(chuàng)建信*修改信查詢(xún)整p_>num=a/*查詢(xún)個(gè)人信息*/開(kāi)始void search_1(void);返回菜單2輸入此人所在班級(jí)和學(xué)號(hào)a輸出此人的考勤信息返回菜單2void search_2(void); /* 查詢(xún)班級(jí)信息 */廣m開(kāi)始輸入
5、要查詢(xún)的班別假I(mǎi)felse結(jié)構(gòu)和 while while(p1- >num!=O) n=n+1;if(n=1)關(guān)閉文件head=p1;else p2->next=p1;p2=p1;p1=(struct Student *)malloc(LEN);scanf("%s%d%s",p1->name,&p1->num,p1->sex);p1->math=p1->English=p1->physics=p1->Mks=p1->C=p1->teal=p1->PE=0;p2->next=NULL;p=h
6、ead;while(p!=NULL)fwrite(p,LEN,1,fp);p=p->next;fclose(fp);printf("ttt 創(chuàng)建成功,按任意鍵返回主菜單 n");getch();system("cls");mune_2();2 switch 結(jié)構(gòu)switch(sub)case 1: p->math+=num;break;case 2: p->English+=num;break;case 3: p->physics+=num;break;case 4: p->Mks+=num;break;case 5: p-
7、>C+=num;break;case 6: p->teal+=num;break;case 7: p->PE+=num;break;3while 結(jié)構(gòu)while(p!=NULL)if(p->num=a)prin tf("ntt請(qǐng)重新輸入高等數(shù)學(xué)缺勤節(jié)數(shù):");scan f("%d",&p->math);prin tf("ntt請(qǐng)重新輸入大學(xué)英語(yǔ)缺勤節(jié)數(shù):");scan f("%d",&p->E nglish);printf("ntt請(qǐng)輸入大學(xué)物理缺勤節(jié)數(shù)
8、:");scan f("%d",&p->physics);prin tf("ntt請(qǐng)重新輸入馬克思主義基本原理和概論缺勤節(jié)數(shù):");scan f("%d",&p->Mks);printf("ntt請(qǐng)重新輸入C語(yǔ)言缺勤節(jié)數(shù):");scan f("%d",&p->C);prin tf("ntt請(qǐng)重新輸入英語(yǔ)口語(yǔ)缺勤節(jié)數(shù):");scan f("%d",&p->teal);prin tf("
9、;ntt請(qǐng)重新輸入體育缺勤節(jié)數(shù)目:");scan f("%d",&p->PE);flag=1;save(head,cla);printf("ntt修改成功!ntt");break;p=p->n ext;第4章調(diào)試和測(cè)試4.1調(diào)試執(zhí)行程序時(shí),顯示如下信息選擇不同的選項(xiàng),執(zhí)行相應(yīng)的功能性別飛名i倉(cāng)白歲 nnnrh_l-l12 3000«志蠶亠m請(qǐng)輸入本表課缺席同學(xué)的座號(hào)5話犧 菁祎犧卄構(gòu)禱 菁 醫(yī)弭 普特善* 科蕃犧禪犧 特站普 群 普* 善持骨禱 禱弭普 處貝 斑生MEil 跖當(dāng)苗;五itiJiW 口古田軸臨廠I;五
10、卅吉請(qǐng)輸入蘿修改的班級(jí):1102請(qǐng)輸入要修改的學(xué)生的座號(hào)認(rèn)11座號(hào)邈亙性別數(shù)學(xué)英語(yǔ)物理馬克思石語(yǔ)言教師口語(yǔ)體肓感謝址的使用是用來(lái)做什么的。不過(guò),這些感受都是在對(duì)這I門(mén)課程不了解的情況下產(chǎn)生的。后來(lái)慢慢的接觸多了,聽(tīng)老師講的多了, 了解多了,漸漸的產(chǎn)生了興趣。尤其是學(xué)到語(yǔ)句和函數(shù)時(shí), 上機(jī)操作程序,經(jīng)過(guò)編譯,調(diào)試和運(yùn)行后,出現(xiàn)界面,當(dāng)時(shí)覺(jué)得很好奇,想真正的學(xué)好這門(mén)課程。 通過(guò)半個(gè)學(xué)期的學(xué)習(xí), 我掌握了基本知識(shí) 下學(xué)期開(kāi)始時(shí),被通知要進(jìn)行課程設(shè)計(jì)。當(dāng)時(shí)有點(diǎn)懵,感覺(jué) 學(xué)的東西很少,很零散,不知該怎么連到一起,就要課程設(shè) 計(jì),是不是太難為我們了。第一天基本上都是在看書(shū),把基本知識(shí)再熟悉一遍。到了下 午
11、的時(shí)候,看了很多練習(xí)題,從這些練習(xí)題上我得到了不少 啟發(fā),然后我們組把整個(gè)程序的思路理清了,開(kāi)始著手寫(xiě)程 序。第一周結(jié)束的時(shí)候,我感覺(jué)自己收獲挺大的,從一開(kāi)始的迷 茫,不知道從何下手到把程序中的幾個(gè)模塊編寫(xiě)出來(lái),心里 挺開(kāi)心的。但是,接下來(lái),我們又不得不再次陷入困境。在 整個(gè)程序的編寫(xiě)過(guò)程中, 最難的就是修改和刪除這兩個(gè)模塊, 這也是我們要解決的重點(diǎn)問(wèn)題。開(kāi)始編寫(xiě)修改和刪除時(shí),很頭疼,去向其他人尋求幫助,在 別人的幫助和提示下, 我編完了修改程序, 但編譯時(shí)老出錯(cuò), 修改后的內(nèi)容將文本內(nèi)的信息全部覆蓋了。困難之時(shí),我們 組的其他人,幫助了我,完成了修改和刪除,這讓我認(rèn)識(shí)到 團(tuán)隊(duì)的力量。這樣的話
12、,整個(gè)程序基本上全部完成了,就剩 下完善工作了。我們組寫(xiě)了兩個(gè)程序,最后,兩個(gè)程序相互 組合,互補(bǔ),大功告成雖然設(shè)計(jì)時(shí)完成了,但是我覺(jué)得其中還是有一些不足之處:1. 警告句。程序中缺少一些警告句,例如 : “是否真的刪除 ( y/n )?”2. 重名的情況。由于考慮的不周全,沒(méi)有設(shè)計(jì)遇到重名的 情況該怎么處理。3. 選擇單一。我們?cè)O(shè)計(jì)的程序中,只設(shè)計(jì)了按名字選擇, 進(jìn)行操作,忽略了重名的情況。整個(gè)程序完成了,還有很多不完善的地方,希望自己以后辦 事的時(shí)候要認(rèn)真,仔細(xì),考慮周全。短短的幾周課程設(shè)計(jì)結(jié)束了,但是這段時(shí)間里,我又學(xué)到了 更多 C 知識(shí),如 : 對(duì)象數(shù)組, string 類(lèi),文件流,鏈
13、表以及 文件對(duì)鏈表的操作等, 同時(shí)我也被提醒以后辦事的時(shí)候要認(rèn) 真,仔細(xì),考慮周全,也看到了團(tuán)隊(duì)精神和互幫互助的重要 性。這一點(diǎn)會(huì)讓我終生受益。通過(guò)這次課程設(shè)計(jì),我覺(jué)得自 己肚子里的墨水多了,收獲也挺大的,這幾周過(guò)的挺充實(shí)! *附:源程序清單和執(zhí)行結(jié)果#include<stdio.h>#include<stdlib.h>#include <conio.h>#include<string.h>#define LEN sizeof(struct Student)struct Studentint num;char name15;char sex4;i
14、nt math, English,physics,Mks,C,teal,PE;struct Student *next;int n;void main()void creat(void);void save(struct Student *,char ); struct Student *load(char );void enter(void);void search_1(void);void search_2(void);void modify(void);void back(void);void mune_1();void mune_2();mune_1();mune_2();printf
15、("n");/*錄入函數(shù) */*查詢(xún)函數(shù) _1*/*查詢(xún)函數(shù) _2*/*修改函數(shù) */*退出函數(shù) */*界面 -1*/*界面 -2*/printf("nnnnnn");printf("t*")printf("ttt* I!);printf("ttt*歡迎使用班級(jí)考勤*printf("ttt* I!);printf("nt*nnn");*printf("=");printf("nnntttt< 按任意鍵進(jìn)入 >nttttt");getc
16、h();system("cls");int option,ch;/*printf("nnn"); /*定義一個(gè)選項(xiàng)的數(shù)據(jù)類(lèi)型 */制作的一個(gè)漂亮的選擇界面 */printf("t*n");printf("t*ttttttt printf("t*ttttttt printf("t* 1 勤信息 t *n");printf("t*ttttttt printf("t* 3 *n");printf("t*ttttttt printf("t* 5 系統(tǒng) t
17、 *n");printf("t*ttttttt printf("t*ttttttt*n");*n");、錄入本次課考勤情況 t 2 、查詢(xún)學(xué)生考*n");、創(chuàng)建學(xué)生信息 tt 4*n");、查看班級(jí)考勤情況*n");*n");、修改學(xué)生信息 tt 6 、退出考勤printf("t*n");printf("n");printf("ttt 請(qǐng)輸入您所需的操作 (16):ntttt"); while(1)scanf("%d",&am
18、p;option);switch(option)case 1: ch=getchar();system("cls");enter();break;case 2: ch=getchar();system("cls");search_1();break;case 3: ch=getchar();system("cls");creat();break;case 4: ch=getchar();system("cls");modify();break;case 5: ch=getchar();system("cl
19、s");search_2();break;case 6: ch=getchar();system("cls");back();break;default: printf("ttt 輸入錯(cuò)誤,請(qǐng)重新輸入 !");printf("ntttt");ch=getchar();void save(struct Student *head,char filename)FILE *fp;struct Student *p=head;if(fp=fopen(filename,"wb")=NULL)printf("
20、;can not open filen");exit(0);while(p!=NULL)fwrite(p,LEN,1,fp);p=p->next;fclose(fp);struct Student *load(char filename)FILE *fp;struct Student *head,*p1,*p2; head=NULL;p1=NULL;if(fp=fopen(filename,"rb")=NULL) printf("can not open filen");exit(0);while(!feof(fp)p2=(struct
21、Student *)malloc(LEN); if(fread(p2,LEN,1,fp)=1)if(head=NULL) head=p2;if(p1)p1->next=p2;p1=p2;p1->next=NULL;return (head);/*錄入void enter()函數(shù)*/struct Student *head,*p; char select='y',cla10;int sub,stu,num,flag=0;printf(" 請(qǐng)輸入上課班級(jí): "); scanf("%s",cla); strcat(cla,"
22、;.dat");p=head=load(cla);system("cls"); while(select='y'|select='Y') printf("nnn");printf("t* * * * * * * * *n");*n");*n");printf("t*tttttttprintf("t*tttttttprintf("t* 1、高等數(shù)學(xué) tt 2、大學(xué)英語(yǔ) tt*n");printf("t* 3、大學(xué)物理 tt 4
23、、馬克思基本原理*n");printf("t*ttttttt*n");概論 *n");printf("t*tttttttprintf("t* 5、 C 程序設(shè)計(jì)基礎(chǔ)t 6 、教師口語(yǔ) tt *n");*n");printf("t*tttttttprintf("t*ttttttt *n");printf("t*ttttttt *n");printf("t* * * * * * * * * * * * * * * * * * * * * * * * * * *
24、 *n");printf("n");printf("ttt 請(qǐng)輸入科目選項(xiàng) (17):ntttt");scanf("%d",&sub);while(1)if(sub>0&&sub<8)break;elseprintf("ttt 輸入錯(cuò)誤, 請(qǐng)重新輸入 ntttt"); scanf("%d",&sub);system("cls");printf(" 請(qǐng)輸入本次課缺席同學(xué)的座號(hào): ");scanf(&quo
25、t;%d",&stu);printf("n");printf(" 請(qǐng)輸入該同學(xué)的缺課節(jié)數(shù): ");scanf("%d",&num);while(p!=NULL)if(p->num=stu) switch(sub)case 1: p->math+=num;break;case 2: p->English+=num;break;case 3: p->physics+=num;break;case 4: p->Mks+=num;break;case 5: p->C+=num;br
26、eak;case 6: p->teal+=num;break;case 7: p->PE+=num;break;p=p->next;printf("nntt* 輸入成功 *!n");printf(" 是否繼續(xù)輸入 (yn):");scanf("%c",&select);save(head,cla);getch();system("cls");mune_2();search_1(void)數(shù)學(xué) 英語(yǔ) 物理void/* 查詢(xún)個(gè)人信息 */struct Student *head,*p;char
27、 select='y',cla10;int num,flag=0;printf(" 請(qǐng)輸入上課班級(jí): ");scanf("%s",cla);strcat(cla,".dat");p=head=load(cla);printf(" 請(qǐng)輸入要查詢(xún)同學(xué)的座號(hào): ");scanf("%d",&num);system("cls");while(p!=NULL)if(p->num=num)printf("nn");printf("
28、;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf(" 座號(hào) 姓名 性別 馬克思 C 語(yǔ)言 教師口語(yǔ) 體育 n");printf(" %3d %8s %4s%5d %5d %5d %5d %3d %7d %8dn",p->num,p->name,p->sex,p->math,p->English,p->physics,p->Mks,p->C,p->teal,p->P
29、E);printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");flag=1;p=p->next;if(flag=0)printf("tt! 沒(méi) 有 這 個(gè) 學(xué) 生 信 息 , 請(qǐng) 核 對(duì) 后 再 輸入!nn");getch();system("cls");mune_2();void search_2(void) /* 查詢(xún)某班級(jí)信息 */char cla10;struct Student *head,*p;p
30、rintf(" 請(qǐng)輸入您要查詢(xún)的班級(jí)名: ");gets(cla);system("cls");printf("n ttt%s 班的考勤情況 nn",cla);strcat(cla,".dat");p=head=load(cla);printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");馬克printf(" 座號(hào) 姓名 性別 數(shù)學(xué) 英語(yǔ) 物理 思 C 語(yǔ)言 教師口語(yǔ)
31、 體育 n");while(p!=NULL)printf(" %3d %8s %4s%5d %5d %5d %5d %3d %7d %8d n",p->num,p->name,p->sex,p->math,p->English,p->physics,p->Mks,p->C,p->teal,p->PE);p=p->next;printf("n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
32、*n");getch();system("cls");mune_2();void modify(void) /* 修改函數(shù) */int a,flag=0;char cla10;struct Student *head,*p;printf("ntt 請(qǐng)輸入要修改的班級(jí): ");scanf("%s",cla);strcat(cla,".dat");p=head=load(cla);printf("ntt 請(qǐng)輸入要修改的學(xué)生的座號(hào) :");scanf("%d",&
33、a);while(p!=NULL)if(p->num=a)printf("ntt請(qǐng)重新輸入高等數(shù)學(xué)缺勤節(jié)數(shù) :");scanf("%d",&p->math);printf("ntt請(qǐng)重新輸入大學(xué)英語(yǔ)缺勤節(jié)數(shù) :");scanf("%d",&p->English);printf("ntt請(qǐng)輸入大學(xué)物理缺勤節(jié)數(shù) :");scanf("%d",&p->physics);printf("ntt論缺勤節(jié)數(shù) :");sc
34、anf("%d",&p->Mks); printf("ntt scanf("%d",&p->C); printf("ntt scanf("%d",&p->teal); printf("ntt scanf("%d",&p->PE);flag=1; save(head,cla);printf("ntt break;請(qǐng)重新輸入馬克思主義基本原理和概請(qǐng)重新輸入C語(yǔ)言缺勤節(jié)數(shù):");請(qǐng)重新輸入英語(yǔ)口語(yǔ)缺勤節(jié)數(shù) :");請(qǐng)重新輸入體育缺勤節(jié)數(shù)目 :");修改成功 !ntt");p=p-&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療教育資源分配與教育公平的關(guān)聯(lián)性研究
- 商業(yè)分析中的數(shù)字資源應(yīng)用探討
- 教育技術(shù)創(chuàng)新成果AI作文批改與智能輔助系統(tǒng)
- 大數(shù)據(jù)驅(qū)動(dòng)的教育變革教育質(zhì)量躍升的新引擎
- 菌類(lèi)養(yǎng)殖大棚建造方案
- 煤炭出口措施方案
- 學(xué)生心理輔導(dǎo)與教育心理學(xué)的跨學(xué)科研究
- 宣傳企業(yè)欄目方案模板
- 硫酸廠管道安裝方案
- 烘焙企業(yè)晉升方案模板
- 錦江之星企業(yè)文化
- 人工智能在智能檢驗(yàn)中的應(yīng)用
- 球磨工培訓(xùn)課件
- 《計(jì)算機(jī)總復(fù)習(xí)》課件
- 材料科學(xué)基礎(chǔ)第七章:二元相圖及其合金的凝固
- 數(shù)據(jù)治理課件
- 某煤礦雙軌運(yùn)輸水平大巷斷面及爆破設(shè)計(jì)
- 人力資源專(zhuān)員筆試題及答案
- 2022-2023學(xué)年北京市通州區(qū)高一期末語(yǔ)文試卷及答案解析
- 譯林版九年級(jí)上下冊(cè)英語(yǔ)單詞表(含音標(biāo))
- 大力加強(qiáng)依法治校推進(jìn)學(xué)校治理體系與治理能力現(xiàn)代化課件
評(píng)論
0/150
提交評(píng)論