// 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" 是一篇关于英语四级单词学习的文章,旨在帮助备考四级考试的学习者每日积累词汇。【描述】强调这是每日必备的学习资料,整理了单词并附带音标和例句,方便记忆和理解。 在【标签】中...
沪江英语:纽约时报每日一篇.chm 沪江英语:纽约时报每日一篇.chm 沪江英语:纽约时报每日一篇.chm
基础提升考研真题阅读每日一篇(48)(2013.4.22).pdf
【博客:sivagao的博客,每天一篇好文章~】 在互联网的广阔天地中,博客作为一种个人知识分享和传播的平台,起着至关重要的作用。sivagao的博客正是这样一个专注于IT技术领域的知识宝库,每日更新一篇高质量文章,...
【Android开源App项目:每天一张精选倩图,一个精选小视频,一篇知乎美文】 这个开源App项目,名为"EnjoyLife-master",是专为Android平台设计的,它旨在为用户提供每日一赏的视觉和阅读体验。通过整合高质量的图片...
读过的书是不是有很多不记得了,但是它一直都是潜在的,它在我们的出言有尺上,嬉闹有度上,做事有余上,说话有德上;
听力部分继续坚持每天一篇VOA,跟写并校对。 最后的冲刺阶段(11月20日至12月20日),单词复习进入第三轮,持续巩固记忆,特别是真题中的生词,制作单词卡片,随时随地复习。听力训练转为四级真题,每日一篇,练习...
JavaScript中的`Boolean`对象是基于布尔值`true`和`false`的一种特殊类型,它允许我们将布尔...每天一篇的学习小结是非常好的习惯,它有助于巩固知识,加深理解,希望你继续保持这种学习热情,不断提高自己的技能水平。
小编两天都没有更新文章了,小伙伴们是不是等着急了,今天开始再继续我们的《每天一篇javascript学习小结》系列文章,希望大家继续关注。 1、Function 函数调用(类似call方法) function callSomeFunction(some...
每天一篇废话 使用@lwys-pkg-releaser/node-bullshit-generator生成,纯属娱乐。 人生哲理 2021-02-13 这种事实对本人而言意义重大,相信对这个世界也是有一定意义的。从这个角度来看,问题的关键究竟为何?这是发生...
2. **听力训练**:开始接触四级真题听力,每天一篇,跟写并记忆新词汇,训练自己一次性理解题目,复合式听写时注意抓取句子主干。 3. **阅读训练**:重温阅读理解,解决遗留问题。快速阅读时先看题目,定位后阅读...
教师独特的教学方式——每日一字、每日一句经典、每日一篇文章,让学生在实际操作中体验经典的魅力。每日一字帮助学生了解汉字的起源和文化内涵,提前为古文学习做准备;每日一句经典让儒家文化的精髓深入人心,提供...
标签"资料",这篇文章的标签是"资料",这说明这篇文章是一篇关于励志的资料,提供了很多励志的知识和方法。 部分内容: 这篇文章的部分内容包括了励志语句,每日一句励志语句,自信的重要性,战胜挫折的方法,实现...
这是一篇17年机器人基于模型的强化学习综述,作者对强化学习的各个部分发展,并在各种机器人的应用做了介绍,本文适合对于强化学习模型改进能有一些帮助。 摘要 强化学习是一种吸引机器人学习新任务的方法。相关文献...
每天一篇文章、一句话、一张图,满足你的阅读习惯,满足你的小清新与小文艺使用到的知识点都不难,也不是很多主要是巩固知识、理解项目结构这之类当然了,如果喜欢这个APP也可以安装在手机上,每天一阅读,满满文艺...
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。 语法 stringObject.match(searchvalue) ...
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;... /
1、正则表达式test方法 var text = "cat, bat, sat, fat"; var pattern = /.at/; if (pattern.test(text)){ alert("The pattern was matched.")...var pattern = new RegExp("\\[bc\\]at", "gi");...