数据结构课程设计-------双链表实现个人通讯录

本文介绍了使用C++和双链表实现的个人通讯录系统,包括录入、查找、删除、浏览和修改联系人信息等功能。通过菜单驱动的交互方式,用户可以方便地操作通讯录。此外,作者分享了对头指针和头结点的理解以及程序设计过程中的收获和不足。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实训目的 
通过课程设计,学会运用数据结构知识,针对具体应用,自己设计合理数据
结构,确定存储结构,并能设计具体操作算法,选择使用具体语言进行实现。掌
握 C++较复杂程序的组织和设计过程,调试技巧。学习解决实际问题的能力。
二、实训环境 

VC++6.0 环境用C++语言实现。

三、课程设计题目

李刚是一爱折腾的人,当然爱折腾的人均有梦想,他想当中国的盖次呢。可不,现在个人好友

信息多了,复杂了,他想制作一个个人通讯录的制作管理软件。 刚好这个学期学了数据结构课,所以他准
备使用数据结构知识来实现了。并考虑使用双向链表作数据结构。并制定了初步要求:
(1)每个好友信息包含姓名、性别、住址、邮编、几岁、电话、QQ、微信帐号、生日等。

(2)作为一个完整的系统,应具有友好的界面和较强的容错能力。

四、功能介绍

该系统用带头结点的双链表实现,具有对个人信息的录入、查找、删除、浏览、修改的功能。

录入:用头插法把如姓名,性别,年龄,号码,住址,QQ,微信账号等输入到双链表中

查找:能通过名字查找个人信息

删除:能删除号码作废的联系人信息

浏览:能查看所有的联系人信息

修改:能对存储错误的联系人修改信息

该系统运用了菜单,使主函数更简洁。


源代码:

#include<iostream>

#include<string>

using namespace std;

struct node

{

char name[10];   //姓名

char sex[2];     //性别

char address[20];//住址

char post[6];    //邮政编码

int age;         //年龄

char number[12]; //号码

char QQ[11];     //QQ

char wechat[16]; //微信账号

int year,month,day;//出生年月日

node *prior,*next;

};

class data

{

node *first;

public:

data(){first=new node;first->next=NULL;}  //建立头结点

~data();

void menu();     //菜单

void input();    //输入联系人

void updata();    //修改联系人信息

void dele();     //删除联系人信息

void search();     //查找联系人

void show();     //浏览所有联系人

void run();      //给外部运行的一个接口函数

};

data::~data()   //析构函数

{

node* p=new node;

while(first!=NULL)

{p=first;

first=first->next;

delete p;

}

}

void data::input()          //头插法

{

node *s=new node;

cout<<"输入要保存的信息 : "<<endl;

cout<<"姓名 : ";

cin>>s->name;

cout<<"性别 : ";

cin>>s->sex;

cout<<"住址 : ";

cin>>s->address;

cout<<"邮政编码 : ";

cin>>s->post;

cout<<"年龄 : ";

cin&g

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值