《學(xué)生管理系統(tǒng)》課程設(shè)計(jì)報(bào)告(共19頁(yè))
精選優(yōu)質(zhì)文檔-傾情為你奉上湖南工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書(shū)2012 2013學(xué)年第 一學(xué)期 計(jì)算機(jī)與通信 學(xué)院(系、部) 軟件工程 專(zhuān)業(yè) 姓名:夏笑聲 班級(jí) 1202 課程名稱(chēng): 面向過(guò)程程序設(shè)計(jì) 課程設(shè)計(jì) 設(shè)計(jì)題目: 學(xué)生信息管理系統(tǒng) 完成期限:自 2012 年 12 月 26 日至 2012 年 12 月28日共 三天內(nèi)容及任務(wù) 用C語(yǔ)言設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng)軟件,要求實(shí)現(xiàn)以下功能:1.建立文件功能Ø 可以使用默認(rèn)文件名,或制定文件名將記錄存儲(chǔ)到文件Ø 文件保存成功要有提示Ø 初次使用可以新建一個(gè)保存文件2.錄入學(xué)生信息功能Ø 可以隨時(shí)錄入制定人數(shù)信息的功能3.查詢(xún)功能Ø 可以通過(guò)輸入學(xué)號(hào)查詢(xún)制定學(xué)生信息功能Ø 可以通過(guò)輸入姓名查詢(xún)制定學(xué)生信息功能4.刪除記錄功能可以通過(guò)學(xué)生的姓名或?qū)W號(hào)信息刪除學(xué)生的信息5修改記錄功能可以通過(guò)學(xué)生的姓名或?qū)W號(hào)信息修改任意一項(xiàng)指定的信息6按總分排序功能可以按照學(xué)生的總分成績(jī)排好序?qū)⑺袑W(xué)生的信息顯示出來(lái)7.退出可以在程序運(yùn)行時(shí)很方便地退出程序進(jìn)度安排起止日期工作內(nèi)容第1天程序基本設(shè)計(jì)思路第2天 編輯核心代碼和程序模塊,修改程序,增加部分功能第3天 再次修改,調(diào)試;完成設(shè)計(jì)文檔和課程設(shè)計(jì)說(shuō)明書(shū)答辯指導(dǎo)教師(簽字): 2012年12月28日 系教研室)主任(簽字): 年 月 日計(jì)算機(jī)與通信學(xué)院面過(guò)程程序設(shè)計(jì)課程設(shè)計(jì)題 目 學(xué)生信息管理系統(tǒng) 學(xué) 號(hào) 專(zhuān)業(yè)及班級(jí) 軟件工程1202 姓 名 夏笑聲 日 期 2012/12/28 目錄1、 實(shí)驗(yàn)?zāi)康暮鸵?41、課程設(shè)計(jì)的目的42、課程設(shè)計(jì)的要求4二、設(shè)計(jì)方案. 41、總體設(shè)計(jì).42、系統(tǒng)流程圖.53、 程序說(shuō)明書(shū).4 三、總結(jié)與體會(huì).17四、 參考資料 .18一、 實(shí)驗(yàn)?zāi)康暮鸵?、課程設(shè)計(jì)目的:1、使學(xué)生鞏固和加強(qiáng)“C語(yǔ)言程序設(shè)計(jì)”課程的理論知識(shí)。2、使學(xué)生掌握C語(yǔ)言程序設(shè)計(jì)的方法及編程技巧。3、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法。、5、 初步掌握開(kāi)發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法:結(jié)合實(shí)際應(yīng)用的要求,使課程設(shè)計(jì)既覆蓋知識(shí)點(diǎn),又接近工程的實(shí)際需要。6、培養(yǎng)學(xué)生良好的程序設(shè)計(jì)風(fēng)格。、7、掌握書(shū)寫(xiě)程序設(shè)計(jì)開(kāi)發(fā)文檔的能力,使學(xué)生學(xué)會(huì)撰寫(xiě)課程設(shè)計(jì)報(bào)告。、8、通過(guò)查閱手冊(cè)和文獻(xiàn)資料,。培養(yǎng)學(xué)生獨(dú)立分析問(wèn)題和解決問(wèn)題的能力。、9、培養(yǎng)學(xué)生的創(chuàng)新能力和創(chuàng)新思維。2、基本要求:(1)要求利用結(jié)構(gòu)化程序設(shè)計(jì)的方法及C語(yǔ)言的編程思想來(lái)完成系統(tǒng)設(shè)計(jì)。(2)模塊化程序設(shè)計(jì):要求在設(shè)計(jì)過(guò)程中,按功能定義函數(shù)或書(shū)寫(xiě)多個(gè)文件,進(jìn)行模塊化設(shè)計(jì),各個(gè)功能模塊用函數(shù)的形式來(lái)實(shí)現(xiàn)。(3)學(xué)生所選課題必須上機(jī)通過(guò),并獲得滿(mǎn)意的結(jié)果。(4)程序書(shū)寫(xiě)風(fēng)格:鋸齒型書(shū)寫(xiě)格式。二、 設(shè)計(jì)方案1、總體設(shè)計(jì) 該程序共有6 大模塊構(gòu)成,程序的開(kāi)頭首先是一個(gè)歡迎界面,歡迎界面的下方有提示信息按回車(chē)鍵繼續(xù),這時(shí)按下回車(chē)鍵,界面跳轉(zhuǎn)到程序的主界面,各功能菜單項(xiàng)。此程序一共有六大功能,全部通過(guò)定義函數(shù)來(lái)實(shí)現(xiàn)功能。主要有以下幾項(xiàng)基本功能:1.信息錄入功能2.信息查詢(xún)功能3.刪除記錄功能4.修改記錄功能5.按總分排序輸出所有信息功能,6.退出程序功能。3、程序說(shuō)明書(shū) 此程序在實(shí)現(xiàn)功能時(shí)采用的方式是編寫(xiě)函數(shù),通過(guò)編寫(xiě)的5個(gè)函數(shù)來(lái)實(shí)現(xiàn)該程序的五大基本功能。主要功能有信息錄入、信息查詢(xún)、刪除記錄、修改指定記錄、輸出所有學(xué)生信息,以及退出程序功能。首先將一系列頭文件包含進(jìn)來(lái)以及定義文件指針和定義了一個(gè)結(jié)構(gòu)數(shù)組用來(lái)存儲(chǔ)學(xué)生的所有信息,源代碼如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<process.h>struct nodechar id12;char name15;char fale4;int score3;int all;int _size;student50;struct node2char id12;char name15;char fale4;char score44;char all4;FILE *fr;struct node *p=student;char _class410="C語(yǔ)言","大機(jī)","高數(shù)","英語(yǔ)"int number;void luru();void chaxun();void shanchu();void paixu();void xiugai();void main() 打開(kāi)程序,首先可以看到的是一個(gè)精美的歡迎界面,該界面由如下代碼實(shí)現(xiàn):printf("nnnnnnnnnnnn"); printf(" &$&$&$&&$&$&$&$&$&$&$&$&$&&$&$&$&$&$&$&$&n");printf(" &$&$&$&$&&$&&$&$&$&$&$&$&$&$&$&$&&$&$&$&$n");printf(" && * * &$n"); printf(" &$ * * * * &$n");printf(" &$ *歡迎使用學(xué)生管理系統(tǒng)* &$n");printf(" &$ &$n");printf(" &$ * * * 制作人:夏笑聲 * * * * * * * * &$n");printf(" &&$&$&$&$&$&$&$&$&$&$&$&$&$&$&$&$&$&$&$&$n");printf(" &$&$&$&$&$&$&$&$&$&$&$&$&$&$&&$&$&$&$&$&$nnnnnnn");printf("nnnnn按回車(chē)鍵繼續(xù).");歡迎界面如下圖所示:同時(shí),在屏幕的左下方有按回車(chē)鍵繼續(xù)的提示信息,這時(shí)按一下回車(chē)鍵,由歡迎界面跳轉(zhuǎn)到程序的主功能菜單界面,菜單由switch語(yǔ)句實(shí)現(xiàn),如下:printf("請(qǐng)選擇功能:n"); printf("信息錄入請(qǐng)按1!n"); printf("信息查詢(xún)請(qǐng)按2!n"); printf("刪除記錄請(qǐng)按3!n"); printf("修改記錄請(qǐng)按4!n"); printf("按總分排序輸出所有信息請(qǐng)按5!n"); printf("按0或其它任意鍵退出.n");這時(shí),我們?cè)诓藛蔚淖钌戏娇梢钥吹揭粭l警示信息,“注意:在第一次使用本軟件之前,必須先建立一個(gè)存儲(chǔ)文件”,這是因?yàn)榇顺绦蛐枰粋€(gè)文件來(lái)將所有學(xué)生的各項(xiàng)信息存儲(chǔ)在外存中,只有這樣才能使已經(jīng)記錄的信息能夠永久保存。這項(xiàng)功能我采用的是用“w+”的方式打開(kāi)文件,之所以這樣設(shè)計(jì),是因?yàn)橛谩皐+” 的方式打開(kāi)文件使程序獲得的一個(gè)額外功能,當(dāng)按下“8”鍵的時(shí)候,可以將所有已經(jīng)保存的記錄全部清楚掉,即初始化記錄功能,這樣就做到了一舉兩得了。 接下來(lái)介紹的是程序的信息錄入功能。在設(shè)計(jì)信息錄入功能時(shí),我也遇到了不少的問(wèn)題,其中最大的一個(gè)問(wèn)題就是關(guān)于如何將要存儲(chǔ)的程序?qū)懭胛募茱@然,如果將輸入的信息一股腦的寫(xiě)入文件的話(huà),后果將是非常嚴(yán)重的,因?yàn)閷?xiě)入的信息始終是要讀出來(lái)的,而如果隨意地寫(xiě)進(jìn)去的話(huà),在讀取信息的時(shí)候,讀取信息的位置指針將無(wú)法定位,因?yàn)閷?xiě)入的時(shí)候沒(méi)有按照一定的規(guī)律。對(duì)于這個(gè)問(wèn)題,我采用的解決辦法的將所有學(xué)生的信息采用一定的格式寫(xiě)入文件,學(xué)號(hào)統(tǒng)一采用11位數(shù)字的格式,姓名統(tǒng)一采用占6各字節(jié)的格式,性別采用兩個(gè)字節(jié)也就是一個(gè)中文字符的格式,后面是各科分?jǐn)?shù),全部采用占3個(gè)字節(jié)的格式,這樣采用一種統(tǒng)一的格式將學(xué)生的信息按照順序一個(gè)接著一個(gè)寫(xiě)入文件。源代碼如下:for(i=0;i<_n1;i+)printf("請(qǐng)輸入第%d位學(xué)生的學(xué)號(hào),按0退出此次錄入!:n",i+1);scanf("%s",pnumber.id);getchar(); /用于吃掉回車(chē)符if(!(strcmp(pnumber.id,_cheshi5) /設(shè)置中途退出功能(如果中途不想繼續(xù)輸入的話(huà))fclose(fr); /此句用來(lái)控制當(dāng)中途退出時(shí)能將已輸入的信息及時(shí)存到外存中break;if(strlen(pnumber.id)!=11)printf("輸入的學(xué)號(hào)有誤!學(xué)號(hào)為標(biāo)準(zhǔn)的11位數(shù),請(qǐng)重新輸入:n");i-;continue;elsefprintf(fr,"%s",pnumber.id);loop2:printf("請(qǐng)輸入第%d位學(xué)生的姓名(僅支持中文):n",i+1);gets(pnumber.name);if(strlen(pnumber.name)=0|strlen(pnumber.name)>6)printf("姓名長(zhǎng)度不符合要求,請(qǐng)重新輸入!n");goto loop2;fprintf(fr,"%s",pnumber.name);a1=strlen(pnumber.name);a2=3-(a1/2);for(b2=1;b2<=a2;b2+)fprintf(fr,""); /在姓名不足三個(gè)字的后用空格補(bǔ)齊loop7:printf("請(qǐng)輸入性別:n");gets(pnumber.fale);if(strlen(pnumber.fale)!=2)printf("性別輸入有誤,請(qǐng)重新輸入!n");goto loop7;else fprintf(fr,"%2s",pnumber.fale);pnumber.all=0; /將總分初始化for(j=0;j<4;j+)printf("請(qǐng)輸入第%d位學(xué)生的%s成績(jī):n",i+1,_classj);scanf("%s",xj);fprintf(fr,"%-3s",xj);_x1=atoi(x1);_x2=atoi(x2);_x3=atoi(x3);_x4=atoi(x4);_x5=_x1+_x2+_x3+_x4;fprintf(fr,"%-3d",_x5);printf("第%d位學(xué)生的信息輸入成功!n",i+1);fclose(fr);printf("錄入結(jié)束,按回車(chē)回主菜單!n");getchar();getchar();system("cls");elseprintf("a");printf("超出最大人數(shù),請(qǐng)重新輸入!n");在讀取文件時(shí)位置指針移動(dòng)的問(wèn)題就解決啦。其次是,在信息存儲(chǔ)的過(guò)程中,我還考慮到了使用者在使用時(shí)可能遇到的盡可能多的問(wèn)題,如若輸入的學(xué)號(hào)小于11位,便會(huì)有輸入錯(cuò)誤提醒,還有一個(gè)非常使用的是當(dāng)使用著在進(jìn)行信息錄入的過(guò)程中,可以隨時(shí)地退出該功能,在錄入成功后會(huì)有錄入成功的提示信息。并且,為了使程序在使用時(shí)不會(huì)顯得過(guò)于呆板,我還在警示信息顯示的同時(shí)加入了聲音警示的功能,如學(xué)號(hào)輸入錯(cuò)誤不僅有文字提示而且有聲音提示,printf("a");這樣使程序看起來(lái)顯得更加人性化。 程序的第二個(gè)功能是信息查詢(xún)功能。很顯然,沒(méi)有查詢(xún)的功能,寫(xiě)得再好的錄入功能也相當(dāng)于白寫(xiě)。進(jìn)入信息查詢(xún)功能的菜單鍵是2數(shù)字鍵,進(jìn)入該功能后會(huì)有提示輸入要查詢(xún)的學(xué)生的學(xué)號(hào)或姓名,在設(shè)計(jì)該查詢(xún)功能時(shí),我采用的是strcmp函數(shù)來(lái)比較字符串的方式,來(lái)將輸入的要查詢(xún)的字符與文件中當(dāng)前有的各信息一一匹配,當(dāng)找到相同的學(xué)號(hào)或姓名時(shí),立即退出匹配的循環(huán)。源代碼如下:for(i=0;i<50;i+) /將所有學(xué)生的學(xué)生跟已經(jīng)錄入的學(xué)號(hào)配對(duì)fscanf(fr,"%11s",_id);fscanf(fr,"%6s",_name);if(!strcmp(shuru,_id)|(!strcmp(shuru,_name)printf("學(xué)號(hào):%sn",_id);printf("姓名:%sn",_name);fscanf(fr,"%2s",_fale);printf("性別:%2sn",_fale);for(j=0;j<4;j+)fscanf(fr,"%3s",fen);printf("%s的成績(jī)?yōu)椋?sn",_classj,fen);fscanf(fr,"%3s",_all);printf("總分:%3sn",_all);zhuangtai=0; /標(biāo)記說(shuō)明已查找到記錄break;else fseek(fr,16,1); /將光標(biāo)移到下一次要配對(duì)的前一個(gè),以測(cè)定該信息是否為最后一條cheshi=fgetc(fr);if(cheshi=EOF)break;if(zhuangtai)printf("a");printf("不存在該學(xué)號(hào)的學(xué)生!n");fclose(fr);printf("按回車(chē)鍵回主菜單.n");getchar();getchar();system("cls");查詢(xún)的界面如下:這樣寫(xiě)有一個(gè)好處就是使查詢(xún)所要提供的信息不僅僅局限于姓名或著是學(xué)號(hào),這樣就更方便使用者的需要。若查到結(jié)果則在屏幕上顯示已查到的結(jié)果:for(i=0;i<50;i+) /將所有學(xué)生的學(xué)生跟已經(jīng)錄入的學(xué)號(hào)配對(duì)fscanf(fr,"%11s",_id);fscanf(fr,"%6s",_name);if(!strcmp(shuru,_id)|(!strcmp(shuru,_name)printf("學(xué)號(hào):%sn",_id);printf("姓名:%sn",_name);fscanf(fr,"%2s",_fale);printf("性別:%2sn",_fale);for(j=0;j<4;j+)fscanf(fr,"%3s",fen);printf("%s的成績(jī)?yōu)椋?sn",_classj,fen);fscanf(fr,"%3s",_all);printf("總分:%3sn",_all);zhuangtai=0; /標(biāo)記說(shuō)明已查找到記錄break;else fseek(fr,16,1); /將光標(biāo)移到下一次要配對(duì)的前一個(gè),以測(cè)定該信息是否為最后一條cheshi=fgetc(fr);if(cheshi=EOF)break;同樣,在設(shè)計(jì)此功能時(shí),我也考慮到了查詢(xún)信息不存在的問(wèn)題,當(dāng)使用者輸入的要查詢(xún)的信息不存在時(shí),會(huì)有文字和聲音提示“未找到要查詢(xún)的記錄”,而且,在執(zhí)行此功能的過(guò)程中,也設(shè)置了隨時(shí)退出查詢(xún)的功能。功能界面如下: 接下來(lái)介紹的是刪除記錄功能。同樣,刪除記錄功能也是非常需要的,當(dāng)某個(gè)學(xué)生的信息不再需要時(shí),如果繼續(xù)保存,將使學(xué)生的信息管理變得越來(lái)越復(fù)雜,因此,刪除多余的記錄是非常有必要的。刪除功能的界面如下:在查找要?jiǎng)h除記錄的位置時(shí),我采用的方式是先將所有信息先存入一個(gè)結(jié)構(gòu)數(shù)組,源代碼如下:for(i=0;i<50;i+) /先將所有信息讀入一個(gè)結(jié)構(gòu)數(shù)組_cheshi4=fgetc(fr);if(_cheshi4=EOF)break;elsefseek(fr,-1,1);fscanf(fr,"%11s",student5i.id);fscanf(fr,"%6s",student5i.name);fscanf(fr,"%2s",student5i.fale);fscanf(fr,"%3s",&student5i.score0);fscanf(fr,"%3s",&student5i.score1);fscanf(fr,"%3s",&student5i.score2);fscanf(fr,"%3s",&student5i.score3);fscanf(fr,"%3s",&student5i.all);至于查找要?jiǎng)h除信息的位置跟信息查詢(xún)功能查找的方式是一樣的,即將所輸入的學(xué)號(hào)或姓名跟已存在的信息一一匹配,當(dāng)找到要?jiǎng)h除的記錄時(shí),立即退出匹配的循環(huán)。源代碼如下:for(j2=0;j2<i;j2+)if(!strcmp(_shuru2,student5j2.id)|!strcmp(_shuru2,student5j2.name)_biaoji=j2;而且還增加了刪除記錄未找到的反應(yīng)機(jī)制if(_biaoji=51)printf("a");printf("未找到要?jiǎng)h除的記錄!n");程序的第四大功能是修改記錄功能。設(shè)計(jì)此功能的目的是考慮到當(dāng)使用者只要修改某個(gè)學(xué)生的某一項(xiàng)信息但又不想修改其他信息時(shí)就可以采用修改記錄功能,此功能可以按照使用者的意圖選擇性的修改學(xué)生的某項(xiàng)指定的記錄。這樣就比將該學(xué)生的記錄全部刪除然后又重新存進(jìn)去要方便多了。首先要輸入要?jiǎng)h除的學(xué)生的姓名或?qū)W號(hào),以確定操作對(duì)象,代碼如下:printf("請(qǐng)輸入要修改信息的學(xué)生的姓名或?qū)W號(hào)!(按0取消修改)n");scanf("%s",_shuru2);if(strcmp(_cheshi8,_shuru2) /設(shè)置退出修改功能fseek(fr,0,0);for(i=0;i<50;i+) _cheshi1=fgetc(fr);if(_cheshi1=EOF)printf("a");printf("未找到要修改的記錄!n");goto loop8;fseek(fr,-1,1);fscanf(fr,"%11s",student4.id);fscanf(fr,"%6s",student4.name);if(!strcmp(_shuru2,student4.id)|(!strcmp(_shuru2,student4.name)fseek(fr,17,1);break;elsefseek(fr,17,1);在找到要修改的對(duì)象后,就要選擇要修改的項(xiàng)目,使用者可以通過(guò)選擇的方式選擇所要修改的項(xiàng),代碼如下:printf("請(qǐng)選擇要修改的項(xiàng).n");printf("修改學(xué)號(hào)請(qǐng)按1n");printf("修改姓名請(qǐng)按2n");printf("修改性別請(qǐng)按3n");printf("修改分?jǐn)?shù)請(qǐng)按4n");scanf("%s",_xiang);xiang=atoi(_xiang);switch(xiang)case 1:printf("請(qǐng)輸入要修改的學(xué)號(hào):n");scanf("%s",_xin);if(strlen(_xin)=11)strcpy(student4.id,_xin);elseprintf("a");printf("輸入學(xué)號(hào)有誤,學(xué)號(hào)為11位數(shù),請(qǐng)重新輸入!n");goto loop3;break;case 2:loop3:printf("請(qǐng)輸入要修改的姓名(僅支持3個(gè)字以?xún)?nèi)中文):n");scanf("%s",_xin);if(strlen(_xin)=0|strlen(_xin)>6)printf("輸入姓名長(zhǎng)度不符合要求,請(qǐng)重新輸入!n");goto loop3;strcpy(student4.name,_xin);break;case 3:loop4:printf("請(qǐng)輸入要修改的性別.n");scanf("%s",_xin);if(strlen(_xin)!=2)printf("a");printf("性別輸入有誤,請(qǐng)重新輸入!n");goto loop4;elsestrcpy(student4.fale,_xin);break;如果選擇要修改的分?jǐn)?shù),又會(huì)提示讓你選擇要修改分?jǐn)?shù)的科目:case 4:printf("請(qǐng)選擇要修改的成績(jī):n");loop6:printf("C語(yǔ)言請(qǐng)按1n大機(jī)請(qǐng)按2n高數(shù)請(qǐng)按3n英語(yǔ)請(qǐng)按4.n");scanf("%s",_xuanzhe);xuanzhe=atoi(_xuanzhe);switch(xuanzhe)case 1: printf("請(qǐng)輸入要修改的學(xué)號(hào):n");scanf("%s",_xin);if(strlen(_xin)=11)strcpy(student4.id,_xin);elseprintf("a");printf("輸入學(xué)號(hào)有誤,學(xué)號(hào)為11位數(shù),請(qǐng)重新輸入!n");goto loop3;break;case 2:loop3:printf("請(qǐng)輸入要修改的姓名(僅支持3個(gè)字以?xún)?nèi)中文):n");scanf("%s",_xin);if(strlen(_xin)=0|strlen(_xin)>6)printf("輸入姓名長(zhǎng)度不符合要求,請(qǐng)重新輸入!n");goto loop3;strcpy(student4.name,_xin);break; 接下來(lái)介紹的程序的第五大功能輸出所有學(xué)生信息的功能。當(dāng)然雜亂地輸出所有信息可以說(shuō)是好無(wú)意義的,因此,我在設(shè)計(jì)此功能時(shí)采用了一個(gè)冒泡排序,將所有學(xué)生的信息按照總分從大到小依次輸出。具體是先將所有學(xué)生的信息先存儲(chǔ)在一個(gè)結(jié)構(gòu)數(shù)組中:for(_n2=0;_n2<50;_n2+)_cheshi4=fgetc(fr);if(_cheshi4=EOF)fseek(fr,-1,1);break;else ;fseek(fr,-1,1);fscanf(fr,"%11s",student6_n2.id);fscanf(fr,"%6s",student6_n2.name);fscanf(fr,"%2s",student6_n2.fale);fscanf(fr,"%3s",student6_n2.score0);fscanf(fr,"%3s",student6_n2.score1);fscanf(fr,"%3s",student6_n2.score2);fscanf(fr,"%3s",student6_n2.score3);fscanf(fr,"%3d",&_laji);qiu0=atoi(student6_n2.score0);qiu1=atoi(student6_n2.score1);qiu2=atoi(student6_n2.score2);qiu3=atoi(student6_n2.score3);student6_n2.all=qiu0+qiu1+qiu2+qiu3;然后用了一個(gè)冒泡排序:for(i=0;i<_jilu+1;i+)for(j=0;j<_jilu-1;j+)if(student6j.all)<(student6j+1.all)student4=student6j;student6j=student6j+1;student6j+1=student4;按總分排好序之后就是輸出信息了,輸出信息的時(shí)候,我采用的是一個(gè)學(xué)生的所有信息在一行輸出,這樣可以使使用者在查看的時(shí)候顯得更加清楚明了。最后就是退出功能。,退出功能在此程序中可以說(shuō)無(wú)處不在,因?yàn)槲以谠O(shè)計(jì)各項(xiàng)功能時(shí)都考慮到了退出的問(wèn)題,在執(zhí)行各個(gè)功能時(shí),隨時(shí)都可以退出到主菜單。但這里所說(shuō)的退出功能是指退出程序功能,沒(méi)有退出的功能,有了該功能將可以使程序在運(yùn)行時(shí)可以很方便地退出。三總結(jié)與體會(huì)回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,從從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整半個(gè)學(xué)期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問(wèn)題,最后在郭老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在郭老師的身上我學(xué)得到很多實(shí)用的知識(shí),在次我表示感謝!同時(shí),對(duì)給過(guò)我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝在課程設(shè)計(jì)過(guò)程中,我學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒,黑夜過(guò)去了,我們收獲的是黎明。在本次實(shí)踐中,給我印象最為深刻的是在文件刪除程序的編譯過(guò)程中,先有我的各個(gè)子程序都已經(jīng)編輯成功,那么這最后的程序就將是我成功的關(guān)鍵。老天不會(huì)讓我太過(guò)順利,他在這最后的時(shí)刻設(shè)置的障礙,是要考驗(yàn)我的能力,他要置我于死地?在這個(gè)問(wèn)題的解決上,我打了退堂鼓,我不能忍受長(zhǎng)時(shí)間的無(wú)功而反,時(shí)間正在消磨我的意志。沒(méi)有了柳暗花明的一天,那么我怎么能說(shuō)經(jīng)受住了考驗(yàn)?謝謝老師的那句話(huà),她說(shuō):人力有所不能及,然而,人的精神是不會(huì)敗倒的。我鼓起勇氣,到處問(wèn),到處查資料,黃天不負(fù)有心人,在一篇文章上,終于看到了我所特別要求的函數(shù),我實(shí)現(xiàn)了組合是關(guān)鍵的理論。不得不說(shuō)這是精神的勝利,是永不言敗的精神讓我的程序重見(jiàn)天日。謝謝給我指點(diǎn)迷津的老師。6月11日,我們的課程設(shè)計(jì)結(jié)束了,但是它留給我的印象是不可磨滅的。無(wú)論我以后會(huì)不會(huì)涉及到C語(yǔ)言程序編譯的研究,我想,我至少掌握了一種系統(tǒng)的研究方法,我們學(xué)習(xí)的目的就在于運(yùn)用,我們運(yùn)用這種研究方法的時(shí)候會(huì)很多,我最后要感謝課程設(shè)計(jì),它的確教會(huì)我很多。四、參考資料1、李長(zhǎng)云C語(yǔ)言程序設(shè)計(jì)國(guó)防工業(yè)出版社、2、百度文庫(kù)(尋找C語(yǔ)言課程設(shè)計(jì)的模版及某些實(shí)用功能函數(shù))專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)