《高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)報(bào)告- -學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《高級(jí)程序設(shè)計(jì)語(yǔ)言課程設(shè)計(jì)報(bào)告- -學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、
河南工程學(xué)院《高級(jí)程序設(shè)計(jì)語(yǔ)言》課程設(shè)計(jì)
成果報(bào)告
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
學(xué)生學(xué)號(hào):
學(xué)生姓名:
學(xué) 院: 計(jì)算機(jī)學(xué)院
專業(yè)班級(jí):
專業(yè)課程: 《高級(jí)程序設(shè)計(jì)語(yǔ)言》
指導(dǎo)教師:
2014 年 6 月 27 日
題 目
學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
考核項(xiàng)目
考核內(nèi)容
得分
平時(shí)考核
(30分)出勤情況、態(tài)度、效率;知識(shí)掌握情況、基本操作技能、知識(shí)應(yīng)用能力、獲取知識(shí)能力
系統(tǒng)設(shè)
2、計(jì)
(20分)分析系統(tǒng)的功能模塊
編程調(diào)試
(20分)實(shí)現(xiàn)系統(tǒng)的各個(gè)功能模塊,并完成調(diào)試
回答問(wèn)題
(15分)回答老師針對(duì)課程設(shè)計(jì)提出的問(wèn)題
課程設(shè)計(jì)報(bào)告撰寫
(10分)嚴(yán)格按照規(guī)范要求完成課程設(shè)計(jì)報(bào)告
源代碼
(5分)按照規(guī)范要求完成課程設(shè)計(jì)源代碼的排版
總 評(píng) 成 績(jī)
指導(dǎo)教師評(píng)語(yǔ):
日期: 年 月 日
目 錄
第1章 系統(tǒng)設(shè)計(jì)目的 1
1.1 設(shè)計(jì)內(nèi)容 1
1.2 設(shè)計(jì)目的: 1
1.3設(shè)計(jì)要求:
3、1
第2章 系統(tǒng)實(shí)現(xiàn)思路 3
2.1 系統(tǒng)分析 3
2.2 系統(tǒng)模塊框架圖: 4
第3章系統(tǒng)詳細(xì)設(shè)計(jì) 5
3.1系統(tǒng)設(shè)計(jì) 5
3.2系統(tǒng)的實(shí)現(xiàn) 5
3.3 詳細(xì)設(shè)計(jì) 5
第4章 系統(tǒng)調(diào)試運(yùn)行 17
課程設(shè)計(jì)體會(huì) 22
參考文獻(xiàn) 24
第1章 系統(tǒng)設(shè)計(jì)目的
1.1 設(shè)計(jì)內(nèi)容
- 設(shè)計(jì)四個(gè)類;學(xué)生類(描述學(xué)生基本信息);成績(jī)類:班級(jí)類;課程(描述課程信息:課程編號(hào),科目名稱(如高等數(shù)學(xué),大學(xué)英語(yǔ)等);學(xué)生成績(jī)及課程信息用文件保存,每個(gè)類一個(gè)文件,程序執(zhí)行時(shí)從文件讀入;
- 能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入,修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī);求學(xué)生的總分及
4、平均分;并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序,能查詢學(xué)生成績(jī),不及格科目及學(xué)生名單;能按班級(jí)輸出學(xué)生的成績(jī)單。
– 設(shè)置學(xué)生的成績(jī)信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱、平時(shí)成績(jī)、期末成績(jī)、平時(shí)成績(jī)所占百分比
– 計(jì)算學(xué)生總評(píng)成績(jī):總評(píng)成績(jī)=平時(shí)成績(jī)*平時(shí)成績(jī)所占百分比+期末成績(jī)*(1-平時(shí)成績(jī)所占百分比)
– 顯示學(xué)生的姓名、所選課程名稱以及平時(shí)成績(jī)、期末成績(jī)和總評(píng)成績(jī)信 息。分單人顯示和以班輸出(班成績(jī)單格式輸出到文件)
– 注意,至少一個(gè)班,30人三門;
1.2 設(shè)計(jì)目的:
(1)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;
(2)達(dá)到熟練掌握C++語(yǔ)
5、言的基本知識(shí)和技能,解決簡(jiǎn)單的程序設(shè)計(jì)問(wèn)題
(3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的程序設(shè)計(jì)問(wèn)題
1.3設(shè)計(jì)要求:
基本要求:
(1) 要求利用面向?qū)ο蟮姆椒ㄒ约癈++的編程思想來(lái)完成系統(tǒng)的設(shè)計(jì);
(2) 要求在設(shè)計(jì)的過(guò)程中,建立清晰的類層次;
(3) 在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制;
(4)根據(jù)C++課程所學(xué)的概念、理論和方法,按照C++程序設(shè)計(jì)的基本 步驟,設(shè)計(jì)出一個(gè)適當(dāng)
6、規(guī)模的程序來(lái)實(shí)現(xiàn)設(shè)計(jì)課程內(nèi)容中的全部功能;
(5)設(shè)計(jì)主控模塊程序.對(duì)給出的程序源代碼要給出各部分的詳細(xì)注釋.自己根據(jù)能力及需要添加相應(yīng)功能模塊,增強(qiáng)模擬系統(tǒng)功能。
第2章 系統(tǒng)實(shí)現(xiàn)思路
2.1 系統(tǒng)分析
1.需求分析:
a.能對(duì)學(xué)生各科成績(jī)進(jìn)行錄入:。
b.能對(duì)學(xué)生的成績(jī)進(jìn)行增加。
c.能對(duì)學(xué)生的成績(jī)進(jìn)行刪除。
d.能對(duì)學(xué)生的成績(jī)進(jìn)行修改。
e.能對(duì)學(xué)生的成績(jī)按總成績(jī),姓名,進(jìn)行查詢。
f.能輸出學(xué)生的所有數(shù)據(jù)。
g.能進(jìn)行成績(jī)統(tǒng)計(jì)
h.能進(jìn)行總分查詢排名。
2.系統(tǒng)功能描述:
(1)使用繼承的方法構(gòu)造函數(shù)的類
(2)用文本文檔來(lái)顯示所
7、錄入的數(shù)據(jù)
(3)用switch函數(shù)來(lái)選擇執(zhí)行的功能
3.系統(tǒng)的功能分析:
資料維護(hù):系統(tǒng)維護(hù)包括對(duì)學(xué)生信息錄入操作及數(shù)據(jù)表中的信息進(jìn)行瀏覽。
系統(tǒng)功能:可以對(duì)數(shù)據(jù)表中的信息進(jìn)行瀏覽。系統(tǒng)查詢:可以對(duì)學(xué)生的信息進(jìn)行查詢。
2.2 系統(tǒng)模塊框架圖:
1.通過(guò)分析畫出程序結(jié)構(gòu)圖:
學(xué)生成績(jī)管理系統(tǒng)
圖0-0程序框架圖
操作
查詢學(xué)生信息
修改
增加
總成績(jī)
查詢
姓名查詢
輸出所有學(xué)生的成績(jī)
錄入
刪除
每個(gè)學(xué)生的平均成績(jī)
每個(gè)學(xué)生的總評(píng)成績(jī)
按總成績(jī)排名
查詢
各科不及格人數(shù)
8、
第3章系統(tǒng)詳細(xì)設(shè)計(jì)
3.1系統(tǒng)設(shè)計(jì)
1. 界面設(shè)計(jì)
程序運(yùn)行后會(huì)出現(xiàn)一個(gè)簡(jiǎn)捷的窗口,便于用戶查詢數(shù)據(jù)。
3.2系統(tǒng)的實(shí)現(xiàn)
通過(guò)主窗體調(diào)用其他窗體,具體實(shí)現(xiàn)可以參照系統(tǒng)分析相關(guān)內(nèi)容。應(yīng)用系統(tǒng)主控界面包括記錄編輯和記錄查詢等功能模塊。記錄編輯功能完成學(xué)生成績(jī)記錄編輯和記錄查詢功能。記錄查詢功能可以對(duì)數(shù)據(jù)各分類的記錄進(jìn)行查詢
3.3 詳細(xì)設(shè)計(jì)
(1)定義一個(gè)基類student:class Student{ //定義學(xué)生類
public:
Student(char n[20]
9、,int num,float xuen){
strcpy(name,n);
number=num;
xuenian=xuen;}
char name[20];
int number;
int xuenian;
(2)再派生出成績(jī)類:class Chengji: public Student //設(shè)置成績(jī)類學(xué)生成績(jī)
{ public:
Chengji(char n[20],int num,float xuen, float ma2,float ma,float cy2,float cy,float eng2,float eng):Student(
10、n,num,xuen){
cyuyan=cy;
english=eng;
math=ma;
cyuyan2=cy2;
english2=eng2;
math2=ma2;}
在這個(gè)類中把一些需要用到的成員函數(shù)寫上,來(lái)計(jì)算總分,總評(píng)成績(jī),平均成績(jī)注意參數(shù); float get_sum(){ //計(jì)算總分
sum=english2+math2+cyuyan2;
return sum;
}
friend void main();//將主函數(shù)定義為友元函數(shù),方便訪問(wèn)類中的成員
float get_a
11、ver(){ //得到平均分的函數(shù)
average=get_sum()/3;
return average;
}
(3)定義主函數(shù):void main() //主函數(shù)
{
cout<<"**********歡迎來(lái)到學(xué)生成績(jī)查詢系統(tǒng)**********"<
12、cout<<"查詢:"<
13、變量: int p=0;//全局變量,用于選擇菜單時(shí)的輸入
char w;//全局變量,用于在大項(xiàng)中選擇是否繼續(xù)操作
Chengji *s[100];//類定義的指針將所錄入的數(shù)據(jù)按類中的形式分別存儲(chǔ)
ofstream *file[100];
int i=0;//全局變量,用于做每個(gè)錄入數(shù)據(jù)的下標(biāo)
int j=0;
(5)運(yùn)用switch函數(shù)來(lái)實(shí)現(xiàn)用戶所要求的功能,并用do……while 來(lái)進(jìn)行循環(huán)。do//判斷輸入是否正確
{
cin>>p;
if(p>=1&&p<=11) chris1=1;
else
cout<<"指令錯(cuò)誤!
14、請(qǐng)重新輸入:"<
15、ath,cyuyan,english,bf,xuenian;
do{ cout<<"請(qǐng)輸入學(xué)年"<>xuenian;
cout<<"請(qǐng)輸入姓名"<>name;
cout<<"請(qǐng)輸入學(xué)號(hào)"<>number;
cout<<"請(qǐng)輸入數(shù)學(xué)期末成績(jī)"<>math2;
cout<<"請(qǐng)輸入數(shù)學(xué)平時(shí)成績(jī)"<>math;
c
16、out<<"請(qǐng)輸入c++期末成績(jī)"<>cyuyan2;
cout<<"請(qǐng)輸入c++平時(shí)成績(jī)"<>cyuyan;
cout<<"請(qǐng)輸入英語(yǔ)期末成績(jī)"<>english2;
cout<<"請(qǐng)輸入英語(yǔ)平時(shí)成績(jī)"<>english;
cout<<"請(qǐng)輸入成績(jī)百分比"<>
17、bf; zong=(english2+math2+cyuyan2)*(1-bf)+(english+math+cyuyan)*bf;
fstream outfile,infile;//作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù)
outfile.open("f1.txt",ios::out|ios::app);if(!file){
cout<<"f1.txt can not open.\n";return ;}
outfile<<"姓名:"<
18、c++成績(jī):"<
19、umber;
float cyuyan,math,english,cyuyan2,math2,english2,bf,xuenian;
char c;
do
{ cout<<"請(qǐng)輸入學(xué)年"<>xuenian;
cout<<"請(qǐng)輸入您要增加的學(xué)生的名字:"<>name;
cout<<"請(qǐng)輸入你要增加的學(xué)生的學(xué)號(hào):"<>number;
cou
20、t<<"請(qǐng)輸入數(shù)學(xué)成績(jī)"<>math2;
cout<<"請(qǐng)輸入數(shù)學(xué)平時(shí)成績(jī)"<>math;
cout<<"請(qǐng)輸入c++成績(jī)"<>cyuyan2;
cout<<"請(qǐng)輸入c++平時(shí)成績(jī)"<>cyuyan;
cout<<"請(qǐng)輸入英語(yǔ)成績(jī)"<>english2;
cout<<"請(qǐng)輸入英語(yǔ)平時(shí)成績(jī)"<
21、>english;
cout<<"請(qǐng)輸入成績(jī)百分比"<>bf;
fstream outfile,infile;
outfile.open("f1.txt",ios::out|ios::app);
if(!file){
cout<<"f1.txt can not open.\n";
return ;
}
outfile<<"姓名:"<
22、