一、实训目的
通过课程设计,学会运用数据结构知识,针对具体应用,自己设计合理数据
结构,确定存储结构,并能设计具体操作算法,选择使用具体语言进行实现。掌
握 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