學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 《高級程序設(shè)計語言》課程設(shè)計報告
《學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 《高級程序設(shè)計語言》課程設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 《高級程序設(shè)計語言》課程設(shè)計報告(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 河南工程學院《高級程序設(shè)計語言》課程設(shè)計 成果報告 學生成績管理系統(tǒng)設(shè)計與實現(xiàn) 學生學號: 學生姓名: 學 院: 計算機學院 專業(yè)班級: 軟件工程 1341 專業(yè)課程: 《高級程序設(shè)計語言》 指導教師: 2014 年 6 月 27 日 題 目 學生成績管理系統(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è)計源代碼的排版 總 評 成 績 指導教師評語: 日期: 年 月 日 目 錄 第1章 系統(tǒng)設(shè)計目的 1 1.1 課程設(shè)計目的 1 1.2 系統(tǒng)設(shè)計要求
3、 1 第2章 系統(tǒng)實現(xiàn)思路 2 2.1設(shè)計程序 2 2.2系統(tǒng)功能的分析 2 2.3程序流程圖 2 第3章 系統(tǒng)詳細設(shè)計 3 3.1 程序首頁 3 3.2錄入模塊 6 3.3 增加模塊 7 3.4刪除模塊 10 3.5修改模塊 11 3.6查詢模塊 12 3.7統(tǒng)計模塊 13 第4章 系統(tǒng)調(diào)試運行 14 4.1 程序運行 14 4.2 錄入功能 14 4.3增加功能 15 4.4刪除功能 16 課程設(shè)計體會 17 參考文獻 18 第1章 系統(tǒng)設(shè)計目的 1.1 課程設(shè)計目的 在計算機領(lǐng)域中,任何好的創(chuàng)意和設(shè)計最終都需要通過高水平的程
4、序設(shè)計實現(xiàn),因此學習程序設(shè)計是計算機及相關(guān)專業(yè)學生必備的基本技能之一。為了使學生更好的學習和掌握這一基本技能,必須系統(tǒng)而全面地的安排程序設(shè)計課程設(shè)計,目的是通過具體的課程設(shè)計,不僅使學生能夠進一步理解程序設(shè)計的基本概念,掌握基本的程序設(shè)計方法,培養(yǎng)良好的程序設(shè)計風格,同時還可以借助程序設(shè)計技巧的訓練,培養(yǎng)學生抽象思維、邏輯思維及統(tǒng)籌規(guī)劃的能力。 1.2 系統(tǒng)設(shè)計要求 (1)設(shè)計四個類,包括學生類(描述學生基本信息);成績類;班級類;課程類(描述課程信息:課程編號,科目名稱,如高等數(shù)學,大學英語等); (2)學生成績及課程信息用文件保存,程序執(zhí)行時從文件讀入; (3)能按學期,按班級完
5、成對學生成績的錄入、修改,能按班級統(tǒng)計學生的成績; (4)求學生的總分及平均分,并能根據(jù)學生的平均成績進行排序,能查詢學生成績,不及格科目及學生名單;能按班級輸出學生的成績單。 – 設(shè)置學生的成績信息:學生學號、姓名、所選課程名稱、平時成績、期末成績、平時成績所占百分比 – 計算學生總評成績:總評成績=平時成績*平時成績所占百分比+期末成績*(1-平時成績所占百分比) – 顯示學生的姓名、所選課程名稱以及平時成績、期末成績和總評成績信息。分單人顯示和以班輸出(班成績單格式輸出到文件) – 注意,至少應(yīng)包含一個班、30人、三門課 第2章 系統(tǒng)實現(xiàn)思路 2
6、.1設(shè)計程序 采用現(xiàn)有的資源,先進的管理系統(tǒng)開發(fā)方案,充分利用學?,F(xiàn)有的資源,減少開發(fā)中的時間和財力、物力、提高系統(tǒng)開發(fā)的水平和應(yīng)用效果。系統(tǒng)就滿足學校的需求,例如學生信息的錄入、查詢、更新等。系統(tǒng)就具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進行數(shù)據(jù)添加、刪除、修改等操作。 2.2系統(tǒng)功能的分析 錄入功能:為用戶提供相應(yīng)的錄入功能。 查詢功能:為用戶提供查詢功能,可查詢允許范圍內(nèi)的所有信息。 維護功能:為用戶提供查詢及相應(yīng)的修改,刪除功能。 返回功能:為用戶提供相應(yīng)操作后返回到主頁面。 2.3程序流程圖 流程程序圖是進行流程程序分析過程中最基本的工具,是程序分析中最基本、最重要的分
7、析技術(shù)。它運用工序圖標符號對生產(chǎn)現(xiàn)場的整個制造過程做詳細的記錄,以便對零部件、產(chǎn)品在整個制造過程中的生產(chǎn)、加工、檢驗、儲存等環(huán)節(jié)待作詳細的研究與分析,特別適用于分析生產(chǎn)過程中的成本浪費,提高經(jīng)濟效益。 流程圖:學生管理系統(tǒng) 操作 查詢 成績統(tǒng)計 按總成績排名 錄 入 增 加 成 績 刪 除 修 改 每個學生的平均成績 輸 出 姓. 名 各科不及格人數(shù) 圖2-3程序流程圖 第3章 系統(tǒng)詳細設(shè)計 3.1 程序首頁 程序運行后會出現(xiàn)一個間接地窗口,便于用戶查詢數(shù)據(jù)。 主函數(shù)用循環(huán)
8、體以及switch語句實現(xiàn)功能選擇。 主界面展示 **************歡迎來到學生成績查詢系統(tǒng)************** 請選擇需要的操作! (1)數(shù)據(jù)錄入 (2)增加學生 (3)刪除學生 (4)修改數(shù)據(jù) 查詢: (5)按總成績查詢 (6)按姓名查詢 (7)輸出所有學生的數(shù)據(jù) 成績統(tǒng)計: (8)每個學生的平均成績 (9)各個學科不及格人數(shù) 排名: (10)按總分查詢排名 (11)退出 選擇相關(guān)操作請輸入相對的括號里的阿拉伯數(shù)字及字母! 主程序代碼 void main() //
9、主函數(shù)
{
system("color 07e"); //設(shè)置當前窗口的背景色和前景色 0 = 黑色 8 = 灰色
// 1 = 藍色 9 = 淡藍色
// 2 = 綠色 A = 淡綠色
// 3 = 淺綠色 B = 淡淺綠色
// 4 = 紅色 C = 淡紅色
// 5 = 紫色 D = 淡紫色
// 6 = 黃色 E = 淡黃色
// 7 = 白色 F = 亮白色
cout<<"**********歡迎來到學生成績查詢系統(tǒng)**********"< 10、cout<<"(2)增加學生"< 11、out<<"(11)退出"< 12、
{
switch(p)
{
case 1:{.............} //錄入功能
case 2:{.............} //增加功能
case 3:{.............} //刪除功能
case 4:{.............} //修改數(shù)據(jù)功能
case 5:{.............} //按成績查詢功能
case 6:{.............} //按姓名查詢功能
case 7:{.............} //輸出所有的數(shù)據(jù)
case 8:{.............} //輸出學生的平均分
case 9:{.. 13、...........} / /查詢不及格人數(shù)
case 10:{.............} //總成績排名
}while(w=='y');//循環(huán)語句結(jié)束 }
3.2錄入模塊
根據(jù)程序的要求,我們建立了錄入功能的switch函數(shù),要求用戶輸入數(shù)據(jù),以便存入文檔,這就實現(xiàn)了數(shù)據(jù)的錄入。
case 1: //數(shù)據(jù)的錄入
char c; //用于在小項中選擇是否繼續(xù)操作
char name[20];
int number;
int banji;
float pmath,pcpp,penglish,psu 14、m,bl,sum,sump;
float math,cpp,english;
do{
cout<<"請輸入姓名:"< 15、ut<<"請輸入cpp成績:"< 16、"平時成績所占比例"< 17、er;
int banji;
float math,cpp,english,bl,sum,sump,psum;
float pmath,pcpp,penglish;
char c;
do {
cout<<"請輸入您要增加的學生的姓名:"< 18、number;
cout<<"請輸入班級:"< 19、 cin>>pmath;
cout<<"請輸入平時cpp成績:"< 20、um*bl;
fstream outfile,infile;
outfile.open("f1.txt",ios::out|ios::app);
if(!file)
{ cout<<"f1.txt can not open.\n";
return; }
outfile< 21、cpp成績:"< 22、 cout<<"f1.txt can not open.\n";
return; }
char h;
while(infile.get(h))
cout< 23、 banji,math, cpp, english,pmath, pcpp, penglish);
i++;
cout<<"數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)"< 24、,name;
do
{ ifstream fin("f1.txt");
fstream outfile("f2.txt",ios::trunc|ios::out); //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù)
cout<<"請輸入您要刪除的學生的姓名:"< 25、e(fin,line);
istringstream stream(line);
name = line.substr(0,line.find(" ",0));//找到名字,判斷是否相等
if(name != xingming)
outfile< 26、lose();
fstream f("f1.txt",ios::trunc|ios::out);
ifstream outf("f2.txt");
f< 27、 為防止用戶不慎輸入錯誤信息,我們還建立了一個修改功能的文件,以實現(xiàn)用戶在輸入錯誤信息后可修改此信息。
string sname,line,str,name;
int bj;
int nu;float eng,ma,com,peng,pma,pcom,bl;int flag;char c;
if(i==0){
cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"< 28、 fstream fin("f1.txt",ios::in);
ofstream outfile("f.txt",ios::trunc|ios::out);
cout< 29、< 30、<<"cpp成績:"< 31、 inf.close(); }
if(flag=0)cout<<"對不起,您要修改的學生不存在!請查證后輸入!"< 32、;
}
do
{
flag=0;
cout<<"請輸入您要查詢的學生的總成績:"< 33、number<<"班級:"<<(*s[j]).banji<<" 數(shù)學分數(shù):"<<(*s[j]).math<<" cpp分數(shù):"<<(*s[j]).cpp<<" 英語分數(shù)"<<(*s[j]).english<<" 平時數(shù)學分數(shù):"<<(*s[j]).pmath<<" 平時cpp分數(shù):"<<(*s[j]).pcpp<<" 平時英語分數(shù)"<<(*s[j]).penglish< 34、 cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"< 35、-1 系統(tǒng)主界面
4.2 錄入功能
當用戶進入到首頁面后,輸入1可進行數(shù)據(jù)的錄入功能,用戶可錄入學生的姓名、學號、成績等信息,并且儲存在文檔中。
圖4-3 錄入功能
4.3增加功能
在錄入學生信息后還想增加另一個學生的信息可選擇繼續(xù)錄入數(shù)據(jù),也可選擇增加學生,只需在首頁中輸入2即可進行增加操作。
圖4-3 增加功能
4.4刪除功能
進行數(shù)據(jù)的錄入或增加后,方可進行數(shù)據(jù)的刪除或修改,如需要對數(shù)據(jù)進行刪除只需輸入3即可進行此操作,在進行此操作時需輸入學生的姓名可刪除。
圖4-4 刪除功能
課程設(shè)計體會
長達一周的程序設(shè)計課程實 36、踐終于結(jié)束了,雖然整個過程不完全是自己一個人獨立完成的,而且做出來的結(jié)果也不是很好,但是在請教同學和老師的同時,對這方面也有了進一步的了解,對課程設(shè)計的內(nèi)容也基本上進行了掌握。
通過這次實踐讓我認識到C++程序設(shè)計是一門實踐性很強的課程,學習程序設(shè)計不能僅限于紙上談兵,許多程序方法和技巧不是光靠聽課和看書就能學得到的,而是必須通過大量的上機實踐慢慢積累起來,程序設(shè)計能力的培養(yǎng)必須以實踐為重,近兩周的學習給了我鍛煉的機會。另外通過這次實踐,培養(yǎng)了自己做事認真,嚴謹?shù)膽B(tài)度。還有程序設(shè)計,程序編譯及運行過程中不可避免會出現(xiàn)不會、不懂的地方,出現(xiàn)程序錯誤以及不能編譯運行等種種困難,讓我必須非常嚴謹對 37、待每一個語句,鍛煉了嚴謹?shù)乃季S。
在這次設(shè)計程序中,我找出學習中的不足,以便為完善學習計劃,改變學習內(nèi)容與方法提供實踐依據(jù)。
參考文獻
(1) 譚浩強.《C++面向?qū)ο蟪绦蛟O(shè)計》.清華大學出版社
(2) 譚浩強.《C++面向?qū)ο蟪绦蛟O(shè)計題解與上機指導》.清華大學出版社
(3) LippmanBarbara.《C++?Primer》.人民郵電出版社
(4) Bjarne Stroustrup.《The C++ Programming Language》.機械工業(yè)出版社
(5)《C++語言的設(shè)計和演化》,機械工業(yè)出版社
(6)《C++語言的設(shè)計和演化(英文版)》 38、,機械工業(yè)出版社
(7)《C++程序設(shè)計語言(特別版)》,機械工業(yè)出版社
#include 39、 void main(); //將主函數(shù)定義為友元函數(shù),方便訪問類中的成員
};
Student::Student(char n[20],int num,int bj)
{
strcpy(name,n); //得到姓名
number=num; //得到學號
banji=bj;//得到班級
}
class chengji:public Student//設(shè)置成績類并繼承學生類記錄學生成績
{
public:
float math,cpp,english,average,sum;
float pmath,pcpp,penglish,psum;
floa 40、t bl;
public:
chengji(char n[20],int num,int bj,float ma,float cj,float eng, float pma,float pcj,float peng):Student(n,num,bj)
{
math=ma;//得到數(shù)學成績
cpp=cj;//得到C語言成績
english=eng;//得到英語成績
pmath=pma;//得到平時數(shù)學成績
pcpp=pcj;//得到平時C語言成績
penglish=peng;//得到平時英語成績
}
float ge 41、tsum();//得到總分的函數(shù)
float getaver(); //得到平均分的函數(shù)
float getpsum();//得到總評成績的函數(shù)
friend void main(); //將主函數(shù)定義為友元函數(shù),方便訪問類中的成員
};
float chengji::getsum() //得到總分的函數(shù)
{
sum=cpp+english+math;
return sum;
}
float chengji::getaver() //得到平均分的函數(shù)
{
average=getsum()/3;
return aver 42、age;
}
float chengji::getpsum()//得到總評成績的函數(shù)
{
psum=(pcpp+penglish+pmath)*bl+getsum()*(1-bl);
return psum;
}
void main()
{
cout<<"*****************歡迎來到學生成績查詢系統(tǒng)*****************"< 43、
cout<<"*******(2)增加學生"< 44、平均成績"< 45、分別存儲
ofstream *file[100];
int i=0; //全局變量,用于做每個錄入數(shù)據(jù)的下標
int j=0;
int chris1=0; //用于判斷do—while語句
do //判斷輸入是否正確
{
cin>>p;
if((p>=1&&p<=11))
chris1=1;
else
cout<<"指令錯誤!請重新輸入:"< 46、 char c; //用于在小項中選擇是否繼續(xù)操作
char name[20];
int number;
int banji;
float pmath,pcpp,penglish,psum,bl,sum,sump;
float math,cpp,english;
do{
cout<<"請輸入姓名:"< 47、 cin>>number;
cout<<"請輸入班級:"< 48、math;
cout<<"請輸入平時cpp成績:"< 49、文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù)
outfile.open("f1.txt",ios::out|ios::app);
if(!file)
{ cout<<"f1.txt can not open.\n";
return;
}
outfile< 50、 51、;
}
char ch;
while(infile.get(ch))
cout< 52、入成功,想繼續(xù)錄入嗎(y/n)"< 53、 }
case 2: //增加學生數(shù)據(jù)
{
char name[20];
int number;
int banji;
float math,cpp,english,bl,sum,sump,psum;
float pmath,pcpp,penglish;
char c;
do
{
cout<<"請輸入您要增加的學生的姓名:"< 54、 cin>>name;
cout<<"請輸入你要增加的學生的學號:"< 55、ut<<"請輸入英語成績:"< 56、l;
sum=math+cpp+english;
sump=pmath+pcpp+penglish;
psum=sump*bl+sum*bl;
fstream outfile,infile;
outfile.open("f1.txt",ios::out|ios::app);
if(!file)
{
cout<<"f1.txt can not open.\n";
r 57、eturn;
}
outfile< 58、;
outfile.close();
infile.open("f1.txt",ios::in);
if(!file)
{
cout<<"f1.txt can not open.\n";
return;
}
char h;
while(infile.get(h))
cout< 59、 cout< 60、f(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"< 61、 string xingming,line,str,name;
do
{ ifstream fin("f1.txt");
fstream outfile("f2.txt",ios::trunc|ios::out); //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù)
cout<<"請輸入您要刪除的學生的姓名:"< 62、eof() )
{
getline(fin,line);
istringstream stream(line);
name = line.substr(0,line.find(" ",0));//找到名字,判斷是否相等
if(name != xingming)
outfile< 63、 outfile.close();
fin.close();
fstream f("f1.txt",ios::trunc|ios::out);
ifstream outf("f2.txt");
f< 64、 cout<<"數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)"< 65、修改數(shù)據(jù)
{
string sname,line,str,name;
int bj;
int nu;float eng,ma,com,peng,pma,pcom,bl;int flag;char c;
if(i==0)
{
cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"< 66、.txt",ios::in);
ofstream outfile("f.txt",ios::trunc|ios::out);
cout<
- 溫馨提示:
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
- 主播直播培訓提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機關(guān)工委2024年度年終黨建工作總結(jié)述職匯報
- 心肺復(fù)蘇培訓(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學生活介紹
- XX單位2024年終專題組織生活會理論學習理論學習強黨性凝心聚力建新功
- 2024年XX單位個人述職述廉報告
- 一文解讀2025中央經(jīng)濟工作會議精神(使社會信心有效提振經(jīng)濟明顯回升)
- 2025職業(yè)生涯規(guī)劃報告自我評估職業(yè)探索目標設(shè)定發(fā)展策略
- 2024年度XX縣縣委書記個人述職報告及2025年工作計劃
- 寒假計劃中學生寒假計劃安排表(規(guī)劃好寒假的每個階段)
- 中央經(jīng)濟工作會議九大看點學思想強黨性重實踐建新功