學(xué)生信息管理系統(tǒng) .doc
《學(xué)生信息管理系統(tǒng) .doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)生信息管理系統(tǒng) .doc(20頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、滁州學(xué)院 課程設(shè)計(jì)報(bào)告 課程名稱: 數(shù)據(jù)結(jié)構(gòu) 設(shè)計(jì)題目: 學(xué)生成績信息管理系統(tǒng) 系 別: 計(jì)算機(jī)科學(xué)與技術(shù) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 組 別: 第十組 起止日期: 11年5 月 20日 ~ 11年 6 月25日 指導(dǎo)
2、教師: 楊斌 計(jì)算機(jī)科學(xué)與技術(shù)系二○一一年制 課程設(shè)計(jì)題目 學(xué)生成績管理系統(tǒng) 組長 孫大成 學(xué)號(hào) 2010211119 班級(jí) 計(jì)科一班 系別 計(jì)算機(jī)科學(xué)與技術(shù) 專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 組員 陳鳳霞 高山 陳世光 指導(dǎo)教師 楊斌 課程設(shè)計(jì)目的 方便用戶對(duì)學(xué)生成績的管理和查詢 課程設(shè)計(jì)所需環(huán)境 Microsoft Visual C++ 6.0 課程設(shè)計(jì)任務(wù)要求 應(yīng)用數(shù)據(jù)結(jié)構(gòu)的知識(shí)從文本中讀取數(shù)據(jù),設(shè)計(jì)算法,完成對(duì)學(xué)生
3、成績的管理和查詢 課程設(shè)計(jì)工作進(jìn)度計(jì)劃 序號(hào) 起止日期 工 作 內(nèi) 容 分工情況 1 5/20~5/25 將學(xué)生的成績從文本文件中讀取出來,存入數(shù)組 陳鳳霞完成 2 5/25~5/30 運(yùn)用選擇排序法對(duì)成績進(jìn)行降序排列 陳世光完成 3 6/1~6/10 運(yùn)用直接插入排序?qū)Τ煽冞M(jìn)行升序排列 孫大成完成 4 6/10~6/15 對(duì)某個(gè)學(xué)生的成績進(jìn)行查找操作 高山完成 5 6/15~6/20 對(duì)不及格學(xué)生的成績輸出到新建文檔中 高山完成 6 6/20 設(shè)計(jì)主函數(shù)中的循環(huán)算法,便于多次操作 孫大成完成 指導(dǎo)教師簽字:
4、 年 月 日 教研室審核意見: 教研室主任簽字: 年 月 日 課程設(shè)計(jì)任務(wù)書 18 目錄 ⒈引言 2 1.1、課程簡介 2 1.2、課程設(shè)計(jì)的背景 2 ⒉需求分析 2 2.1問題要求 2 2.2設(shè)計(jì)思路 3 2.3運(yùn)行開發(fā)環(huán)境 3 ⒊概要設(shè)計(jì) 3 3.1流程圖 3 3.2 主要數(shù)據(jù)結(jié)構(gòu) 4 3.3 函數(shù)及其實(shí)現(xiàn)的功能 4 ⒋詳細(xì)設(shè)計(jì) 4 ⒌調(diào)試與操作說明 15 5.1、成績的合并后輸出 15 5.2、成績的降序輸出 15 5.3、不及格成績學(xué)生的信
5、息: 15 5.3成績的查詢 15 5.4、成績的不及格信息 16 5.5成績的文本中讀取 16 ⒍課程設(shè)計(jì)總結(jié)與體會(huì) 17 ⒎致謝 17 ⒏參考文獻(xiàn) 17 課程設(shè)計(jì)的主要內(nèi)容 ⒈引言 1.1、課程簡介 當(dāng)今社會(huì),計(jì)算機(jī)技術(shù)和通信技術(shù)已經(jīng)不斷發(fā)展,處理和傳輸?shù)臄?shù)據(jù)量越來越龐大。文本文件存儲(chǔ)的方式是普通人熟悉的數(shù)據(jù)管理的方式,我們要做的就是在文本中讀取數(shù)據(jù),在程序中處理數(shù)據(jù),生成新的數(shù)據(jù)再保留在文本文檔中,供其他人應(yīng)用。 1.2、課程設(shè)計(jì)的背景 課程設(shè)計(jì)是為了讓同學(xué)們了解學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的作用和意義。數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的專業(yè)基礎(chǔ)課。所有的計(jì)算機(jī)系統(tǒng)軟件和應(yīng)用軟件
6、都要用到各種類型的數(shù)據(jù)結(jié)構(gòu)。因此,想要更好地運(yùn)用計(jì)算機(jī)來解決實(shí)際問題,僅僅掌握幾門計(jì)算機(jī)程序設(shè)計(jì)語言是遠(yuǎn)遠(yuǎn)難以應(yīng)付當(dāng)前眾多復(fù)雜的課題,想要有效地使用計(jì)算機(jī),充分發(fā)揮它的性能,還必須學(xué)習(xí)和掌握好數(shù)據(jù)結(jié)構(gòu)的有關(guān)知識(shí),打好數(shù)據(jù)結(jié)構(gòu)這門課的基礎(chǔ),對(duì)于學(xué)習(xí)計(jì)算機(jī)專業(yè)其它的課程,如操作系統(tǒng)、軟件工程、編譯原理、數(shù)據(jù)庫、人工智能等十分有益。 ⒉需求分析 2.1問題要求 現(xiàn)有學(xué)生成績信息文件1(1.txt),內(nèi)容如下 姓名 學(xué)號(hào) 語文 數(shù)學(xué) 英語 張明明 01 67 78 82 李成友 02 78 91 88 張輝燦
7、 03 68 82 56 王露 04 56 45 77 陳東明 05 67 38 47 …. .. .. .. … 學(xué)生成績信息文件2(2.txt),內(nèi)容如下: 姓名 學(xué)號(hào) 語文 數(shù)學(xué) 英語 陳果 31 57 68 82 李華明 32 88 90 68 張明東 33 48 42 56 李明國 34 50 45 87 陳道亮
8、 35 47 58 77 …. .. .. .(文件內(nèi)容可根據(jù)測試要求,自行制定) 試編寫一個(gè)管理系統(tǒng),要求如下: 1)、實(shí)現(xiàn)對(duì)兩個(gè)文件數(shù)據(jù)進(jìn)行合并,生成新文件3.txt 2)、抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個(gè)新文件4.txt 3)、對(duì)合并后的文件3.txt中的數(shù)據(jù)按總分降序排序(至少采用兩種排序方法實(shí)現(xiàn)) 4)、輸入一個(gè)學(xué)生姓名后,能查找到此學(xué)生的信息并輸出結(jié)果(至少采用兩種查找方法實(shí)現(xiàn)) 5)、要求使用結(jié)構(gòu)體,鏈或數(shù)組等實(shí)現(xiàn)上述要求. 采用多種方法且算法正確者,可適當(dāng)加分. 2.2設(shè)計(jì)思路 利用文件對(duì)學(xué)生成績等
9、基本信息進(jìn)行保存,并將其中的兩文件合并成一個(gè),生成新的文件;學(xué)生成績的分析,將應(yīng)補(bǔ)考的同學(xué)的基本信息保存在另一個(gè)文件中;利用合并進(jìn)行降序。 2.3運(yùn)行開發(fā)環(huán)境 運(yùn)行環(huán)境 Microsoft Visual C++ 6.0;開發(fā)工具 C/C++ ⒊概要設(shè)計(jì) 3.1流程圖 課程設(shè)計(jì)中算法的函數(shù)模塊 學(xué)生信息的建立 void create(Data stu[]) 一些學(xué)生的信息的排序(合并排序) void hebing(Data stu[])//hebing paixu 補(bǔ)考同學(xué)信息的合并 void bukao(Data stu[]) 主函數(shù)的建立
10、 void main() 結(jié)束 圖3.1設(shè)計(jì)的流程圖 3.2 主要數(shù)據(jù)結(jié)構(gòu) 結(jié)構(gòu)如下表所述,建立包含系成績、學(xué)號(hào)、總分的信息存儲(chǔ)等 具體數(shù)據(jù)結(jié)構(gòu)定義如下: typedef struct data//建立結(jié)構(gòu)體數(shù)組 { char name[10]; int Xhao; int china; int math; int english; int sum; }Data; 3.3 函數(shù)及其實(shí)現(xiàn)的功能 利用文件對(duì)學(xué)生成績等基本信息進(jìn)行保存,并將其中的兩文件合并成一個(gè),生成新的文件;學(xué)生成績的分析,將應(yīng)補(bǔ)考的同學(xué)的基本信息保存在另一個(gè)文件中
11、;利用合并進(jìn)行降序。
⒋詳細(xì)設(shè)計(jì)
4.1程序設(shè)計(jì)源代碼
#include
12、/////////////////////// void create(Data stu[]) { int i=0; 【1】FILE *fp1,*fp2; if((fp1=fopen("E:\\c語言\\課程設(shè)計(jì)作業(yè)\\t1.txt","r"))==NULL) { printf("FILE not found!\n"); exit(0); } if((fp2=fopen("E:\\c語言\\課程設(shè)計(jì)作業(yè)\\t2.txt","r"))==NULL) { printf("FILE not found!\n"); exit(0); } while(
13、!feof(fp1)) { fscanf(fp1,"%s%d%d%d%d",stu[i].name,&stu[i].Xhao,&stu[i].china,&stu[i].math,&stu[i].english); stu[i].sum=stu[i].china+stu[i].math+stu[i].english; i++; }; i--; while(!feof(fp2)) { fscanf(fp2,"%s%d%d%d%d",stu[i].name,&stu[i].Xhao,&stu[i].china,&stu[i].ma
14、th,&stu[i].english); stu[i].sum=stu[i].china+stu[i].math+stu[i].english; i++; };i--;k=i; printf("學(xué)號(hào) 姓名 語文 數(shù)學(xué) 英語 總分\n"); for(int j=0;j
15、sum);
}
cout< 16、jj 17、("%d %-5s %d %d %d %d\n",stu[j].Xhao,stu[j].name,stu[j].china,stu[j].math,stu[j].english,stu[j].sum);
}
}
/////////////////////////////////////
//2、直接插入排序
void hebing2(Data stu[])
{
int t,i;
Data temp;
FILE *fp5;
if((fp5=fopen("E:\\c語言\\課程設(shè)計(jì)作業(yè)\\t5.txt","w"))==NULL)
18、{ printf("FILE not found!\n");
exit(0);
}
for(i=2;i<=k;i++)
{
stu[0]=stu[i];
t=i-1;
while(stu[t].sum > stu[0])
{
stu[t+1]=stu[t];
t=t-1;
}
stu[t+1]= stu[0];
}
for(int j=1;j<=k;j++)
{
fprintf(fp5,"%d %-5s %d %d %d %d\n",stu[j].Xhao,stu[j]. 19、name,stu[j].china,stu[j].math,stu[j].english,stu[j].sum);
printf("%d %-5s %d %d %d %d\n",stu[j].Xhao,stu[j].name,stu[j].china,stu[j].math,stu[j].english,stu[j].sum);
}
}
///////////////////////////////////////////////////////////////////////////////
void bukao(Data stu[])
20、
{
FILE *fp4;
if((fp4=fopen("E:\\c語言\\課程設(shè)計(jì)作業(yè)\\t4.txt","w"))==NULL)
{ printf("FILE not found!\n");
exit(0);
}
for(int i=0;i 21、china);
fprintf(fp4,"%s\n","語文不及格:");
printf("%s\n","語文不及格:");
}
if(stu[i].math<60){
fprintf(fp4,"%d--%s---%d ",stu[i].Xhao,stu[i].name,stu[i].math);
printf("%d--%s---%d ",stu[i].Xhao,stu[i].name,stu[i].math);
fprintf(fp4,"%s\n","數(shù)學(xué)不及格:");
printf("%s\n","數(shù)學(xué)不及格:");
22、 }
if(stu[i].english<60){
fprintf(fp4,"%d--%s---%d ",stu[i].Xhao,stu[i].name,stu[i].english);
printf("%d--%s---%d ",stu[i].Xhao,stu[i].name,stu[i].english);
fprintf(fp4,"%s\n","英語不及格:");
printf("%s\n","英語不及格:");
}
}
}
//////////////////////////////////////////////////// 23、///////////////////////////
void search(Data stu[])
{
int j,flag=0;
char name[10];
printf("輸入一個(gè)學(xué)生的姓名:\n");
scanf("%s",name);
fflush(stdin);
for(int i=0;i 24、,stu[i].china,stu[i].math,stu[i].english,stu[i].sum);
}
}
if(flag==0)
cout<<"not found"< 25、<<" #******輸入“1”,降序排列成績******結(jié)果見文本文件t3******#"< 26、
void main()
{
int j=1;
char ch;
Data stu[20];
Data A[20];
prf();
cout<<"請(qǐng)輸入要執(zhí)行的步驟(以1,2,3,4,5,0 ):"< 27、< 28、
fflush(stdin);
}
}
⒌調(diào)試與操作說明
5.1、成績的合并后輸出
圖5.1成績的合并
5.2、成績的降序輸出
5.3、不及格成績學(xué)生的信息:
圖5.2成績的降序排序
5.3成績的查詢
圖5.3成績的查詢
5.4、成績的不及格信息
圖5.4成績的不及格學(xué)生信息
5.5成績的文本中讀取
在文本文件中查看上述操作的結(jié)果。
圖5.5文本文件降序成績
圖5.6文本文件補(bǔ) 29、考信息
⒍課程設(shè)計(jì)總結(jié)與體會(huì)
在課程設(shè)計(jì)中,我們組的成員分工合作。他們每個(gè)人遇到過不同程度的問題都會(huì)想著去解決去實(shí)現(xiàn),當(dāng)一個(gè)人解決不了的時(shí)候,團(tuán)隊(duì)的優(yōu)越性就體現(xiàn)出來了。我們一起探討,研究終于完成了這次的課程設(shè)計(jì),雖然這只是一個(gè)小的程序,沒有牽涉到什么外圍的人力和物理資源。但是我們多少了解做課程設(shè)計(jì)的精髓,為以后的學(xué)術(shù)報(bào)告做好鋪墊。
⒎致謝
感謝本組全體成員的努力以及老師們和同學(xué)們的幫助,其中有《數(shù)據(jù)結(jié)構(gòu)》老師楊斌和《C語言程序設(shè)計(jì)》老師趙瑞斌等。
⒏參考文獻(xiàn)
[1] 何欽銘,顏輝.C語言程序設(shè)計(jì)[M].北京:高等教育出版社,2008.
[2] 胡學(xué)剛.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:高等教育出版社,2008
評(píng)語:
評(píng)閱教師簽名: 年 月 日
成 績
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案