基于visual Studio2013解决C语言竞赛题之0907删除记录

时间:2023-12-25 15:00:25



基于visual Studio2013解决C语言竞赛题之0907删除记录

题目

aaarticlea/png;base64,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" alt="" />

解决代码及点评


/*
7. 删除worker2.rec中某个序号的职工记录,
再存入原文件中(用fread和fwrite函数)
*/
#include <stdio.h>
#include <stdlib.h> typedef struct Staff_9_7
{
int num;
char name[30];
char sex[5];
int age;
float salary; } Employee;
/*
读取员工信息
*/
void readStaInfo_7(Employee *tempEmp)
{
Employee temp;
FILE *fp = NULL;
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 saveEmpInfo97(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 = 11;
int num;
int index = 0;
Employee emp[N];
Employee newEmp[N - 1];
readStaInfo_7(emp);
printf("请输入要删除员工的编号:\n");
scanf_s("%d",&num);
for (int i = 0; i < N; i++)
{ if (num == emp[i].num)
{
continue;
}
else
{
newEmp[index++] = emp[i];
}
}
saveEmpInfo97(newEmp,N - 1);
readStaInfo_7(newEmp);
system("pause");
}

代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

基于visual Studio2013解决C语言竞赛题之0907删除记录

2)选择工程

基于visual Studio2013解决C语言竞赛题之0907删除记录

3)创建完工程如下图:

基于visual Studio2013解决C语言竞赛题之0907删除记录

4)增加文件,右键点击项目

基于visual Studio2013解决C语言竞赛题之0907删除记录

5)在弹出菜单里做以下选择

基于visual Studio2013解决C语言竞赛题之0907删除记录

6)添加文件

基于visual Studio2013解决C语言竞赛题之0907删除记录

7)拷贝代码与运行

基于visual Studio2013解决C语言竞赛题之0907删除记录

程序运行结果

代码下载

http://download.csdn.net/detail/yincheng01/6694119

解压密码:c.itcast.cn