资源简介
把数据存在本地文件中,并通过指针实现增删改查(网上查的删除,修改原文件内容比较麻烦,我试图通过指针实现)
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#define MAX 4
#define _CRT_SECURE_NO_WARNINGS
#define LEN sizeof(struct staff)
void Initial(); void Query(); void Find_By_Name(); void Find_By_Id(); void Find_By_Telephone();
void Insert(); void Delete(); void Change(); void print(struct staff *); void printchoice();
int identify();
struct staff {
char id[10]name[10]sex[10]age[10]telephone[15]grade[10];
struct staff *next;
};
struct staff *head*tail; //tail存放尾节点
int All_Flag=1Query_Flag=1Insert_Flag=1Change_Flag=1Delete_Flag=1;
int Find_By_Id_Flag=1Find_By_Telephone_Flag=1Find_By_Name_Flag=1Identify_Flag=0;
void main(){
char ch;
Initial();
print(head);
printf(“do you only want to query\n“);
ch=getche();
if(ch==‘n‘||ch==‘N‘) Identify_Flag=identify();
while(All_Flag){
char ch;
printchoice();
printf(“input your choice\n“);
ch=getche();
switch(ch){
case ‘0‘:
printf(“\n“);
Query(); break;
case ‘1‘:
printf(“\n“);
if(Identify_Flag==1){
Insert();break;
}
else{
printf(“no admission\n“); break;
}
case ‘2‘:
printf(“\n“);
if(Identify_Flag==1){
Change();break;
}
else {
printf(“no admission\n“); break;
}
case ‘3‘:
printf(“\n“);
if(Identify_Flag==1){
Delete();break;
}
else {
printf(“no admission\n“); break;
}
case ‘4‘:All_Flag=0;break;
default:printf(“No such choiceinput again“); break;
}
}
}
//初始化数据从文件中读取数据正向建立链表并把头指针存进head中尾节点存入tail节点中
void Initial(){
FILE *fp;
struct staff *p1;
fp=fopen(“stu.txt““r“);
if(fp==NULL){
printf(“read error“); exit(0); //正常退出若为非零值则为非正常退出
}
p1=(struct staff *)malloc(LEN); //p1为增加的节点
head=p1;
while(!feof(fp)){
fscanf(fp“%s\t%s\t%s\t%s\t%s\t%s\n“
p1->idp1->namep1->sexp1->agep1->telephonep1->grade); //中间以空格隔开\t
tail=p1;
p1=(struct staff *)malloc(LEN);
tail->next=p1;
}
tail->next=NULL;
free(p1);
p1=NULL;
fclose(fp);
}
void print(struct staff *head){
struct staff *p=head;
while(p!=NULL){
printf(“%s %s %s %s %s %s\n“p->idp->namep->sexp->agep->telephonep->grade);
p=p->next;
}
}
void Query(){
printf(“-------0:By Name-------\n--------1:By Id-----\n-------2:By Telephone-------\n----------3:Exit-------\n“);
Query_Flag=1;
while(Query_Flag){
char ch=getche();
switch(ch){
case ‘0‘:
printf(“\n“);
Find_By_Name();
printf(“-------0:By Name-------\n--------1:By Id-----\n-------2:By Telephone-------\n----------3:Exit-------\n“);
break;
case ‘1‘:
printf(“\n“);
Find_By_Id();
printf(“-------0:By Name-------\n--------1:By Id-----\n-------2:By Telephone-------\n----------3:Exit-------\n“);
break;
case ‘2‘:
printf(“\n“);
Find_By_Telephone();
printf(“-------0:By Name------- 上一篇:用C语言实现任意矩阵的相乘
- 下一篇:基于c++的简单文件传输
相关资源
- VC读取shapefile文件源码,处理点线面
- VC++6.0对txt文件的增删改查操作
- mfc实现学生信息管理系统
- 记账本小程序
- 单链表c语言实现增删改查操作
- c++与Qt使用数据库MySQL进行数据的增删
- C+和SQL增删改查
- 基于MFC 对话框 的数据库 正删改查简
- 课程信息VC操作Access数据库(实现增删
- 超市收银系统 C语言编写
- C++、MFC连接MYSQL实现增删改查
- 用C语言实现简单的数据库增删改查功
- Mysql数据库语句、增删该查总结及MF
- 基于OC语言的学生管理系统实现了增删
- C语言,设备管理系统,用win32写的界
- Makefile文件教程.pdf
- c语言实现 名片管理系统(实现增删改
- C语言实现图书馆管理系统
- C语言程序,学生管理系统,增删改查
- vc++6.0图书管理系统
- c语言商品信息管理
- MFC的员工管理系统实现增删改查
川公网安备 51152502000135号
评论
共有 条评论