利用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) { /*定义插入数据到文件中的方法 此方法的思想是先将文件中的数据读取到内存中在 内存中的进行一系列的数据操作之后在将操作处理后的新数据 利用存数据