电话号码查询系统(链式结构)
摘要:C/C++ 数据结构
正文:用链式结构来实现电话号码查询系统,程序如下:
#include<iostream>
#include<malloc.h>
#include<stdlib.h>
#include<stdio.h>
#include<cstring>
using namespace std;
typedef struct Node
{
char name[10];
char phoneNumber[12];
struct Node *next;
}ListNode;
//函数声明
ListNode *CreateList(int n);//创建
void InseartList(ListNode *h,int i,char name[],char phoneNumber[],int &n);//头插法插入
void DeleteList(ListNode *h,int i,int &n); //删除
void OutList(ListNode *h);//显示
ListNode *InitList(void);//初始化
ListNode *InitList(void)
{
ListNode *head;
head=(ListNode*)malloc(sizeof(ListNode));
if(head==NULL) exit (1);
head->next=NULL;
return head;
}
//主函数
void main()
{
ListNode *h;
ListNode *InitList(void);
int i,n;
char phoneNumber[12];
char name[10];
while(1){
cout<<"1.建立号码表"<<endl;
cout<<"2.插入用户信息"<<endl;
cout<<"3.删除用户信息"<<endl;
cout<<"4.显示当前信息"<<endl;
cout<<"0.退出"<<endl;
cout<<"请输入相应的操作:"<<endl;
cin>>i;
switch(i)
{
case 1:
{
cout<<"请输入结点个数:"<<endl;
cin>>n;
h=CreateList(n);
break;
}
case 2:
{
cout<<"请输入您要插入信息的位置:"<<endl;
cin>>i;
cout<<"请输入电话号码:"<<endl;
cin>>phoneNumber;
cout<<"请输入用户姓名:"<<endl;
cin>>name;
InseartList(h, i,name,phoneNumber, n);
//+n+;//结点增1
break;
}
case 3:
{
cout<<"请输入要删除的位置"<<endl;
cin>>i;
DeleteList(h,i,n);
//n--;//结点减1
break;
}
case 4:
{
OutList(h);
break;
}
case 0:
{
cout<<"感谢使用,再见!"<<endl;break;
}
}
}
}
//函数定义
//创建
ListNode *CreateList(int n)
{
ListNode *head,*p,*pre;
int i;
head=(ListNode*)malloc(sizeof(ListNode));
head->next=NULL;
pre=head;
for(i=1;i<=n;i++)
{
cout<<"输入第"<<i<<"个用户的姓名"<<endl;
p=(ListNode*)malloc(sizeof(ListNode));
cin>>p->name;
cout<<"输入第"<<i<<"个用户的电话号码"<<endl;
cin>>p->phoneNumber;
pre->next=p;
pre=p;
}
p->next=NULL;
return head;
}
//显示
void OutList(ListNode *h)
{
ListNode *p;
p=h->next;
while(p)
{
cout<<p->name<<": "<<p->phoneNumber<<endl;
p=p->next;
cout<<endl;
}
}
//头插法插入
void InseartList(ListNode *h,int i,char name[],char phoneNumber[],int &n)
{
ListNode *q,*p;
int j;
if(i<1||i>n+1)
cout<<"插入位置有误!"<<endl<<endl;
else
{
j=0;p=h;
while(j<i-1)
{
p=p->next;
j++;
}
q=(ListNode*)malloc(sizeof(ListNode));
strcpy(q->name, name);
strcpy(q->phoneNumber,phoneNumber);
q->next=p->next;
p->next=q;
n++;
}
}
//删除
void DeleteList(ListNode *h,int i,int &n)
{
ListNode *p,*q;
int j;
char name[10];
char phoneNumber[12];
if(i<1||i>n)
cout<<"您的输入有误,请重新输入!\n";
else
{
j=0;p=h;
while(j<i-1)
{
p=p->next;
j++;
}
q=p->next;
p->next=q->next;
strcpy(name, q->name);
strcpy(phoneNumber,q->phoneNumber);
free(q);
n--;
}
}
电话号码查询系统(链式结构)相关推荐
- 设计散列表实现通讯录查找系统_[源码和文档分享]利用哈希表实现电话号码查询系统...
第一章 需求分析 1.1 问题描述 设计一个电话号码查询系统,为来访的客⼈提供各种信息查询服务. 1.2 基本要求 设计每个记录有下列数据项:电话号码.用户名.地址 从键盘输入个记录,分别以电话号码和 ...
- 电话号码查询系统(数据结构之哈希表)
哈希表 哈希表(Hash Table)是一种根据关键字直接访问内存存储位置的数据结构.通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数. 1. ...
- 《程序设计综合设计》课程设计--电话号码查询系统
2.问题描述 1.设每个记录有下列数据项:电话号码.用户名.地址: 2.从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表: 3.查找并显示给定电话号码的记录: 4.查找并显示给定用户名的记录 ...
- 数据结构个人电话号码查询系统实验报告
实验目的及要求 目的:通过设计一个<个人电话号码查询系统>,进一步熟悉一些二叉树的概念.以及基本知识和技能,利用所学的基本知识和技能解决简单的面向对象的程序设计问题.实现根据用户输入的信息 ...
- 输入手机号查询信息C语言,简单个人电话号码查询系统.doc
课程设计任务书 2011-2012学年第1学期 电子与信息工程系 专业 班级 课程设计名称: 数据结构课程设计 设计题目: 简单个人电话号码查询系统 完成期限:自2012 年 1月2日至2012 年 ...
- 哈希表实现电话号码查询系统(c++)
问题描述:设计哈希表实现电话号码查询系统,实现下列功能: (1) 假定每个记录有下列数据项:电话号码.用户名.地址. (2) 一是从数据文件old.txt(自己现行建好)中读入各项记录,二是由系统随机 ...
- 顺序、链式结构的个人书籍管理系统(C++)
仅供课外学习使用,任何个人与机构不得利用此文章进行任何形式的作弊. 因上一作浏览量激增,不胜惶恐.故上传新版,恳请各路大神赐教. 个人书籍管理系统的编写.制作与实现(C语言) 项目要求 设计一个图书管 ...
- 任务19 简单个人电话号码查询系统
系列文章 任务19 简单个人电话号码查询系统 问题描述 人们在日常生活中经常需要查找某个人或某个单位的电话号码,本实验将实现一个简单的个人电话号码查询系统,根据用户输入的信息(例如姓名等)进行快速查询 ...
- 哈夫曼树--链式结构(建立huffman树、编码、解码)
引子: 用链式结构来建立哈夫曼树. 总体思路是: 将每一棵树(这是每一棵树只有一个节点,头节点)放在一个优先队列中(下面的是链表实现的优先队列),频率(rate)小的在队列头,取出队列头两个,频率相加 ...
最新文章
- uboot linux内核传递参数,Uboot与Linux之间的参数传递详解
- 利用partition分组查询 查询每个分组第一条数据
- 使用dtd--属性声明
- 图形学教程Lecture 14: RayTracing1(Acceleration Radiometry)知识点总结
- 水晶报表的统计功能-Crystal Report Sub total Per Page
- Web Service security UserNameToken 使用
- Mybatis使用的9种设计模式,真是太有用了
- 深入探究ConvNets vs. Transformers,哪种预训练模型的可迁移性更好?
- 人工智能AI、机器学习和深度学习的区别
- Android ToggleButton(状态切换按钮)
- 设置win10保护色
- finereport 格式化金额函数_格式化金额数与自动四舍五入
- 塔菲尔曲线如何分析_Tafel曲线是做什么的
- 【C++】哈希——unordered系列容器|哈希冲突|闭散列|开散列
- SQL exists 删除重复记录
- 【人工智能AI2.0】国产开源 ChatGPT: ChatGLM-6B 搭建属于你的永远免费的本地 ChatGPT
- 华硕fx80装linux,华硕FX80GM星途版(i7 8750H)如何bios设置u盘启动
- DNSPod十问沈添:低代码将让程序员集体失业?
- shell脚本一百例
- Nginx下codeigniter的rewrite规则配置