第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

相关文章

【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方法;也就是说:这个方法是处理返回的数据的方法

16 子组件和父组件之间传值

划重点 子组件 / 父组件 定义组件中:props 的使用组件中:data 的使用(有 return 返回值) ; 区别:Vue中的data (没有返回值);组件方法中 emit 的使用:emit:英文原意是:触发、发射 的意思components :直接在Vue的方法中声明和绑定要使用的组件 小炒肉:温馨可口 <!DOCTYPE html><html lang="en"><head><

react笔记 8-16 JSX语法 定义数据 数据绑定

1、jsx语法 和vue一样  只能有一个根标签 一行代码写法 return <div>hello world</div> 多行代码返回必须加括号 return (<div><div>hello world</div><div>aaaaaaa</div></div>) 2、定义数据 数据绑定 constructor(){super()this.state={na

使用Node-API进行异步任务开发

一、Node-API异步任务机制概述         Node-API异步任务开发主要用于执行耗时操作的场景中使用,以避免阻塞主线程,确保应用程序的性能和响应效率。         1、应用场景: 文件操作:读取大型文件或执行复杂的文件操作时,可以使用异步工作项来避免阻塞主线程。网络请求:当需要进行网络请求并等待响应时,可以使用异步工作项来避免阻塞主线程,从而提高应用程序的响应性能。数据库操

探索Invoke:Python自动化任务的瑞士军刀

文章目录 探索Invoke:Python自动化任务的瑞士军刀背景:为何选择Invoke?`invoke`是什么?如何安装`invoke`?简单的`invoke`库函数使用方法场景应用:`invoke`在实际项目中的使用场景一:自动化测试场景二:代码格式化场景三:部署应用 常见问题与解决方案问题一:命令执行失败问题二:权限不足问题三:并发执行问题 总结 探索Invoke:P

RISC-V (十)任务同步和锁

并发与同步 并发:指多个控制流同时执行。         多处理器多任务。一般在多处理器架构下内存是共享的。           单处理器多任务,通过调度器,一会调度这个任务,一会调度下个任务。  共享一个处                                理器一个内存。                 单处理器任务+中断: 同步: 是为了保证在并发执行的环境中各个控制流可