编写两道C++程序题

来源:百度知道 编辑:UC知道 时间:2024/07/02 09:40:26
1.实现一个通讯录,打印程序,通讯录记录格式为姓名、单位、电话、住址、宅电。要求建立person类,然后按照对象输入和输出二进制文件。
2.编写一个程序,它输入输出一个文本文件并在输入时统计文件中的行数.

通讯录
#include <stdio.h>
#include <stdlib.h> /*与malloc.h差不多*/
#include <string.h>
#define maxlen 100
struct persons
{ char name[10]; /*定义结构体数组用于缓存数据*/
char addr[20];
char phnum[10];
}persons[maxlen];
;
;
;
typedef struct lnode{ /*通讯录结构中结点的定义*/
char name[10]; /*姓名*/
char addr[20]; /*地址*/
char phnum[10]; /*电话*/
struct lnode *next;
}listnode,*linklist;
;
;
;
linklist head=NULL,r=NULL; /*定义头指针和尾指针*/
listnode *s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7;
int i;
char name1[10],ch;
char str1[20];
FILE *fp; /*定义文件指针*/
;
;
void creat() /*将文件的信息读入结构体数组在转存入链表中*/
{ int j;
long k;
fp=fopen("people.txt","r+t"); /*打开文件*/
if(fp!=NULL)
{for(i=1;i<maxlen;i++)
{ j=fgetc(fp);
if(j==EOF)
return;
k=i-1;
fseek(fp,k*sizeof(struct persons),0); /*读取一个人的信息*