版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(jì)務(wù)書學(xué)姓:指教:
專班:工單:題
目:學(xué)成管系已技參和計(jì)求現(xiàn)有學(xué)生成績信息文件1(容如下姓名學(xué)語文數(shù)英語張明明01677882李成友02789188張輝燦03688256王露04564577陳東明05673847…......…學(xué)生成績信息文件2(cj2.txt,內(nèi)容如:姓名學(xué)語文數(shù)英語陳果31576882李華明32889068張明東33484256李明國34504587陳道亮35475877…......…試編寫一管理系,其本能求實(shí)現(xiàn)對兩個(gè)文件數(shù)據(jù)進(jìn)行合并,成新文件cj3.txt抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個(gè)新文件cj4.txt對合并后的文件3.txt中數(shù)據(jù)按總分降序排至少采用兩種排序方法實(shí))輸入一個(gè)學(xué)生姓名后能查找到此學(xué)生的信息并輸出結(jié)(少采用兩種查找方法實(shí)現(xiàn))要求使用結(jié)構(gòu)體,鏈或數(shù)組等實(shí)上述要.采用多種方法且算法正確,可當(dāng)加.要完的要務(wù):一需分
(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體要求)數(shù)據(jù)結(jié)構(gòu)程設(shè)計(jì)說明
、問題描述現(xiàn)如今,學(xué)校人數(shù)的暴漲,對學(xué)生基本信息的錄入,保存量越來越大,為了簡化對工作人員的作,故設(shè)計(jì)一個(gè)程序來完成對學(xué)生基本信息的錄入,保存,編輯等簡單操作。、基本任務(wù)()對生信息表cj1和cj2進(jìn)行合并;()把并的信息生成cj3;()把cj3中補(bǔ)考的學(xué)生息生成cj4;()對并后的文件3.txt中的數(shù)據(jù)按總分降序排序;()輸一個(gè)學(xué)生姓名后能找到此學(xué)生的信息并輸出結(jié)果。二概設(shè)為了完成需求分析的基本任務(wù),主要從以下3個(gè)面進(jìn)行設(shè)計(jì):1主界面設(shè)為了實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)的各項(xiàng)功能,設(shè)計(jì)了一個(gè)含有多個(gè)菜單項(xiàng)的主控菜單模塊以鏈接系的各項(xiàng)功能,以方便用戶使用系統(tǒng)。系統(tǒng)主控菜單運(yùn)行界面如圖1所:圖1學(xué)成績管理系統(tǒng)主菜單2數(shù)結(jié)設(shè)系統(tǒng)采用鏈表的順序存儲結(jié)構(gòu)個(gè)符數(shù)組存儲學(xué)生姓名個(gè)型數(shù)存儲學(xué)生學(xué)號﹑語文成績﹑數(shù)學(xué)成績﹑英語成績。和一個(gè)結(jié)構(gòu)體數(shù)組。3系功設(shè)(從c盤讀取cj1.txt和cj2.txt中學(xué)生成績信息序會給出提示為如果在c盤下存在這兩個(gè)文件那么程序?qū)⒉荒芾^續(xù)會自動退出。(程給出選擇是否將從c盤讀取的學(xué)生信息保存到盤下cj3.txt中如您選擇是那程序?qū)?zhí)行如在c盤在一個(gè)為cj3.txt的文件那程序?qū)⒂米x取的信息將其覆蓋果存在,
則系統(tǒng)會自動生成一個(gè)名為cj3.txt的文將數(shù)據(jù)放入其中。(會出選擇是否將中有補(bǔ)考的學(xué)生信息生成一個(gè)cj4.txt的件您擇是。那么程序?qū)?zhí)行。對于在c盤否有名為cj4.txt的件的處理和上面一樣。()序會給出按總分大小排序的選項(xiàng)。程序設(shè)計(jì)了兩種排序方法—直接插入法排序和冒泡排。(5)最后程序設(shè)計(jì)了一個(gè)循環(huán),現(xiàn)根據(jù)學(xué)生姓名查找學(xué)生成績信息。如果你所輸入的學(xué)生姓名不存在,程序?qū)敵觥安闊o此人”的提示符并提示是否繼續(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://把三科成績中有補(bǔ)考的學(xué)生信息放入for{}//接插入法排序for{}//泡法排序do{}while}【功能模塊調(diào)用關(guān)系圖】主程序模塊讀取學(xué)生信息排序查找
【模板詳細(xì)設(shè)計(jì)】成績管理系統(tǒng)讀取數(shù)據(jù)從cj1.txt中從cj2.txt中
合并數(shù)據(jù)生成cj3.txt生成cj4.txt
成績排序直接插入法打亂
姓名查找輸入姓名
退出本系統(tǒng)冒泡法typedefstructLNode{charname[6];intno;intyw;intsx;intyy;structLNode*next;}LinkList;structNameNo{intno;intyw;intsx;inttotal;charname[6];}st[10];四詳設(shè)(c盤根目錄下打開c用FILE指針fp指向cj1.txt,fp=fopen("c:\\cj1.txt","rt")再用一個(gè)ILE型指針*fp1打開cj3.txt。使fp1=fopen("c:\\cj3.txt","wt")對j3.txt只寫。后循環(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("無cj1.txt文本文件,程序結(jié)束。無cj1.txt程序?qū)o法進(jìn)行。return;//程序退出}fp1=fopen("c:\\cj3.txt","wt");//打開cj3.txt寫ch=fgetc(fp);//從cj1.txt中讀取一個(gè)字符存入h中while(ch!=EOF)//循環(huán){fputc(ch,fp1);//把ch中的字符寫入cj3.txtch=fgetc(fp);}fclose(fp1);fclose(fp);2fp=fopen("c:\\cj2.txt","rt")。*fp1打開cj3.txt追加。因cj2.txt中一行是提示,cj1.txt已經(jīng)存在,所以它是多余的,循fgetc(fp)三十六次把指針移動到下一行。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é)號語文fclose(fp);fp=fopen("c:\\cj4.txt","a");s=p->next;while(s!=NULL){
數(shù)學(xué)
英語",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)過后,行程序。(2)輸入選擇進(jìn)行兩的合成和生cj4.txt
(3)合成成功,選擇總分進(jìn)行直插入法序。(4)打亂排序再用冒法排序。
(5)入姓名行查找六用手1本序的特點(diǎn)是我們不在需要從鍵盤上輸入數(shù)據(jù)是接從已有文件中讀取數(shù)據(jù)在據(jù)很大時(shí)或者需要反復(fù)使用同一個(gè)數(shù)據(jù)時(shí)有很大的優(yōu)勢。2、要程序運(yùn)行的關(guān)鍵是在c盤存在cj1.txt和cj2.txt兩文,用戶在使用是需得注意。3、本人在寫程序時(shí)重心主要放對數(shù)據(jù)的處理上,所以在界面設(shè)計(jì)方面還做得不好,請多多包涵。4、程序操作很簡單,只要按提操作即可完成要求的內(nèi)容。
七參文1據(jù)結(jié)構(gòu)教程(第三版李葆尹民編著C言程序設(shè)計(jì)(第三版何銘顏暉主據(jù)結(jié)構(gòu)教程機(jī)實(shí)驗(yàn)指導(dǎo)》李春葆編八程設(shè)總
清華大學(xué)出版社高等教育出版社清華大學(xué)出版社通過兩個(gè)星期的折騰,總算把課程設(shè)計(jì)給完成了,這是一個(gè)堅(jiān)苦而又漫長的過程。是啊,讀了么多年的書,課程設(shè)計(jì)可是第一次??粗鴦趧映晒?,很欣慰!雖然這不是我一個(gè)人做的,是大家共同努力得來的?!耙苍S完成不了!”兩個(gè)星期前我們這樣說,“完成他沒問題!”一個(gè)星期前我們這樣說,現(xiàn)我們可以說:“哈哈,完成啦”!剛開始,可以說是沒有頭緒,于是就去圖書館找資料,找到了一些關(guān)于畫圖方面的,可是這點(diǎn)進(jìn)展遠(yuǎn)遠(yuǎn)不夠,這只是一個(gè)小小的開始。下一步是上網(wǎng)查,找到了些與我們題目相似的,那時(shí)我每個(gè)人都很高興,可是那還不是我們要的,于是又上網(wǎng)查到了些有關(guān)的函數(shù)等等,終于在我們大家的力下,完成了這個(gè)程序。雖然對著電腦做程序,有點(diǎn)累有點(diǎn)熱,可是當(dāng)看到勞動成果時(shí),真是別有一番滋味在心頭啊!上無難事,只怕有心人,的確如此。做完這個(gè)程序最大的收獲就是感受到了集體的力量,當(dāng)然個(gè)的智慧也是很重要的哦!做完這個(gè)課程設(shè)計(jì),我們的自信一下子提高了,我們也會寫程序了;盡管對于有些人這種程序很簡單可對我們C語初學(xué)者來說經(jīng)很不容易了次體驗(yàn)為以后的學(xué)習(xí)計(jì)算機(jī)的我們增強(qiá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é)生成績管理系統(tǒng)");printf(printf();printf("在您的盤根目錄下是否有j1.txtcj2.txt件?如果有請輸入,);printf("否則輸入;如果沒有,那么程序?qū)⒔K止?。?scanf(,&i);ifreturnprintf();printf("對j1.txtcj2.txt進(jìn)行合成請按‘’");scanf(,&i);ifreturnprintf("正在把j1.txtcj2.txt的數(shù)據(jù)進(jìn)行合并\n");printf();if"rt"從文本文件j1.txt讀取數(shù)據(jù)傳向cj3.txt{printf("無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("無本文件,程序結(jié)束。);return}
fp1=fopen(,"a");forfgetc(fp);ch=fgetc(fp);while{fputc(ch,fp1);ch=fgetc(fp);}fclose(fp1);fclose(fp);printf("合并成功!現(xià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("對j3.txt有不及格的學(xué)生信息生成j4.txt按‘’);scanf(,&i);ifreturnprintf("正在生成j4.txt\n");printf();iffp=fopen(,"wt");//把三科成績中有補(bǔ)考的學(xué)生信息放入j4.txtfputs(姓
學(xué)號語文
數(shù)學(xué)
英語"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)在你可以在盤根目錄下看到一個(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("用直接插入法排序請按‘’:);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é)號
語文
數(shù)學(xué)
英語
總分);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("用冒泡法排序請按‘’:);scanf(,&i);printf();if{for//冒泡法排序{forif{tmp=st[j];st[j]=st[j-1];st[j-1]=tmp;}}printf(printf();
冒泡法排序后總分從大到小排序?yàn)閚"printf
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 維修勞務(wù)合同模板(2篇)
- 南京航空航天大學(xué)《編譯原理》2021-2022學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《市場營銷》2023-2024學(xué)年第一學(xué)期期末試卷
- 房建施工組織設(shè)計(jì)
- 某市中心諾蘭攝影工作室工程項(xiàng)目施工組織設(shè)計(jì)
- 壓濾車間施工組織設(shè)計(jì)
- 《小星星》說課稿
- 南京工業(yè)大學(xué)浦江學(xué)院《給排水工程制圖與CAD》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)《自動控制原理》2021-2022學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)《藥物新劑型與新技術(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024年4月自考06962工程造價(jià)確定與控制試題
- 《跟上兔子》繪本五年級第1季A-Magic-Card
- 金融服務(wù)營銷報(bào)告總結(jié)
- 35kv集電線路監(jiān)理標(biāo)準(zhǔn)細(xì)則
- 橋式起重機(jī)定期檢查記錄表
- T∕CACM 1090-2018 中醫(yī)治未病技術(shù)操作規(guī)范 穴位敷貼
- 2024版人教版英語初一上單詞默寫單
- 化學(xué)實(shí)驗(yàn)室安全智慧樹知到期末考試答案2024年
- 經(jīng)典房地產(chǎn)營銷策劃培訓(xùn)(全)
- 工人入場安全教育課件
- 【川教版】《生命 生態(tài) 安全》二年級上冊第12課 少點(diǎn)兒馬虎 多點(diǎn)兒收獲 課件
評論
0/150
提交評論