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

下載本文檔

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

文檔簡介

c語言課程設(shè)計報告學(xué)生選修課系統(tǒng)設(shè)計一、設(shè)計目的當(dāng)今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,這正是計算機(jī)被廣泛應(yīng)用于信息系統(tǒng)的環(huán)境。計算機(jī)的最到好處的于利用它能夠進(jìn)行信息管理,使用計算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復(fù)雜的信息管理,計算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好學(xué)生選課信息而設(shè)計的。數(shù)據(jù)處理手工操作,工作量大,出錯率高,出錯后不易更改,造成了時間上的浪費(fèi)?;谶@個問題,我認(rèn)為有必要建立一個學(xué)生選課系統(tǒng),使學(xué)生選課信息管理工作規(guī)范化、系統(tǒng)化、程序化,避免學(xué)生選課管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時、準(zhǔn)確、有效的查詢和修改選課情況。二、題目說明假定有n門課程,每門課程都有課程編號,課程名稱,課程性質(zhì),總學(xué)時,授課學(xué)時,實驗或上機(jī)學(xué)時,學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課。試設(shè)計一選修課程系統(tǒng),使之能提供一下功能:(1) 系統(tǒng)以菜單方式工作;(2) 課程信息和學(xué)生信息的錄入功能(課程信息有文件保 存)-輸入;(3) 課程信息瀏覽功能-輸出;(4) 查詢功能(至少一種查詢方式)-算法;(5) 按學(xué)分查詢;(6) 某門課程學(xué)生選修情況(可選項)。提示數(shù)據(jù)結(jié)構(gòu)可用結(jié)構(gòu)體,包括課程和選秀兩個結(jié)構(gòu)體,其中課程結(jié)構(gòu)體包括課程編號、課程名稱、課程性質(zhì)、總學(xué)時、授課學(xué)時、實驗或上機(jī)學(xué)時、學(xué)分、開課學(xué)期。選修結(jié)構(gòu)體成員包括學(xué)號,課程編號,該結(jié)構(gòu)體的建立主要是為了查詢某門課程學(xué)生選修情況.。三、數(shù)據(jù)結(jié)構(gòu)設(shè)計本系統(tǒng)的實現(xiàn),全部采用鏈表這種數(shù)據(jù)結(jié)構(gòu),用鏈表實現(xiàn)課程的查找、添加、刪除、課程的選修、追加選修的課程,課程信息采用結(jié)構(gòu)體這種數(shù)據(jù)結(jié)構(gòu)。typedef struct subjects int num; /課程編號 char name20; /課程名稱 char kind10; /課程性質(zhì) int stime; /總學(xué)時 int ttime; /授課學(xué)時 int etime; /實驗或上機(jī)學(xué)時 int score; /學(xué)分 int term; /開課學(xué)期 struct subjects *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é)生選課的變化,計算相應(yīng)的總學(xué)分。在全部選定后,打印報表。系統(tǒng)還需要管理員來查看和修改學(xué)生的總體選課情況課程信息和學(xué)生信息。五、程序設(shè)計大綱主 模 塊管理員模塊學(xué)生模塊瀏覽課程查詢課程添加課程刪除課程瀏覽所有課程查詢課程信息選擇選修課程瀏覽我選修的課程刪除錯選的課程六、模塊設(shè)計(一) 主函數(shù),頭文件及結(jié)構(gòu)體聲明主函數(shù)設(shè)計地比較簡潔,只是提供一個主菜單,switch語句將整個程序分為兩個大的功能模塊:進(jìn)入選課系統(tǒng)選擇序號進(jìn)行選課進(jìn)入下一層程序#include stdio.h#include string.h#include stdlib.h#includemalloc.hvoid prin1();void choose();typedef struct subjects /課程結(jié)構(gòu)體 int num; /課程編號 char name20; /課程名稱 char kind10; /課程性質(zhì) int stime; /總學(xué)時 int ttime; /授課學(xué)時 int etime; /實驗或上機(jī)學(xué)時 int score; /學(xué)分 int term; /開課學(xué)期 struct subjects *next;sub;sub *head=null;int main()int n,w=1;do system(cls); puts(nntt*menu*nn);puts(tttt1.以管理員身份登錄n);puts(tttt2.以學(xué)生身份登錄n);puts(tttt3.退出);puts(nntt*n);printf(chiose your number(1-3): bb);scanf(%d,&n);switch(n)case 1:mangers() ;break;case 2:students();break;case 3:w=0;break;default:; while(w=1); return 0;(二) 管理員功能模塊管理員的功能一共有四個功能:瀏覽,查詢,添加,刪除課程,運(yùn)用字符串處理函數(shù)處理密碼的問題,用一個switch語句實現(xiàn)函數(shù)的調(diào)用:管理員登錄菜單輸入密碼進(jìn)行碼匹對驗證進(jìn)入管理員界面i=3i0按任意鍵退出是否否是程序void mangers() int n,w=1,flag=0,i=3; char s8; char password7=1; do printf(nnenter password:); scanf(%s,s); if(!strcmp(s,password) /進(jìn)行密碼匹配驗證 flag=1; break; else printf(nnerror! you only have %d times! enter again:n,i-1); i-; while(i0); if(!flag) printf(you have enter 3 times!); /輸入密碼超過了3次! exit(0); /自動退出 do system(cls); puts(nntt*管理員菜單*nn); puts(tttt1-瀏覽課程n);puts(tttt2-查詢課程n); puts(tttt3-添加課程n); puts(tttt4-刪除課程n);puts(tttt5-返回主菜單);puts(nntt*n); printf(chiose your number(1-5): bb); scanf(%d,&n); switch(n) case 1:prin();break; case 2:search();break; case 3:insert();savefile();break; case 4:del();savefile();break; case 5:return; default:; while(w=1);void students()int n,w=1; do system(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(chiose your number(1-6): bb); scanf(%d,&n); switch(n) case 1:prin();break; case 2:search();break; case 3:choose();break; case 4:prin1();break; case 5:del();savefile1();break; case 6:return; default:; while(w=1);(三) 學(xué)生功能菜單學(xué)生功能菜單包括六個功能:瀏覽課程,查詢課程,選修課程,瀏覽我所選修的課程,添加選修課程,刪除錯選的課程,也是用到switch語句來調(diào)用函數(shù):學(xué)生登錄菜單按1-6數(shù)字鍵進(jìn)入各選項1、瀏覽所有課程2、查詢課程信息3、選擇選修課程4、瀏覽我選修的課程5、刪除錯選課程6、返回主菜單進(jìn)入所選目標(biāo)程序void students() /學(xué)生登錄菜單int n,w=1; do system(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(chiose your number(1-6): bb); scanf(%d,&n); switch(n) case 1:prin();break; case 2:search();break; case 3:choose();break; case 4:prin1();break; case 5:del();savefile1();break; case 6:return; default:; while(w=1);(四) 創(chuàng)建鏈表模塊創(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=nullhead=ptail-next=p;tail=p;tail-next=null;return head;創(chuàng)建完成scanf(num,name,kind,&stime,&ttime,&etime,&score,&term);是是否否程序sub *create_form() /創(chuàng)建鏈表 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%d%d,&num,name,kind,&stime,&ttime,&etime,&score,&term);while(num!=0) 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; else tail-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;瀏覽所有課程sub *ptr;head=null;readfile();head=nullprintf(no records);return;輸出課程信息是否(五) 瀏覽模塊瀏覽模塊主要用管理員中的“瀏覽課程”和學(xué)生功能中的“瀏覽所有所有課程”,將所有的課程信息輸出,即將all_sub.txt文件里面的內(nèi)容全部輸出:程序void prin() /瀏覽所有課程sub *ptr;head=null;readfile();if(head=null)printf(nnt*no records!*n);return;printf(課程編號 課程名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 實踐或上機(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);void prin1() /瀏覽所有已選修課程sub *ptr;file *fp;if(fp=fopen(3.txt,r)=null)printf(cannot open file.n);choose();printf(課程編號 課程名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 實踐或上機(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,&ptr-etime,&ptr-score,&ptr-term);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);(六) 查詢模塊查詢模塊主要用于管理員功能中的“查詢課程”和學(xué)生功能模塊中的“查詢所有課程”,查詢模塊共分為三個查詢方法:按課程名稱查找,按課程性質(zhì)查找和按學(xué)分查找switch語句中,每一個case語句就是一中查詢方法:課程信息查詢按1-4數(shù)字鍵進(jìn)入各選項1、按課程名稱查找2、按課程性質(zhì)查找3、按學(xué)分查找4、退出查找進(jìn)入所選目標(biāo)程序void search() /課程信息查詢 int a,num; int t=1; char type10,min10; sub *ptr; l1:system(cls);printf(nntt*請選擇查詢方式*n); printf(nttt1-按課程名稱查找n); printf(nttt2-按課程性質(zhì)查找n); printf(nttt3-按學(xué)分查找n); printf(nttt4-退出查找n); printf(nntt*n); printf(nnchiose your number(1-4): bb); scanf(%d,&a); switch(a) case 1:printf(請輸入要查找的課程的名稱:);scanf(%s,min);printf(課程編號 課程名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 實踐或上機(jī)學(xué)時 學(xué)分 開課學(xué)期n);for(ptr=head;ptr;ptr=ptr-next)if(strcmp(min,ptr-name)=0) 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(tn未找到!n);t=1;system(pause);goto l1; case 2:printf(請輸入要查找的課程的性質(zhì):); scanf(%s,type); printf(課程編號 課程名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 實踐或上機(jī)學(xué)時 學(xué)分 開課學(xué)期n); for(ptr=head;ptr;ptr=ptr-next) if(strcmp(type,ptr-kind)=0) 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(tn未找到!n);t=1;system(pause);goto l1; case 3:printf(輸入要查找的課程的學(xué)分:); scanf(%d,&num); printf(課程編號 課程名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 實踐或上機(jī)學(xué)時 學(xué)分 開課學(xué)期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(nt未找到!n);t=1;system(pause);goto l1;case 4:break;t=0;if(t) printf(nt未找到!n);t=1;system(pause);goto l1;case 4:break; /退出查找(七) 插入鏈表模塊插入鏈表操作主要用于添加課程,在整個課程信息中加入一些新課程,它在添加模塊中被調(diào)用:插入鏈表模塊sub *p1,*p2;p1=subj;head=nullhead=p1;head-next=null;p2=head;p2;p2=p2-nextp2-next=nullp2-next=subj;subj-next=null;break;eturn head;是否否否是是程序void *myinsert(sub *subj) /鏈表插入操作 sub *ptr,*ptr2; ptr=subj; if(head=null) head=ptr; head-next=null; else for(ptr2=head;ptr2;ptr2=ptr2-next)插入課程信息sub *ptr,*subj;int size=sizeof(sub);char ch,ch1;ch!=0輸入(課程信息、課程編號、課程名稱、課程性質(zhì)、總學(xué)分、授課學(xué)分、實踐或上機(jī)學(xué)時)ch1=getchar();ch=getchar();return head;myinsert(subj);printf(nn繼續(xù)插入請按回車 c語言課程設(shè)計報告n);printf(n結(jié)束添加課程按 0 )是否if(ptr2-next=null) ptr2-next=subj; subj-next=null; break; return head;(八) 添加模塊添加模塊主要用于增加課程信息,采用鏈表的操作:程序void *insert() /插入課程信息 sub *ptr,*subj;int size=sizeof(sub);char ch,ch1;while(ch!=0)subj=(sub *)malloc(size);ptr=subj;printf(輸入要插入的課程信息:n);printf(ntt 請輸入課程編號:);scanf(%d,&subj-num); printf(ntt請輸入課程名稱:);scanf(%s,&subj-name); printf(ntt 請輸入課程性質(zhì):);scanf(%s,&subj-kind); printf(ntt請輸入總學(xué)時:);scanf(%d,&subj-stime);printf(ntt請輸入授課學(xué)時:);scanf(%d,&subj-ttime);printf(ntt請輸入實踐或上機(jī)學(xué)時:);scanf(%d,&subj-etime);printf(ntt請輸入學(xué)分:);scanf(%d,&subj-score);printf(ntt請輸入開課學(xué)期:);scanf(%d,&subj-term);myinsert(subj);printf(nn繼續(xù)插入請按回車n);printf(n結(jié)束添加課程按 0: bb);ch1=getchar(); /*將回車鍵賦給ch1,否則subj-term輸完后輸入的回車鍵會賦給ch,因此用ch1填補(bǔ)。*/ch=getchar(); return head;(九) 刪除模塊刪除模塊主要用于管理員刪除課程信息學(xué)生刪除自己的選課,全部采用刪除鏈表中的某一個節(jié)點(diǎn)的操作:刪除選修課程sub *p1,*p2;char ch,ch1;int numprintf(輸入想要刪除的課程編號);scanf(%d,&num);進(jìn)行編號查找并刪除printf(n繼續(xù)刪除請按回車n);printf(n結(jié)束刪除課程按 0: );程序void *del() /刪除課程-sub *p1,*p2;char ch,ch1;int num;while(ch!=0)printf(輸入想要刪除的課程編號: bbbbb);scanf(%d,&num);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;p2=p1-next;printf(n繼續(xù)刪除請按回車n);printf(n結(jié)束刪除課程按 0: bb);ch1=getchar(); /將回車鍵賦給ch1,否則num輸完后再輸入的回車鍵會賦給ch,因此用ch1填補(bǔ)。ch=getchar();return head;system(pause);(十) 選修課程模塊選修課程模塊采用插入鏈表的操作:選新課程printf(輸入要選修的課程的編號n);printf(如果確認(rèn)輸入完要選修的課程的編號,請輸入0);程序?qū)斎氲男畔⑦M(jìn)行查找判斷printf(“選修成功! n)printf(n以上信息全部保存在my_sub.txt中n)程序void choose() /選新課程sub *p,*q;int a5;int num,total=0,i=0,j;printf(輸入要選修的課程的編號,編號之間以空格分開n);scanf(%d,&num);printf(如果確認(rèn)輸入完要選修的課程的編號,請輸入0: bb);while(num!=0)for(p=head;p;p=p-next)if(p-num=num)total=total+p-score;ai=num;i+;scanf(%d,&num);if(total60) printf(選修總學(xué)分為%d,未達(dá)到60,選修失敗!n,total);system(pause);else int file,fp;file *fp;fp=fopen(my_sub.txt,w);for(j=0;jnext)if(q-num=aj)fprintf(fp,%5d%12s%9s%9d%9d%11d%11d%7dn,q-num,q-name,q-kind,q-stime,q-ttime,q-etime,q-score,q-term);fclose(fp);printf(ttn*選修成功!*n);printf(n您選修的課程總學(xué)分為%d,課程分別為:n,total);printf(n課程編號 課程名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 實踐或上機(jī)學(xué)時 學(xué)分 開課學(xué)期n);for(j=0;jnext)if(q-num=aj)printf(%5d%12s%9s%9d%9d%11d%11d%7dn,q-num,q-name,q-kind,q-stime,q-ttime,q-etime,q-score,q-term);printf(n以上信息全部保存在my_sub.txt中n);system(pause);(十一) 讀取文件模塊讀取文件模塊是用來讀出文件內(nèi)容,并將內(nèi)容輸出到內(nèi)存中,當(dāng)輸入文件名時,就能打開指定的文件,當(dāng)輸入all_sub.txt時,打開所有課程信息的文件,當(dāng)輸入my_sub.txt時,就是瀏覽學(xué)生選修的課程信息。讀取文件printf(請輸入課程信息所在的文件名稱:);!feof(fp)c=fgetc(fp)=n!feof(fp)newsub=(sub*)malloc(sizeof(sub);fscanf(fp,&newsub-num,newsub-name,newsub-kind,&newsub-stime,&newsub-ttime,&newsub-etime,&newsub-score,&newsub-term);myinsert(newsub);fclose(fp);程序void readfile() /閱讀文件 void *myinsert(sub*);sub *newsub; /新課程 int num,stime,ttime,etime; int score,term; char c,name20,kind10,fname20;file *fp;fp=fopen(2.txt,r); while(!feof(fp) newsub=(sub*)malloc(sizeof(sub);fscanf(fp,%d%s%s%d%d%d%d%dn,&newsub-num,newsub-name,newsub-kind,&newsub-stime,&newsub-ttime,&newsub-etime,&newsub-score,&newsub-term);myinsert(newsub); fclose(fp);(十二) 保存文件模塊保存文件模塊共分為兩個子程序,分別是將修改的信息保存到all_sub.txt和my_sub.txt文件中:程序void savefile() /保存文件 sub *p;file *fp;fp=fopen(2.txt,w);if(fp=null)exit(0); printf(課程編號 課程名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 實驗或上機(jī)學(xué)時 學(xué)分 開課學(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);printf(創(chuàng)建后的信息已放入2.txt文件中n);system(pause);void savefile1() /保存文件 sub *p;file *fp;fp=fopen(3.txt,w);if(fp=null)exit(0);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); printf(創(chuàng)建后的信息已放入3.txt文件中n);system(pause); 保存文件系統(tǒng)進(jìn)行檢測所要保存的文件fprintf(fp,課程編號 課程名稱 課程性質(zhì) 總學(xué)時 授課學(xué)時 實驗或上機(jī)學(xué)時 學(xué)分 開課學(xué)期n);p=head;p;p=p-nextfprintf(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);printf(創(chuàng)建后的信息已放入all_sub.txt文件中n);system(pause);七、上機(jī)操作開始運(yùn)行管理員界面課程輸入模塊管理員瀏覽模塊管理員課程查詢模塊管理員添加模塊管理員刪除模塊學(xué)生界面選課模塊學(xué)生瀏覽模塊學(xué)生查詢模塊學(xué)生刪除模塊八、結(jié)果分析程序的優(yōu)缺點(diǎn)【功能上的優(yōu)點(diǎn)】主要體現(xiàn)在以下三點(diǎn):1.簡潔明了的程序菜單。程序主要采用了六組層次不同的菜單,相互獨(dú)立又相互聯(lián)系,巧妙相接,符合用戶的使用習(xí)慣與思維。2.人性化的程序提示語言,程序提示語言較人性化,不僅大多為祈使語句、疑問句,而且提示明確,具有較強(qiáng)的明確的指導(dǎo)作用。程序提示不僅層次分明,提示方式多樣,而且提示信息井然有序,更加有利于用戶順利、準(zhǔn)確地進(jìn)行程序的操作。3.智能化的模塊設(shè)計。程序的智能化主要體現(xiàn)在減少了許多人工操作。如功能模塊操作結(jié)束后,均會返回主菜單進(jìn)行下一模板的運(yùn)行,并提示是否再進(jìn)行類似的操作,這樣給用戶帶來了操作的方便,大大提高了學(xué)生選課的效率。本程序達(dá)到了c語言課程設(shè)計題目的所有要求。即本程序(1)系統(tǒng)一菜單方式工作(2)課程信息和學(xué)生選課信息錄入功能(課程信息用文件保存輸入(3)課程信息瀏覽功能輸出(4)查詢功能(至少一種查詢方式)算法(5)按學(xué)分查詢(6)某門課程學(xué)生選修情況(可選項)的功能要求。與此同時,程序各模塊開發(fā)設(shè)計依據(jù)了程序的具體實際的使用情景,而有所改進(jìn),使其更具有實用性?!境绦虻娜秉c(diǎn)】主要表現(xiàn)在以下四點(diǎn):1.程序雖然經(jīng)過多次精簡,但僅僅是形式上、小范圍的精簡,仍未得到本質(zhì)上的精簡,即未找到更加簡單、更加高效、更加合理、更小占用的資源的算法。2.程序仍然存在不合理的地方,例如程序某些部分輸入錯誤會導(dǎo)致程序中止或轉(zhuǎn)向其他功能模塊,即程序建議用戶注意提示,進(jìn)行合理的準(zhǔn)確的輸入,這樣更有利于管理工作。3.程序功能仍然不夠完善。例如信息表達(dá)方式不豐富,比較單一,缺少圖片、音樂等元化表達(dá)方式。附錄(源程序代碼)#include stdio.h#include string.h#include stdlib.h#includemalloc.hvoid prin1();void choose();typedef struct subjects int num; /課程編號 char name20; /課程名稱 char kind10; /課程性質(zhì) int stime; /總學(xué)時 int ttime; /授課學(xué)時 int etime; /實驗或上機(jī)學(xué)時 int score; /學(xué)分 int term; /開課學(xué)期 struct subjects *next;sub;sub *head=null;sub *create_form() /創(chuàng)建鏈表 sub *head,*tail,*p; int num,stime,ttime; int etime,score,term; char name20,

溫馨提示

  • 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

提交評論