十六週任務二 學生成績排序檔案score.dat 中儲存的是100 名學生的姓名和C++課、高數和英語成績,將成績排序後儲存到ordered_score.dat檔案中
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: 十六週任務二 學生成績排序檔案score.dat 中儲存的是100 名學生的姓名和C++課、高數和英語成績 讀入這名學生的成績,用物件陣列進行儲存 在螢幕上顯示各科及總分的最高分,排序後的成績單(包括總分)儲存到檔案odered_score.dat中 * 作 者: 石麗君 * 完成日期: 2012 年 6 月 4 日 * 版 本 號: * 對任務及求解方法的描述部分 * 輸入描述: 學生成績排序 檔案score.dat 中儲存的是100 名學生的姓名和C++課、高數和英語成績。 (1)定義學生類,其中包含姓名、C++課、高數和英語成績及總分、均分資料成員,成員函式根據 需要確定。 (2)讀入這名學生的成績,用物件陣列進行儲存。 (3)求出各科和總分的最高分。 (4)請按總分的降序(高成績在前,低成績在後)排序 (5)在螢幕上顯示各科及總分的最高分,排序後的成績單(包括總分)儲存到檔案odered_score.dat中。 * 問題描述: * 程式輸出: * 程式頭部的註釋結束 */ #include<iostream> #include<fstream> #include<string> using namespace std; class Student { private: string name; int C; int Math; int English; int All_score; double Average; public: Student(); Student(int c,int math,int english,int all_score,double average):C(c),Math(math),English(english),All_score(all_score),Average(average){} friend void arrange_all_score(Student stu[]); friend void get_frome_file(Student stu[]); friend void save_to_file(Student stu[]); friend void get_heigh_allscore(Student stu[]); friend void get_height_Cscore(Student stu[]); friend void get_height_Mathscore(Student stu[]); friend void get_height_Englishscore(Student stu[]); }; Student::Student() { C=0; Math=0; English=0; All_score=0; Average=0; } void arrange_all_score(Student stu[]) { int i,j,t; for( j=0;j<99;j++) { for( i=0;i<99-j;i++) if(stu[i].All_score<stu[i+1].All_score) { t=stu[i].All_score; stu[i].All_score=stu[i+1].All_score; stu[i+1].All_score=t; } } } void get_heigh_allscore(Student stu[]) { Student s; int i=0; s.All_score=stu[i].All_score; for(i=0;i<100;i++) { if(stu[i].All_score>s.All_score) { s.All_score =stu[i].All_score ; s.name =stu[i].name ; } } cout<<"總分成績最高為:"<<s.All_score<<'\t'<<"成員:"; for(i=0;i<100;i++) if(s.All_score ==stu[i].All_score ) cout<<stu[i].name<<" "; } void get_height_Cscore(Student stu[]) { Student s; int i=0; s.C=stu[i].C; for(i=0;i<100;i++) { if(stu[i].C>s.C) { s.C =stu[i].C; s.name =stu[i].name ; } } cout<<"C++成績最高為:"<<s.C<<'\t'<<"成員:"; for(i=0;i<100;i++) if(s.C ==stu[i].C ) cout<<stu[i].name<<" "; } void get_height_Mathscore(Student stu[]) { Student s; int i=0; s.Math=stu[i].Math; for(i=0;i<100;i++) { if(stu[i].Math>s.Math) { s.Math =stu[i].Math; s.name =stu[i].name ; } } cout<<"高數成績最高為:"<<s.Math<<'\t'<<"成員:"; for(i=0;i<100;i++) if(s.Math==stu[i].Math ) cout<<stu[i].name<<" "; } void get_height_Englishscore(Student stu[]) { Student s; int i=0; s.English=stu[i].English; for(i=0;i<100;i++) { if(stu[i].English>s.English) { s.English =stu[i].English; s.name =stu[i].name ; } } cout<<"英語成績最高為:"<<s.English<<'\t'<<"成員:"; for(i=0;i<100;i++) if(s.English==stu[i].English ) cout<<stu[i].name<<" "; } void get_frome_file(Student stu[]) { ifstream infile("score.dat",ios::in); if(!infile) { cerr<<"open score.dat error!"<<endl; exit(1); } for(int i=0;i<100;i++) { infile>>stu[i].name>>stu[i].C>>stu[i].Math>>stu[i].English; stu[i].Average=(stu[i].C+stu[i].Math+stu[i].English)/3; stu[i].All_score=stu[i].C+stu[i].Math+stu[i].English; } infile.close(); } void save_to_file(Student stu[]) { cout<<"姓名"<<'\t'<<"C++"<<'\t'<<"高數"<<'\t'<<"英語"<<'\t'<<"平均分"<<'\t'<<"總分"<<endl; ofstream outfile("ordered_score.dat",ios::out); if (!outfile) { cerr<<"open error!"<<endl; } for(int i=0;i<100;i++) { outfile<<stu[i].name<<'\t'<<stu[i].C<<'\t'<<stu[i].Math<<'\t'<<stu[i].English<<'\t'<<stu[i].Average<<'\t'<<stu[i].All_score<<endl; cout<<stu[i].name<<'\t'<<stu[i].C<<'\t'<<stu[i].Math<<'\t'<<stu[i].English<<'\t'<<stu[i].Average<<'\t'<<stu[i].All_score<<endl; } outfile.close(); } int main() { Student stu[100]; get_frome_file(stu); arrange_all_score( stu); get_heigh_allscore(stu); cout<<endl; get_height_Cscore( stu); cout<<endl; get_height_Mathscore( stu); cout<<endl; get_height_Englishscore( stu); cout<<endl; cout<<endl; save_to_file(stu); cout<<endl; system("pause"); return 0; }
相關推薦
十六週任務二 學生成績排序檔案score.dat 中儲存的是100 名學生的姓名和C++課、高數和英語成績,將成績排序後儲存到ordered_score.dat檔案中
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: 十六週任務二 學生成績排序檔案score.dat 中儲存的是100 名學生的姓名
第十六週任務一(對檔案的操作練習之漲工資)
題目從檔案salary.txt 中讀入500 名工人的工資,全部增加100 元后進行排序,將排序後的結果在螢幕上 輸出,並儲存到檔案ordered_salary.txt 中。 /* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011
【週報】---二零一八年四十六週
週報----二年一八年四十六週 本週總結 1)體重 基本和上週持平,本週運動兩次,運動量比上週少了10km左右。飲食的話比上週要控制的好一些。 2)工作 上週指定的計劃,沒有全部完成,出現了一定程度的延遲,主要是技術儲備不夠導致的。平時要多花一些時間學習和積累。
2.6使用二維陣列儲存學生的資料,包括學號、姓名、作業系統成績、Java成績、高數成績、總分;一行儲存一個學生的資料;要求輸入若干學生的資料,求出總分;然後按照總分由高到低重新排列;輸出排序後的結果
摩爾的Java學習筆記2.6 第二週作業: 1、實現將一組整數進行升序排列; 2、用二維陣列實現,5個學生4門課程的總分和平均分的統計工作; 3、列印八行八列楊輝三角,開頭
第十六週--專案6大資料集上排序演算法效能的體驗
* * Copyright (c++) 2015 煙臺大學計算機學院 * All right reserved. * 檔名稱:houzhui.cpp * 作 者: 商文軻
第十二週任務二 分別定義Teacher(教師)類和Cadre(幹部)類,採用多重繼承方式有這兩個類派生出Teacher_Cadre
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:第十二週任務二 分別定義Teacher(教師)類和Cadre(幹部)類, 採用多重繼承方
python基本數據類型(字節字符十進制十六進制二進制轉換)
style log encoding 基本 轉換成 元素 nco 轉換 name #公共功能 # 索引:只能取一個元素 # 切片:取多個元素 #len:計算長度 #for name=‘李露‘ #utf-8 一個漢字三個字節 for i in name:
201771010113 李婷華 《面向物件程式設計(Java)》第十六週總結
一.理論知識部分 1.程式是一段靜態的程式碼,它應用程式執行藍 是一段靜態的程式碼,它應用程式執行藍 是一段靜態的程式碼,它應用程式執行藍本。 2.程序是程式的一次動態執行,它對應了從程式碼載入、執行至執行完畢的一個完整過程。 3.多執行緒是程序執行過中產生的多條線索。 4.執行緒是比程序執行更小的單
201771010134楊其菊《面向物件程式設計(java)》第十六週學習總結
第十六週學習總結 第一部分:理論知識 1. 程式是一段靜態的程式碼,它是應用程式執行的藍本。程序是程式的一次動態執行,它對應了從程式碼載入、執行至執行完畢的一個完整過程。作業系統為每個程序分配一段獨立的記憶體空間和系統資源,包括:程式碼資料以及堆疊等資源。每一個程序的內部資料和狀態都是完全獨立的。多工
201771010123汪慧和《面向物件程式設計Java》第十六週實驗總結
一、理論部分 1、程式與程序的概念 ‐程式是一段靜態的程式碼,它是應用程式執行的藍本。 ‐程序是程式的一次動態執行,它對應了從程式碼載入、執行至執行完畢的一個完整過程。 ‐作業系統為每個程序分配一段獨立的記憶體空間和系統資源,包括:程式碼資料以及堆疊等資源。每 一個程序的內部資料和狀態都是完全獨立的。
201771010112羅鬆《面向物件程式設計(java)》第十六週學習總結
1、實驗目的與要求 (1) 掌握執行緒概念; (2) 掌握執行緒建立的兩種技術; (3) 理解和掌握執行緒的優先順序屬性及排程方法; (4) 掌握執行緒同步的概念及實現技術; 2、實驗內容和步驟 實驗1:測試程式並進行程式碼註釋。 測試程式1: l&nb
李曉菁201771010114《面向物件程式設計Java》第十六週學習總結
一:理論知識 1.執行緒的概念: 程式是一段靜態的程式碼,它是應用程式執行的藍本。‐程序是程式的一次動態執行,它對應了從程式碼加載、執行至執行完畢的一個完整過程。 多執行緒是程序執行過程中產生的多條執行線索。‐執行緒是比程序執行更小的單位。‐執行緒不能獨立存在,必須存在於程序中,同一進程的各執行緒間共享
馬昕璐 201771010118《面向物件程式設計(java)》第十六週學習總結
第一部分:理論知識學習部分 程式:一段靜態的程式碼,應用程式執行的藍本。 程序:是程式的一次動態執行,它對應了從程式碼載入、執行至執行完畢的一個完整過程。 多執行緒:程序執行過程中產生的多條執行線索,比程序執行更小的單位。 執行緒不能獨立存在,必須存在於程序中,同一程序的各執行緒間共享程序
王之泰 201771010131《面向物件程式設計(java)》第十六週學習總結
第一部分:理論知識學習部分 第14章 併發 ⚫ 執行緒的概念⚫ 中斷執行緒⚫ 執行緒狀態⚫ 多執行緒排程⚫ 執行緒同步 1.程式與程序的概念 1.1程式是一段靜態的程式碼,它是應用程式執行的藍 本。 1.2程序是程式的一次動態執行,它
201771010108 -韓臘梅-第十六週學習總結
第十六週總結 一、知識總結 1.建立執行緒的2種方法 方式1:繼承java.lang.Thread類,並覆蓋run()方法。優勢:編寫簡單;劣勢:無法繼承其他父類 方式2:實現java.lang.Runnable介面,並實現run()方法。優勢:可以繼承其他類,多執行緒可以共享同一個Thread物件;
201771010135 楊蓉慶《面對物件程式設計(java)》第十六週學習總結
1、實驗目的與要求 (1) 掌握執行緒概念; (2) 掌握執行緒建立的兩種技術; (3) 理解和掌握執行緒的優先順序屬性及排程方法; (4) 掌握執行緒同步的概念及實現技術; 一、理論知識 ⚫ 執行緒的概念 (1)多執行緒是程序執行過程中產
201771010137 趙棟《面向物件程式設計(java)》第十六週學習總結
1、實驗目的與要求 (1) 掌握執行緒概念; (2) 掌握執行緒建立的兩種技術; (3) 理解和掌握執行緒的優先順序屬性及排程方法; (4) 掌握執行緒同步的概念及實現技術; 2、實驗內容和步驟 實驗1:測試程式並進行程式碼註釋。 測試程式1: l&nb
狄慧201771010104《面向物件程式設計(java)》第十六週學習總結
實驗十六 執行緒技術 實驗時間 2017-12-8 一、知識點總結: 1、程式與程序的概念 ‐程式是一段靜態的程式碼,它是應用程式執行的藍本。 ‐程序是程式的一次動態執行,它對應了從程式碼載入、執行至執行完畢的一個完整過程。 ‐作業系統為每個程序分配一段獨立的記憶體空間和系統資源,包括
達拉草201771010105《面向物件程式設計(java)》第十六週學習總結
達拉草201771010105《面向物件程式設計(java)》第十六週學習總結 第一部分:理論知識 1.程式與程序的概念: (1)程式是一段靜態的程式碼,它是應用程式執行的藍 本。 (2)程序是程式的一次動態執行,它對應了從程式碼加 載、執行至執行完畢的一個完整過程。 2.多執行緒的概念: (1)
201771010130 王志成《面向物件程式設計(java)》第十六週學習總結
1、實驗目的與要求 (1) 掌握執行緒概念; (2) 掌握執行緒建立的兩種技術; (3) 理解和掌握執行緒的優先順序屬性及排程方法; (4) 掌握執行緒同步的概念及實現技術; 2、實驗內容和步驟 實驗1:測試程式並進行程式碼註釋。 測試程式1: l&nb