C語(yǔ)言程序的設(shè)計(jì)報(bào)告學(xué)生選修課系統(tǒng)方案_第1頁(yè)
C語(yǔ)言程序的設(shè)計(jì)報(bào)告學(xué)生選修課系統(tǒng)方案_第2頁(yè)
C語(yǔ)言程序的設(shè)計(jì)報(bào)告學(xué)生選修課系統(tǒng)方案_第3頁(yè)
C語(yǔ)言程序的設(shè)計(jì)報(bào)告學(xué)生選修課系統(tǒng)方案_第4頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、.C語(yǔ)言程序設(shè)計(jì)學(xué)校 :學(xué)院 :班級(jí)序號(hào) :.專(zhuān)業(yè)專(zhuān)注.學(xué)號(hào) :姓名 :指導(dǎo)老師 :C 語(yǔ)言程序設(shè)計(jì)報(bào)告一 、C 語(yǔ)言課程設(shè)計(jì)的目的:高級(jí)語(yǔ)言課程設(shè)計(jì)是學(xué)習(xí)完高級(jí)語(yǔ)言程序設(shè)計(jì)課程后進(jìn)行的一次全面的綜合性上機(jī)實(shí)驗(yàn)。其目的在于為同學(xué)提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉同學(xué)的分析解決實(shí)際問(wèn)題的能力。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力。二、題目學(xué)生選修課程系統(tǒng)設(shè)計(jì)假 定 有 n 門(mén) 課 程 ,每 門(mén) 課 程 有 課 程 編 號(hào) 、課 程 名 稱(chēng) 、 課 程 性 質(zhì) 、總 學(xué) 時(shí) 、授課學(xué)時(shí)、實(shí)驗(yàn)或商機(jī)學(xué)時(shí)、血粉、開(kāi)課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少

2、于 60)自由選課。1、要求:試設(shè)計(jì)一個(gè)選修課程系統(tǒng),使之能提供以下功能:( 1)系統(tǒng)以菜單方式工作。( 2)課程信息和學(xué)生選課信息輸入功能(課程信息用文件保存)輸 入 。.專(zhuān)業(yè)專(zhuān)注.( 3)課程信息瀏覽功能 輸出。( 4)查詢(xún)功能(至少一種查詢(xún)方式) 算法。( 5)按學(xué)分查詢(xún)。( 6)某門(mén)課程學(xué)生選修情況(可選項(xiàng))。2、分析:由于題目要求將學(xué)生的選課信息用結(jié)構(gòu)體形式輸入,并寫(xiě)入文件中,所以應(yīng)提供文件的輸入輸出等操作:在過(guò)程中需有瀏覽、插入、修改、查找、刪除學(xué)生選課信息等操作,顧應(yīng)分別建立個(gè)功能模塊;另外還應(yīng)提供鍵盤(pán)式選擇菜單實(shí)現(xiàn)程序運(yùn)行。3、總體設(shè)計(jì):根據(jù)題目要求,可以將系統(tǒng)分為六個(gè)模塊:1

3、)系統(tǒng)以菜單方式工作模塊;2)課程信息與學(xué)生選課信息錄入功能模塊;3)課程信息瀏覽功能模塊;4)查詢(xún)模塊;5)按學(xué)分查詢(xún)模塊;6)某些課程學(xué)生選修情況模塊。.專(zhuān)業(yè)專(zhuān)注.工資信息管理系統(tǒng)系統(tǒng)課程課程查按某些以菜信息信息詢(xún)學(xué)課程單方與學(xué)瀏覽模分學(xué)生式 工生選功能塊查選修作 模課信模 塊詢(xún)情況塊息錄模模 塊入 功塊能 模塊4 詳細(xì)設(shè)計(jì):#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct subjectsint num;char name20;char kind10;int s

4、time;int ttime;int etime;int score;int term;主流程圖:開(kāi)始顯示一系列功能選擇N結(jié)束判斷.專(zhuān)業(yè)專(zhuān)注.struct subjects *next;SUB;SUB *create_form()SUB *head,*tail,*p;int num,stime,ttime;int etime,score,term;char name20,kind10;int size=sizeof(SUB);head=tail=NULL;printf("輸 入 選 修 課 程 信 息 :n");scanf("%d %s %s %d %d %d %

5、d %d",&num,&name,&kind,&stime,&ttime,&etime,&score,&term);while(num!=0)p=(SUB *)malloc(size);p->num=num;strcpy(p->name,name);.專(zhuān)業(yè)專(zhuān)注.strcpy(p->kind,kind);p->stime=stime;p->ttime=ttime;p->etime=etime;p->score=score;p->term=term;if(head=NULL)h

6、ead=p;elsetail->next=p;tail=p;scanf("%d %s %s %d %d %d %d %d",&num,&name,&kind,&stime,&ttime,&etime,&score,&term);tail->next=NULL;return head;void savefile(SUB *head)開(kāi)始SUB *p;.專(zhuān)業(yè)專(zhuān)注.FILE *fp;輸出fp=fopen("subjects.txt","w");寫(xiě)入文件并儲(chǔ)存輸入結(jié)束

7、fprintf(fp,"課程編號(hào)課程名稱(chēng)課程性質(zhì)總學(xué)時(shí)授課學(xué)時(shí)實(shí)驗(yàn)或上 機(jī) 學(xué) 時(shí)學(xué) 分開(kāi) 課 學(xué) 期 n");for(p=head;p;p=p->next)fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7dn",p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term);.專(zhuān)業(yè)專(zhuān)注.fclose(fp);void savefileadd(SUB *head)SUB *p;FILE *fp;fp=f

8、open("subjectsadd.txt","w");fprintf(fp,"課程編號(hào)課程名稱(chēng)課程性質(zhì)總學(xué)時(shí)授課學(xué)時(shí)實(shí)驗(yàn)或上 機(jī) 學(xué) 時(shí)學(xué) 分開(kāi) 課 學(xué) 期 n");for(p=head;p;p=p->next)fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7dn",p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term);fclose(fp);void

9、savefiledel(SUB *head)SUB *p;FILE *fp;fp=fopen("subjectsdel.txt","w");.專(zhuān)業(yè)專(zhuān)注.fprintf(fp,"課程編號(hào)課程名稱(chēng)課程性質(zhì)總學(xué)時(shí)授課學(xué)時(shí)實(shí)驗(yàn)或上 機(jī) 學(xué) 時(shí)學(xué) 分開(kāi) 課 學(xué) 期 n");for(p=head;p;p=p->next)fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7dn",p->num,p->name,p->kind,p->stime,p->ttime,p-&g

10、t;etime,p->score,p->term);fclose(fp);void prin(SUB *head)SUB *ptr;if(head=NULL)printf("沒(méi) 有 此 門(mén) 課 程 記 錄 !n");return;.專(zhuān)業(yè)專(zhuān)注.printf("課程編號(hào)課程名稱(chēng)課程性質(zhì)總學(xué)時(shí)授課學(xué)時(shí)實(shí)踐或上機(jī) 學(xué) 時(shí)學(xué) 分開(kāi) 課 學(xué) 期 n");for(ptr=head;ptr;ptr=ptr->next)printf("%5d%12s%9s%9d%9d%11d%11d%7dn",ptr->num,ptr->

11、name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);開(kāi)始void search(SUB *head)打開(kāi)文件查看學(xué)生選課信息int a,num;判斷查詢(xún)方法2int t=1;char type10;char ch='a',ch1;1SUB *ptr ;按課程性質(zhì)按學(xué)分查輸入結(jié)束.專(zhuān)業(yè)專(zhuān)注.while(ch!=' ')printf("若 要 按 課 程 性 質(zhì) 查 找 請(qǐng) 輸 入 1 , 若 要 按 學(xué) 分 查 找 請(qǐng) 輸 入 2:

12、n");scanf("%d",&a);switch(a)case 1:printf("請(qǐng) 輸 入 要 查 找 的 課 程 的 性 質(zhì) :n");scanf("%s",type);printf("課程編號(hào)課程名稱(chēng)課程性質(zhì)總學(xué)時(shí)授課學(xué)時(shí)實(shí)踐或上 機(jī) 學(xué) 時(shí)學(xué) 分開(kāi) 課 學(xué) 期 n");for(ptr=head;ptr;ptr=ptr->next)if(strcmp(type,ptr->kind)=0)printf("%5d%12s%9s%9d%9d%11d%11d%7dn&quo

13、t;,ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);t=0;if(t) printf("未 找 到 !n");t=1;.專(zhuān)業(yè)專(zhuān)注.break;case 2:printf("輸 入 要 查 找 的 課 程 的 學(xué) 分 n");scanf("%d",&num);printf("課程編號(hào)課程名稱(chēng)課程性質(zhì)總學(xué)時(shí)授課學(xué)時(shí)實(shí)踐或上 機(jī) 學(xué) 時(shí)學(xué) 分開(kāi) 課 學(xué) 期

14、 n");for(ptr=head;ptr;ptr=ptr->next)if(ptr->score=num)printf("%5d%12s%9s%9d%9d%11d%11d%7dn",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);t=0;if(t) printf("未 找 到 !n");t=1;printf("繼 續(xù) 查 找 請(qǐng) 按 回 車(chē) 鍵 ,結(jié) 束

15、請(qǐng) 按 空 格 鍵 :n");ch1=getchar();/ 將回車(chē)鍵賦給CH1,否則 CASE 里面最后輸入的回車(chē)鍵會(huì)賦給 CH,因此用 CH1填補(bǔ)。ch=getchar();.專(zhuān)業(yè)專(zhuān)注.SUB *insert(SUB *head)SUB *ptr,*ptr2,*subj;int size=sizeof(SUB);char ch='a',ch1;while(ch!=' ')subj=(SUB *)malloc(size);ptr=subj;printf("輸 入 要 插 入 的 課 程 信 息 :n");scanf("%

16、d%s%s%d%d%d%d%d",&subj->num,subj->name,subj->kind,&subj->stime,&subj->ttime,&subj->etime,&subj->score,&subj->term);if(head=NULL)head=ptr;head->next=NULL;elsefor(ptr2=head;ptr2;ptr2=ptr2->next).專(zhuān)業(yè)專(zhuān)注.if(ptr2->next=NULL)ptr2->next=subj;su

17、bj->next=NULL;break;printf("繼 續(xù) 插 入 請(qǐng) 按 回 車(chē) , 結(jié) 束 請(qǐng) 按 空 格 :n");ch1=getchar();/ 將回車(chē)鍵賦給CH1,否則 subj->term輸 完 后 輸 入 的 回 車(chē) 鍵 會(huì) 賦 給 CH ,因 此 用 CH1填 補(bǔ) 。ch=getchar();return head;SUB *del(SUB *head)SUB *p1,*p2;char ch='a',ch1;int num;while(ch!=' ')printf("輸 入 想 要 刪 除 的 課 程

18、 編 號(hào) :n");scanf("%d",&num);.專(zhuān)業(yè)專(zhuān)注.if(head->num=num)p2=head;head=head->next;free(p2);if(head=NULL)return NULL;p1=head;p2=head->next;while(p2)if(p2->num=num)p1->next=p2->next;free(p2);else p1=p2;.專(zhuān)業(yè)專(zhuān)注.p2=p1->next;printf("繼 續(xù) 刪 除 請(qǐng) 按 回 車(chē) , 結(jié) 束 請(qǐng) 按 空 格 :n"

19、;);ch1=getchar();/ 將回車(chē)鍵賦給CH1 ,否則num 輸 完 后 再 輸 入 的 回 車(chē) 鍵 會(huì) 賦 給 CH , 因 此 用 CH1填 補(bǔ) 。ch=getchar();開(kāi)始輸入、選課return head;判斷是否是要選的課程N(yùn)void choose(SUB *head)選定、輸出結(jié)束SUB *p,*q;int a5;int num,total=0,i=0,j;printf("輸入要選修的課程的編號(hào),編號(hào)之間以空格分開(kāi),輸完后以0結(jié)束.專(zhuān)業(yè)專(zhuān)注.n");scanf("%d",&num);while(num!=0)for(p=h

20、ead;p;p=p->next)if(p->num=num)total=total+p->score;ai=num;i+;scanf("%d",&num);if(total<60) printf("選 修 總 學(xué) 分 未 達(dá) 到 60, 選 修 失 敗 !n");else printf("選 修 成 功 !n");printf("您 選 修 的 課 程 為 :n");for(j=0;j<i;j+)for(q=head;q;q=q->next).專(zhuān)業(yè)專(zhuān)注.if(q->

21、num=aj)printf("%s",q->name);printf("n");printf("*n");printf("*n");printf("*n");printf("*n");void main()SUB *head=create_form();savefile(head);prin(head);search(head);head=insert(head);/注 意 此 處 的 必 要 性 函 數(shù)insert的 的 返 回 值 重 新 賦 給head!savefileadd(head);.專(zhuān)業(yè)專(zhuān)注.printf("修 改 后 的 信 息 為 :n");prin(head);head=del(head);/ 注 意 此 處 的 必 要 性 ,數(shù)del的

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論