c语言文件信息更新操作,利用c语言借助文件操作实现人员信息的插入与删.doc

利用c语言借助文件操作实现人员信息的插入与删

利用c语言借助文件操作实现人员信息的插入和删

/*在3.0的版本中新增的功能有人员信息的任意位置的插入*/

/*以下是程序界面*/

/*主菜单*/

/*选择插入操作*/

/*选择指定位置插入方式 并输入新数据*/

/*插入如后结果如下*/

#include #include #include#include#include

//declare all the function that will be defined latervoid save(char *name, int n);int readout(char *name, char *type);void insert(char *name);void deletedata(char *name);void rankout(char *name);void deletefile(char *name);void fileinitialize(char *name);void update(char *name);void cleanscreen();void makechoice(char *name);int main();

struct student_info {//声明定义结构体     char name[10];    int num;    int Chinese;    int math;    int english;    int sum;} info[100], insertinfo[100];

char filename[50] = "D:\programdata.txt";char type[10];char *p;

void save(char *name, int n) {    /*定义写入文件的方法来将内存中的数据写入到指定的文件中*/    FILE *fp;    int i;    if ((fp = fopen(name, "w")) == NULL) {        printf("文件打开错误\n");        printf("检查并确保这台机器上有默认路径所指向的盘符(D)并重试\n");        exit(0);    }    for (i = 0; i < n; i++) {        if (fwrite(&info[i], sizeof (struct student_info), 1, fp) != 1)            printf("文件写入错误");    }    fclose(fp);}

int readout(char *name, char *type) {    /*定义从文件中读取数据的函数,此函数将指定文件中的数据读取到内存中    已准备接下来的操作*/    int i;    FILE *fp;    if ((fp = fopen(name, type)) == NULL) {        printf("文件打开错误\n");        system("pause");        makechoice(filename);    }    printf("\n=========================================\n");    printf("姓名\t编号\t语文\t数学\t英语 *\n");    for (i = 0; fread(&info[i], sizeof (struct student_info), 1, fp) != 0; i++) {        printf("%s\t%d\t%d\t%d\t%d\t*\n", info[i].name, info[i].num,                info[i].Chinese, info[i].math, info[i].english);    }    printf("=========================================\n");    printf("共有 %d 条记录\n\n", i);    fclose(fp);    return i;}

void insert(char *name) {    /*定义插入数据到文件中的方法        此方法的思想是先将文件中的数据读取到内存中在        内存中的进行一系列的数据操作之后在将操作处理后的新数据        利用存数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值