學(xué)生成績(jī)管理系統(tǒng),數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng),數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng),數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng),數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng),數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課程設(shè)計(jì)務(wù)書(shū)學(xué)姓:指教:

專(zhuān)班:工單:題

目:學(xué)成管系已技參和計(jì)求現(xiàn)有學(xué)生成績(jī)信息文件1(容如下姓名學(xué)語(yǔ)文數(shù)英語(yǔ)張明明01677882李成友02789188張輝燦03688256王露04564577陳東明05673847…......…學(xué)生成績(jī)信息文件2(cj2.txt,內(nèi)容如:姓名學(xué)語(yǔ)文數(shù)英語(yǔ)陳果31576882李華明32889068張明東33484256李明國(guó)34504587陳道亮35475877…......…試編寫(xiě)一管理系,其本能求實(shí)現(xiàn)對(duì)兩個(gè)文件數(shù)據(jù)進(jìn)行合并,成新文件cj3.txt抽取出三科成績(jī)中有補(bǔ)考的學(xué)生并保存在一個(gè)新文件cj4.txt對(duì)合并后的文件3.txt中數(shù)據(jù)按總分降序排至少采用兩種排序方法實(shí))輸入一個(gè)學(xué)生姓名后能查找到此學(xué)生的信息并輸出結(jié)(少采用兩種查找方法實(shí)現(xiàn))要求使用結(jié)構(gòu)體,鏈或數(shù)組等實(shí)上述要.采用多種方法且算法正確,可當(dāng)加.要完的要?jiǎng)?wù):一需分

(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求)數(shù)據(jù)結(jié)構(gòu)程設(shè)計(jì)說(shuō)明

、問(wèn)題描述現(xiàn)如今,學(xué)校人數(shù)的暴漲,對(duì)學(xué)生基本信息的錄入,保存量越來(lái)越大,為了簡(jiǎn)化對(duì)工作人員的作,故設(shè)計(jì)一個(gè)程序來(lái)完成對(duì)學(xué)生基本信息的錄入,保存,編輯等簡(jiǎn)單操作。、基本任務(wù)()對(duì)生信息表cj1和cj2進(jìn)行合并;()把并的信息生成cj3;()把cj3中補(bǔ)考的學(xué)生息生成cj4;()對(duì)并后的文件3.txt中的數(shù)據(jù)按總分降序排序;()輸一個(gè)學(xué)生姓名后能找到此學(xué)生的信息并輸出結(jié)果。二概設(shè)為了完成需求分析的基本任務(wù),主要從以下3個(gè)面進(jìn)行設(shè)計(jì):1主界面設(shè)為了實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)的各項(xiàng)功能,設(shè)計(jì)了一個(gè)含有多個(gè)菜單項(xiàng)的主控菜單模塊以鏈接系的各項(xiàng)功能,以方便用戶(hù)使用系統(tǒng)。系統(tǒng)主控菜單運(yùn)行界面如圖1所:圖1學(xué)成績(jī)管理系統(tǒng)主菜單2數(shù)結(jié)設(shè)系統(tǒng)采用鏈表的順序存儲(chǔ)結(jié)構(gòu)個(gè)符數(shù)組存儲(chǔ)學(xué)生姓名個(gè)型數(shù)存儲(chǔ)學(xué)生學(xué)號(hào)﹑語(yǔ)文成績(jī)﹑數(shù)學(xué)成績(jī)﹑英語(yǔ)成績(jī)。和一個(gè)結(jié)構(gòu)體數(shù)組。3系功設(shè)(從c盤(pán)讀取cj1.txt和cj2.txt中學(xué)生成績(jī)信息序會(huì)給出提示為如果在c盤(pán)下存在這兩個(gè)文件那么程序?qū)⒉荒芾^續(xù)會(huì)自動(dòng)退出。(程給出選擇是否將從c盤(pán)讀取的學(xué)生信息保存到盤(pán)下cj3.txt中如您選擇是那程序?qū)?zhí)行如在c盤(pán)在一個(gè)為cj3.txt的文件那程序?qū)⒂米x取的信息將其覆蓋果存在,

則系統(tǒng)會(huì)自動(dòng)生成一個(gè)名為cj3.txt的文將數(shù)據(jù)放入其中。(會(huì)出選擇是否將中有補(bǔ)考的學(xué)生信息生成一個(gè)cj4.txt的件您擇是。那么程序?qū)?huì)執(zhí)行。對(duì)于在c盤(pán)否有名為cj4.txt的件的處理和上面一樣。()序會(huì)給出按總分大小排序的選項(xiàng)。程序設(shè)計(jì)了兩種排序方法—直接插入法排序和冒泡排。(5)最后程序設(shè)計(jì)了一個(gè)循環(huán),現(xiàn)根據(jù)學(xué)生姓名查找學(xué)生成績(jī)信息。如果你所輸入的學(xué)生姓名不存在,程序?qū)?huì)輸出“查無(wú)此人”的提示符并提示是否繼續(xù)查找。你可根據(jù)需要選擇。如果選否,程序退出。三模設(shè)【主程序模塊voidmain(){fp=fopen(,"rt");從文本文件cj1.txt中讀取數(shù)據(jù)傳向cj3.txtfp=fopen(,"rt"http://從文本文件cj2.txt中讀取數(shù)據(jù)接到cj3.txt的后面fp=fopen(,"rt"http://從合成后的cj3.txt讀取數(shù)據(jù),生成鏈表fp=fopen(,"wt"http://把三科成績(jī)中有補(bǔ)考的學(xué)生信息放入for{}//接插入法排序for{}//泡法排序do{}while}【功能模塊調(diào)用關(guān)系圖】主程序模塊讀取學(xué)生信息排序查找

【模板詳細(xì)設(shè)計(jì)】成績(jī)管理系統(tǒng)讀取數(shù)據(jù)從cj1.txt中從cj2.txt中

合并數(shù)據(jù)生成cj3.txt生成cj4.txt

成績(jī)排序直接插入法打亂

姓名查找輸入姓名

退出本系統(tǒng)冒泡法typedefstructLNode{charname[6];intno;intyw;intsx;intyy;structLNode*next;}LinkList;structNameNo{intno;intyw;intsx;inttotal;charname[6];}st[10];四詳設(shè)(c盤(pán)根目錄下打開(kāi)c用FILE指針fp指向cj1.txt,fp=fopen("c:\\cj1.txt","rt")再用一個(gè)ILE型指針*fp1打開(kāi)cj3.txt。使fp1=fopen("c:\\cj3.txt","wt")對(duì)j3.txt只寫(xiě)。后循環(huán)使用c和putc(ch,fp1)cj1.txt信息復(fù)制cj3.txt中if((fp=fopen("c:\\cj1.txt","rt"))==NULL)//文本文件cj1.txt中讀取數(shù)據(jù)傳向

cj3.txt{printf("無(wú)cj1.txt文本文件,程序結(jié)束。無(wú)cj1.txt程序?qū)o(wú)法進(jìn)行。return;//程序退出}fp1=fopen("c:\\cj3.txt","wt");//打開(kāi)cj3.txt寫(xiě)ch=fgetc(fp);//從cj1.txt中讀取一個(gè)字符存入h中while(ch!=EOF)//循環(huán){fputc(ch,fp1);//把ch中的字符寫(xiě)入cj3.txtch=fgetc(fp);}fclose(fp1);fclose(fp);2fp=fopen("c:\\cj2.txt","rt")。*fp1打開(kāi)cj3.txt追加。因cj2.txt中一行是提示,cj1.txt已經(jīng)存在,所以它是多余的,循fgetc(fp)三十六次把指針移動(dòng)到下一行。ch=fgetc(fp)fputc(ch,fp1)把j2.txt的信息追加到cj3.txt中部。3中p=(LinkList*)malloc(sizeof(LinkList));p->next=NULL;fp=fopen("c:\\cj3.txt","rt");//從合成后的j3.txt讀取數(shù)據(jù),生成鏈表for(i=0;i<36;i++)fgetc(fp);ch=fgetc(fp);while(ch!=EOF){s=(LinkList*)malloc(sizeof(LinkList));fgets(s->name,7,fp);for(i=0;i<5;i++)fgetc(fp);x=fgetc(fp)-48;x=x*10+fgetc(fp)-48;s->no=x;for(i=0;i<5;i++)

fgetc(fp);x=fgetc(fp)-48;x=x*10+fgetc(fp)-48;s->yw=x;for(i=0;i<5;i++)fgetc(fp);x=fgetc(fp)-48;x=x*10+fgetc(fp)-48;s->sx=x;for(i=0;i<5;i++)fgetc(fp);x=fgetc(fp)-48;x=x*10+fgetc(fp)-48;s->yy=x;s->next=p->next;p->next=s;ch=fgetc(fp);}fclose(fp);4fputs("姓名學(xué)號(hào)語(yǔ)文fclose(fp);fp=fopen("c:\\cj4.txt","a");s=p->next;while(s!=NULL){

數(shù)學(xué)

英語(yǔ)",fp);if(s->yw<60||s->sx<60||s->yy<60){ch='\n';fputc(ch,fp);fputs(s->name,fp);for(i=0;i<5;i++){ch='';fputc(ch,fp);}ch=s->no/10+48;fputc(ch,fp);ch=s->no-(s->no/10)*10+48;fputc(ch,fp);

for(i=0;i<5;i++){ch='';fputc(ch,fp);}ch=s->yw/10+48;fputc(ch,fp);ch=s->yw-(s->yw/10)*10+48;fputc(ch,fp);for(i=0;i<5;i++){ch='';fputc(ch,fp);}ch=s->sx/10+48;fputc(ch,fp);ch=s->sx-(s->sx/10)*10+48;fputc(ch,fp);for(i=0;i<5;i++){ch='';fputc(ch,fp);}ch=s->yy/10+48;fputc(ch,fp);ch=s->yy-(s->yy/10)*10+48;fputc(ch,fp);s=s->next;}elses=s->next;}fclose(fp);56

五調(diào)分(1)編譯,調(diào)過(guò)后,行程序。(2)輸入選擇進(jìn)行兩的合成和生cj4.txt

(3)合成成功,選擇總分進(jìn)行直插入法序。(4)打亂排序再用冒法排序。

(5)入姓名行查找六用手1本序的特點(diǎn)是我們不在需要從鍵盤(pán)上輸入數(shù)據(jù)是接從已有文件中讀取數(shù)據(jù)在據(jù)很大時(shí)或者需要反復(fù)使用同一個(gè)數(shù)據(jù)時(shí)有很大的優(yōu)勢(shì)。2、要程序運(yùn)行的關(guān)鍵是在c盤(pán)存在cj1.txt和cj2.txt兩文,用戶(hù)在使用是需得注意。3、本人在寫(xiě)程序時(shí)重心主要放對(duì)數(shù)據(jù)的處理上,所以在界面設(shè)計(jì)方面還做得不好,請(qǐng)多多包涵。4、程序操作很簡(jiǎn)單,只要按提操作即可完成要求的內(nèi)容。

七參文1據(jù)結(jié)構(gòu)教程(第三版李葆尹民編著C言程序設(shè)計(jì)(第三版何銘顏暉主據(jù)結(jié)構(gòu)教程機(jī)實(shí)驗(yàn)指導(dǎo)》李春葆編八程設(shè)總

清華大學(xué)出版社高等教育出版社清華大學(xué)出版社通過(guò)兩個(gè)星期的折騰,總算把課程設(shè)計(jì)給完成了,這是一個(gè)堅(jiān)苦而又漫長(zhǎng)的過(guò)程。是啊,讀了么多年的書(shū),課程設(shè)計(jì)可是第一次??粗鴦趧?dòng)成果,很欣慰!雖然這不是我一個(gè)人做的,是大家共同努力得來(lái)的?!耙苍S完成不了!”兩個(gè)星期前我們這樣說(shuō),“完成他沒(méi)問(wèn)題!”一個(gè)星期前我們這樣說(shuō),現(xiàn)我們可以說(shuō):“哈哈,完成啦”!剛開(kāi)始,可以說(shuō)是沒(méi)有頭緒,于是就去圖書(shū)館找資料,找到了一些關(guān)于畫(huà)圖方面的,可是這點(diǎn)進(jìn)展遠(yuǎn)遠(yuǎn)不夠,這只是一個(gè)小小的開(kāi)始。下一步是上網(wǎng)查,找到了些與我們題目相似的,那時(shí)我每個(gè)人都很高興,可是那還不是我們要的,于是又上網(wǎng)查到了些有關(guān)的函數(shù)等等,終于在我們大家的力下,完成了這個(gè)程序。雖然對(duì)著電腦做程序,有點(diǎn)累有點(diǎn)熱,可是當(dāng)看到勞動(dòng)成果時(shí),真是別有一番滋味在心頭??!上無(wú)難事,只怕有心人,的確如此。做完這個(gè)程序最大的收獲就是感受到了集體的力量,當(dāng)然個(gè)的智慧也是很重要的哦!做完這個(gè)課程設(shè)計(jì),我們的自信一下子提高了,我們也會(huì)寫(xiě)程序了;盡管對(duì)于有些人這種程序很簡(jiǎn)單可對(duì)我們C語(yǔ)初學(xué)者來(lái)說(shuō)經(jīng)很不容易了次體驗(yàn)為以后的學(xué)習(xí)計(jì)算機(jī)的我們?cè)鰪?qiáng)了心。享受勞動(dòng)成果的滋味實(shí)在很美妙啊!九程源碼錄#include<stdio.h>#include<stdlib.h>voidmain(){typedefstructLNode{charname[6];intno;intyw;intsx;intyy;structLNode*next;}LinkList;structNameNo{intno;

intyw;intsx;inttotal;charname[6];}st[10];FILE*fp,*fp1;charch,sname[6];intx,i,j;NameNotmp;LinkList*p,*s;printf();printf();printf("學(xué)生成績(jī)管理系統(tǒng)");printf(printf();printf("在您的盤(pán)根目錄下是否有j1.txtcj2.txt件?如果有請(qǐng)輸入,);printf("否則輸入;如果沒(méi)有,那么程序?qū)⒔K止???"scanf(,&i);ifreturnprintf();printf("對(duì)j1.txtcj2.txt進(jìn)行合成請(qǐng)按‘’");scanf(,&i);ifreturnprintf("正在把j1.txtcj2.txt的數(shù)據(jù)進(jìn)行合并\n");printf();if"rt"從文本文件j1.txt讀取數(shù)據(jù)傳向cj3.txt{printf("無(wú)j1.txt本文件,程序結(jié)束。);return}fp1=fopen(,"wt"ch=fgetc(fp);while{fputc(ch,fp1);ch=fgetc(fp);}fclose(fp1);fclose(fp);if"rt"從文本文件j2.txt讀取數(shù)據(jù)接到cj3.txt后面{printf("無(wú)本文件,程序結(jié)束。);return}

fp1=fopen(,"a");forfgetc(fp);ch=fgetc(fp);while{fputc(ch,fp1);ch=fgetc(fp);}fclose(fp1);fclose(fp);printf("合并成功!現(xiàn)在你可以在盤(pán)根目錄下看到一個(gè)cj3.txt件\n"printf();p=(LinkList*)malloc((LinkList));p->next=NULL;fp=fopen(,"rt");//從合成后的j3.txt取數(shù)據(jù),生成鏈表forfgetc(fp);ch=fgetc(fp);while{s=(LinkList*)malloc((LinkList));fgets(s->name,7,fp);forfgetc(fp);x=fgetc(fp)-48;x=x*10+fgetc(fp)-48;s->no=x;forfgetc(fp);x=fgetc(fp)-48;x=x*10+fgetc(fp)-48;s->yw=x;forfgetc(fp);x=fgetc(fp)-48;x=x*10+fgetc(fp)-48;s->sx=x;forfgetc(fp);x=fgetc(fp)-48;x=x*10+fgetc(fp)-48;s->yy=x;s->next=p->next;

p->next=s;ch=fgetc(fp);}fclose(fp);printf("對(duì)j3.txt有不及格的學(xué)生信息生成j4.txt按‘’);scanf(,&i);ifreturnprintf("正在生成j4.txt\n");printf();iffp=fopen(,"wt");//把三科成績(jī)中有補(bǔ)考的學(xué)生信息放入j4.txtfputs(姓

學(xué)號(hào)語(yǔ)文

數(shù)學(xué)

英語(yǔ)"fclose(fp);fp=fopen(,"a"s=p->next;while{if{ch=;fputc(ch,fp);fputs(s->name,fp);for{ch='fputc(ch,fp);}ch=s->no/10+48;fputc(ch,fp);ch=s->no-(s->no/10)*10+48;fputc(ch,fp);for{ch='fputc(ch,fp);}ch=s->yw/10+48;fputc(ch,fp);ch=s->yw-(s->yw/10)*10+48;fputc(ch,fp);for{ch='fputc(ch,fp);

}ch=s->sx/10+48;fputc(ch,fp);ch=s->sx-(s->sx/10)*10+48;fputc(ch,fp);for{ch='fputc(ch,fp);}ch=s->yy/10+48;fputc(ch,fp);ch=s->yy-(s->yy/10)*10+48;fputc(ch,fp);s=s->next;}elses=s->next;}fclose(fp);printf("生成成功!現(xiàn)在你可以在盤(pán)根目錄下看到一個(gè)cj4.txt件"printf();s=p->next;//將學(xué)生信息從鏈表復(fù)制到數(shù)組中for{st[i].no=s->no;st[i].yw=s->yw;st[i].sx=s->sx;st[i].total=s->yw+s->sx+s->yy;forst[i].name[j]=s->name[j];s=s->next;}printf("用直接插入法排序請(qǐng)按‘’:);scanf(,&i);printf();if{for//直接插入法排序{tmp=st[i];j=i-1;while{

st[j+1]=st[j];j--;}st[j+1]=tmp;}printf(printf();

直接插入法排序后總分從大到小排序?yàn)?;printf("姓名

學(xué)號(hào)

語(yǔ)文

數(shù)學(xué)

英語(yǔ)

總分);for{if{printf("printf(printf("printf("printf("printf("printf(,st[i].total);printf(}else{printf("printf("printf("printf("printf("printf(,st[i].total);printf();}}}printf("將排好序的數(shù)組打亂n"printf();s=p->next;//將排好序的數(shù)組打亂,從新用冒泡法排序for{st[i].no=s->no;st[i].yw=s->yw;st[i].sx=s->sx;st[i].total=s->yw+s->sx+s->yy;forst[i].name[j]=s->name[j];

s=s->next;}printf("用冒泡法排序請(qǐng)按‘’:);scanf(,&i);printf();if{for//冒泡法排序{forif{tmp=st[j];st[j]=st[j-1];st[j-1]=tmp;}}printf(printf();

冒泡法排序后總分從大到小排序?yàn)閚"printf

溫馨提示

  • 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)論