學(xué)生信息管理系統(tǒng) .doc
《學(xué)生信息管理系統(tǒng) .doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《學(xué)生信息管理系統(tǒng) .doc(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、滁州學(xué)院 課程設(shè)計(jì)報(bào)告 課程名稱: 數(shù)據(jù)結(jié)構(gòu) 設(shè)計(jì)題目: 學(xué)生成績(jī)信息管理系統(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é)生成績(jī)管理系統(tǒng) 組長(zhǎng) 孫大成 學(xué)號(hào) 2010211119 班級(jí) 計(jì)科一班 系別 計(jì)算機(jī)科學(xué)與技術(shù) 專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 組員 陳鳳霞 高山 陳世光 指導(dǎo)教師 楊斌 課程設(shè)計(jì)目的 方便用戶對(duì)學(xué)生成績(jī)的管理和查詢 課程設(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、成績(jī)的管理和查詢 課程設(shè)計(jì)工作進(jìn)度計(jì)劃 序號(hào) 起止日期 工 作 內(nèi) 容 分工情況 1 5/20~5/25 將學(xué)生的成績(jī)從文本文件中讀取出來(lái),存入數(shù)組 陳鳳霞完成 2 5/25~5/30 運(yùn)用選擇排序法對(duì)成績(jī)進(jìn)行降序排列 陳世光完成 3 6/1~6/10 運(yùn)用直接插入排序?qū)Τ煽?jī)進(jìn)行升序排列 孫大成完成 4 6/10~6/15 對(duì)某個(gè)學(xué)生的成績(jī)進(jìn)行查找操作 高山完成 5 6/15~6/20 對(duì)不及格學(xué)生的成績(jī)輸出到新建文檔中 高山完成 6 6/20 設(shè)計(jì)主函數(shù)中的循環(huán)算法,便于多次操作 孫大成完成 指導(dǎo)教師簽字:
4、 年 月 日 教研室審核意見: 教研室主任簽字: 年 月 日 課程設(shè)計(jì)任務(wù)書 18 目錄 ⒈引言 2 1.1、課程簡(jiǎn)介 2 1.2、課程設(shè)計(jì)的背景 2 ⒉需求分析 2 2.1問(wèn)題要求 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)試與操作說(shuō)明 15 5.1、成績(jī)的合并后輸出 15 5.2、成績(jī)的降序輸出 15 5.3、不及格成績(jī)學(xué)生的信
5、息: 15 5.3成績(jī)的查詢 15 5.4、成績(jī)的不及格信息 16 5.5成績(jī)的文本中讀取 16 ⒍課程設(shè)計(jì)總結(jié)與體會(huì) 17 ⒎致謝 17 ⒏參考文獻(xiàn) 17 課程設(shè)計(jì)的主要內(nèi)容 ⒈引言 1.1、課程簡(jiǎn)介 當(dāng)今社會(huì),計(jì)算機(jī)技術(shù)和通信技術(shù)已經(jīng)不斷發(fā)展,處理和傳輸?shù)臄?shù)據(jù)量越來(lái)越龐大。文本文件存儲(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ī)來(lái)解決實(shí)際問(wèn)題,僅僅掌握幾門計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言是遠(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ù)庫(kù)、人工智能等十分有益。 ⒉需求分析 2.1問(wèn)題要求 現(xiàn)有學(xué)生成績(jī)信息文件1(1.txt),內(nèi)容如下 姓名 學(xué)號(hào) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 張明明 01 67 78 82 李成友 02 78 91 88 張輝燦
7、 03 68 82 56 王露 04 56 45 77 陳東明 05 67 38 47 …. .. .. .. … 學(xué)生成績(jī)信息文件2(2.txt),內(nèi)容如下: 姓名 學(xué)號(hào) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 陳果 31 57 68 82 李華明 32 88 90 68 張明東 33 48 42 56 李明國(guó) 34 50 45 87 陳道亮
8、 35 47 58 77 …. .. .. .(文件內(nèi)容可根據(jù)測(cè)試要求,自行制定) 試編寫一個(gè)管理系統(tǒng),要求如下: 1)、實(shí)現(xiàn)對(duì)兩個(gè)文件數(shù)據(jù)進(jìn)行合并,生成新文件3.txt 2)、抽取出三科成績(jī)中有補(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é)生成績(jī)等
9、基本信息進(jìn)行保存,并將其中的兩文件合并成一個(gè),生成新的文件;學(xué)生成績(jī)的分析,將應(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)如下表所述,建立包含系成績(jī)、學(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ī)等基本信息進(jìn)行保存,并將其中的兩文件合并成一個(gè),生成新的文件;學(xué)生成績(jī)的分析,將應(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語(yǔ)言\\課程設(shè)計(jì)作業(yè)\\t1.txt","r"))==NULL) { printf("FILE not found!\n"); exit(0); } if((fp2=fopen("E:\\c語(yǔ)言\\課程設(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) 姓名 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 總分\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語(yǔ)言\\課程設(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語(yǔ)言\\課程設(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","語(yǔ)文不及格:");
printf("%s\n","語(yǔ)文不及格:");
}
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","英語(yǔ)不及格:");
printf("%s\n","英語(yǔ)不及格:");
}
}
}
//////////////////////////////////////////////////// 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”,降序排列成績(jī)******結(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)試與操作說(shuō)明
5.1、成績(jī)的合并后輸出
圖5.1成績(jī)的合并
5.2、成績(jī)的降序輸出
5.3、不及格成績(jī)學(xué)生的信息:
圖5.2成績(jī)的降序排序
5.3成績(jī)的查詢
圖5.3成績(jī)的查詢
5.4、成績(jī)的不及格信息
圖5.4成績(jī)的不及格學(xué)生信息
5.5成績(jī)的文本中讀取
在文本文件中查看上述操作的結(jié)果。
圖5.5文本文件降序成績(jī)
圖5.6文本文件補(bǔ) 29、考信息
⒍課程設(shè)計(jì)總結(jié)與體會(huì)
在課程設(shè)計(jì)中,我們組的成員分工合作。他們每個(gè)人遇到過(guò)不同程度的問(wèn)題都會(huì)想著去解決去實(shí)現(xiàn),當(dāng)一個(gè)人解決不了的時(shí)候,團(tuán)隊(duì)的優(yōu)越性就體現(xiàn)出來(lái)了。我們一起探討,研究終于完成了這次的課程設(shè)計(jì),雖然這只是一個(gè)小的程序,沒有牽涉到什么外圍的人力和物理資源。但是我們多少了解做課程設(shè)計(jì)的精髓,為以后的學(xué)術(shù)報(bào)告做好鋪墊。
⒎致謝
感謝本組全體成員的努力以及老師們和同學(xué)們的幫助,其中有《數(shù)據(jù)結(jié)構(gòu)》老師楊斌和《C語(yǔ)言程序設(shè)計(jì)》老師趙瑞斌等。
⒏參考文獻(xiàn)
[1] 何欽銘,顏輝.C語(yǔ)言程序設(shè)計(jì)[M].北京:高等教育出版社,2008.
[2] 胡學(xué)剛.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].北京:高等教育出版社,2008
評(píng)語(yǔ):
評(píng)閱教師簽名: 年 月 日
成 績(jī)
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧汽貿(mào)的戰(zhàn)略規(guī)劃課件
- 農(nóng)藥產(chǎn)品化學(xué)登記評(píng)審中存在的問(wèn)題修改
- 職業(yè)適應(yīng)與發(fā)展
- 中國(guó)傳統(tǒng)思想和領(lǐng)導(dǎo)藝術(shù)
- 學(xué)習(xí)英語(yǔ)最好的方法課件
- 團(tuán)隊(duì)建設(shè)與管理教材(PPT 42頁(yè))
- 商務(wù)談判的準(zhǔn)備培訓(xùn)課件
- 單元吃奶和豆及其制品
- 氣管切開護(hù)理
- 七上281有理數(shù)的乘法1
- 素質(zhì)拓展學(xué)分重要性
- 地產(chǎn)項(xiàng)目策劃廣告創(chuàng)意
- 華通檸檬渠道推廣活動(dòng)案
- 酸堿平衡紊亂的判讀
- 氣管插管的困難評(píng)估課件