欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

高級程序設計語言課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)

上傳人:na****u 文檔編號:56936755 上傳時間:2022-02-22 格式:DOC 頁數(shù):51 大?。?74.50KB
收藏 版權申訴 舉報 下載
高級程序設計語言課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)_第1頁
第1頁 / 共51頁
高級程序設計語言課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)_第2頁
第2頁 / 共51頁
高級程序設計語言課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)_第3頁
第3頁 / 共51頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《高級程序設計語言課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)》由會員分享,可在線閱讀,更多相關《高級程序設計語言課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)(51頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 河南工程學院《高級程序設計語言》課程設計 成果報告 學生成績管理系統(tǒng)設計與實現(xiàn) 學生學號: 學生姓名: 學 院: 計算機學院 專業(yè)班級: 軟件工程1341班 專業(yè)課程: 《高級程序設計語言》 指導教師: 2014 年 6 月 27 日 題 目 學生成績管理系統(tǒng)設計與實現(xiàn) 考核項目 考核內容 得分 平時考核 (30分)出勤情況、態(tài)度、效率;知識掌握情況、基本操作技能、知識應用能力、獲取知識能力 系

2、統(tǒng)設計 (20分)分析系統(tǒng)的功能模塊 編程調試 (20分)實現(xiàn)系統(tǒng)的各個功能模塊,并完成調試 回答問題 (15分)回答老師針對課程設計提出的問題 課程設計報告撰寫 (10分)嚴格按照規(guī)范要求完成課程設計報告 源代碼 (5分)按照規(guī)范要求完成課程設計源代碼的排版 總 評 成 績 指導教師評語: 日期: 年 月 日 目 錄 第1章 系統(tǒng)設計目的 1 1.1?課程設計目的 1 1.2課程設計要求 1 1

3、.3課程設計題目 1 第2章 系統(tǒng)實現(xiàn)思路 3 2.1構造系統(tǒng)框架 3 2.2進行內容填充 3 第3章 系統(tǒng)詳細設計 4 3.1根據(jù)所包含的內容確定頭文件 4 3.2構造一個類存放功能函數(shù) 4 3.3設計一個讓用戶執(zhí)行操作的界面 4 3.4用do-while語句進行主函數(shù)循環(huán) 6 3.5錄入操作 6 3.6刪除操作 8 3.7修改操作 9 3.8查詢操作 11 3.9輸出成績操作 12 3.10平均成績輸出操作 13 3.11掛科人數(shù)統(tǒng)計操作 14 3.12輸出名次操作 15 第4章 系統(tǒng)調試運行 16 4.1分步驟調試 16 4.2總調試結果 17 課

4、程設計體會 28 參考文獻 29 第1章 系統(tǒng)設計目的 1.1?課程設計目的 (1)通過《高級程序設計語言》課程設計,將學到的面向對象的程序設計思想用到具體的工作和學習中,加深對類與對象的理解,是將計算機課程與實際問題相聯(lián)接的關鍵步驟。通過課程設計,能夠提高學生分析問題、解決問題,從而運用所學知識解決實際問題的能力。 (2)通過本課程設計,進一步深化掌握C++語言的基本知識;掌握結構化程序設計的基本方法和設計技巧,初步了解算法分析與設計概念;理解面向對象程序設計思想,初步具備運用面向對象程序設計方法進行程序設計的能力。能熟練應用VC++集成環(huán)境進行C++語言程序

5、的編寫、編譯與調試,提高學生對本課程知識綜合運用能力。 1.2課程設計要求 根據(jù)提供的實習題目,認真完成軟件設計的全部過程,并以最終軟件設計成果來證明其獨立完成實際任務的能力,從而,反映出理解和運用C++程序知識的水平和能力,最后完成軟件設計和程序調試并提交文檔:課程設計報告書,報告書中包含設計的算法及部分程序代碼。 1.3課程設計題目 (1)設計四個類;學生類(描述學生基本信息);成績類:班級類;課程類(描述課程信息:課程編號,科目名稱(如高等數(shù)學,大學英語等);學生成績及課程信息用文件保存,每個類一個文件,程序執(zhí)行時從文件讀入;? (2)能按學期,按班級完成對學生成績的錄入

6、,修改,能按班級統(tǒng)計學生的成績;求學生的總分及平均分;并能根據(jù)學生的平均成績進行排序,能查詢學生成績,不及格科目及學生名單;能按班級輸出學生的成績單。? 設置學生的成績信息:學生學號、姓名、所選課程名稱、平時成績、期末成績、平時成績所占百分比? 計算學生總評成績:總評成績=平時成績*平時成績所占百分比+期末成績*(1-平時成績所占百分比)? 顯示學生的姓名、所選課程名稱以及平時成績、期末成績和總評成績信息。分單人顯示和以班輸出(班成績單格式輸出到文件)? ? 注意,至少一個班,30人三門課。 第2章 系統(tǒng)實現(xiàn)思路 2

7、.1構造系統(tǒng)框架 根據(jù)給的成績系統(tǒng)的題目,自己設計一個框架,頭文件、功能函數(shù)類、功能類、函數(shù)、主函數(shù)等。 #include//常用的輸入輸出流 #include //字符串 #include//輸入輸出文件流 #include//實現(xiàn)c++風格串流的輸入輸出流 #include//是I/O流控制頭文件, #include//對控制臺進行變色 using namespace std; class LR { }; //通過定義一個類來定義數(shù)據(jù)錄入的函數(shù)

8、 class student{ };//學生類(查詢學生信息) class grade{ };//成績類(對學生成績的操作) class classes{ };//學生的班級信息 class subject{ };//學科的分類。 void main(){ }……//主函數(shù)。 2.2進行內容填充 根據(jù)自己構造的框架,給對應的類和函數(shù)加入需要實現(xiàn)的功能。如LR類就是為了實現(xiàn)對函數(shù)的錄入和功能函數(shù)(求均分,總分)的聲明。調理清楚的編程才會讓工作量最簡化,錯誤最少化。 第3章 系統(tǒng)詳細設計 3.1根據(jù)所包含的內容確定頭文件 一個程序里面要用到什么樣的

9、數(shù)據(jù),程序員必須要有一個清晰的認識。所以程序員寫上必要的頭文件是很重要的一個步驟。 #include//常用的輸入輸出流 #include //字符串 #include//輸入輸出文件流 #include//實現(xiàn)c++風格串流的輸入輸出流 #include//是I/O流控制頭文件, #include//對控制臺進行變色 …… 3.2構造一個類存放功能函數(shù) 構造一個存放功能的函數(shù)并且將函數(shù)聲明為主函數(shù)的友元函數(shù),方便主函數(shù)調用功能函數(shù)。 class

10、LR //通過定義一個類來定義數(shù)據(jù)錄入的函數(shù) { private: char name[20]; int number; float math,cpp,english,average,sum; public: LR() {}; LR ( char n[20], int num,float ma,float cj,float eng ) ; float getsum();//得到總分. float getaver(); //得到平均分. friend void main(); //將主函數(shù)定義為友元函數(shù),方便訪問類中的成員 . }; 3.3設計

11、一個讓用戶執(zhí)行操作的界面 成功的程序員就是要用戶不懂程序的情況下能看得懂編寫程序的用意,所以設計一個生動的用戶執(zhí)行操作界面是很重要的一個環(huán)節(jié)。 cout<<"**********************歡迎來到成績查詢系統(tǒng)***********************"<

12、endl; cout<<"(2)刪除信息"<

13、dl; cout<<"(6)平均成績"<

14、***********歡迎來到成績查詢系統(tǒng)***********************"<>p; if(p<1||p>11) cout<<"沒有這個選項哦親!請重新輸入:"<

15、e(chris1=0); do{ switch(p){ }while(w=='y'); }; 當然里面也會插入do-while條件句進行循環(huán)。 3.5錄入操作 進行對學生信息和成績的存入操作。 case 1://數(shù)據(jù)存入 {char c; //用于在小項中選擇是否繼續(xù)操作 char name[20]; int number; float math,cpp,english; do{ cout<<"請輸入姓名:"<>name; cout<<"請輸入學號:"<

16、ndl; cin>>number; cout<<"請輸入數(shù)學成績:"<>math; cout<<"請輸入C++成績:"<>cpp; cout<<"請輸入英語成績:"<>english; fstream outfile,infile; //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open("f1.txt",ios::out|ios::app); if(!file) { cout<<"f1.txt can not op

17、en.\n"; return; } outfile<

18、 return;} char ch; while(infile.get(ch)) cout<

19、l; cin>>c; chris1=0; do{ if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; } else chris1=1; }while(chris1==0); }while(c=='y'); //重復輸入 break; } 3.6刪除操作 進行對沒用信息的刪除操作: case 2:

20、//數(shù)據(jù)刪除 { char c; string xingming,line,str,name; do { ifstream fin("f1.txt"); fstream outfile("f2.txt",ios::trunc|ios::out); //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) cout<<"請輸入您要刪除的學生的姓名:"<

21、in>>xingming; while(!fin.eof() ) { getline(fin,line); istringstream stream(line); name = line.substr(0,line.find(" ",0));//找到名字,判斷是否相等 if(name != xingming) outfil

22、e<

23、 f.close(); cout<<"數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)"<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; } }while(c=='y'); break; } 3.7

24、修改操作 進行對已知錯誤信息的修改操作: case 3://修改數(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ù)!"<>name; fstream fin("f1.txt",ios::in); of

25、stream outfile("f.txt",ios::trunc|ios::out); cout<

26、e flag=1; } fin.close(); if(flag=1) { cout<<"請輸入修改學生姓名及其新學號,數(shù)學,c++和英語成績:"; cin>>name>>nu>>ma>>com>>eng; cout<

27、 fstream outf("f1.txt",ios::trunc|ios::out); fstream inf("f.txt",ios::in); outf<>c; cout<

28、(c!='y'&&c!='n') { cout<<" 指令錯誤!請重新輸入!"<>c; } }while(c=='y'); break; } 3.8查詢操作 進行對學生成績查詢的操作:case 4://查詢 { char n[20];char c;int j=0;int flag; if(i==0) { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<

29、 { flag=0; cout<<"請輸入要查詢的名字: "<>n; for(int j=0;j

30、]).cpp<<"英語分數(shù):"<<(*s[j]).english<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入:"<>c; } }while(c=='y'); break;

31、 } 3.9輸出成績操作 對學生的成績進行輸出: case 5://輸出全部學生信息 { cout<<"所有學生數(shù)據(jù)如下:"<

32、 if(i==0) { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<

33、 { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<math<60)m++; if(s[j]->cpp<60)n++; if(s[j]->english<60)k++; } cout<<"數(shù)學不及格人數(shù)為:"<

34、不及格人數(shù)為:"<math<60)m++; if(s[j]->cpp<60)n++; if(s[j]->e

35、nglish<60)k++; } cout<<"數(shù)學掛科人數(shù)為:"<

36、emp; for(g=0;ga[n+1]) { temp=a[n];a[n]=a[n+1];a[n+1]=temp; } } for(n=1;n<=i;n++) cout<

37、 } } 第4章 系統(tǒng)調試運行 4.1分步驟調試 分步驟調試可以讓出現(xiàn)的錯誤提前被發(fā)現(xiàn),提前修改。避免對之后的編程造成更多的麻煩。如圖(調試用戶執(zhí)行界面): 圖1-1(分級調試圖) 4.2總調試結果 (1)總調試結果是一個選擇框,需要用戶進行選擇。其界面如圖: 圖1-2(控制條界面初圖) (2)如果選擇錄入操作則會出現(xiàn)一些列讓用戶輸入數(shù)據(jù)的選項,如圖: 圖1-3(錄入操作圖) (3)如果想要刪除某位同學的信息,依然會出現(xiàn)一個選擇項,如圖:

38、 圖1-3(刪除操作圖) (4)如果想要修改某位同學的信息,則會出現(xiàn)如圖選擇界面: 圖1-3(修改操作圖) : (5)如果想要查詢某位學生的信息,界面如圖: 圖1-3(查詢操作圖) (6)如果想要查詢全部的成績,則輸出界面如圖: 圖1-3(成績輸出操作圖) (7)如果想要查詢平均成績,則輸出界面如圖: 圖1-3(平均成績輸出操作圖) (8)如果想要了解各科掛科人數(shù),則操作界面如圖: 圖1-3(不及格人數(shù)輸出操作圖)

39、 (9)如果想要了解各個學生的總分排名,則操作界面如圖: 圖1-3(總分排名操作圖) 注:(以上圖片引用的數(shù)據(jù)為用戶自己輸入的數(shù)據(jù)): 課程設計體會 通過這次程序設計,我充分認識到自己的不足之處,同時也讓我在程序設計中學到了很多知識,在這之中,我感覺自己不僅增加了實驗的分析及處理能力而且我也懂得了課本知識的重要性,課本是我們學習的根本,同時也是我們實驗的基礎。 當然,在編程的過程中出現(xiàn)了一系列的問題,有一些,通過查閱資料和課本已經(jīng)解決,但還是有一些不能,但經(jīng)過我們寢室室友的努力,再加上我們的不斷地分析和修改下,終于把正確的程序給編寫了出來。同時,自己也感到非常高興

40、,畢竟自己為這次的實驗報告付出了很多的時間和精力,同時也對自己的成果感到由衷的高興,或許是這份報告是自己努力的成果,所以對它總是有一種不同的感覺,有自豪,也有滿意。 在具體的設計與實施中,我看到并感受到了一個管理系統(tǒng)從無到有的過程,對具體的設計步驟、思路方法、技巧都有了進一步的了解,并感受深刻。這次課程設計加深了我對Visual C++相關知識,鞏固了自己的基礎,著實讓我受益匪淺。聯(lián)系實際生活,我處理困難應該和這次編程一樣,用心去感受過程,去用最有用的方法解決眼下的困難,這是我這次程序設計最大的收獲。 參考文獻 1、譚浩

41、強編:《C++面向對象程序設計》清華大學出版社 2、譚浩強.《C語言程序設計》.清華大學出版社 3、孔鵬. Visual c++ 6.0完全自學手冊[M].北京:機械工業(yè)出版社 4、龔志翔. Visual C++編程實例與技巧集粹[M].北京:北京期望電子出版社 5、《大學計算機應用基礎案例教程》 6、《計算機信息技術基礎教程》 7、《計算機與信息技術應用指導》 #include #include #include #include<

42、sstream> #include #include using namespace std; class LR //通過定義一個類來定義數(shù)據(jù)錄入的函數(shù) { private: char name[20]; int number; float math,cpp,english,average,sum; public: LR() {}; LR ( char n[20], int num,float ma,float cj,float eng ) ; float getsum();//得到總分.

43、 float getaver(); //得到平均分. friend void main(); //將主函數(shù)定義為友元函數(shù),方便訪問類中的成員 . }; LR::LR ( char n[20], int num,float ma,float cj,float eng ) { strcpy(name,n); //得到姓名 number=num; //得到學號 math=ma; //得到數(shù)學成績 cpp=cj; //得到c++成績 english=eng; //得到英語成績 } float LR::getsum() //得

44、到總分的函數(shù) { sum=cpp+english+math; return sum; } float LR::getaver() //得到平均分的函數(shù) { average=getsum()/3; return average; } class student { private: string xname,sname,line,str; char name[20]; int number; public: friend void main(); };//學生類(查詢學生信息)

45、class grade { private: grade(float aver,float su):average(aver),sum(su){} public: friend void main(); float average; float sum; };//成績類(對學生成績的操作) class classes { public: friend void main(); };//學生的班級信息 class subject { public: friend void main(); subject

46、(float eng,float ma,float cj):english(eng),math(ma),cpp(cj){}//得到各科成績。 private: float english; float math; float cpp; };//學生的學科分類 void main(){ system("color 4d"); cout<<"**********************歡迎來到成績查詢系統(tǒng)***********************"<

47、<"_________________________________________________________________"<

48、ndl; cout<<"(5)輸出全部學生成績"<

49、l; cout<<"(8)按照總分排名名次:"<

50、的執(zhí)行判斷條件。 char w;//全局變量,用于在大項中選擇是否繼續(xù)操作 LR *s[100]; //類定義的指針將所錄入的數(shù)據(jù)按類中的形式分別存儲 ofstream *file[100]; int i=0; //全局變量,用于做每個錄入數(shù)據(jù)的下標 int j=0; do{ cin>>p; if(p<1||p>11) cout<<"沒有這個選項哦親!請重新輸入:"<

51、case 1://數(shù)據(jù)存入 { char c; //用于在小項中選擇是否繼續(xù)操作 char name[20]; int number; float math,cpp,english; do{ cout<<"請輸入姓名:"<>name; cout<<"請輸入學號:"<>number; cout<<"請輸入數(shù)學成績:"<

52、ndl; cin>>math; cout<<"請輸入C++成績:"<>cpp; cout<<"請輸入英語成績:"<>english; fstream outfile,infile; //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open("f1.txt",ios::out|ios::app); if(!file) { cout<<"f1.

53、txt can not open.\n"; return; } outfile<

54、open.\n"; return; } char ch; while(infile.get(ch)) cout<

55、成功,想繼續(xù)錄入嗎(y/n)"<>c; chris1=0; do{ if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; } else chris1=1; }while(chris1==0); }while(c=='y'); //重復輸入 break; } case 2:/

56、/數(shù)據(jù)刪除 { char c; string xingming,line,str,name; do { ifstream fin("f1.txt"); fstream outfile("f2.txt",ios::trunc|ios::out); //作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) cout<<"請輸入您要刪除的學生的姓名:"<

57、 cin>>xingming; while(!fin.eof() ) { getline(fin,line); istringstream stream(line); name = line.substr(0,line.find(" ",0));//找到名字,判斷是否相等 if(name != xingming)

58、 outfile<

59、 f.close(); cout<<"數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎(y/n)"<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入!"<>c; } }while(c=='y'); break;

60、 } case 3://修改數(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ù)!"<>name; fstream fin("f1.txt",ios:

61、:in); ofstream outfile("f.txt",ios::trunc|ios::out); cout<

62、 } else flag=1; } fin.close(); if(flag=1) { cout<<"請輸入修改學生姓名及其新學號,數(shù)學,c++和英語成績:"; cin>>name>>nu>>ma>>com>>eng; cout<

63、e.close(); fstream outf("f1.txt",ios::trunc|ios::out); fstream inf("f.txt",ios::in); outf<>c; cout<

64、; if(c!='y'&&c!='n') { cout<<" 指令錯誤!請重新輸入!"<>c; } }while(c=='y'); break; } case 4://查詢 { char n[20];char c;int j=0;int flag; if(i==0) { cout<<"系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!"<

65、 flag=0; cout<<"請輸入要查詢的名字: "<>n; for(int j=0;j

66、p<<"英語分數(shù):"<<(*s[j]).english<>c; if(c!='y'&&c!='n') { cout<<"指令錯誤!請重新輸入:"<>c; } }while(c=='y'); break; } case 5://輸出全部學生信息 { cout<<"所有學生數(shù)據(jù)如下:"<

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!