第16周-任务1-涨工资了

2024-03-03 11:38
文章标签 16 任务 涨工资

本文主要是介绍第16周-任务1-涨工资了,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【题目】从文件salary.txt中读入500名工人的工资,全部增加100元后进行排序,将排序后的结果在屏幕上输出,并保存到文件ordered_salary.txt中。

  <下载相关文件>


【说明】这个题目只是练习ASCII文件的读写,顺便排个序什么的。总体的结构可以是:

  • 将文件中的数据读出来(到一个数组中);
  • 加工资;
  • 排序;
  • 将排序后数组中的值保存到文件中;

  仅此而已,有些同学忘了自己分析,简单的问题不知套哪里来的“例子”,用了好几个函数,传参数把自己传晕了,或者没有传参数错得莫名其妙。

  任何时候,都要先自己想一想。

  此为上计。


【参考程序】

#include <fstream>
#include<iostream>
using namespace std;
int main( )
{float a[500],t;int i,j;ifstream infile("salary.txt",ios::in);  //以输入的方式打开文件if(!infile)       //测试是否成功打开{cerr<<"open error!"<<endl;exit(1);}for(i=0;i<500;i++)infile>>a[i];   //从文件中读取数据infile.close();for(i=0;i<10;i++)a[i]+=100; //涨工资了for(j=0;j<500-2;j++)    //排序,用冒泡法,其他法类似{for(i=0;i<500-j-1;i++)   if (a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}}//输出结果ofstream outfile("ordered_salary.txt",ios::out);if(!outfile)    //测试文件打开操作是否成功,不成功则提示后退出。{cerr<<"open error!"<<endl;exit(1);}for(i=0;i<500;i++){outfile<<a[i]<<endl;if(i%5==0) cout<<endl;cout<<a[i]<<"\t";}outfile.close();     //关闭文件。用完了必须关闭,否则会丢失数据system("pause");return 0;
}


【又一个参考】

来自tao6655306的解答,我给的评论是:很好,面向对象的思维已经深入你心!面向过程中走出来的我却未这样想。老了,跟不上形势了。原文链接

#include<iostream>    
#include<fstream>   
using namespace std;    
class Salary  
{  
public:  void ordered_salary_add();  void ordered_salary();  void input_salary();void ordered_salary_txt();
private:         double salary[500];  int number;  
};
int main()  
{  Salary s1; //cout<<"500人的原始工资为:"<<endl;s1.input_salary();  //cout<<endl;  cout<<"排序后工资为:";  cout<<endl;  s1.ordered_salary();  cout<<endl;  s1.ordered_salary_txt();system("PAUSE");  return 0;  
}
void Salary::input_salary()  
{  int i=0;  ifstream infile("salary.txt",ios::in);if (!infile){cerr<<"open error!"<<endl;exit(1);}for (i=0;i<500;i++)infile>>salary[i];infile.close();//for(i=0;i<500;i++)//cout<<salary[i]<<"  ";//cout<<endl;number=500;  
}
void Salary::ordered_salary_add()  
{  int i;  for (i=0;i<number;i++)  {  salary[i]=salary[i]+100;  //cout<<salary[i]<<"  ";  }  return;  
}  
void Salary::ordered_salary()  
{  int i,j;  double t;  for(i=0;i<number-1;i++) {for(j=0;j<number-i-1;j++) {if(salary[j]>salary[j+1])  {  t=salary[j];  salary[j]=salary[j+1];  salary[j+1]=t;  }  }}for (i=0;i<number;i++)  {  cout<<salary[i]<<"  ";  }  return;  
}  void Salary::ordered_salary_txt()
{ofstream outfile("ordered_salary.txt",ios::out);if(!outfile){cerr<<"open error!"<<endl;exit(1);}for(int i=0;i<500;i++)outfile<<salary[i]<<"\n";outfile.close();return ;
}



这篇关于第16周-任务1-涨工资了的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/769501

相关文章

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 + 哈希表这里用哈希集合Set()实现。左指针i,右指针j,从头遍历数组,若j指针指向的元素不在set中,则加入该元素,否则更新结果res,删除集合中i指针指向的元素,进入下一轮循环。 /*** @param

FreeRTOS学习笔记(二)任务基础篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 任务的基本内容1.1 任务的基本特点1.2 任务的状态1.3 任务控制块——任务的“身份证” 二、 任务的实现2.1 定义任务函数2.2 创建任务2.3 启动任务调度器2.4 任务的运行与切换2.4.1 利用延时函数2.4.2 利用中断 2.5 任务的通信与同步2.6 任务的删除2.7 任务的通知2

Flink任务重启策略

概述 Flink支持不同的重启策略,以在故障发生时控制作业如何重启集群在启动时会伴随一个默认的重启策略,在没有定义具体重启策略时会使用该默认策略。如果在工作提交时指定了一个重启策略,该策略会覆盖集群的默认策略默认的重启策略可以通过 Flink 的配置文件 flink-conf.yaml 指定。配置参数 restart-strategy 定义了哪个策略被使用。常用的重启策略: 固定间隔 (Fixe

第49课 Scratch入门篇:骇客任务背景特效

骇客任务背景特效 故事背景:   骇客帝国特色背景在黑色中慢慢滚动着! 程序原理:  1 、 角色的设计技巧  2 、克隆体的应用及特效的使用 开始编程   1、使用 黑色的背景: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7d74c872f06b4d9fbc88aecee634b074.png#pic_center)   2

AsyncTask 异步任务解析

1:构建AsyncTask 子类的回调方法: A:doInBackground:   必须重写,所有的耗时操作都在这个里面进行; B: onPreExecute:     用户操作数据前的调用; 例如:显示一个进度条 等 ; C: onPostExecute:    当doInBackground 执行完成后;会自动把数据传给onPostExecute方法;也就是说:这个方法是处理返回的数据的方法