基于visual Studio2013解决C语言竞赛题之0904文件排序
题目
aaarticlea/png;base64,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" alt="" />
解决代码及点评
/*
4. 将存放在worker1.rec中的职工数据按工资高低排序,
将排好序的各记录存放在 worker2.rec中(用 fread和fwrite函数)。
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct Staff_9_4
{
int num;
char name[30];
char sex[5];
int age;
float salary; } Employee;
/*
读取员工信息
*/
void readAllInfo94(Employee *tempEmp,int fileType)
{
Employee temp;
FILE *fp = NULL;
if (fileType == 1)
{
fopen_s(&fp, "worker1.rec","rb");
}
else if (fileType == 2)
{
fopen_s(&fp, "worker2.rec","rb");
} if (fp)
{
int i = 0;
fread(&temp,sizeof(temp),1,fp);
while(!feof(fp))
{
tempEmp[i] = temp;
printf("num = %d,name = %s,sex = %s,age = %d,salary = %f\n",
tempEmp[i].num,tempEmp[i].name,tempEmp[i].sex,tempEmp[i].age,tempEmp[i].salary);
fread(&temp,sizeof(temp),1,fp);
tempEmp[i] = temp;
i++;
}
fclose(fp);
}
else
{
printf("open file failed!");
}
}
/*
按照工资从高到低排序
*/
void sortAllEmp94(Employee *emp,int n)
{
Employee tempEmp;
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (emp[i].salary < emp[j].salary)
{
tempEmp = emp[i];
emp[i] = emp[j];
emp[j] = tempEmp;
}
}
}
} /*
保存员工信息
*/
void saveAllInfo94(Employee * emp,int n)
{
FILE *fp = NULL;
fopen_s(&fp, "worker2.rec","wb");
if (fp)
{
for (int i = 0; i < n; i++)
{
fwrite(&emp[i],sizeof(emp[i]),1,fp);
}
fclose(fp);
}
else
{
printf("open file failed!");
}
}
void main()
{
const int N = 10;
Employee emp[N];
//读取所有员工保存到emp
printf("排序前的数据:\n");
readAllInfo94(emp,1);//参数1表示打开worker1.rec文件
//给emp排序
sortAllEmp94(emp,N);
//保存排序后的员工信息
saveAllInfo94(emp,N);
printf("排序后的数据:\n");
//排序后员工的信息
readAllInfo94(emp,2);//参数2表示打开worker2.rec文件
system("pause");
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6694119
解压密码:c.itcast.cn
基于visual Studio2013解决C语言竞赛题之0904文件排序的更多相关文章
- 基于visual Studio2013解决C语言竞赛题之0906文件插入
题目
- 基于visual Studio2013解决C语言竞赛题之0515国名排序
题目
- 基于visual Studio2013解决C语言竞赛题之0506选择排序
题目
- 基于visual Studio2013解决C语言竞赛题之0611素数排序
题目
- 基于visual Studio2013解决C语言竞赛题之0908文件合并
题目
- 基于visual Studio2013解决C语言竞赛题之0905文件读写显示
题目
- 基于visual Studio2013解决C语言竞赛题之0903文件读写
题目
- 基于visual Studio2013解决C语言竞赛题之0902文件查找
题目
- 基于visual Studio2013解决C语言竞赛题之0901文件读写
题目
随机推荐
- VC++6.0打开文件出错的解决办法
1.下载http://support.microsoft.com/kb/241396里面的一个叫FileTool.exe的文件并解压,解压后是一个vc工程,用vc6.0打开工程,编译,得到FileTo ...
- Tableau 群集部署
由于公司连续两个月月底Tableau服务器过载崩溃,因此有了搭建Tableau服务器群集的想法.目前还在测试阶段,所以做一步写一步了. 目录: 一.安装和配置工作服务器 二.其他参考文档 一. 安装和 ...
- Two Sum-n方优化与C++map的使用
LeetCode第一题,刚拿到题目时虽然明知道n方的遍历算法会超时,但还是不信邪的提交了一次,然而编程不存在运气,TLE不可避免.但是之后的思维方式比较直接,我并没有立刻想到O(n)的方法,想了一种先 ...
- OpenSSL命令---rsa
用途: Rsa命令用于处理RSA密钥.格式转换和打印信息.其实其用法和dsa的差不多. 用法: openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET| ...
- [LeetCode]题解(python):024-Swap Nodes in Pairs
题目来源: https://leetcode.com/problems/swap-nodes-in-pairs/ 题意分析: 给定一个链表,每两个相邻节点就行交换.比如1->2->3-&g ...
- Kqueue与epoll机制
首先介绍阻塞与非阻塞:阻塞是个什么概念呢?比如某个时候你在等快递,但是你不知道快递什么时候过来,而且你没有别的事可以干(或者说接下来的事要等快递来了才能做):那么你可以去睡觉了,因为你知道快递把货送来 ...
- Eclipse中DTD验证导致无法进行代码提示的问题(转)
eclipse的xml插件进行dtd验证的时候由于找不到dtd或请求主机相应超时,会出现黄色的警告 The file cannot be validated as the host "www ...
- 图的BFS代码
图是严蔚敏书上P168的图, 图的邻接表存储,DFS可以看以前写的文章:http://www.cnblogs.com/youxin/archive/2012/07/28/2613362.html ]; ...
- poj 2833 The Average(堆)
题目链接:http://poj.org/problem?id=2833 思路分析:由于数据量较大,超出存储范围,使用不能使用数组存储数据在进行排序.考虑维护一个最大堆与最小堆,依次读取数据, 记录数据 ...
- stm32之Systick(系统时钟)
Systick的两大作用: 1.可以产生精确延时: 2.可以提供给操作系统一个单独的心跳(时钟)节拍: 通常实现Delay(N)函数的方法为: for(i=0;i<x;i++) ; 对于STM3 ...