第十六週任務一(對檔案的操作練習之漲工資)
阿新 • • 發佈:2019-02-15
題目
從檔案salary.txt 中讀入500 名工人的工資,全部增加100 元后進行排序,將排序後的結果在螢幕上
輸出,並儲存到檔案ordered_salary.txt 中。
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: salary.cpp * 作 者: 計114-4 馮珍珍 * 完成日期: 2012 年 6 月 5 日 * 版 本 號: * 程式頭部的註釋結束 */ #include <fstream> #include<iostream> #include<iomanip> using namespace std; void show_salary(double salary[], int num);//輸出工資; void cin_salary(double salary[], int num);//從檔案得到工資; void cout_salary(double salary[], int num);//儲存工資; void bubble_sort(double arr[], int num);//排序; void add_salary(double salary[], int num, double money);//加工資; int main( ) { double sal[500]; int num=500; cin_salary(sal, num);//從檔案讀入工資; cout << "加工資排序前員工工資:" << endl; show_salary(sal, num);//輸出工人工資; add_salary(sal, 500, 100);//加工資; bubble_sort(sal, num);//排序; cout << "加工資排序後員工工資:" << endl; show_salary(sal, num);//輸出工資; cout_salary(sal, num);//儲存到檔案; system("pause"); return 0; } //定義void show_salary(salary[])函式; void show_salary(double salary[], int num) { int i; for(i=0; i<num; i++) { cout << salary[i] << setw(5); if(i % 20 == 0) cout<< endl; } cout << endl; } //定義從檔案輸入函式; void cin_salary(double salary[], int num) { int i; ifstream infile("E:\free time\salary.txt", ios::in); if(!infile) { cerr << "salary.txt open error!" << endl; exit(1); } for(i=0; i<num; i++) { infile >> salary[i];//讀入工資; } infile.close(); } //定義輸出函式; void cout_salary(double salary[], int num) { int i; ofstream outfile("E:\free time\ordered_salary.txt"); if(!outfile) { cerr << "ordered_salary.txt open error!" << endl; exit(1); } for(i=0; i<500; i++) { outfile << salary[i] << "\t";//輸出工資; } outfile.close(); } //定義排序函式; void bubble_sort(double arr[], int num) { int i, j; double d; for(i=0; i<num-1; i++) for(j=0; j<num-i-1; j++) if(arr[j] > arr[j+1]) { d = arr[j]; arr[j] = arr[j+1]; arr[j+1] = d; } } //定義加工資函式; void add_salary(double salary[], int num, double money) { int i; for(i=0; i<num; i++) { salary[i] = salary[i] + money; } }
小結:開始沒把檔案放在一個資料夾裡,導致連線錯誤,耗費了不少時間,實在可惜啊,要儲存都到的另一個檔案是自動生成的,並不需要再見一個空檔案,走彎路啦這次,長記性啦