源代码:#includestdio.h/*头文件*/#includestring.h/*字符串函数*/#includestdlib.h/*其它说明*/#includemalloc.h/*动态地址分配函数*/typedefstructstu/*定义结构体数组*/{intnum;/*房屋的编号*/charmaster[100];/*房屋的户主名*/charreceiver[100];/*房屋租赁人*/intarea;/*房屋的面积*/charlocal[100];/*房屋出租的地点*/intmoney;/*房屋的出租金额*/structstu*next;/*定义指针*/}house;/*自定义的房屋*//*=====================================输出信息=========================================*/voidprintList(house*Head)/*在屏幕上显示所有信息*/{house*p;/*定义p指针*/p=Head;/*将p指针指向头指针*/if(p!=NULL)/*判断p是否为空*/do/*进行输出循环*/{printf(%d%s%s%s%d%d\n,p-num,p-master,p-local,p-receiver,p-area,p-mony;/*输出信息*/p=p-next;/*节点后移*/}while(p);/*循环*/}/*=====================================插入信息=========================================*/voidinsert(house*Head)/*插入信息*/{structstu*p,*s;/*定义新的指针s*/p=Head;/*将p指向头链表*/s=(house*)malloc(sizeof(structstu));/*申请s的内存空间*/scanf(%d%s%s%s%d%d,&s-num,s-master,s-local,s-receiver,&s-area,&s-money);/*输入新的节点信息*/s-next=p-next;/*将s的节点指向p节点的下一个节点*/p-next=s;/*将新建的节点添加到p节点的后面*/printf(添加成功!\n);printf(编号户主地点租赁人面积租金\n);while(p!=NULL)/*当链表不为空*/{printf(%d%4s%4s%4s%7d%7d\n,p-num,p-master,p-local,p-receiver,p-area,p-money);/*输出信息*/p=p-next;/*指针后移*/}}/*=====================================查找信息=========================================*/voidfind(house*Head)/*查找信息*/{intnum;/*输入的编号*/house*p;p=Head;/*头指针为p*/printf(请输入要查询的房屋编号\n);scanf(%d,&num);while(p-num!=num)/*如果没有找到信息*/{p=p-next;/*指针后移继续查找*/}printf(编号户主地点租赁人面积租金\n);printf(%d%4s%4s%4s%4d%4d\n,p-num,p-master,p-local,p-receiver,p-area,p-money);/*输出查找的信息*/}/*=====================================修改信息=========================================*/voidchange(house*Head)/*修改信息*/{house*p;intnum;p=Head;/*p指向头指针*/printf(请你输入要修改的房屋编号信息\n:);scanf(%d,&num);/*编号的地址*/if(Head==NULL)/*判断头链表是否是空的*/{printf(\nError!\n);/*若为空则输出错误*/exit(0);/*退出*/}else/*否则*/{if(p-num=num)/*若指针下移找到信息*/printf(请你输入编号:\n);scanf(%d,&p-num);getchar();printf(请你输入新户主:\n);scanf(%s,p-master);getchar();printf(请你输入新的地点:\n);scanf(%s,&p-local);getchar();printf(请你输入新的租赁人:\n);scanf(%s,&p-receiver);getchar();printf(请你输入新的面积:\n);scanf(%d,&p-area);printf(请你输入新的租金:\n);scanf(%d,&p-money);printf(\n提示:修改成功!\n);/*输入修改的信息*/printf(编号户主地点租赁人面积租金\n);while(p!=NULL)/*如果p指针为空*/{printf(%d%4s%4s%4s%7d%7d\n,p-num,p-master,p-local,p-receiver,p-area,p-money);/*输出的修改信息*/p=p-next;/*指针下移*/}}/*====================================保存信息=========================================*/}voidinput(house*Head)/*在文件中输入*/{FILE*fp=NULL;structstu*p=Head;fp=fopen(abc.txt,w+);/*打开文件*/while(p!=NULL){fprintf(fp,%d%4s%4s%4s%7d%7d\n,p-num,p-master,p-local,p-receiver,p-area,p-money);/*在文件中写入信息*/p=p-next;/*指针后移*/}fclose(fp);/*关闭文件*/printf(已保存在abc,txt文件中,按enter键返回\n);/*提示保存成功*/getchar();getchar();/*返回*/}/*=====================================打开文件信息=========================================*/voidoutput(house*Head)/*从文件中输出信息*/{FILE*fp=NULL;house*p=Head;system(cls);/*清屏*/fp=fopen(abc.txt,r);/*打开文件*/if(fp==NULL)/*若为空*/{printf(Fileopenerror!\n);/*输出不能打开文件*/exit(0);/*退出*/}printf(编号户主地点租赁人面积租金\n);while(p!=NULL){fscanf(fp,%d%4s%4s%4s%7d%7d\n,&p-num,p-master,p-local,p-receiver,&p-area,&p-money);/*在文件中输入信息*/printf(%d%4s%4s%4s%7d%7d\n,p-num,p-master,p-local,p-receiver,p-area,p-money);p=p-next;/*指针后移*/}fclose(fp);/*关闭文件*/printf(按enter键返回\n);getchar();getchar();}/*=====================================文件信息=========================================*/structstu*Init()/*在文件中读取信息*/{FILE*fp=NULL;structstu*p,*q,*Head;printf(系统正在查找数据文件……\n);fp=fopen(xlj.txt,r+);/*打开文件*/{p=(house*)malloc(sizeof(structstu));/*为p申请空间*/fscanf(fp,%d%s%s%s%d%d\n,&p-num,p-master,p-local,p-receiver,&p-area,&p-money);/*写入成绩*/Head=p;while(!feof(fp))/*循环读数据直到文件尾结束*/{q=(house*)malloc(sizeof(structstu));/*为q申请内存空间*/fscanf(fp,%d%s%s%s%d%d\n,&q-num,q-master,q-local,q-receiver,&q-area,&q-money);p-next=q;/*p指向的结点之后*/p=q;/*使p指向刚才q指向的结点*/}p-next=NULL;}p=Head;returnp;/*返回指针p*/}/*=====================================主函数界面=========================================*/voidmain()/*主函数*/{intm;structstu*Head=Init();/*调用文件中的数据*/do{printf(\t\t\t******房屋租赁管理*******\n);printf(\t\t\t1显示所有信息\n);printf(\t\t\t2查询信息\n);printf(\t\t\t3添加信息\n);printf(\t\t\t4修改信息\n);printf(\t\t\t5写入文件\n);printf(\t\t\t6打开已保存的文件\n);printf(\t\t\t0退出\n);printf(请选择0-6:\n);scanf(%d,&m);switch(m){case1:printf(输出所有房屋信息\n);printList(Head);break;case2:printf(查询房屋信息\n);printf(**************************************\n);find(Head);break;case3:printf(**************************************\n);printf(添加房屋新信息\n);printf(请输入要插入房屋的信息\n);insert(Head);break;case4:printf(------------------------------------------------------------------\n);change(Head);break;case5:input(Head);break;case6:output(Head);break;case0:printf(退出系统!\n);getchar();}}while(m!=0);/*知道输入的数字是0退出系统*/}