第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

相关文章

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

Spring Boot 集成 Quartz 使用Cron 表达式实现定时任务

《SpringBoot集成Quartz使用Cron表达式实现定时任务》本文介绍了如何在SpringBoot项目中集成Quartz并使用Cron表达式进行任务调度,通过添加Quartz依赖、创... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

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依赖三、代码实现四、代码详解五