《學生信息管理系統 .doc》由會員分享,可在線閱讀,更多相關《學生信息管理系統 .doc(20頁珍藏版)》請在裝配圖網上搜索。
1、滁州學院
課程設計報告
課程名稱: 數據結構
設計題目: 學生成績信息管理系統
系 別: 計算機科學與技術
專 業(yè): 計算機科學與技術
組 別: 第十組
起止日期: 11年5 月 20日 ~ 11年 6 月25日
指導
2、教師: 楊斌
計算機科學與技術系二○一一年制
課程設計題目
學生成績管理系統
組長
孫大成
學號
2010211119
班級
計科一班
系別
計算機科學與技術
專業(yè)
計算機科學與技術
組員
陳鳳霞 高山 陳世光
指導教師
楊斌
課程設計目的
方便用戶對學生成績的管理和查詢
課程設計所需環(huán)境
Microsoft Visual C++ 6.0
課程設計任務要求
應用數據結構的知識從文本中讀取數據,設計算法,完成對學生
3、成績的管理和查詢
課程設計工作進度計劃
序號
起止日期
工 作 內 容
分工情況
1
5/20~5/25
將學生的成績從文本文件中讀取出來,存入數組
陳鳳霞完成
2
5/25~5/30
運用選擇排序法對成績進行降序排列
陳世光完成
3
6/1~6/10
運用直接插入排序對成績進行升序排列
孫大成完成
4
6/10~6/15
對某個學生的成績進行查找操作
高山完成
5
6/15~6/20
對不及格學生的成績輸出到新建文檔中
高山完成
6
6/20
設計主函數中的循環(huán)算法,便于多次操作
孫大成完成
指導教師簽字:
4、 年 月 日
教研室審核意見:
教研室主任簽字: 年 月 日
課程設計任務書
18
目錄
⒈引言 2
1.1、課程簡介 2
1.2、課程設計的背景 2
⒉需求分析 2
2.1問題要求 2
2.2設計思路 3
2.3運行開發(fā)環(huán)境 3
⒊概要設計 3
3.1流程圖 3
3.2 主要數據結構 4
3.3 函數及其實現的功能 4
⒋詳細設計 4
⒌調試與操作說明 15
5.1、成績的合并后輸出 15
5.2、成績的降序輸出 15
5.3、不及格成績學生的信
5、息: 15
5.3成績的查詢 15
5.4、成績的不及格信息 16
5.5成績的文本中讀取 16
⒍課程設計總結與體會 17
⒎致謝 17
⒏參考文獻 17
課程設計的主要內容
⒈引言
1.1、課程簡介
當今社會,計算機技術和通信技術已經不斷發(fā)展,處理和傳輸的數據量越來越龐大。文本文件存儲的方式是普通人熟悉的數據管理的方式,我們要做的就是在文本中讀取數據,在程序中處理數據,生成新的數據再保留在文本文檔中,供其他人應用。
1.2、課程設計的背景
課程設計是為了讓同學們了解學習數據結構的作用和意義。數據結構是計算機科學與技術專業(yè)的專業(yè)基礎課。所有的計算機系統軟件和應用軟件
6、都要用到各種類型的數據結構。因此,想要更好地運用計算機來解決實際問題,僅僅掌握幾門計算機程序設計語言是遠遠難以應付當前眾多復雜的課題,想要有效地使用計算機,充分發(fā)揮它的性能,還必須學習和掌握好數據結構的有關知識,打好數據結構這門課的基礎,對于學習計算機專業(yè)其它的課程,如操作系統、軟件工程、編譯原理、數據庫、人工智能等十分有益。
⒉需求分析
2.1問題要求
現有學生成績信息文件1(1.txt),內容如下
姓名 學號 語文 數學 英語
張明明 01 67 78 82
李成友 02 78 91 88
張輝燦
7、 03 68 82 56
王露 04 56 45 77
陳東明 05 67 38 47
…. .. .. .. …
學生成績信息文件2(2.txt),內容如下:
姓名 學號 語文 數學 英語
陳果 31 57 68 82
李華明 32 88 90 68
張明東 33 48 42 56
李明國 34 50 45 87
陳道亮
8、 35 47 58 77
…. .. .. .(文件內容可根據測試要求,自行制定)
試編寫一個管理系統,要求如下:
1)、實現對兩個文件數據進行合并,生成新文件3.txt
2)、抽取出三科成績中有補考的學生并保存在一個新文件4.txt
3)、對合并后的文件3.txt中的數據按總分降序排序(至少采用兩種排序方法實現)
4)、輸入一個學生姓名后,能查找到此學生的信息并輸出結果(至少采用兩種查找方法實現)
5)、要求使用結構體,鏈或數組等實現上述要求.
采用多種方法且算法正確者,可適當加分.
2.2設計思路
利用文件對學生成績等
9、基本信息進行保存,并將其中的兩文件合并成一個,生成新的文件;學生成績的分析,將應補考的同學的基本信息保存在另一個文件中;利用合并進行降序。
2.3運行開發(fā)環(huán)境
運行環(huán)境 Microsoft Visual C++ 6.0;開發(fā)工具 C/C++
⒊概要設計
3.1流程圖
課程設計中算法的函數模塊
學生信息的建立
void create(Data stu[])
一些學生的信息的排序(合并排序)
void hebing(Data stu[])//hebing paixu
補考同學信息的合并
void bukao(Data stu[])
主函數的建立
10、
void main()
結束
圖3.1設計的流程圖
3.2 主要數據結構
結構如下表所述,建立包含系成績、學號、總分的信息存儲等
具體數據結構定義如下:
typedef struct data//建立結構體數組
{
char name[10];
int Xhao;
int china;
int math;
int english;
int sum;
}Data;
3.3 函數及其實現的功能
利用文件對學生成績等基本信息進行保存,并將其中的兩文件合并成一個,生成新的文件;學生成績的分析,將應補考的同學的基本信息保存在另一個文件中
11、;利用合并進行降序。
⒋詳細設計
4.1程序設計源代碼
#include
#include
#include//為了輸入字符串
#include
typedef struct data【1】
{
char name[10];
int Xhao;
int china;
int math;
int english;
int sum;
}Data;
int k;
////////////////////////////////////////////////////////
12、///////////////////////
void create(Data stu[])
{
int i=0;
【1】FILE *fp1,*fp2;
if((fp1=fopen("E:\\c語言\\課程設計作業(yè)\\t1.txt","r"))==NULL)
{ printf("FILE not found!\n");
exit(0);
}
if((fp2=fopen("E:\\c語言\\課程設計作業(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("學號 姓名 語文 數學 英語 總分\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è)\\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è)\\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","數學不及格:");
printf("%s\n","數學不及格:");
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("輸入一個學生的姓名:\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”,降序排列成績******結果見文本文件t3******#"<
26、
void main()
{
int j=1;
char ch;
Data stu[20];
Data A[20];
prf();
cout<<"請輸入要執(zhí)行的步驟(以1,2,3,4,5,0 ):"<
27、<
28、
fflush(stdin);
}
}
⒌調試與操作說明
5.1、成績的合并后輸出
圖5.1成績的合并
5.2、成績的降序輸出
5.3、不及格成績學生的信息:
圖5.2成績的降序排序
5.3成績的查詢
圖5.3成績的查詢
5.4、成績的不及格信息
圖5.4成績的不及格學生信息
5.5成績的文本中讀取
在文本文件中查看上述操作的結果。
圖5.5文本文件降序成績
圖5.6文本文件補
29、考信息
⒍課程設計總結與體會
在課程設計中,我們組的成員分工合作。他們每個人遇到過不同程度的問題都會想著去解決去實現,當一個人解決不了的時候,團隊的優(yōu)越性就體現出來了。我們一起探討,研究終于完成了這次的課程設計,雖然這只是一個小的程序,沒有牽涉到什么外圍的人力和物理資源。但是我們多少了解做課程設計的精髓,為以后的學術報告做好鋪墊。
⒎致謝
感謝本組全體成員的努力以及老師們和同學們的幫助,其中有《數據結構》老師楊斌和《C語言程序設計》老師趙瑞斌等。
⒏參考文獻
[1] 何欽銘,顏輝.C語言程序設計[M].北京:高等教育出版社,2008.
[2] 胡學剛.數據結構(C語言版)[M].北京:高等教育出版社,2008
評語:
評閱教師簽名: 年 月 日
成 績