學(xué)生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計
《學(xué)生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《學(xué)生成績管理系統(tǒng)設(shè)計與實現(xiàn) 高級程序設(shè)計語言課程設(shè)計(40頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 河南工程學(xué)院《高級程序設(shè)計語言》課程設(shè)計 成果報告 學(xué)生成績管理系統(tǒng)設(shè)計與實現(xiàn) 學(xué)生學(xué)號: 學(xué)生姓名: 學(xué) 院: 計算機學(xué)院 專業(yè)班級: 軟件工程 專業(yè)課程: 《高級程序設(shè)計語言》 指導(dǎo)教師: 2014 年 6 月 27 日 題 目 學(xué)生成績管理系統(tǒng)設(shè)計與實現(xiàn) 考核項目 考核內(nèi)容 得分 平時考核 (30分)出勤情況、態(tài)度、效率;知識掌握情況、基本操作技能、知識應(yīng)用能力、獲取知識
2、能力 系統(tǒng)設(shè)計 (20分)分析系統(tǒng)的功能模塊 編程調(diào)試 (20分)實現(xiàn)系統(tǒng)的各個功能模塊,并完成調(diào)試 回答問題 (15分)回答老師針對課程設(shè)計提出的問題 課程設(shè)計報告撰寫 (10分)嚴格按照規(guī)范要求完成課程設(shè)計報告 源代碼 (5分)按照規(guī)范要求完成課程設(shè)計源代碼的排版 總 評 成 績 指導(dǎo)教師評語: 日期: 年 月 日 目 錄 第1章 系統(tǒng)設(shè)計目的 1 1.1 課程設(shè)計目的 1
3、1.2 系統(tǒng)設(shè)計要求 1 第2章 系統(tǒng)實現(xiàn)思路 2 2.1 需求分析 2 2.2 系統(tǒng)性能要求 2 第3章 系統(tǒng)詳細設(shè)計 3 3.1 系統(tǒng)功能模塊 3 3.2 模塊框架圖 3 3.3 系統(tǒng)實現(xiàn) 4 第4章 系統(tǒng)調(diào)試運行 19 4.1系統(tǒng)運行主界面 19 4.2錄入功能 19 4.3刪除功能 20 4.4查詢功能 20 4.5查詢不及格人數(shù) 21 課程設(shè)計體會 22 參考文獻 23 第1章 系統(tǒng)設(shè)計目的 1.1 課程設(shè)計目的 在計算機領(lǐng)域中,任何好的創(chuàng)意和設(shè)計最終都需要通過高水平的程序設(shè)計實現(xiàn),因此學(xué)習(xí)程序設(shè)計是計算機及相關(guān)專業(yè)學(xué)生必備的基本技能之
4、一。為了使學(xué)生更好的學(xué)習(xí)和掌握這一基本技能,必須系統(tǒng)而全面地的安排程序設(shè)計課程設(shè)計,目的是通過具體的課程設(shè)計,不僅使學(xué)生能夠進一步理解程序設(shè)計的基本概念,掌握基本的程序設(shè)計方法,培養(yǎng)良好的程序設(shè)計風(fēng)格,同時還可以借助程序設(shè)計技巧的訓(xùn)練,培養(yǎng)學(xué)生抽象思維、邏輯思維及統(tǒng)籌規(guī)劃的能力。 1.2 系統(tǒng)設(shè)計要求 (1)設(shè)計四個類,包括學(xué)生類(描述學(xué)生基本信息);成績類;班級類;課程類(描述課程信息:課程編號,科目名稱,如高等數(shù)學(xué),大學(xué)英語等); (2)學(xué)生成績及課程信息用文件保存,程序執(zhí)行時從文件讀入; (3)能按學(xué)期,按班級完成對學(xué)生成績的錄入、修改,能按班級統(tǒng)計學(xué)生的成績; (4)求學(xué)生
5、的總分及平均分,并能根據(jù)學(xué)生的平均成績進行排序,能查詢學(xué)生成績,不及格科目及學(xué)生名單;能按班級輸出學(xué)生的成績單。 – 設(shè)置學(xué)生的成績信息:學(xué)生學(xué)號、姓名、所選課程名稱、平時成績、期末成績、平時成績所占百分比 – 計算學(xué)生總評成績:總評成績=平時成績*平時成績所占百分比+期末成績*(1-平時成績所占百分比) – 顯示學(xué)生的姓名、所選課程名稱以及平時成績、期末成績和總評成績信息。分單人顯示和以班輸出(班成績單格式輸出到文件) – 注意,至少應(yīng)包含一個班、30人、三門課 第2章 系統(tǒng)實現(xiàn)思路 2.1 需求分析 學(xué)生成績查詢系統(tǒng)在生活中運用廣泛,因此需要多種
6、程序?qū)λM行管理。該系統(tǒng)應(yīng)該能存儲學(xué)生的個人信息與考試成績。系統(tǒng)管理者能夠利用系統(tǒng)進行信息錄入、修改、查詢、刪除、按照姓名、總分進行查詢,能輸出所有的學(xué)生的成績。 1.系統(tǒng)類設(shè)計 (1)學(xué)生類用于存放基本個人信息; (2)課程類用于存放課程信息; (3)班級類用于分類班級; (4)成績類用于存放成績。 2. 功能分析 (1)能對學(xué)生各科成績進行錄入; (2)能對學(xué)生的成績進行增加; (3)能對學(xué)生的成績進行刪除; (4)能對學(xué)生的成績進行修改; (5)能對學(xué)生的成績按總成績,姓名,進行查詢; (6)能輸出學(xué)生的所有數(shù)據(jù); (7)能進行成績統(tǒng)計; (8)能進行總分查詢
7、排名。 2.2 系統(tǒng)性能要求 于管理者而言,該系統(tǒng)需要方便的操作,友好的界面。于學(xué)生而言,成績等屬于個人信息,因此要求系統(tǒng)有一定的安全性,能夠保護學(xué)生的基本信息。而隨 擴充和修改。因此系統(tǒng)性能要求如下: (1)系統(tǒng)安全可靠; (2)功能齊全; (3)操作方便、界面友好; (4)易于維護和擴充。 第3章 系統(tǒng)詳細設(shè)計 3.1 系統(tǒng)功能模塊 學(xué)生成績查詢系統(tǒng)有:成績錄入、數(shù)據(jù)增加、修改、數(shù)據(jù)查詢,排序顯示構(gòu)成。 3.2 模塊框架圖 1. 程序中包含類與主函數(shù),類構(gòu)成了程序的數(shù)據(jù)管理與存放區(qū)。在主函數(shù)中包括多種功能。以類為依托構(gòu)成程序框架,在主函數(shù)中實現(xiàn)每一個功
8、能。類與功能共同構(gòu)成程序框架。
學(xué)生類
課程類
成績類
系統(tǒng)
操
作
查
詢
成績
統(tǒng)計
排名
錄入
增加
刪除
修改
總成績查詢
姓名
輸出所有學(xué)生的成績
每個學(xué)生的平均成績
各科不及格的人數(shù)
圖1-1 模塊框架圖
2.程序用到的頭文件以及自己定義的函數(shù)
(1)頭文件
#include
9、(2)自己定義的函數(shù) float getsum();//綜合成績 float getshu();//數(shù)學(xué)總評成績 float getcpp();//c總評成績 float geteng();//英語總評成績 float getaver();//總平均成績 3.3 系統(tǒng)實現(xiàn) 1.界面設(shè)計 程序運行后會出現(xiàn)一個間接地窗口,便于用戶查詢數(shù)據(jù)。 主函數(shù)用循環(huán)體以及switch語句實現(xiàn)功能選擇。 主界面展示 **************歡迎來到學(xué)生成績查詢系統(tǒng)************** 請選擇需要的操作! (1)數(shù)據(jù)錄入 (2)增加學(xué)生 (3)刪除學(xué)生 (4)修改數(shù)
10、據(jù) 查詢: (5)按總成績查詢 (6)按姓名查詢 (7)輸出所有學(xué)生的數(shù)據(jù) 成績統(tǒng)計: (8)每個學(xué)生的平均成績 (9)各個學(xué)科不及格人數(shù) 排名: (10)按總分查詢排名 (11)退出 選擇相關(guān)操作請輸入相對的括號里的阿拉伯數(shù)字及字母! 主程序代碼 void main() //主函數(shù) { system("color 07e"); //設(shè)置當前窗口的背景色和前景色 0 = 黑色 8 = 灰色 // 1 = 藍色 9 = 淡藍色 // 2 = 綠色 A = 淡綠色 // 3 = 淺綠色 B =
11、淡淺綠色
// 4 = 紅色 C = 淡紅色
// 5 = 紫色 D = 淡紫色
// 6 = 黃色 E = 淡黃色
// 7 = 白色 F = 亮白色
cout<<"**********歡迎來到學(xué)生成績查詢系統(tǒng)**********"< 12、l;
cout<<"(6)按姓名查詢"< 13、e[100];
int i=0;
int j=0;
int chris1=0;
float baif;//主函數(shù)利用循環(huán)體執(zhí)行,實現(xiàn)循環(huán)操作:
do
{
cin>>p;
if(p>=1&&p<=11) chris1=1;
else
cout<<"指令錯誤!請重新輸入:"< 14、4:{.............} //修改數(shù)據(jù)功能
case 5:{.............} //按成績查詢功能
case 6:{.............} //按姓名查詢功能
case 7:{.............} //輸出所有的數(shù)據(jù)
case 8:{.............} //輸出學(xué)生的平均分
case 9:{.............} / /查詢不及格人數(shù)
case 10:{.............} //總成績排名
}while(w=='y');//循環(huán)語句結(jié)束
}
2.具體功能設(shè)計
通過主窗體調(diào)用其他窗體,實現(xiàn)其它功能。
15、(1)錄入功能
使用cin輸入流輸入學(xué)生的相關(guān)信息,并創(chuàng)立文件,將所輸入的數(shù)據(jù)存入到文件中。
程序代碼
do
{
cout<<"請輸入姓名"< 16、out<<"請輸入c++平時成績"< 17、tfile<<"數(shù)學(xué)成績: "< 18、tw(2)< 19、cout<<"f1.txt can not open.\n";
return ;
}
char ch;
while(infile.get(ch))
cout< 20、
{
if(c!='y'&&c!='n'){cout<<"指令錯誤!請重新輸入!"< 21、trunc|ios::out); //創(chuàng)建文件2
cout<<"請輸入您要刪除的學(xué)生的姓名:"< 22、("f1.txt",ios::trunc|ios::out);
ifstream outf("f2.txt");
f< 23、flag;
if(i==0) //根據(jù)前面的疊加判斷文件中是否有數(shù)據(jù)
{
cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"< 24、 25、 //錯誤操作返回繼續(xù)
cout<<"對不起!您要查詢的學(xué)生不存在!"< 26、 //以輸出文件的所有數(shù)據(jù)
file.close();
(8)輸出學(xué)生的平均分
利用指針訪問Chengji類中的成員,調(diào)用getaver ()函數(shù)求得平均分并執(zhí)行輸出操作。
程序代碼
if(i==0)
{
cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"< 27、9)查詢不及格人數(shù)
調(diào)用get函數(shù)求得三科平均成績,并統(tǒng)計不及格人數(shù),并輸出查詢結(jié)果。
程序代碼
if(i==0)
{
cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"< 28、< 29、}
for(h=0;ha[n+1])
{
temp=a[n]; //交換得到最大值
a[n]=a[n+1];
a[n+1]=temp;
temp1=k[n]; //交換名字
k[n]=k[n+1];
k[n+1]=temp1;
}
}
for(n=1;n<=i;n++)
{
cout< 30、lass student和class kecheng用來封裝學(xué)生的所有信息具體見代碼分析。派生類class chengji繼承了兩個類的所有數(shù)據(jù),同時增加了自己的成員,并添加了多個函數(shù)。Main()用來實現(xiàn)所有的操作以及對程序的整體控制;定義文件輸入流對象in和輸出流對象out,實現(xiàn)對外部文件的操作,使得數(shù)據(jù)得以保存。
程序代碼
class Student //聲明學(xué)生類
{public:
Student(int n,char nu[20]) //構(gòu)造函數(shù)
{
num=n;
strcpy(name,nu);
}
fr 31、iend void main(); //聲明友元類
protected:
int num;//學(xué)號
char name[20];//姓名
};
class Kecheng //聲明課程類
{public: //構(gòu)造函數(shù)
Kecheng(float ma,float cp,float eng)
{
math=ma;
cpp=cp;
english=eng;
}
friend void main(); //聲明友元
32、protected:
float math;//數(shù)學(xué)
float english;//英語
float cpp;//c++
};
class Chengji:public Student,public Kecheng //聲明成績類
{public:
Chengji(int n,string nam,float ma,float cp,float eng,float map,float cpp,float engp,float,bf,float mz,float cz,float ez): //構(gòu)造函數(shù)Student(n,nam),Ke 33、cheng(ma,cp,eng),mathp(map),cppp(cpp),englishp(engp),baif(bf),mathz(mz),cppz(cz),englishz(ez)
{
mathp=map;
cppp=cpp;
englishp=engp;
baif=bf;
mathz=mz;
cppz=cz;
englishz=ez;
}
float getsum();//綜合函數(shù)
float getshu();//數(shù)學(xué)最后成績
float getcpp();//c最后成績
float geteng();//英語最后成績
friend void main() 34、;//聲明友元
float getaver();//平均值函數(shù)
protected:
float mathp ;//數(shù)學(xué)平時成績
float cppp;//c++平時成績
float englishp;//英語平時成績
float baif;//成績百分比
float mathz ;//數(shù)學(xué)總成績
float cppz;//c++總成績
float englishz;//英語總成績
};
3.系統(tǒng)流程圖
系統(tǒng)中綜合類與功能,程序的運行框架圖,包含主界面顯示、選擇操作、具體的系統(tǒng)主函數(shù)操作,選擇1-11對應(yīng)相對的操作,系統(tǒng)自動執(zhí)行操作,并返回主函數(shù)。流程圖如下圖所 35、示:
圖3-1 程序流程圖
第4章 系統(tǒng)調(diào)試運行
4.1系統(tǒng)運行主界面
新建文件夾《課程設(shè)計》,并在文件夾中設(shè)立相應(yīng)的工程,新建程序文件命名為《成績》,編寫程序代碼,并調(diào)試運行。系統(tǒng)調(diào)試運行輸出主界面見圖4-1
圖4-1系統(tǒng)主界面
4.2錄入功能
需要輸入學(xué)生的相關(guān)信息,并保存到f1.txt中,如4-2
圖4-2錄入功能界面
4.3刪除功能
輸入刪除名字,程序自動尋找與名字相符數(shù)據(jù)并刪除,如圖4-3
圖4-3刪除界面
4.4查詢功能
分為按總成績查詢和按姓名查詢兩種方式:如圖4-4
圖4-4 查詢界面
4.5查詢不及格人數(shù)
調(diào)用get 36、函數(shù)求三科平均成績并統(tǒng)計不及格人數(shù)并輸出查詢結(jié)果。如圖4-5
圖4-5不及格人數(shù)界面
課程設(shè)計體會
這份學(xué)生管理系統(tǒng)作業(yè),使我感觸很多。在老師布置這份作業(yè)的時候,自己是抱著輕松的心態(tài)去做的,結(jié)果發(fā)現(xiàn)事與愿違,這份作業(yè)太難做了。然后就去網(wǎng)上找資料、找答案、和室友一起研究,最后幸運的是完成了這份作業(yè)。這次的作業(yè)對我一個初學(xué)c++的學(xué)生來說還是比較難的,如果沒有其他方面的幫助,憑自己是做不出來的,所以我決定以后要更加的努力學(xué)習(xí)。
參考文獻
[1] 譚浩強.《C++面向?qū)ο蟪绦蛟O(shè)計》(第二版).清華大學(xué)出版社
[2] 譚浩強.《C++面向?qū)ο蟪绦蛟O(shè)計題解與上機指導(dǎo)》.清華大學(xué)出版社 37、
[3] LippmanBarbara.《C++ Primer》.人民郵電出版社
[4] Bjarne Stroustrup.《The C++ Programming Language》.機械工業(yè)出版社
[5]《C++語言的設(shè)計和演化》,機械工業(yè)出版社[6]
#include 38、r;
float math,cpp,english,average,sum;
public:
Tstu()
{};
Tstu(char n[20],int num,float ma,float cj,float eng);
float getsum();
float getaver();
friend void main();
};
Tstu::Tstu ( char n[20], int num,float ma,float cj,float eng )
{
strcpy(name,n);
number=num;
mat 39、h=ma;
cpp=cj;
english=eng;
}
float Tstu::getsum()
{
sum=cpp+english+math;
return sum;
}
float Tstu::getaver()
{
average=getsum()/3;
return average;
}
void main()
{
cout<<"*****************歡迎來到學(xué)生成績查詢系統(tǒng)*****************"< 40、 cout<<"操作:"< 41、各科不及格人數(shù)"< 42、
int j=0;
int chris1=0; //用于判斷do—while語句
do //判斷輸入是否正確
{
cin>>p;
if((p>=1&&p<=11))
chris1=1;
else
cout<<"指令錯誤!請重新輸入:"< 43、];
int number;
float math,cpp,english;
do{
cout<<"請輸入姓名:"< 44、 cin>>cpp;
cout<<"請輸入英語成績:"< 45、號:"< 46、hile(infile.get(ch))
cout< 47、 do{
if(c!='y'&&c!='n')
{ cout<<"指令錯誤!請重新輸入!"< 48、 number;
float math,cpp,english;
char c;
do
{
cout<<"請輸入您要增加的學(xué)生的姓名:"< 49、 cin>>math;
cout<<"請輸入C++成績:"< 50、 cout<<"f1.txt can not open.\n";
return;
}
outfile< 51、)
{
cout<<"f1.txt can not open.\n";
return;
}
char h;
while(infile.get(h))
cout< 52、w Tstu(name,number, math, cpp, english);
i++;
cout<<"數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)"< 53、
break;
}
case 3://刪除學(xué)生信息
{
char c;
string xingming,line,str,name;
do
{ ifstream fin("f1.txt");
fstream outfile("f2.txt",ios::trunc|ios::out); //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù)
cout<<"請輸入您要刪 54、除的學(xué)生的姓名:"< 55、name != xingming)
outfile< 56、uf();
outf.close();
f.close();
cout<<"數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)"< 57、 }
}while(c=='y');
break;
}
case 4://修改數(shù)據(jù)
{
string sname,line,str,name;
int nu;float eng,ma,com;int flag;char c;
if(i==0)
{
cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"< 58、輸入您要修改的學(xué)生的姓名:";
cin>>name;
fstream fin("f1.txt",ios::in);
ofstream outfile("f.txt",ios::trunc|ios::out);
cout< 59、;
if(name!=sname)
{
outfile< 60、 61、;
cout<<"想繼續(xù)修改嗎(y/n):";
cin>>c;
cout< 62、
cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"< 63、息為:"< 64、"< 65、in>>n;
for(int j=0;j
66、 if(flag==0)
cout<<"對不起您要查詢的學(xué)生不存在,請查證后再輸入!"<
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會全文PPT
- 2025年寒假安全教育班會全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓(xùn)提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機關(guān)工委2024年度年終黨建工作總結(jié)述職匯報
- 心肺復(fù)蘇培訓(xùn)(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學(xué)生活介紹
- XX單位2024年終專題組織生活會理論學(xué)習(xí)理論學(xué)習(xí)強黨性凝心聚力建新功
- 2024年XX單位個人述職述廉報告
- 一文解讀2025中央經(jīng)濟工作會議精神(使社會信心有效提振經(jīng)濟明顯回升)
- 2025職業(yè)生涯規(guī)劃報告自我評估職業(yè)探索目標設(shè)定發(fā)展策略
- 2024年度XX縣縣委書記個人述職報告及2025年工作計劃
- 寒假計劃中學(xué)生寒假計劃安排表(規(guī)劃好寒假的每個階段)
- 中央經(jīng)濟工作會議九大看點學(xué)思想強黨性重實踐建新功