c語言課程信息管理系統(tǒng)課程設(shè)計報告_第1頁
c語言課程信息管理系統(tǒng)課程設(shè)計報告_第2頁
c語言課程信息管理系統(tǒng)課程設(shè)計報告_第3頁
c語言課程信息管理系統(tǒng)課程設(shè)計報告_第4頁
c語言課程信息管理系統(tǒng)課程設(shè)計報告_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-PAGE.z.成績《C語言程序設(shè)計》課程設(shè)計報告專業(yè):班級:姓名:指導(dǎo)教師:二零一二年十二月二十六日目錄一、設(shè)計題目……………2二、設(shè)計目的……………2三、設(shè)計內(nèi)容……………23.1需求分析……………23.2概要設(shè)計…………33.3詳細(xì)設(shè)計…………63.5編寫過程中遇到的問題及解決辦法……………73.4調(diào)試結(jié)果…………83.6課程設(shè)計總結(jié)……………………16四、參考書目…………17附錄A程序源代碼…………………18一、設(shè)計題目:課程信息管理系統(tǒng)二、設(shè)計目的1、熟練掌握C語言課程中所學(xué)的理論知識;2、通過綜合C語言的基本知識來解決實際問題;3、加強分析和解決問題的能力。三、設(shè)計內(nèi)容3.1需求分析設(shè)計對n門課程進(jìn)行管理的課程信息管理系統(tǒng),每門課程有課程編號,課程名稱,課程性質(zhì)(B為必修,*為選修),總學(xué)時,學(xué)分等。系統(tǒng)功能包括:1、系統(tǒng)以菜單方式工作,密碼登陸。2、課程信息的錄入功能(增加數(shù)據(jù))。用數(shù)組數(shù)據(jù)類型賦初值的方法把課程信息送到各個數(shù)組中(但注意要是合法數(shù)據(jù)),然后把它們輸出顯示。3、課程信息的刪除(刪除數(shù)據(jù))。任意輸入一門課程的編號,將它所有的信息從數(shù)組中刪除。4、課程信息的瀏覽功能(查找數(shù)據(jù))。任意輸入一門課程的編號,打印出所有相關(guān)數(shù)據(jù)。要求能多次查找。5、課程信息的刪除(修改數(shù)據(jù))。任意輸入一門課程的編號,打印出所有相關(guān)信息后,可對*一項信息進(jìn)行修改并保存。6、課程信息的計算并排序。計算所有課程的總學(xué)分及平均學(xué)分(aver,單精度,輸出一位小數(shù)),將包括所有數(shù)據(jù)的數(shù)組元素按價格從高到低的順序排序打印出來。3.2概要設(shè)計程序流程圖:開始開始根據(jù)菜單輸入d的值選擇程序Quit()函數(shù)輸入c==1查詢課程信息課程信息的錄入退出刪除課程信息修改課程信息輸入3輸入2輸入1輸入4輸入5瀏覽課程信息課程學(xué)分排序保存是否繼續(xù)進(jìn)行結(jié)束菜單NY模塊分解:voidpasd();//聲明密碼函數(shù)聲明部分(1)主函數(shù)模塊voidzhujie();//聲明zhujie()函數(shù)zhujie();//調(diào)用zhujie()函數(shù)調(diào)用部分pasd();//調(diào)用密碼函數(shù)聯(lián)系聯(lián)系聲明部分:voidyewu();//聲明業(yè)務(wù)函數(shù)(2)密碼模塊調(diào)用部分:yewu();//調(diào)用業(yè)務(wù)函數(shù)聯(lián)系聯(lián)系voidinputcouinfo(void);//聲明輸入函數(shù)voidupdatecouinfo(void);//聲明修改函數(shù)voidaddcouinfo(void);//聲明添加函數(shù)聲明部分voidfindcouinfo(void);//聲明查詢函數(shù)voidordercouinfo(void);//聲明排序函數(shù)(3)業(yè)務(wù)模塊voiddelcouinfo(void);//聲明刪除函數(shù)inputcouinfo();//調(diào)用輸入函數(shù)case'1':findcouinfo();break;//調(diào)用課程信息查詢調(diào)用部分case'2':delcouinfo();break;//調(diào)用課程信息刪除case'3':updatecouinfo();break;//調(diào)用課程信息修改case'4':ordercouinfo();break;//調(diào)用課程信息排序case'5':addcouinfo();break;//調(diào)用課程信息添加數(shù)據(jù)結(jié)構(gòu)的說明:#definen120//控制課程個數(shù)的存儲空間#definem15//控制課程屬性個數(shù)的存儲空間空間charcouinfo[n1][m1][16];//定義全局?jǐn)?shù)組charpassword[]={"123456"};//原密碼inta,i,j,t=0,c=0,n=4,m=5;//定義全局變量密碼模塊:charp[9];//定義密碼數(shù)組p[i]==8//控制退格p[i]==13//回車控制strcmp(p,password)==0//密碼匹配字符串比較函數(shù)intn=3;//密碼輸入次數(shù)控制業(yè)務(wù)模塊:system("cls");//清屏函數(shù)3.3詳細(xì)設(shè)計密碼模塊:定義數(shù)組密碼intn=3;n=3;n=3;intn=3;inti定義數(shù)組密碼intn=3;n=3;n=3;intn=3;inti;密碼是否匹配密碼是否匹配n為控制輸入密碼次數(shù)注釋n為控制輸入密碼次數(shù)進(jìn)入業(yè)務(wù)函數(shù)Y(是)N(否)進(jìn)入業(yè)務(wù)函數(shù)YN結(jié)束始結(jié)束始開始開始刪除模塊:chary[16];chary1[16];intd,*,z;定義變量數(shù)組開始chary[16];chary1[16];intd,*,z;定義變量數(shù)組開始scanf("%d",&*);輸入一個*值注釋scanf("%d",&*);輸入一個*值*值是否等于0注釋*值是否等于0Y與Y1是否相等輸入Y,Y1的值結(jié)束YNY與Y1是否相等輸入Y,Y1的值結(jié)束顯示沒有刪除的課程刪除該課程結(jié)束YN顯示沒有刪除的課程刪除該課程結(jié)束3.4編寫過程中遇到的問題及解決辦法(1)在調(diào)試函數(shù)的過程時,一般高級語言要求函數(shù)實參與形參個數(shù)與類型一致,但在C語言編譯在該點檢查不嚴(yán)格。當(dāng)出現(xiàn)實參與形參類型不一致時,編譯運行時,系統(tǒng)不報錯。因此,錯誤隱含了下來,給程序調(diào)試帶來了困難。解決方法是:一開始,我自己仔細(xì)查找自己的程序的錯誤,但最終在老師的幫助下,找到了程序的錯誤。并將其改正,使程序正常運行。(2)當(dāng)要求從鍵盤讀入一字符串時,若選用輸入的函數(shù)不當(dāng)時,則容易造成錯誤,并很難發(fā)現(xiàn)。解決方法:自己認(rèn)真并且反復(fù)檢查以及老師的幫助。3.5調(diào)試結(jié)果界面3.6課程設(shè)計總結(jié)課程管理信息系統(tǒng)心得課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對我們的實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計算機應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握程序開發(fā)技術(shù)是十分重要的,而C語言又是最常見,功能最強大的一種高級語言,因此做好C語言課程設(shè)計是十分必要的。回顧起此次課程設(shè)計,至今我們?nèi)愿锌H多,的確,自從拿到題目到完成整個編程,從理論到實踐,在整整半個月的日子里,可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我們懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計之后,我們把前面所學(xué)過的知識又重新溫故了一遍。我做的是課程管理信息系統(tǒng),雖然是很簡單的一個小的程序,但對我一個初學(xué)者來說卻是一個很大的困難。更加是第一次做這樣的課程設(shè)計,所以第一天下午在機房做了一個下午卻絲毫沒有進(jìn)展,最主要是不知從何開始,這個時候才知道上課老師們不厭其煩的教導(dǎo)是多么的寶貴,這個時候才后悔上課的時候沒有認(rèn)真的聽講??墒乾F(xiàn)在一切都晚了,還好時間還算是充裕,只好拿出書本重新復(fù)習(xí)一下。特別是函數(shù)調(diào)用和數(shù)組的部分,幾乎是一片空白。不過經(jīng)過幾天的努力,大體上把課本上的知識點看了一遍,知識點也都基本是撐握了,所以下一步就是開始正式的編程序了。不過畢竟是個新手,還是不知如何下手,于是就在網(wǎng)上下了一篇類似的程序,經(jīng)過仔細(xì)的研究,終于讀懂了C語言編程的基本過程和方法。經(jīng)過一波三折,終于開始正式編程。編程是一件很枯燥很無聊的事情,但是出于完成作業(yè),得到學(xué)分的壓力,還必須強迫自己堅持下去,按照老師所說的模塊化思想,分部分的進(jìn)行編寫。而且編程是一件高精度、模范化的事情,稍有疏乎都會影響全局,也可能因為*一處的小的錯誤而導(dǎo)致整個程序的無法運行。無論如何是自己的勞動成果,是自己經(jīng)過努力得到的成績,同時也是學(xué)習(xí)C語言的一次實踐作業(yè),自己進(jìn)步的證明。通過這次課程設(shè)計,使我對C語言有了更進(jìn)一步的認(rèn)識和了解,要想學(xué)好它要重在實踐,要通過不斷的上機操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學(xué)習(xí)也有所改進(jìn);再有對C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐的學(xué)習(xí),我認(rèn)識到學(xué)好計算機要重視實踐操作,不僅僅是學(xué)習(xí)C語言,還是其它的語言,以及其它的計算機方面的知識都要重在實踐,所以后在學(xué)習(xí)過程中,我會更加注視實踐操作,使自己便好地學(xué)好計算機。在課程設(shè)計過程中,收獲知識,提高能力的同時,我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過程中,我一定會把課程設(shè)計的精神帶到生活中,不畏艱難,勇往直前!四.參考書目:譚浩強,《C程序設(shè)計教程》,,清華大學(xué)出版社,2007年康莉,《零基礎(chǔ)學(xué)C語言》,,機械工業(yè)出版社,2010年方風(fēng)波,《C語言程序設(shè)計》,,地質(zhì)出版社,2006年附錄A源程序代碼#include<stdio.h>#include<conio.h>//ConsoleInput/Output(控制臺輸入輸出)#include<string.h>#definen120//控制課程個數(shù)的存儲空間#definem15//控制課程屬性個數(shù)的存儲空間空間charcouinfo[n1][m1][16];//定義全局?jǐn)?shù)組chard[16],b[6];charpassword[]={"123456"};//原密碼inta,i,j,t=0,c=0,n=4,m=5;//定義全局變量//主函數(shù)模塊voidmain(){ voidpasd();//聲明密碼函數(shù) voidzhujie();//聲明zhujie()函數(shù) zhujie();//調(diào)用zhujie()函數(shù)pasd();//調(diào)用密碼函數(shù)}voidzhujie(){ printf("****************************************\n"); printf("*******************************************************************************\n"); printf("***********************************\n"); printf("***************歡迎進(jìn)入課程管理信息系統(tǒng)**************\n");printf("***********************************\n"); printf("*************Welcometothecourseinformationmanagementsystem***************\n"); printf("*******************************************************************************\n"); printf("*******************************************\n"); printf("*************************\n"); printf("*******\n");printf("***************************************\n"); printf("****添加課程信息****刪除課程信息***\n");printf("***************************************\n"); printf("*******\n"); printf("*******\n"); printf("*****************************************\n");printf("*******\n"); printf("*******\n"); printf("***************************************\n"); printf("*****查詢課程信息****修改課程信息****\n");printf("*******************************************\n");printf("*******************************************************************************\n"); printf("****************************************\n");}//密碼模塊voidpasd(void)//定義密碼函數(shù){ voidyewu();//聲明業(yè)務(wù)函數(shù) inti; charp[9]; intn=3;//密碼輸入次數(shù)控制do{ printf("pleaseenterpassword:\n");//輸入密碼 for(i=0;i<6;i++) { p[i]=getch(); if(p[i]==8)//控制退格 { i=i-2; printf("\b\b"); } else { printf("*"); if(p[i]==13)break;//回車控制 } p[6]='\0'; } if(strcmp(p,password)==0)//密碼匹配strcmp(p,password) { //printf("\n"); c=1; yewu();//調(diào)用業(yè)務(wù)函數(shù) break; } else { printf("pleaseenterpasswordagain:\n"); n--; } } while(n>0);}//業(yè)務(wù)模塊voidyewu()//定義業(yè)務(wù)函數(shù){ voidinputcouinfo(void);//聲明輸入函數(shù) voidaddcouinfo(void);//聲明添加函數(shù) voidfindcouinfo(void);//聲明查詢函數(shù) voidordercouinfo(void);//聲明排序函數(shù) voiddelcouinfo(void);//聲明刪除函數(shù)voidupdatecouinfo(void);//聲明修改函數(shù) chard;system("cls"); if(c==1) { inputcouinfo();//調(diào)用輸入函數(shù) printf("\t課程信息查詢請輸入:1\n\t課程信息刪除請輸入:2\n\t課程信息修改請輸入:3\n\t課程信息排序請輸入:4\n\t課程信息添加請輸入:5\n"); printf("您是否進(jìn)行其他操作,否輸入0,否則輸入其他:");scanf("%d",&a);for(i=0;;i++) { if(a!=0) { printf("請輸入要操作的選項:"); scanf("%s",&d); switch(d) { case'1':findcouinfo();break;//調(diào)用課程信息查詢函數(shù) case'2':delcouinfo();break;//調(diào)用課程信息刪除函數(shù) case'3':updatecouinfo();break;//調(diào)用課程信息修改函數(shù) case'4':ordercouinfo();break;//調(diào)用課程信息排序函數(shù) case'5':addcouinfo();break;//調(diào)用課程信息添加函數(shù) default:break; } } } }}//課程信息輸入模塊voidinputcouinfo(void)//定義課程信息輸入函數(shù){ int*=1;printf("\t\t\t**********************\n");printf("\t\t\t歡迎進(jìn)入信息輸入系統(tǒng)!!\n");printf("\t\t\t**********************\n");printf("請注意:性質(zhì)為必修(B)或選修(*)\n");printf("\t\t課程號名稱性質(zhì)總學(xué)時學(xué)分\n"); for(i=0;i<n;i++) { printf("輸入課程編號%d:",*++);for(j=0;j<m;j++) { scanf("%s",&couinfo[i][j]); } }printf("課程號名稱性質(zhì)總學(xué)時學(xué)分\n");for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("%s\t",couinfo[i][j]); }printf("\n"); }}voidaddcouinfo(void)//課程信息添加函數(shù){ intd,t,z;printf("\t\t\t**********************\n");printf("\t\t\t歡迎進(jìn)入信息添加系統(tǒng)!!\n");printf("\t\t\t**********************\n");for(d=1;;d++) { printf("\n是否進(jìn)行添加,"否”請輸入0,進(jìn)行輸入其他\n"); scanf("%d",&t);if(t!=0) { printf("請輸入要添加的第%d個課程信息:\n",d);printf("課程號名稱性質(zhì)總學(xué)時學(xué)分\n");z=n++;for(j=0;j<m;j++) { scanf("%s",&couinfo[z][j]); printf("%s\t",couinfo[z][j]); } } elsebreak; } system("cls");printf("\t課程查詢請輸入:1\n\t課程刪除請輸入:2\n\t課程修改請輸入:3\n\t課程排序請輸入:4\n\t課程添加請輸入:5\n");}voidfindcouinfo(void)//課程信息查詢函數(shù){ chary[16];intd,t,z;printf("\t\t\t**********************\n");printf("\t\t\t歡迎進(jìn)入信息查詢系統(tǒng)!!\n");printf("\t\t\t**********************\n");for(d=1;;d++) { printf("\n是否進(jìn)行查詢,"否”請輸入0\n"); scanf("%d",&t);if(t!=0) { printf("請輸入要查詢的課程號:");scanf("%s",&y);printf("課程號名稱性質(zhì)總學(xué)時學(xué)分\n");for(i=0;z=i,i<n1;i++) { if(strcmp(y,couinfo[i][0])==0) { for(j=0;j<m;j++) { printf("%s\t",couinfo[i][j]); }break; } } if(z==n)printf("沒有此課程號信息\n"); }elsebreak; }system("cls");printf("\t課程查詢請輸入:1\n\t課程刪除請輸入:2\n\t課程修改請輸入:3\n\t課程排序請輸入:4\n\t課程添加請輸入:5\n");}voiddelcouinfo(void)//課程信息刪除函數(shù){ chary[16];chary1[16];intd,*,z;printf("\t\t\t**********************\n");printf("\t\t\t歡迎進(jìn)入信息刪除系統(tǒng)!!\n");printf("\t\t\t**********************\n");for(d=1;;d++) { printf("是否進(jìn)行刪除信息,否請輸入:0進(jìn)行輸入其他數(shù)字:\n");scanf("%d",&*);if(*!=0) {printf("請輸入要刪除的課程號:");scanf("%s",&y);printf("請再次輸入要刪除的課程號:");scanf("%s",&y1);printf("課程號名稱性質(zhì)總學(xué)時學(xué)分\n");if(strcmp(y,y1)==0) { for(i=0;i<n;i++) { if(strcmp(y,couinfo[i][0])==0) { z=i; printf("要刪除的課程信息是\n"); for(j=0;j<m;j++) { printf("%s\t",couinfo[i][j]); } t++; } printf("\n"); } for(i=z;i<n-t;i++) { for(j=0;j<m;j++) { strcpy(couinfo[i][j],couinfo[i+1][j]); } } if(z==n)printf("沒有此課程號信息\n"); } } elsebreak;printf("課程號名稱性質(zhì)總學(xué)時學(xué)分\n");for(i=0;i<n-t;i++){ for(j=0;j<m;j++) { printf("%s\t",couinfo[i][j]); } printf("\n");}}system("cls");printf("\t課程查詢請輸入:1\n\t課程刪除請輸入:2\n\t課程修改請輸入:3\n\t課程排序請輸入:4\n\t課程添加請輸入:5\n");}//課程修改函數(shù)voidupdatecouinfo(void){charh[16],h1[16],h2[16];intd,b,*,z,e,f;printf("\t\t\t**********************\n");printf("\t\t\t歡迎進(jìn)入信息修改系統(tǒng)!!\n");printf("\t\t\t**********************\n");for(d=1;;d++) {printf("是否進(jìn)行信息修改,否請輸入:0進(jìn)行輸入其他數(shù)字:\n");scanf("%d",&*);if(*!=0) {printf("請輸入要修改的課程號:");scanf("%s",&h);printf("請再次輸入要修改的課程號:");scanf("%s",&h1);if(strcmp(h,h1)==0) { for(i=0;z=i,i<n;i++) { if(strcmp(h,couinfo[i][0])==0) { printf("要修改的課程信息是\n"); for(j=0;j<m;j++) { printf("%s\t",couinfo[i][j]);}printf("\n請輸入你要修改第幾項\n");scanf("%d",&b);printf("請輸入你要修改的內(nèi)容\n");scanf("%s",&h2);strcpy(couinfo[i][b-1],h2); for(e=0;;e++) { printf("您是否進(jìn)行其他修改,否請輸入0,否則輸入其他:");

溫馨提示

  • 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

提交評論