第十四周(-用檔案儲存的學生名單)
*作者:王忠
*完成日期:2015.6.09
*版本號:v1.0
*
*問題描述:檔案score.dat中儲存的是若干名學生的姓名和C++課、高數和英語成績。
(1)定義學生類,其中包含姓名、C++課、高數和英語成績及總分資料成員。
(2)用物件陣列進行儲存學生的成績,讀入成績並計算總分;將總分高於平均總分且沒掛科的同學的資訊儲存到檔案pass_score.dat中。
*輸入描述:
*程式輸出:
#include <iostream> #include <cstdlib> #include <fstream> using namespace std; //定義學生類 class Student { public: //宣告必要的成員函式 Student() {} ~Student(); double gettotal(); static int getstu_num(); static double gettotal_sum(); friend ostream& operator <<(ostream &out,Student &s); friend istream& operator >>(istream &in,Student &s); bool pass(); private: string name; double cpp; double math; double english; double total; static int stu_num; //學生人數,處理為類的靜態成員合適 static double total_sum; //學生總分和 }; int Student::stu_num=0; double Student::total_sum=0; Student::~Student() { total_sum=total; stu_num--; } double Student::gettotal() { return total; } int Student::getstu_num() { return stu_num; } double Student::gettotal_sum() { return total_sum; } ostream& operator <<(ostream &out,Student &s) { out<<s.name<<"\t"<<s.cpp<<"\t"<<s.math<<"\t"<<s.english<<"\t"<<s.total; return out; } istream& operator >>(istream &in,Student &s) { in>>s.name>>s.cpp>>s.math>>s.english; s.total=s.cpp+s.math+s.english; Student::stu_num++; Student::total_sum+=s.total; return in; } bool Student::pass() { return cpp>=60 && math>=60 && english>=60; } int main( ) { Student stud[200],t; //stud[200]為儲存資料的物件陣列 string sname; double total_avg; int i=0; //從檔案score.dat中讀入資料,儲存到物件陣列中 ifstream infile("score.dat",ios::in); if(!infile) { cerr<<"error"<<endl; exit(1); } while(!infile.eof()) infile>>stud[i++]; infile.close(); //總分高於平均總分且沒掛科的同學的資訊儲存到檔案pass_score.dat中 if(Student::getstu_num()>0) { total_avg = Student::gettotal_sum() / Student::getstu_num(); ofstream outfile("pass_score.dat",ios::out); if(!outfile) { cerr<<"open error!"<<endl; exit(1); } for(i=0; i<Student::getstu_num(); i++) { if(stud[i].gettotal()>total_avg&&stud[i].pass()) { outfile<<stud[i]<<endl; } } outfile.close(); cout<<"請去檔案中檢視"<<endl; } return 0; }
相關推薦
第十四周(-用檔案儲存的學生名單)
*作者:王忠 *完成日期:2015.6.09 *版本號:v1.0 * *問題描述:檔案score.dat中儲存的是若干名學生的姓名和C++課、高數和英語成績。 (1)定義學生類,其中包含姓名、C++課、高數和英語成績及總分資料成員。 (2)用物件陣列進行儲存學生的成績,讀入成績並計算總分;將總分高於平均總分
第十五週(專案二)——用檔案儲存學生的名單。
/*煙臺大學計算機學院學生 *All right reserved. *檔名稱:用檔案儲存學生的名單 *作者:王洪海 *完成日期:2014年6月5日 *版本號:v1.0 *對任務及求解方法的描述部分:用檔案儲存學生的名單 *我的程式:*/ #include <iostream> #in
第十四周(OOP版電子詞典)
*作者:王忠 *完成日期:2015.6.10 *版本號:v1.0 * *問題描述:做一個簡單的電子詞典。在檔案dictionary.txt中,儲存的是英漢對照的一個詞典,詞彙量近8000個,英文、中文釋義與詞性間用’\t’隔開。 (1)程式設計序,由使用者輸入英文詞,顯示詞性和中文釋義。提示1:如果要用OO
python學習第十三節(sys,logging,logger,json)
mage 支持 另一個 tro write alt blog dha python sys模塊sys模塊是python和解釋器之間交流的模塊 sys.argv 在cmd中將可以輸入內容後 自動形成為列表,可以在程序中先切片,驗證登錄的作用。 sys.exit() 程序立
Linux建立swap分割槽(用檔案作為Swap分割槽)
1.建立要作為swap分割槽的檔案:增加1GB大小的交換分割槽,則命令寫法如下,其中的count等於想要的塊的數量(bs*count=檔案大小)。 dd if=/dev/zero of=/root/swapfile bs=1M count=1024 2.格式
第十四周專案1線性表的折半查詢(遞迴法)
/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年12月2日 * 版本號:VC6.0 * 問題描述:線性表的折半查詢(遞迴法) * 輸入描述:無 * 程式輸出:圖
第十四周專案1線性表的折半查詢(迴圈法)
/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年12月2日 * 版本號:VC6.0 * 問題描述:線性表的折半查詢(迴圈法) * 輸入描述:無 * 程式輸出:圖
王穎奇 20171010129《面向物件程式設計(java)》第十四周學習總結
實驗十四 Swing圖形介面元件 理論知識知識點: 1.Swing和MVC設計模式2.佈局管理器3.文字輸入4.選擇元件5.選單6.對話方塊 實驗時間 2018-11-29 1、實驗目的與要求 (1) 掌握GUI佈局管理器用法; (2) 掌握各類
王之泰201771010131《面向物件程式設計(java)》第十四周學習總結
第一部分:理論知識學習部分 第12章 Swing使用者介面元件 12.1.Swing和MVC設計模式 a 設計模式初識b 模型—檢視—控制器模式c Swing元件的模型—檢視—控制器分析 12.2佈局管理器 a 佈局管理器是一組類。 b 實現java.awt.LayoutMana
201771010135 楊蓉慶/張燕/楊玲《面對物件程式設計(java)》第十四周學習總結
1 、實驗目的與要求 (1) 掌握GUI佈局管理器用法; (2) 掌握各類Java Swing元件用途及常用API 一、理論知識 Swing和MVC設計模式 (1)設計模式(Design pattern)是設計者一種流行的 思考設計問題的方法,是一套被反覆使
王志成 201771010130《面向物件程式設計(java)》第十四周學習總結
(1) 掌握GUI佈局管理器用法; (2) 掌握各類Java Swing元件用途及常用API; 2、實驗內容和步驟 實驗1: 匯入第12章示例程式,測試程式並進行組內討論。 測試程式1 l 在elipse IDE中執行教材479頁程式12-1,結合執行結果理解程式; l&nbs
張雲飛 201771010143 《面對物件程式設計(java)》第十四周學習總結 第十三組
1、實驗目的與要求 (1) 掌握GUI佈局管理器用法; (2) 掌握各類Java Swing元件用途及常用API; 2、實驗內容和步驟 實驗1: 匯入第12章示例程式,測試程式並進行組內討論。 測試程式1 l 在elipse IDE中執行教材479頁程式12-1,結
徐思201771010132《面向物件程式設計(java)》第十四周學習總結
一、理論知識部分 設計模式(Design pattern)是設計者一種流行的思考設計問題的方法,是一套被反覆使用,多數人知曉的,經過分類編目的,程式碼設計經驗的總結。使用設計模式是為了可重用程式碼、讓程式碼更容易被他人理解、保證程式碼可靠性。每一個模式描述了一個不斷重複發生的設計問題,以及該問題的核心解決方
201771010128王玉蘭《面向物件程式設計(Java)第十四周學習總結》
第一部分:理論知識總結: (1)Swing 設計模式(Design pattern)是設計者一種流行的 思考設計問題的方法,是一套被反覆使用,多數人 知曉的,經過分類編目的,程式碼設計經驗的總結。 使用設計模式是為了可重用程式碼、讓程式碼更容易被 他人理解、保證程式碼可靠性。 每一個模式描
達拉草201771010105《面向物件程式設計(java)》第十四周學習總結
達拉草201771010105《面向物件程式設計(java)》第十四周學習總結 第一部分:理論知識 佈局管理器: 佈局管理器是一組類。 實現java.awt.LayoutManager介面 ,決定容器中元件的位置和大小 。 Java.awt包中定義了5種佈局管理類,每一種布 局管理類對應一種佈局策略。
達拉草201771010105《面向對象程序設計(java)》第十四周學習總結
必須 bubuko tle itl 默認 ddb 框架 echo ted 達拉草201771010105《面向對象程序設計(java)》第十四周學習總結 第一部分:理論知識 布局管理器: 布局管理器是一組類。 實現java.awt.LayoutManager接口 ,決定容器
焦旭超 201771010109 《面對物件程式設計(java)》第十四周學習總結 第十三組
1、實驗目的與要求 (1) 掌握GUI佈局管理器用法; (2) 掌握各類Java Swing元件用途及常用API; 2、實驗內容和步驟 實驗1: 匯入第12章示例程式,測試程式並進行組內討論。 測試程式1 l 在elipse IDE中執行教材479頁程式12-1,結
趙棟《面向物件程式設計(java)》第十四周學習總結
理論知識知識點: Swing和MVC設計模式 (1)設計模式(Design pattern)是設計者一種流行的 思考設計問題的方法,是一套被反覆使用,多數人 知曉的,經過分類編目的,程式碼設計經驗的總結。 (2)模型-檢視-控制器設計模式(Model –ViewController )是Java EE平
馮志霞201771010107《面向物件程式設計(java)》第十四周學習總結
實驗十四 Swing圖形介面元件 實驗時間 20178-11-29 1、實驗目的與要求 (1) 掌握GUI佈局管理器用法; (2) 掌握各類Java Swing元件用途及常用API; 2、實驗內容和步驟 實驗1: 匯入第12章示例程式,測試程式並進行組內討論。 測試程式1 l&nb
狄慧201771010104《面向物件程式設計(java)》第十四周學習總結
實驗十四 Swing圖形介面元件 實驗時間 20178-11-29 一、知識點總結 1.模型-檢視-控制器模式模型:儲存內容 檢視:顯示內容 控制器:處理使用者輸入 2.佈局管理 1>局管理器(FlowLayout) JPanel物件的預設佈局管理器為FlowLayout,元件加入