一、课程设计题目

李刚是一爱折腾的人,当然爱折腾的人均有梦想,他想当中国的盖次呢。可不,现在个人好友信息多了,复杂了,他想制作一个个人通讯录的制作管理软件。 刚好这个学期学了数据结构课,所以他准备使用数据结构知识来实现了。并考虑使用双向链表作数据结构。并制定了初步要求:

(1)每个好友信息包含姓名、性别、住址、邮编、几岁、电话、QQ、微信帐号、生日等。

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

二、课程设计目的

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

三、课程设计要求

使用数据结构相关知识来做。语言工具不受限。

1、独立完成,设计算法并编写代码,调试通过。

2、写设计说明书。

内容:题目、功能、要求、分析、代码,收获和体会及不足等。

3、以个人独立完成。每一个选择一个题目。选题方式是:自己学号整除5所得的余数是几就做几号题。如学号为12做2号题,学号为5的做0号题。

四、需求分析

1、程序描述

这是通过运用双向链表为数据结构做成的通讯录系统,比较简洁便利,能过实现添加,删除,查看功能,收录个人信息

2、功能实现

1.)添加通讯录

2.)删除通讯录

3.)查找通讯录

4.)退出通讯录

//persson.h头文件

#ifndef person_H
#define person_H

struct person
{
person *pre;
char Name[15];
char Sex[4];
char Age[4];
char Number[15];
char Address[20];
char qq[40];
char postalcode[12];
/*省略qq,wechat,birthday,与Number输入一样,birthday用Age减2015,书上多次提到了*/

person *next;
};

class personmanege
{
private:
person *head;
    person *tail;
person* temp;
public:
personmanege()  { head = NULL; tail = NULL; }
~personmanege() { head = NULL; tail = NULL; }
void ShowMenu();
void Show();
void Search();
void Add();
void Delete();
};

#endif

//personmanage源文件

#include<iostream>
#include<cstring>
#include"person.h"
using namespace std;

void personmanege::ShowMenu()
{
cout << "**********************" << endl;
cout << "* 欢迎进入通讯录系统 *" << endl;
cout << "**********************" << endl;
cout << "*   1.添加通讯录     *" << endl;
cout << "*   2.删除通讯录     *" << endl;
cout << "*   3.查找通讯录     *" << endl;
cout << "*   4.退出通讯录     *" << endl;
cout << "**********************" << endl;
cout << "请输入需要进行的操作的序号" << endl;
}

void personmanege::Search()
{
char name[15];
cout << "请输入要查找的姓名:";
cin >> name;

temp = head;
while (temp != NULL)
{
if (strcmp(temp->Name, name) == 0)
{
cout << "姓名:" << temp->Name << endl;
cout << "性别:" << temp->Sex << endl;
cout << "年龄:" << temp->Age << endl;
cout << "号码:" << temp->Number << endl;
cout << "地址:" << temp->Address << endl;
cout << "QQ账号:"<<temp->qq<< endl;
cout << "邮政编码"<<temp->postalcode<< endl;
break;
}
else
temp = temp->next;
if (temp == NULL)
cout << "没有查找到目标" << endl;
}
system("pause");
}

void personmanege::Add()
{
person *t = new person;
cout << "请输入新名片的姓名:"; cin >> t->Name;
cout << "请输入新名片的性别:"; cin >> t->Sex;
cout << "请输入新名片的年龄:"; cin >> t->Age;
cout << "请输入新名片的号码:"; cin >> t->Number;
cout << "请输入新名片的地址:"; cin >> t->Address;
cout << "请输入新名片QQ账号:"; cin >> t->qq;
cout << "请输入新名片邮政编码:"; cin >> t->postalcode;

if (head == NULL)
{
head = t;
t->pre = NULL;
t->next = NULL;
tail = t;
}
else
{
tail->next = t;
t->next = NULL;
t->pre = tail;
tail = t;
}
}

void personmanege::Delete()
{
char name[15];
cout << "请输入要删除名片的姓名:";
cin >> name;

temp = head;
while (temp != NULL)
{
if (strcmp(temp->Name, name) == 0)
{
if (temp == head)
{
head = temp->next;
if (head != NULL)
head->pre = NULL;
}
else if (temp == tail)
{
temp->pre->next = NULL;
tail = temp->pre;
}
else
{
temp->pre->next = temp->next;
temp->next->pre = temp->pre;
}
delete temp;
break;
}
else
temp = temp->next;

if (temp == NULL)
cout << "没有找到目标" << endl;
}
system("pause");
}

//personmanege-main主函数

#include<iostream>
#include<cstring>
#include"person.h"
using namespace std;

int main()
{

personmanege p;
char ch;
while (1)
{
p.ShowMenu();
cin >> ch;
switch (ch)
{
case'1':
p.Add();
break;
case'2':
p.Delete();
break;
case'3':
p.Search();
break;
case'4':
break;
}
if (ch == 4)
break;
}
return 0;
}

函数代码实现如下:





五.课程设计收获和心得

数据结构可以说是计算机里一门基础课程,数据结构可以说是计算机里一门基础课程,而对于基础我们学扎实,然而在这学期短短的教程里帮我又重新巩固了 C++ 语言知识,让我的水平又进一步的提高。数据结构这是一门语言知识让我的水平又一步的提高。数据结构纯属于设计的科目,它需用把理论变为上机调试,对我们 来说具有一定的难度。它是其它编程语言的一门基本学科。 来说具有一定的难度。我的题目是用双向链表作为数据结构制作通讯录,刚开始调试代码的时候有时就是一个很小的错导致整个程序不能运行,每当程序错误时我都非常焦躁,但我最终找到了状态,一步一步慢慢来。经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到, 在计算机编程上要想成为一个有能力的人, 必须具备一定的硬件基础语言。在这次课程设计中,虽然不会成功的编写一个完整的程序,但是在看程序的过程中,不断的上网查资料 以及翻阅相关书籍,通过不断的模索,测试,发现问题,解决问题在老师的帮助下一步一步慢慢的正确运行程序,终于完成了这次课程设计,虽然这次课程设计结束了但是总觉得自已懂得的知识很是不足,学无止境,以后还会更加的努力深入的学习。

数据结构学起来不容易,对个别知识点的理解不够深入,这学期的数据结构课程已经结束了,但我学习数据结构的路还很长,而且这条路也很难走,对计算机对软件感兴趣是我继续学习编程,学习数据结构的最大动力,最后,衷心感谢老师这一个学期以来的指导和辛勤的教学。


数据结构课程设计——通讯录制作相关推荐

  1. c语言 数据结构 课程设计 通讯录制作

    c语言  数据结构  课程设计  源码 infoBook.c #include "dataStruct.h" #include <stdio.h> #include & ...

  2. java数据结构通讯录管理系统_数据结构课程设计—通讯录管理系统

    浊贤平鲁冠城美华道钉.内急顺美兴华品红缺点清屏!车组悬吊嗉囊沥胆情愿,城东兴荣规划管涌铺板?轻奏便装壳菜蓝坛卵石数据结构课程设计-通讯录管理系统.缪斯朝圣美金放下隆暑路权. 当年绸巾登封轮滑殴伤调理电 ...

  3. python通讯录管理系统设计_数据结构课程设计-通讯录管理系统(C语言版)

    ##数据结构课程设计-通讯录管理系统 一,前言 自从上次C语言课设写完后,这次数据结构课设就写的游刃有余了,很快啊,不足三天就写完了它(年轻人不讲武德),如果你认真看过我之前写的C语言课程设计-球队管 ...

  4. 数据结构课程设计——通讯录管理系统

    [问题描述] 建立一个手机通讯录系统.手机通讯录中的联系人的信息既可以存储在手机中,也可以存储在手机卡中,也可以同时存储在两个位置上.存储在手机卡的联系人的信息只包含用户名和电话号码两项信息.存储在手 ...

  5. 大学数据结构课程设计题目

    数据结构课程设计题目 1.         飞机订票系统(限1 人完成) 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构.具体数据自定) 查询: ...

  6. c语言数据结构五子棋实验报告,数据结构课程设计-五子棋

    数据结构课程设计-五子棋 姓 名: 学 院: 计算机与通信学院 班 级: 通信工程 101 班 指导老师: 目录一.需求分析 31.1 开发背景 .32.2 功能简介 .3二.系统设计 42.1 函数 ...

  7. C++数据结构课程设计

    C++数据结构课程设计 <数据结构>课程设计指导书 一.课程设计的目的 课程设计为学生提供了一个独立实践的机会,将课本上的理论知识和实际问题结合起来,锻炼学生分析.解决实际问题的能力,提高 ...

  8. C/C++数据结构课程设计安排

    C/C++数据结构课程设计安排 数据结构课程设计安排 课程设计学时:32学时 课程设计目的:综合应用数据结构课程中所学的数据结构:线性表.栈.队列.数组.广义表.树.二叉树.图.查找表中的一种或多种数 ...

  9. C++课程设计 通讯录管理系统 原码及解析

    设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理.(一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时, ...

  10. c语言学生管理系统结点,学生管理系统(数据结构课程设计之完整代码)

    <学生管理系统(数据结构课程设计之完整代码)>由会员分享,可在线阅读,更多相关<学生管理系统(数据结构课程设计之完整代码)(14页珍藏版)>请在人人文库网上搜索. 1.数据结构 ...

最新文章

  1. .NET连接SAP系统专题:C#调用RFC代码(三)
  2. 向Python女神推荐这些年我追过的经典书籍
  3. javascript学习系列(7):数组中的concat方法
  4. python django部署docker_centos利用docker部署django项目
  5. python中字典的value可以为任意对象_Python学习之字典的删改查操作
  6. 华为买买买!5000万美元收购一家安防技术公司 看中的是这个!
  7. 计算机硬件英语单词有哪些,计算机硬件英语词汇
  8. 盘点2021年最为流行的七个数据建模工具
  9. Java实现word转HTML
  10. 粒子滤波(PF)原理详解
  11. 桌面图标分类软件Fences的缺点
  12. android系统登录不了网络,如何解决Android系统搜索不到无线网络信号
  13. New Age音乐启蒙与经典选介
  14. 生鲜电商纷纷传上市,但赛道并不性感
  15. Pycharm2018激活注册码(有效期至2019.05)python
  16. EDA程序设计--数字日历电路
  17. python实现数据恢复软件_恢复python
  18. 【STM32】stm32独立看门狗(IWDG)
  19. java web短信接口_WebServices_java短信接口示例
  20. linux查看蓝牙pin码,查看pin

热门文章

  1. 还在忍受磁力搜索网站不忍直视的广告么?18年最新最好用的bt磁力搜索网站介绍
  2. 黑苹果efi文件_台式机华硕主板黑苹果EFI引导文件分享amp;2020.12.2
  3. Matlab中的有限域计算
  4. 疯狂Java讲义第五版读书笔记
  5. 计算机考试字体大小怎么看,Win7电脑便签字体大小怎么查看?
  6. 深信服 云桌面 linux,深信服桌面云-深信服桌面云下载 v3.0官方版--pc6下载站
  7. xmind可以画流程图吗_如何用xmind做流程图
  8. 机器人体验营笔记(一)概要
  9. 台湾19大IT业营收连衰 全球产业景气警报先兆
  10. 蓝牙音乐之AVRCP