文件流-ASCII文件(中北大學-程序設計基礎(2))

目錄

題目

源碼

結果示例


題目

編寫程序實現以下功能:【要求處理ASCII文件】

(1)按職工號由小到大的順序將5個員工的數據(包括號碼、姓名、年齡和工資)輸出到磁盤文件中保存;

(2)從鍵盤輸入兩個員工的數據(職工號大于已有的職工號),增加到文件末尾;

(3)輸出文件中全部職工的數據;

(4)從鍵盤輸入一個號碼,從文件中查找有無此職工號,如有則顯示此職工是第幾個職工以及此職工的全部數據。如沒有,輸出“無此人”。可以反復多次查詢,如果輸入查找的職工號為0,就結束查詢。

源碼

#include <iostream>
#include <fstream>
#include <string>using namespace std;class Employee
{
public:int id;string name;int age;double salary;Employee() {}Employee(int i, string n, int a, double s) : id(i), name(n), age(a), salary(s) {}void output(ofstream &file){file << "號碼: " << id << ", 姓名: " << name << ", 年齡: " << age << ", 工資: " << salary << endl;}
};int main()
{ofstream file("employee_data.txt", ios::app);// (1) 輸出5個員工的數據到文件Employee employees[7] = {{101, "qqq", 25, 5000},{102, "www", 30, 6000},{103, "eee", 28, 5500},{104, "rrr", 35, 7000},{105, "ttt", 27, 5200}};for (int i = 0; i < 5; i++){employees[i].output(file);}// (2) 從鍵盤輸入兩個員工的數據,增加到文件末尾for (int i = 5; i < 7; i++){cout << "請輸入員工號碼: ";cin >> employees[i].id;cout << "請輸入員工姓名: ";cin >> employees[i].name;cout << "請輸入員工年齡: ";cin >> employees[i].age;cout << "請輸入員工工資: ";cin >> employees[i].salary;employees[i].output(file);}file.close();// (3) 輸出文件中全部職工的數據ifstream inFile("employee_data.txt");string line;while (getline(inFile, line)){cout << line << endl;}inFile.close();// (4) 從文件中查找職工號int searchId;while (true){cout << "輸入員工號碼查找員工 (輸入0以結束): ";cin >> searchId;if (searchId == 0){break;}ifstream inFile("employee_data.txt");bool found = false;int count = 0;while (getline(inFile, line)){count++;if (line.find("號碼: " + to_string(searchId)) != string::npos){found = true;cout << "此職工是第" << count << "個員工: " << line << endl;break;}}inFile.close();if (!found){cout << "未找到職工" << endl;}}return 0;
}

結果示例

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11530.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11530.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11530.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自動駕駛決策規劃——坐標轉換

以下內容來自b站up主忠厚老實的老王&#xff0c;視頻鏈接&#xff1a;自動駕駛決策規劃算法序章 總綱與大致目錄_嗶哩嗶哩_bilibilihttps://www.bilibili.com/video/BV1hP4y1p7es/?spm_id_from333.999.0.0&vd_sourced36e625f376908cfa88ef5ecf2fb0ed8侵刪。 決策規劃算法…

自動故障轉移

這里詢問&#xff0c;你的插槽是從哪里移動過來的&#xff1f; all&#xff1a;代表全部&#xff0c;也就是三個節點各轉移一部分具體的id&#xff1a;目標節點的iddone&#xff1a;沒有了 這里我們要從7001獲取&#xff0c;因此填寫7001的id&#xff1a; 填完后&#xff0c;…

02-登錄頁面、動態路由、權限等模塊開發

權限模塊開發流程 前端login頁面開發后端SpringSecurity配置后端login接口開發前端頁面框架搭建前端路由守衛&#xff0c;狀態管理開發前后端完成認證流程 開發Login頁面 創建Login頁面創建router&#xff0c;可以跳轉到Login頁面 Login頁面 使用element-plus開發 認證功…

力扣75. 顏色分類

Problem: 75. 顏色分類 文章目錄 題目描述思路及解法復雜度Code 題目描述 思路及解法 由于題目只提供0&#xff0c;1&#xff0c;2分別代表顏色紅、白、藍&#xff0c;并按此排序&#xff0c;那么我們可以遍歷兩次數組&#xff0c;第一次將0&#xff0c;全部放到數組前面一部分…

移動 App 入侵與逆向破解技術-iOS 篇

如果您有耐心看完這篇文章&#xff0c;您將懂得如何著手進行app的分析、追蹤、注入等實用的破解技術&#xff0c;另外&#xff0c;通過“入侵”&#xff0c;將幫助您理解如何規避常見的安全漏洞&#xff0c;文章大綱&#xff1a; 簡單介紹ios二進制文件結構與入侵的原理介紹入…

軟考考試需要達到多少分才能及格?

當然是45分&#xff01;45分&#xff01;45分&#xff01;而且是各科45&#xff01; 初級和中級考兩科 綜合知識考試時長為150分鐘&#xff0c;筆試&#xff0c;選擇題&#xff08;上午9:00-11:30&#xff09; 案例分析考試時長為90分鐘&#xff0c;筆試&#xff0c;問答題&…

計算機畢業設計 | vue+springboot圖書借閱 書籍管理系統(附源碼)

1. 開發目的 實現圖書的智能化、信息化和簡單化&#xff1b;實現圖書信息的增加、刪除、修改、查找、借閱、還書、收藏的顯示操作及實時數據庫的提交和更改和對普通用戶的增、刪、改、查&#xff1b;提高圖書管理員工作信息報送及反饋的工作效率&#xff0c;減輕管理員的勞動負…

Unity組件入門篇目錄

Audio AudioChorusFilter......................................點擊導航AudioDistortionFilter..................................點擊導航AudioEchoFilter.........................................點擊導航AudioHighPassFilter..................................點擊導…

設計模式Java實現-迭代器模式

?這里是第七人格的博客?小七&#xff0c;歡迎您的到來~? &#x1f345;系列專欄&#xff1a;設計模式&#x1f345; ??本篇內容: 迭代器模式?? &#x1f371; 本篇收錄完整代碼地址&#xff1a;https://gitee.com/diqirenge/design-pattern &#x1f371; 楔子 很久…

Java Spring 中使用緩存來提高性能

在Spring框架中&#xff0c;緩存是一種用于提高應用程序性能的重要機制。通過緩存&#xff0c;可以減少對數據庫或其他外部資源的訪問次數&#xff0c;從而加快應用程序的響應速度。以下是如何在Spring中使用緩存來提高性能的詳細過程&#xff1a; 1. 引入緩存依賴 首先&…

蒼穹外賣Day06筆記(復習了jwt的加密解密和傳遞)

瘋玩了一個月&#xff0c;效率好低&#xff0c;今天開始撿起來蒼穹外賣~ 1. 為什么不需要單獨引入HttpClient的dependency&#xff1f; 因為我們在sky-common的pom.xml中已經引入了aliyun-sdk-oss的依賴&#xff0c;而這個依賴低層就引入了httpclinet的依賴&#xff0c;根據依…

C語言從頭學05——頭文件及庫文件

我們寫"Hello World!"程序時&#xff0c;一上來先寫了一句代碼&#xff1a; #include <stdio.h> 我們看上面這條代碼&#xff0c;前面有個"#"號后邊沒有";"號&#xff0c;這樣的代碼不是普通的C語言代碼&#xff0c;它屬于預處理命令。這…

代碼隨想錄算法訓練營第六天| 242. 有效的字母異位詞、349. 兩個數組的交集、202. 快樂數、1. 兩數之和

哈希表理論基礎 [LeetCode] 242. 有效的字母異位詞 [LeetCode] 242. 有效的字母異位詞 文章解釋 [LeetCode] 242. 有效的字母異位詞 視頻解釋 題目: 給定兩個字符串 s 和 t &#xff0c;編寫一個函數來判斷 t 是否是 s 的字母異位詞。 注意&#xff1a;若 s 和 t 中每個字符出…

JavaEE技術之SpringCloud(Nacos注冊中心、Nacos配置中心、Sentinel實現熔斷與限流)

文章目錄 SpringCloud Alibaba1、簡介1.1 背景1.2 Nacos主要功能1.3 Nacos和SpringBoot、SpringCloud版本選擇 2、Nacos注冊中心2.1 案例準備2.2 Nacos注冊中心下載啟動2.2.1 下載2.2.2 解壓啟動2.2.3 nacos-server訪問測試 2.3 nacos注冊中心客戶端整合2.3.1 訂單服務整合naco…

YTU 3166 共享單車 DFS 記憶化搜索

問題 D: 共享單車 題目描述 共享單車走進煙臺&#xff0c;小明決定嘗試。小明啟動共享單車 App&#xff0c;輕松地找到附近的單車。那么問題來了&#xff0c;到最近的那輛單車&#xff0c;小明大約要走多少米呢&#xff1f; 現在簡化問題。將地圖設定成一個由 100100 米的像…

【UE】仿原神實現無限道路延伸的開場效果

目錄 效果 步驟 一、無限生成磚塊 二、制作門 三、停止移動并生成門 四、進入門 效果 步驟 一、無限生成磚塊 1. 新建一個Basic關卡&#xff0c;再新建一個Pawn類&#xff0c;這里命名為“BP_MyPawn” 打開“BP_MyPawn”&#xff0c;添加一個膠囊體碰撞組件和一個攝像…

工器具管理(基于若依)

文章目錄 前言一、工器具管理項目總覽 二、入庫功能1. 前端1.1 界面展示1.2 具體操作實現1.3 js文件 2. 后端2.1 工器具信息回顯2.2 工器具入庫 三、領用功能1. 前端1.1 界面展示1.2 具體實現操作1.3 js文件 2. 后端2.1 工器具信息回顯2.2 工器具領用 遇到的問題1. 同一頁面展示…

pat乙1033-舊鍵盤打字

1測試點2&#xff1a; 輸入的字符串如果為空&#xff0c;要用getline(cin,s)&#xff0c;而不是cin>>s&#xff0c;否則程序做不了 2題目說的如果上鍵壞了那大寫字母打印不了&#xff0c;不是大寫轉小寫打印啦&#xff0c;認真讀題 3兩個for循環長這樣&#xff0c;break…

基于springboot+vue的自習室管理和預約系統(全套)

一、系統架構 前端&#xff1a;vue | element-ui | html 后端&#xff1a;springboot | mybatis-plus 環境&#xff1a;jdk1.8 | mysql | maven | nodejs 二、代碼及數據庫 三、功能介紹 01. web端-首頁1 02. web端-首頁2 03. web端-注冊 04. web端-登錄 05. w…

牛客Linux高并發服務器開發學習第六天

目錄相關函數 學習進度&#xff1a; Linux系統編程入門 06&#xff1a;59&#xff1a;42