资源简介

本代码实现功能为简易通讯录,用了数组和链表两种方法实现,功能一样。本人数据结构课程设计的成果,拿出来分享下

资源截图

代码片段和文件信息

#include 
#include
#include 
#include
#include

typedef struct Record //个人信息
{
char name[20];
char street[20];
char city[20];
char eip[10];
char state[20];
}recordtype;

typedef struct node//节点
{
recordtype data;
struct node *next*prior;
}linklist;

#define LEN sizeof(linklist)

FILE *fp;
int flag;//flag为0表示无记录,否则为1

void mainmenu(linklist *head);//主菜单

void filemenu(linklist *head);//文件菜单
void save(linklist *head);//保存
void saveexit(linklist *head);//保存并退出

void editmenu(linklist *head);//编辑菜单
void newrecord(linklist *head);//新添记录
void modif(linklist *head);//修改
void deletemenu(linklist *head);//“删除”主菜单
void del(linklist *p);//删除某个确定编号
void deleteall(linklist *head);//删除所有 
void deleteone(linklist *head);//删除单个 

void viewmenu(linklist *head);//查看菜单
void displayall(linklist *head);//显示所有记录
void search(linklist *head);//按姓名查找
void helpmenu(linklist *head);//帮助菜单

int main(void)            //////////////   主函数   ////////////////////
{
system(“color B0“);

  /////////  导入并建立链表 ////////

linklist *head*p*q;
int x;
head=(struct node*)malloc(LEN);
head->prior=NULL;
head->next=NULL;
q=head;
    
    printf(“                             简易通讯录管理系统“);
    if((fp=fopen(“txl.bin““rb“))==NULL) 

printf(“\n“);
for(x=1;x<=80;x++)//输出分隔线
printf(“*“);
        printf(“\n\t\t\t    欢迎使用通讯录管理系统!\n\n这是您第一次使用该程序系统将为您建立一个新的通讯录文件...“); 
        if ((fp=fopen(“txl.bin““wb“))==NULL) 

             printf(“\n糟糕!建立失败!“); 
             exit(1); 

        else 

flag=0;
            printf(“\n系统已为您建立好一个空的通讯录!“);            
printf(“\n“);
for(x=1;x<=80;x++)//输出分隔线
            printf(“*“);
            printf(“\n按任意键进入主菜单界面...“); 
            getch(); 

    } 
    else
{
fseek(fp02); //文件位置指针移动到文件末尾
        if (ftell(fp)>0) //文件不为空

   flag=1;
           rewind(fp);
   printf(“\n“);
   for(x=1;x<=80;x++)//输出分隔线
      printf(“*“);
   printf(“\n\t\t\t    欢迎使用通讯录管理系统!“);

   while(!feof(fp))
   {
   p=(struct node*)malloc(LEN);    
   if((fscanf(fp“ %s %s %s %s %s“p->data.namep->data.statep->data.cityp->data.streetp->data.eip))==NULL)
   {
        printf(“\n文件读取出错!\n退出程序...“);
        getch();
        exit(1);
   }
   q->next=p;//尾插法
   p->prior=q;
   q=p;
   }   
   q->next=NULL;
   printf(“\n\n文件读取成功!“);
   printf(“\n“);
   for( x=1;x<=80;x++)//输出分隔线
       printf(“*“);
           printf(“\n按任意键进入主菜单界面...“); 
           getch();  
   } 
       else
   {
   flag=0;
   printf(“\n“);
   for(x=1;x<=80;x++)//输出分隔线
      printf(“*“);
   printf(“\n\t\t\t    欢迎使用通讯录管理系统!\n\n文件已导入成功!“); 
           printf(“\n通讯录文件中无任何纪录!“);
   printf(“\n“);
   for( x=1;x<=80;x++)//输出分隔线
      printf(“*“);
           printf(“\n按任意键进入主菜单界面...“); 
           getch();  
   }
 }


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      23371  2010-01-01 17:24  txl1.cpp

     文件      15130  2009-12-27 17:03  txl2.cpp

----------- ---------  ---------- -----  ----

                38501                    2


评论

共有 条评论