基于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文件读写
题目
随机推荐
- ThinkPHP 3.1.2 控制器的模块和操作
本节课大纲: 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name 不存在 <a href='__APP__/In ...
- 用200行Python代码“换脸”
介绍 本文将介绍如何编写一个只有200行的Python脚本,为两张肖像照上人物的“换脸”. 这个过程可分为四步: 检测面部标记. 旋转.缩放和转换第二张图像,使之与第一张图像相适应. 调整第二张图像的 ...
- 「数据结构」:模拟指针(simulated pointer)
模拟指针,也就是清华严老师<数据结构-C语言描述>中的静态链表,静态链表的引用是使用一段连续的存储区还模拟指针的功能,可以有效的利用一段连续内存进行一定范围内可变的子链表的空间分配,此数据 ...
- Vijos P1740聪明的质检员
题目 描述 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从1到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是:1.给定m个区间[Li,Ri]:2. ...
- QT中QWidget类简介
一.详细描述 QWidget类是所有用户界面对象的基类.通俗的来讲,Qt基本上所有的UI类都是由QWidget继承出来的,而QWidget继承于QObject, 大家可以查阅Qt source 即可 ...
- 【Hibernate】双向多对多Set查询
一个计划对于多个竞价,一个竞价对应多个计划. 1.实体 /** * @author Tidy * @Description 计划 */ public class EbgStockPlanContent ...
- iOS 日历控件
近期需要写一个交互有点DT的日历控件,具体交互细节这里略过不表. 不过再怎么复杂的控件,也是由基础的零配件组装起来的,这里最基本的就是日历控件. 先上图: 从图中可以看出日历控件就是由一个个小方块组成 ...
- ZSTU OJ 3999 零基础学算法---邻接表
题目:Click here 题意:我就喜欢中文题! 分析:这个题虽然是中文题,但是还是有一点费解的.其实就是给你一棵树,是用图的形式给你的,只知道a,b之间有一条边,并不知道谁是父,谁是子.思路就是先 ...
- 20150706 js之定时器
对应智能社:09 定时器的使用 开启定时器: setInterval(xxx(),1000);//间隔型 第一个参数为函数,第二个为时间,单位为毫秒 setTimeout(xxx(),1000);// ...
- python中enumerate 函数
enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')): print i,j 0 a 1 b ...