C語言課程設(shè)計(jì)-學(xué)生選修課程系統(tǒng)設(shè)計(jì)_第1頁
C語言課程設(shè)計(jì)-學(xué)生選修課程系統(tǒng)設(shè)計(jì)_第2頁
C語言課程設(shè)計(jì)-學(xué)生選修課程系統(tǒng)設(shè)計(jì)_第3頁
C語言課程設(shè)計(jì)-學(xué)生選修課程系統(tǒng)設(shè)計(jì)_第4頁
C語言課程設(shè)計(jì)-學(xué)生選修課程系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯C語言課程設(shè)計(jì)-學(xué)生選修課程系統(tǒng)設(shè)計(jì)1、學(xué)生選修課系統(tǒng)設(shè)計(jì)一、設(shè)計(jì)目的當(dāng)今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息系統(tǒng)的環(huán)境。

2、計(jì)算機(jī)的最到好處的于利用它能夠進(jìn)行信息管理,使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。

尤其對于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。

3、計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。

本系統(tǒng)就是為了管理好學(xué)生選課信息而設(shè)計(jì)的。

4、數(shù)據(jù)處理手工操作,工作量大,出錯率高,出錯后不易更改,造成了時間上的浪費(fèi)。

5、基于這個問題,我認(rèn)為有必要建立一個學(xué)生選課系統(tǒng),使學(xué)生選課信息管理工作規(guī)范化、系統(tǒng)化、程序化,避免學(xué)生選課管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時、準(zhǔn)確、有效的查詢和修改選課情況。

6、二、題目說明假定有n門課程,每門課程都有課程編號,課程名稱,課程性質(zhì),總學(xué)時,授課學(xué)時,實(shí)驗(yàn)或上機(jī)學(xué)時,學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于自由選課。

7、試設(shè)計(jì)一選修課程系統(tǒng),使之能提供一下功能:(系統(tǒng)以菜單方式工作;(課程信息和學(xué)生信息的錄入功能(課程信息有文件保存)-輸入;(課程信息瀏覽功能-輸出;(查詢功能(至少一種查詢方式)-算法;(按學(xué)分查詢;(某門課程學(xué)生選修情況(可選項(xiàng))。

8、提示數(shù)據(jù)結(jié)構(gòu)可用結(jié)構(gòu)體,包括課程和選秀兩個結(jié)構(gòu)體,其中課程結(jié)構(gòu)體包括課程編號、課程名稱、課程性質(zhì)、總學(xué)時、授課學(xué)時、實(shí)驗(yàn)或上機(jī)學(xué)時、學(xué)分、開課學(xué)期。

選修結(jié)構(gòu)體成員包括學(xué)號,課程編號,該結(jié)構(gòu)體的建立主要是為了查詢某門課程學(xué)生選修情況.。

三、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)的實(shí)現(xiàn),全部采用鏈表這種數(shù)據(jù)結(jié)構(gòu),用鏈表實(shí)現(xiàn)課程的查找、添加、刪除、課程的選修、追加選修的課程,課程信息采用結(jié)構(gòu)體這種數(shù)據(jù)結(jié)構(gòu)。

typedefstructsubjects0intnum;/課程編號charname20;/課程名稱charkind10;/課程性質(zhì)intstime;/總學(xué)時intttime;/授課學(xué)時intetime;/實(shí)驗(yàn)或上機(jī)學(xué)時intscore;/學(xué)分intterm;/開課學(xué)期structsubjects*next;SUB;SUB*head=NULL;四、程序分析現(xiàn)代的社會是信息化的社會,信息無所不在。

在生產(chǎn)領(lǐng)域、流通領(lǐng)域、各個部門每天都和信息打交道,如何處理如此多的信息成為了一個重要的課題。

學(xué)生在學(xué)期開始選課是教學(xué)活動中的一個重要環(huán)節(jié),該環(huán)節(jié)如果能管理好,它不僅能加快學(xué)生的選課速度,也提高了整個活動的效率。

大學(xué)一般都有上千名學(xué)生,每學(xué)期開始學(xué)生都要選課,因而產(chǎn)生了大量的課程信息。

考慮到用戶使用的方便和處理的信息量系統(tǒng)要完成錄入,保存,查詢,修改和刪除課程信息的各種過程,能打印出課程信息表。

對象:系統(tǒng)的主要使用對象是需要選課的學(xué)生。

學(xué)生在選課是要察看各個課程的詳細(xì)信息,還要選擇一些感興趣的課程,需要生成課表,在發(fā)現(xiàn)課程有沖突后能夠修改先前選擇的信息。

需要隨學(xué)生選課的變化,計(jì)算相應(yīng)的總學(xué)分。

在全部選定后,打印報表。

系統(tǒng)還需要管理員來查看和修改學(xué)生的總體選課情況課程信息和學(xué)生信息。

五、程序設(shè)計(jì)大綱1主模塊管理員模塊學(xué)生模塊瀏覽課程查詢課程添加課程刪除課程瀏覽所有課程查詢課程信息選擇選修課程瀏覽我選修的課程刪除錯選的課程2六、模塊設(shè)計(jì)(一)主函數(shù),頭文件及結(jié)構(gòu)體聲明主函數(shù)設(shè)計(jì)地比較簡潔,只是提供一個主菜單,switch語句將整個程序分為兩個大的功能模塊:進(jìn)入選課系統(tǒng)選擇序號進(jìn)行選課進(jìn)入下一層程序#includestdio.h#includestring.h#includestdlib.h#includemalloc.hvoidprin1();voidchoose();typedefstructsubjects/課程結(jié)構(gòu)體intnum;/課程編號charname20;/課程名稱charkind10;/課程性質(zhì)intstime;/總學(xué)時intttime;/授課學(xué)時intetime;/實(shí)驗(yàn)或上機(jī)學(xué)時intscore;/學(xué)分intterm;/開課學(xué)期structsubjects*next;SUB;SUB*head=NULL;intmain()intn,w=1;dosystem(cls);puts(nntt*MENU*nn);3puts(tttt以管理員身份登錄n);puts(tttt以學(xué)生身份登錄n);puts(tttt退出);puts(nntt*n);printf(Chioseyournumber(1-:bb);scanf(%d,n);switch(n)caseMangers();break;caseStudents();break;casew=0;break;default:;while(w=;return0;(二)管理員功能模塊管理員的功能一共有四個功能:瀏覽,查詢,添加,刪除課程,運(yùn)用字符串處理函數(shù)處理密碼的問題,用一個switch語句實(shí)現(xiàn)函數(shù)的調(diào)用:管理員登錄菜單i=3是否i0輸入密碼是否進(jìn)行碼匹對驗(yàn)證進(jìn)入管理員界面按任意鍵退出4程序voidMangers()intn,w=1,flag=0,i=3;chars8;charpassword7=1;doprintf(nnEnterpassword:);scanf(%s,s);if(!strcmp(s,password)/進(jìn)行密碼匹配驗(yàn)證flag=1;break;elseprintf(nnError!Youonlyhave%dtimes!Enteragain:n,i-;i-;while(i;if(!flag)printf(youhaveEnter3times!);/輸入密碼超過了3次!exit(;/自動退出dosystem(cls);puts(nntt*管*nn);puts(tttt1-瀏覽課程n);puts(tttt2-查詢課程n);puts(tttt3-添加課程n);puts(tttt4-刪除課程n);puts(tttt5-返回主菜單);理員菜單puts(nntt*n);printf(Chioseyournumber(1-:bb);scanf(%d,n);switch(n)caseprin();break;5casesearch();break;caseinsert();savefile();break;casedel();savefile();break;casereturn;default:;while(w=;voidStudents()intn,w=1;dosystem(cls);puts(nntt*nn);puts(tttt1-瀏覽所有課程n);puts(tttt2-查詢課程信息n);puts(tttt3-選擇選修課程n);puts(tttt4-瀏覽我選修的課程n);puts(tttt5-刪除錯選課程n);puts(tttt6-返回主菜單);學(xué)生菜單puts(nntt*n);printf(Chioseyournumber(1-:bb);scanf(%d,n);switch(n)caseprin();break;casesearch();break;casechoose();break;caseprin1();break;casedel();savefile1();break;casereturn;default:;while(w=;(三)學(xué)生功能菜單學(xué)生功能菜單包括六個功能:瀏覽課程,查詢課程,選修課程,瀏覽我所選修的課程,6添加選修課程,刪除錯選的課程,也是用到switch語句來調(diào)用函數(shù):學(xué)生登錄菜單按1-6數(shù)字鍵進(jìn)入各選項(xiàng)瀏覽所有課程查詢課程信息選擇選修課程瀏覽我選修的課程刪除錯選課程返回主菜單進(jìn)入所選目標(biāo)程序voidStudents()/學(xué)生登錄菜單intn,w=1;dosystem(cls);puts(nntt*學(xué)生菜單*nn);puts(tttt1-瀏覽所有課程n);puts(tttt2-查詢課程信息n);puts(tttt3-選擇選修課程n);puts(tttt4-瀏覽我選修的課程n);puts(tttt5-刪除錯選課程n);puts(tttt6-返回主菜單);puts(nntt*n);printf(Chioseyournumber(1-:bb);scanf(%d,n);switch(n)caseprin();break;7casesearch();break;casechoose();break;caseprin1();break;casedel();savefile1();break;casereturn;default:;while(w=;(四)創(chuàng)建鏈表模塊8創(chuàng)建鏈表輸入選修課程信息(num,name,kind,stime,ttime,etime,score,term)是否Num!=0p=(SUB*)malloc(size);p-num=num;strcpy(p-name,name);strcpy(p-kind,kind);p-stime=stime;p-ttime=ttime;p-etime=etime;p-score=score;p-term=term;否是Head=NULLTail-next=p;Tail=p;Head=pScanf(num,name,kind,Tail-next=NULL;Returnhead;創(chuàng)建完成stime,ttime,etim9程序SUB*create_form()/創(chuàng)建鏈表SUB*head,*tail,*p;intnum,stime,ttime;intetime,score,term;charname20,kind10;intsize=sizeof(SUB);head=tail=NULL;printf(輸入選修課程信息:n);scanf(%d%s%s%d%d%d%d%d,num,name,kind,stime,ttime,etime,score,term);while(num!=p=(SUB*)malloc(size);p-num=num;strcpy(p-name,name);strcpy(p-kind,kind);p-stime=stime;p-ttime=ttime;p-etime=etime;p-score=score;p-term=term;if(head=NULL)head=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;returnhead;10瀏覽所有課程SUB*ptr;head=NULL;readfile();是否Head=NULLPrintf(NORECORDS);Return;輸出課程信息(五)瀏覽模塊瀏覽模塊主要用管理員中的“瀏覽課程”和學(xué)生功能中的“瀏覽所有所有課程”,將所有的課程信息輸出,即將all_sub.txt文件里面的內(nèi)容全部輸出:11程序voidprin()/瀏覽所有課程SUB*ptr;head=NULL;readfile();if(head=NULL)printf(nnt*NORECORDS!*n);return;printf(課程編號課程名稱課程性質(zhì)總學(xué)時授課學(xué)時實(shí)踐或上機(jī)學(xué)時學(xué)分開課學(xué)期n);for(ptr=head;ptr;ptr=ptr-next)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);system(pause);voidprin1()/瀏覽所有已選修課程SUB*ptr;FILE*fp;if(fp=fopen(txt,r)=NULL)printf(Cannotopenfile.n);choose();printf(課程編號課程名稱課程性質(zhì)總學(xué)時授課學(xué)時實(shí)踐或上機(jī)學(xué)時學(xué)分開課學(xué)期n);while(!feof(fp)ptr=(SUB*)malloc(sizeof(SUB);fscanf(fp,%d%s%s%d%d%d%d%dn,ptr-num,ptr-name,ptr-kind,ptr-stime,ptr-ttime,p

溫馨提示

  • 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

提交評論