`
ccjsjymg
  • 浏览: 61953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每日一篇

阅读更多

 

 // 001.cpp : 定义控制台应用程序的入口点。
//

/************************************************************************/
/* 将存放的worker.rec职工数据按照工资高低进行排序写到文件中      */
/************************************************************************/

 

#include "stdafx.h"

#define N 10

typedef struct workData{
 int num;
 char name[30];
 char sex[5];
 int age;
 float salary;

}Employee;

 

//read data
void readWordData(Employee* employee, int fileType)
{
 if ( !employee ) return;
 FILE *fp;
 Employee temp = {0};

 if ( 1 == fileType )
 {
  fopen_s(&fp, "workdata.rec", "rb");
 }
 else if( 2 == fileType )
 {
  fopen_s(&fp, "workdata2.rec", "rb");
 }
 
 
 if ( fp )
 {
  fread(&temp, sizeof(temp), 1, fp);
  while ( !feof(fp) )
  {
   *employee++ = temp;
   fread(&temp, sizeof(temp), 1, fp);
  }
 }

 

 fclose(fp);

}

void writeWordData(Employee* employee, int size)
{
 if ( !employee ) return;
 FILE *fp;
 fopen_s(&fp, "workdata2.rec", "wb");
 if ( fp )
 {
  fwrite(employee, size, 1, fp);
  fflush(fp);
  fclose(fp);
 }
}


//sort
void sortEmployeeBySalary(Employee* employee, int length)
{
 //45.25  20.25  23.21  1.56  56.98

 //56.98 45.25 20.25  23.21  1.56

#if 1 
 Employee temp = {0};
 for(int i = 0;i < length;++i)
 {
  for(int j = i+1; j < length;++j)
  {
   if ( employee[j].salary > employee[i].salary )
   {
    temp = employee[i];
    employee[i] = employee[j];
    employee[j] = temp;
   }
  }
 }
#endif
#if 0
 Employee temp = {0};
 bool bChange = false;
 
 for(int i = length -1;i >= 0;--i)
 {
  for(int j = 0;j < i;++j)
  {
   if ( employee[j].salary < employee[j+1].salary )
   {
    temp = employee[j];
    employee[j] = employee[j+1];
    employee[j+1] = temp;
    bChange = true;
   }
   
  }

  if ( !bChange )
  {
   
   break;
  }
   
 }
#endif
}

void display(Employee* employee, int length, int printfType)
{
 if ( !employee ) return;

 if ( 1 == printfType )
 {
  printf("未按高工资排序:\n");
 }
 else if( 2 == printfType )
 {
  printf("按高工资排序后:\n");
 }
 
 for(int i = 0;i < length; ++i)
 {
  printf("%d  %s  %s  %d  %f\n", employee[i].num,  employee[i].name, employee[i].sex, employee[i].age, employee[i].salary);
 }

 printf("\r\n");
}

int _tmain(int argc, _TCHAR* argv[])
{
 Employee employee[N] = {0};
 readWordData(employee, 1);
 
 display(employee, N, 1);
 

 sortEmployeeBySalary(employee, sizeof(employee)/sizeof(Employee));
 
 writeWordData(employee, sizeof(employee)/sizeof(Employee));
 
 readWordData(employee, 2);

 display(employee, N, 2);

 return 0;
}

 

#if 0
void initData()
{
 Employee employee[] =
 {
  { 1,"a1", "男", 23, 5678.67},
  { 2,"a2", "男", 24, 1678.67},
  { 3,"a6", "男", 23, 3678.67},
  { 4,"a1", "女", 26, 8678.67},
  { 5,"b1", "男", 23, 9678.67},
  { 6,"c1", "男", 29, 2678.67},
  { 7,"d1", "女", 35, 12678.67},
  { 8,"d1", "男", 23, 2678.67}

 };

 FILE* fp;
 fopen_s(&fp, "workdata.rec", "wb");

 if ( fp )
 {
  fwrite(employee,sizeof(employee), 1, fp);
  printf("success!");
  fclose(fp);
 }

}
#endif


 

分享到:
评论

相关推荐

    四级单词 每日一篇 1

    【标题】"四级单词 每日一篇 1" 是一篇关于英语四级单词学习的文章,旨在帮助备考四级考试的学习者每日积累词汇。【描述】强调这是每日必备的学习资料,整理了单词并附带音标和例句,方便记忆和理解。 在【标签】中...

    沪江英语:纽约时报每日一篇.chm

    沪江英语:纽约时报每日一篇.chm 沪江英语:纽约时报每日一篇.chm 沪江英语:纽约时报每日一篇.chm

    基础提升考研真题阅读每日一篇(48)(2013.4.22).pdf

    基础提升考研真题阅读每日一篇(48)(2013.4.22).pdf

    博客:sivagao的博客,每天一篇好文章〜

    【博客:sivagao的博客,每天一篇好文章~】 在互联网的广阔天地中,博客作为一种个人知识分享和传播的平台,起着至关重要的作用。sivagao的博客正是这样一个专注于IT技术领域的知识宝库,每日更新一篇高质量文章,...

    Android-开源App项目每天一张精选倩图一个精选小视频一篇知乎美文

    【Android开源App项目:每天一张精选倩图,一个精选小视频,一篇知乎美文】 这个开源App项目,名为"EnjoyLife-master",是专为Android平台设计的,它旨在为用户提供每日一赏的视觉和阅读体验。通过整合高质量的图片...

    每天一篇文章:强大的内心催生信念

    读过的书是不是有很多不记得了,但是它一直都是潜在的,它在我们的出言有尺上,嬉闹有度上,做事有余上,说话有德上;

    大学英语四级复习计划安排 (1).docx

    听力部分继续坚持每天一篇VOA,跟写并校对。 最后的冲刺阶段(11月20日至12月20日),单词复习进入第三轮,持续巩固记忆,特别是真题中的生词,制作单词卡片,随时随地复习。听力训练转为四级真题,每日一篇,练习...

    每天一篇javascript学习小结(Boolean对象)

    JavaScript中的`Boolean`对象是基于布尔值`true`和`false`的一种特殊类型,它允许我们将布尔...每天一篇的学习小结是非常好的习惯,它有助于巩固知识,加深理解,希望你继续保持这种学习热情,不断提高自己的技能水平。

    每天一篇javascript学习小结(Function对象)

    小编两天都没有更新文章了,小伙伴们是不是等着急了,今天开始再继续我们的《每天一篇javascript学习小结》系列文章,希望大家继续关注。 1、Function 函数调用(类似call方法) function callSomeFunction(some...

    废话-每天:每天生成一篇废话

    每天一篇废话 使用@lwys-pkg-releaser/node-bullshit-generator生成,纯属娱乐。 人生哲理 2021-02-13 这种事实对本人而言意义重大,相信对这个世界也是有一定意义的。从这个角度来看,问题的关键究竟为何?这是发生...

    大学英语四级复习计划安排.docx

    2. **听力训练**:开始接触四级真题听力,每天一篇,跟写并记忆新词汇,训练自己一次性理解题目,复合式听写时注意抓取句子主干。 3. **阅读训练**:重温阅读理解,解决遗留问题。快速阅读时先看题目,定位后阅读...

    演讲稿与经典同行.docx

    教师独特的教学方式——每日一字、每日一句经典、每日一篇文章,让学生在实际操作中体验经典的魅力。每日一字帮助学生了解汉字的起源和文化内涵,提前为古文学习做准备;每日一句经典让儒家文化的精髓深入人心,提供...

    励志赠言-每日一句,让你每天充满能量精选.doc

    标签"资料",这篇文章的标签是"资料",这说明这篇文章是一篇关于励志的资料,提供了很多励志的知识和方法。 部分内容: 这篇文章的部分内容包括了励志语句,每日一句励志语句,自信的重要性,战胜挫折的方法,实现...

    每天一篇论文 330/365 Survey of Model-Based Reinforcement Learning:Applications on Robotics(补1)

    这是一篇17年机器人基于模型的强化学习综述,作者对强化学习的各个部分发展,并在各种机器人的应用做了介绍,本文适合对于强化学习模型改进能有一些帮助。 摘要 强化学习是一种吸引机器人学习新任务的方法。相关文献...

    ReadingHabit-简单练手APP《每阅》.zip

    每天一篇文章、一句话、一张图,满足你的阅读习惯,满足你的小清新与小文艺使用到的知识点都不难,也不是很多主要是巩固知识、理解项目结构这之类当然了,如果喜欢这个APP也可以安装在手机上,每天一阅读,满满文艺...

    每天一篇javascript学习小结(String对象)

    match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。 语法 stringObject.match(searchvalue) ...

    每天一篇javascript学习小结(基础知识)

    1、字符转换 var s1 = 01; var s2 = 1.1; var s3 = z;//字母'z'无法转换为数字,所以或返回NaN var b = false; var f = 1.1; var o = { valueOf: function() { return -1; } }; s1 = -s1;... /

    每天一篇javascript学习小结(RegExp对象)

    1、正则表达式test方法 var text = "cat, bat, sat, fat"; var pattern = /.at/; if (pattern.test(text)){ alert&#40;"The pattern was matched."&#41;...var pattern = new RegExp("\\[bc\\]at", "gi");...

Global site tag (gtag.js) - Google Analytics