第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

相关文章

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

Django之定时任务django-crontab的实现

《Django之定时任务django-crontab的实现》Django可以使用第三方库如django-crontab来实现定时任务的调度,本文主要介绍了Django之定时任务django-cront... 目录crontab安装django-crontab注册应用定时时间格式定时时间示例设置定时任务@符号

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删