简单个人电话号码查询系统汇编
- 格式:doc
- 大小:283.50 KB
- 文档页数:12
一、课题任务人们在日常生活中经常要查找某个人或某个单位的电话号码,本实验将实现一个简单的个人电话号码查询系统,根据用户输入的信息(例如姓名等)进行快速查询二、设计要求(1)在外存上,用文件保存电话号码信息;(2)在内存中,设计数据结构存储电话号码信息;(3)提供查询功能:根据姓名或编号实现快速查询;(4)提供其他维护功能,例如插人、删除、修改等。
三、程序的结点设计现假设链表结点仅含有一个数据域和一个指针域。
数据域是为了描述通讯者的相关信息,定义通讯者的结点类型:typedef struct{char num[10]; //编号char name[15]; //姓名char phone[11]; //电话号码}dataType;因此,,线性表的链式存储结构定义如下:typedef struct node{ //结点类型定义dataType data; //结点的数据域struct node *next ; //结点指针域}listnode , * linklist ;linklist head ; //定义指向单链表的头指针listnode * p ; //定义一个指向结点的指针变量四、程序的功能设计创建:创建通讯录文件添加:添加通讯录记录输出:显示通讯录记录删除:删除通讯录记录查找:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件中五、程序的数据设计该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。
下面六个模块都是利用C语言文件,向文件中追加数据、修改数据、查询数据和删除数据。
建立:可以建立通讯录记录,利用C语言文件,向文件中按顺序输入编号、姓名、电话号码,这里实际上是要求建立一个带头结点的单链表。
添加:可以添加通信录记录,向链表中继续增加结点,但只是输入到内存中,如果要输入到文件中还得调用保存函数。
输出:也是用通过循环依次输出文件中的数据,即输出所有通讯录里的记录。
《数据结构》课程设计课程名称数据结构课题名称电话号码查找系统专业电子信息科学与技术班级姓名(学号)姓名(学号)2017年 6 月 3 日电话号码查找系统摘要:电话号码的查找系统软件是现在很实用工具,随着时代的发展,信息化得发展,手机是人们的必备工具,基于目前的现况,有必要开发出一款具有含量的电话号码管理系统,满足人们的需求,需要包含添加、删除、查找、显示、存储、修改等操作,并具备存储文件功能。
该篇基于C++语言在VC6.0平台用散列表设计实现电话号码的查找系统,根据数据结构设计算法并实现算法,程序多次运用了函数的调用,自定义个操作的函数,包括添加操作、查找操作、查询操作、显示操作、清除操作、保存操作由主函数调用每次操作均有主函数依次调用,从基本上实现姓名电话地址的存储和应用。
关键词:电话号码查找系统; C++; VC6.0; 数据结构1、引言(绪论)1.1、C++语言简介在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。
C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。
C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。
C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。
因而也增加了整个语言的复杂性,掌握起来有一定难度。
1.2、开发背景随着科学技术的不断发展,计算机科学日渐成熟,电话号码使用的广泛性、简洁性日易为人们所接受采用。
电话号码管理系统已是人们必不可少的系统软件工具,用于满足人们对电话的各种操作,包括添加、删除、修改、查询、保存使电话号系统更加简洁方便,基于这种市况需求,我们有必要开发一款能满足人们这种操作需求的管理系统。
1.3、开发环境本文所采用的开发环境主要是基于C++环境的信息技术极大地扩展了全人类教育的时空界限,空前地提高了人们学习的兴趣、效率和主动性,已经成为开发人类能力的创造性工具。
#include<iostream>#include<string>#include<iomanip>using namespace std;struct XINXI{char name[20];char addr[20];char num[20];bool pel;} p[100];static int i=0;int key2;int key;void creat() //输入个人信息{cout<<"请依次输入姓名(汉语拼音形式)、地址、电话:"<<endl;cout<<"请输入第"<<i+1<<"个数据:";cin>>p[i].name>>p[i].addr>>p[i].num;i++;}void xianshi() //显示输入的信息{ int a=0;cout<<"输入的个人信息为"<<endl;for(a;a<i;a++){if(!p[a].pel){cout<<"第"<<a+1<<"个数据:"<<"姓名:"<<" "<<p[a].name;cout<<" "<<"地址:"<<" "<<p[a].addr;cout<<" "<<"电话:"<<" "<<p[a].num<<endl;}}}void xianshi2(int t){if((!p[t].pel)&&(t<i)){cout<<"姓名:"<<" "<<p[t].name;cout<<" "<<"地址:"<<" "<<p[t].addr;cout<<" "<<"电话:"<<" "<<p[t].num<<endl;}}int hash1(char name[20]) //求姓名的关键字{int i = 1;key2=(int)name[0];while(name[i]!=NULL){key2+=(int)name[i];i++;}return key2;}int hash2(char num[11]){int i = 1;key=(int)num[0];while(num[i]!=NULL){key+=(int)num[i];i++;}return key;}void CreatHash1(int ht[]) //建立姓名散列表,并且用线性探测法处理冲突{int k;for(int a=0;a<i;a++){k=hash1(p[a].name)%100;int m;if (ht[k] == 0)ht[k] =k+1; //没有发生冲突,直接存入else if(ht[k]!=0){m = (k+1) % 100;if (ht[m] == 0)ht[m] =k+1;else //线性探测处理冲突{for(int r=1;r<=100;r++){m= (m+r) % 100;if (ht[m] == 0){ht[m] =k+1;break;}else if (m == k)cout<<"溢出"<<endl;}}}}}void CreatHash2(int ht[]) //建立电话号码散列表,并且用线性探测法处理冲突{int k;for(int a=0;a<i;a++){k=hash1(p[a].num)%100;int m;if (ht[k] == 0)ht[k] =k+1; //没有发生冲突,直接存入else if(ht[k]!=0){m = (k+1) % 100;if (ht[m] == 0)ht[m] =k+1;else //线性探测处理冲突{for(int r=1;r<=100;r++){m= (m+r) % 100;if (ht[m] == 0){ht[m] =k+1;break;}else if (m == k)cout<<"溢出"<<endl;}}}}}void Search1 ( int ht[],int k){int i,j;j =k %100;i =j;while (ht[i]!=0){if (ht[i] == j+1){ //发生冲突,比较若干次查找成功cout<<"查找成功!!"<<endl;cout<<"查到的相关信息为:";for(int a=0;a<100;a++){if(ht[i]==hash1(p[a].name)%100+1)xianshi2(a);}break;}i= (i+1) % 100; //向后探测一个位置if (i==j)break;}if(ht[i]==0)cout<<"查找失败!!"<<endl;}void Search2 ( int ht[],int k){int i,j;j =k %100;i =j;if(ht[i]==0)cout<<"查找失败!!"<<endl;while (ht[i]!=0){if (ht[i] == j+1){ //发生冲突,比较若干次查找成功cout<<"查找成功!!"<<endl;cout<<"查到的相关信息为:";for(int a=0;a<100;a++){if(ht[i]==hash1(p[a].num)%100+1)xianshi2(a);}break;}i= (i+1) % 100; //向后探测一个位置if (i==j)break;}if(ht[i]==0)cout<<"查找失败!!"<<endl;}void shuzu1(int ht[]){ int x;int e=0;for (x=0; x<100; x++){cout<<ht[x]<<setw(5);e++;}if(e%6==0)cout<<endl;}void sanlie1(int ht[]){cout<<"按姓名散列结果为:"<<endl; //显示按姓名建立的散列表int x;int i;int j=100;for (x=0;x<100;x++){for(i=0;i<100;i++){if((ht[x]==hash1(p[i].name)%100+1)&&(i!=j)){xianshi2(i);j=i;break;}}}}void sanlie2(int ht[]){ cout<<"按电话号码散列结果为:"<<endl; //显示按电话号码建立的散列表int x;int i;int j=100;for (x=0;x<100;x++){for(i=0;i<100;i++){if((ht[x]==hash2(p[i].num)%100+1)&&(i!=j)){xianshi2(i);j=i;break;}}}}void menu(){cout<<" <<<<<<<<<<欢迎进入电话号码查询系统>>>>>>>>>>"<<endl; cout<<"--------------------------------------------------------------------------------"<<endl;cout<<" ****************0.添加记录******************"<<endl;cout<<" ****************1.显示记录******************"<<endl;cout<<" ****************2.散列结果******************"<<endl;cout<<" ************3.散列的关键字显示**************"<<endl;cout<<" ********4.散列表建立的数组内部展示**********"<<endl;cout<<" ****************5.查询记录******************"<<endl;cout<<" ****************7.退出系统******************"<<endl;cout<<"--------------------------------------------------------------------------------"<<endl;}void main(){int ht[100];int d;for (d=0; d<100; d++)ht[d]=0;int hf[100];int r;for (r=0; r<100; r++)hf[r]=0;char name[20];char num[20];int k;int k2;int ins;while(1){menu();cin>>ins;if(ins==0){system("cls");system("color a");creat();cout<<endl;}if(ins==1){system("cls");system("color e");xianshi();cout<<endl;}if(ins==2){system("cls");system("color d");cout<<"4 按姓名,5 按电话号码"<<endl;int b;cin>>b;if(b==4){CreatHash1(ht);sanlie1(ht);cout<<endl;}else if(b==5){CreatHash2(hf);sanlie2(hf);cout<<endl;}}if(ins==3){system("cls");system("color f");cout<<"7 按姓名,8 按电话号码"<<endl;int b;cin>>b;if(b==7){int a=0;for(a;a<i;a++){cout<<"第"<<a+1<<"个人的姓名的关键字为:"<<hash1(p[a].name)%100<<endl;cout<<endl;}}else if(b==8){for(int m=0;m<i;m++)cout<<"第"<<m+1<<"个人的电话号码的关键字为:"<<hash2(p[m].num)%100<<endl;cout<<endl;}}if(ins==4){system("cls");system("color a");cout<<"1 按姓名,2 按电话号码"<<endl;int b;cin>>b;if(b==1){cout<<"姓名散列表建立的数组内部展示如下:"<<endl;shuzu1(ht);cout<<endl;}else if(b==2){cout<<"电话号码散列表建立的数组内部展示如下:"<<endl;shuzu1(hf);cout<<endl;}}if(ins==5){system("cls");system("color e");cout<<"6 按姓名查询,7 按电话号码查询"<<endl;int b;cin>>b;if(b==6){cout<<"请输入要查找的人的名字:"<<endl;cin>>name;k=hash1(name);Search1 (ht,k);cout<<endl;}else if(b==7){cout<<"请输入要查找的人的电话号码:"<<endl;cin>>num;k2=hash2(num);Search2 (hf,k2);cout<<endl;}}if(ins==7){system("cls");cout<<"--------------------------------------------------------------------------------"<<endl;cout<<"*************************************ending************************** ***********"<<endl;cout<<"--------------------------------------------------------------------------------"<<endl;cout<<endl;break;}}}。
问题描述:实现一个简单个人电话号码查询系统,根据用户输入信息(如姓名等)进行快速查询。
基本要求:(1)在内存中,设计数据结构存储电话号码信息;(2)在外存上,用文件保存电话号码信息;(3)提供查询功能:根据姓名实现快速查询;(4)提供其他维护功能,例如插入、删除、修改等。
需求分析:(1)输入数据建立个人电话号码查询系统。
(2)输出个人电话号码查询系统中的所有联系信息。
(3)插入新的联系人信息。
(4)查询该系统中满足要求的信息。
(5)删除不需要的联系人信息。
数据结构设计:(一)模块设计本程序包含两个模块:主程序模块和链表操作模块。
其调用关系如下图所示.(二)系统子程序及功能设计本系统中共设置5个子程序,子程序的函数名及功能说明如下,其中大部分都是链表的基本操作函数。
(1)LinkList Book_Creat(LinkList list) //1.新建个人电话号码信息(2)LinkList Book_Print(LinkList list) //2.浏览个人电话号码信息(3)Book_Search(LinkList list) //3.查找个人电话号码信息(4)LinkList Book_Del(LinkList list) //4.删除个人电话号码信息(5)main() //主函数。
设定界面颜色和大小,调用链表操作模块(三)函数主要调用关系图算法设计:(一)概要设计:为了实现需求分析中的功能,可以从三个方面着手设计。
1.主界面设计为了实现个人电话号码查询系统各功能的管理,设计一个含有多个菜单项的主菜单子程序已链接系统各项子功能,方便用户使用本系统。
本系统主控菜单运行界面如图所示:2.存储结构设计本系统主要采用链表结构类型来表示存储在“简单个人电话号码查询系统”中的信息。
其中,链表结点由4个分量构成:成员姓名、电话号码1、电话号码2、指向该结构体的指针。
3.系统功能设计本系统设置了5个子功能菜单,设计描述如下:(1)新建个人电话号码信息。
11种寻找电话名录的方法好多业务员说:“你们要我一天打50通电话,我哪有那么多的电话可打?我的电话都打完了,我没有电话可打了。
”我在这里给大家提供11种寻找电话名录的方法,11种如何找到陌生电话号码的方法。
1.随时随地的交换名片。
每个人都要养成交换名片的习惯,很多人出门经常不带名片,很多人也不希望拿到顾客的名片。
一个人如果养成随时随地获取别人名片的习惯,而且养成把自己的名片赠给别人的习惯,就一定可以得到很多的各行各业的人士的电话名录。
我举例好了,一次,我把名片送给别人。
“李先生,您好!这是我的名片。
”“噢,不好意思,我没有带名片。
”我说:“没关系,非常好,我能有机会得到您亲笔写的名片。
”我拿给他一张我自做的小名片纸,上面有电话、姓名、地址。
我就说:“我这张名片纸,请您填好!”我送给他一张名片纸,然后把笔给他,他好不好意思拒绝填写?99%的人不会拒绝填写他的名字、电话号码。
所以,这个时候,你只要做一个动作,拿出你早已准备好的名片纸,然后再拿出笔说:“请您在这张名片卡上填好。
”各位,你不仅获得了一张名片,而且是他亲笔书写的名片,而且你可以通过他的字看出他的一些习惯,叫“字如其人。
”字写得好的人,通常可以看出他的一些性格,当然不一定要根据字的好坏去断定。
但你可以根据他写的字了解到他许多信息。
顾客没有带名片,对我们有没有好处?有好处!因为他可以亲笔给我们现场书写,可以让我们了解更多的顾客的信息。
万一那个人字写得不太好,怎么办?那你说:“我写好不好?”这样,他说:“你写也行!”那你就会了解他的姓名是哪一个字,然后跟他多说几句话,顾客带名片你跟他换名片,不带名片可以让他写。
他字写得不太好,你可以代他写。
这都非常好,关键你有一个积极的心态,随时随地去交换名片。
有的人说:“我干吧跟他去交换名片,我的职位不比他低,我个子又不比他矮。
”各位,成功靠自己还是靠别人?假如地球上只有你一个人,你能成功吗?所有的资产都是你的,你能成功吗?我看不太可能!成功靠别人,但是自立靠自己。
五位通用号码∙10000:中国电信客户服务中心∙10010:中国联通全国统一客户服务热线∙10011:中国联通全国统一话费查询专线∙10060:中国网通客户服务热线∙11185:国家邮政局电话服务∙12310:机构编制违规举报热线∙12315:消费者投诉∙12319:城建服务热线∙12333:劳动者维权热线∙12345:政府公益服务接入网∙12348:法律服务∙12358:物价局举报电话∙12365:技术局投诉电话∙12366:地税纳税服务热线∙12369:环境保护举报电话∙12395:水上搜救专用电话∙95119:森林火警∙95500:太平洋保险∙95511:中国平安∙95518:中国人保∙95519:中国人寿保险∙95522:泰康人寿保险公司∙95533:建设银行∙95555:招商银行∙95559:交通银行∙95566:中国银行∙95577:华夏银行∙95588:工商银行∙95595:光大银行∙95598:供电业务查询∙95599:中国农业银行∙96300:烟草局投诉电话∙12300:电信用户申诉中心∙12348:司法热线∙12358:物价投诉∙12365:质量监督局投诉电话∙12366:国家税务局∙12369:环境保护投诉电话∙12395:海事局∙12591:全国无线自动GSM短消息业务∙16300:中国公众多媒体通信网接入码∙17900、17908:中国电信IP接入∙17901、17909:中国电信IP接入∙17990、17991:中国铁通IP接入码∙17999:海关总属接入码∙17931:网通IP接入∙17950、17951:中国移动公司IP接入∙17970、17971:中国卫通公司IP接入码∙17979:中国电信 VPDN∙17987:全国17987电子彩票业务平台∙17910、17911:联通IP接入∙17920、17921:吉通IP接入∙95033:库而益科技实业有限公司∙95105:铁通上海分公司∙95116:西安莫林数码科技有限公司∙95118:中企网络呼叫中心∙95120:“非典”咨询电话∙95160:上海莱斯达航空服务有限公司∙95168:昊远金脉声讯台(自动)∙95169:昊远金脉声讯台(人工)∙95500:中国太平洋保险∙95501:深圳发展银行∙95511:平安保险∙95512:中国平安保险股份有限公司上海分公司∙95516:中国银联股份有限公司∙95518:中保上海分公司∙95519:人寿保险上海分公司∙95522:泰康人寿保险上海分公司∙95533:建设银行上海分行∙95500:中国太平洋保险∙95555:招商银行上海分行∙95558:中心证券有限公司∙95559:交通银行上海分行∙95561:兴业银行上海分行∙95566:中行上海分行∙95567:新华人寿保险上海分公司∙95568:民生银行上海分行∙95577:华夏银行∙95588:工商银行上海分行∙95595:光大银行上海分行∙95598:电力公司呼叫中心∙95599:农业银行上海分行∙95766:中国电信服务专区∙95777:信海科技∙95803:润迅通信发展有限公司∙95805:海华寻呼台(人工)∙95806:海华寻呼台(自动)∙95808:民航寻呼台(人工)∙95809:民航寻呼台(自动)∙95810:八一时代信息台(人工)∙95811:八一时代信息台(自动)∙95812:东旅寻呼台(人工)∙95813:东旅寻呼台(自动)∙95815:鼎鑫寻呼全国联网(人工)∙95816:鼎鑫寻呼全国联网(自动)∙95828:铁路局寻呼台(人工)∙95829:铁路局寻呼台(自动)∙95838:神州长城寻呼台(人工) ∙95839:神州长城寻呼台(自动) ∙95858:长城新兴寻呼台(人工)∙95859:长城新兴寻呼台(自动)∙95877:广电ISP∙95880:润声ISP∙95888:深圳讯业ISP∙95900:万声寻呼台(人工)∙95901:万声寻呼台(自动)∙95911:公安局寻呼台(人工)∙95936:江河寻呼台(人工)∙95937:江河寻呼台(自动)∙95938:瑞华联网寻呼中心(人工)∙95939:瑞华联网寻呼中心(自动)∙95950:中北通信有限公司(人工) ∙95951:中北通信有限公司(自动) ∙95958:亚太八方通信公司(人工) ∙95963:北京首都在线∙95968:华英寻呼台(人工)∙95993:广州光通通信ISP∙96000:云峰寻呼台(人工台)∙96001:云峰寻呼台(自动台)∙96002:民通寻呼台∙96003:民通寻呼台∙96005:奥力通信公司无线寻呼∙96008:震兴寻呼台∙96010:AD∙96011:智能公话业务(人工)∙96014:智能公话业务∙96015:UAN∙96096:联达寻呼台∙96100:南泰寻呼台∙96101:南泰寻呼台∙96105:上海电信∙96110:天华寻呼台(自动)∙96111:天华寻呼台(人工)∙96112:天华寻呼台(人工)∙96113:上海百益航空服务有限公司∙96118:易达寻呼台(人工)∙96119:易达寻呼台(自动)∙96120:明珠寻呼台∙96121:气象局∙96126:星宇寻呼台(人工)∙96128:锦江寻呼台(人工)∙96129:锦江寻呼台(自动)∙96157:中山寻呼台∙96158:中山寻呼台∙96166:中岛寻呼台(人工)∙96168:华亭寻呼台(人工)∙96169:华亭寻呼台(自动)∙96177:金欣网络信息技术有限公司∙96178:蓝天通信寻呼台(人工)∙96179:蓝天通信寻呼台(自动)∙96181:气象局∙96188:飞通通信∙96190、96191:新闵通信∙96196、96197:华东寻呼∙96199:富叶通信寻呼台。
这个是省内天气预报的网址:/tqyb/qsyb.asp闯红灯查询/大连各大影院咨询电话进步:82637266友好:82635307红星:84641068影娱大世界:82681984奥纳电影城:82193589新玛特电影城:83880648新城市电影城:82307516奥纳电影时刻表:/menu_3_4/index.shtml新玛特电影时刻表:/homepage/mobile/movie/火车车次查询/smart40/index.html全国邮政编码、电话区号查询/ybqh/全国统一电话号码盗警 110* 火警 119* 急救中心 120* 交通肇事 122* 查号台 114 报时台 117 国际直拨受话人付费电话 108 电话障碍台 112 国内人工长途挂号 113 天气预报 121 电话信息台 160 自动信息服务台 168 国内话费查询台 170 自动查询电话 1701自动查询传真 1702 国内半自动长途电话 173 电信投诉 180* 邮政编码查询 184 特快专递 185 移通业务咨询 1860 移动话费查询 1861大连市常用电话号码大连火车站问询处 82603331、16823456大连周水子国际机场问询处 86652071大连港客运站问询处 82636061大连长途汽车站问询处 82637141市出租汽车管理处 83638328市客运交通管理处 82496664大连汽车租赁有限公司 82670310市公共汽车联替公司 82893403大连京安汽车租赁有限公司 83628399大连博大汽车租赁有限公司 82801257市物价局 83622576交通局 83638168市消费者协会 83672567、83150315市物价检查所 83636059中山公安分局 82637821市公安局 83631486沙河口公安分局 84606628西岗公安分局 83632107大连日报社 82646479甘井子公安分局 86600583大连电视台新闻全景 83692867大连晚报社 82807881大连人民广播电台 84641390市卫生局 83629264交通事故处理 86613052,86613059市房地产管理局 82633762有线电视安装维修 86384457,86384446西岗房地产管理处 83631432供电事故处理 86613211甘井子房地产管理处 86658907自来水维修:得胜维修所 86613155沙河口房地产管理处 84608212自来水维修:登丰维修所 86388734中山房地产管理处 82642704自来水维修:光荣维修所 86383214市爱卫会 83647709市住宪小区治理改造工程指挥部办公室 82639610 市房地产交易所 83691485市城市房屋拆迁管理办公室 82636189市房改办 82644981市供热办 83620733,83640065市工商局 83672540市教委 84649451市社会文化管理办公室 84602747市综合管理监察大队 83635598市对外经济技术合作管理中心 83623622市公用局 83629021开发办 83649710市煤气供应公司 84304115市煤气报修服务中心 84301111(昼夜)煤气客服热线:96177电业客服热线:95598市自来水供应公司 83690834市城建局 83627577市排水处 86653932中山区城建局 82680225西岗区城建局 83635643沙河口区城建局 84311600甘井子区城建局 86602122市工商局 83672540市国税局 83687665市地税局 82813473市物价局 83622576市物价检查所 83636059市环保局 84326054市内供电局 82612387(昼)82612374(夜)中山供电局 82711222(昼夜)甘井子供电局 86652368(昼)86658292(夜)中山环保分局 82659401西岗环保分局 82499596沙河口环保分局 84306461甘井子环保分局 86653384市土地规划局 83634278土地规划局中山分局 82808719土地规划局西岗分局 83625012土地规划局沙河口分局 84312422土地规划局甘井子分局 86641909市劳动局 83634982市劳动监察大队 82819976电信运行维护部 82808080电信经营业务部 82819090邮政中心局 82806060市外管中心 83623622市纠风办 83624245市有线电视公司 83611308(昼夜)有线电视公司中山区管理所 82815833有线电视公司西岗区管理所 83692094有线电视公司沙河口区管理所 84635894有线电视公司甘井子区管理所 86597841中山区信访办 82637388西岗区信访办 83635970沙河口区信访办 84312097甘井子区信访办 86652493旅顺口区信访办 86613021开发区信访办 87611599金州区信访办 87682154庄河市信访办 88612470普兰店市信访办 89613339瓦房店市信访办 85616950长海县信访办 88682315市委、市政府信访办 83632274注:*所注号码为免费拨打电话媒体电话:半岛晨报:82488888;大连晚报:84323110;新商报:82825110;二十一点:84540091;新视点:84540099;市长信箱/togov/mayor/世界知名品牌的网站Biotherm(碧儿泉)Bobbibrown(芭比布朗) BodyShop(美体小铺) /http://www.thebodyshop.ca //thebodyshop-ca / Borghese(贝佳斯) /Crabtree&Evelyn /Caudalie(泰奥菲)Cellex-C(左旋)Chanel(夏奈儿)/fb/index.cfm Christan Dior(克里斯蒂奥)Clarins(娇韵诗)http://www.clarins.frCleDePeauClinique(倩碧)Covergirl(封面女郎)CovermarkDarphin(达芬)http://www.darphin.frDEBON(蝶妆)Decleor(思妍麗) /DHC/retailDove(多芬) /Elizabeth Arden(伊莉莎白雅顿)Esteelauder(雅诗兰黛)Ettusais(艾杜紗)http://www.ettusais.co.jpEtude(爱丽)http://www.etude.co.krFancl(芳凯尔)http://www.fancl.co.jpGlycel(卡诗儿)GuerLian(娇兰)http://www.guerlain.frH2O(水貝儿) ;Helena Rubinstein(赫莲娜)IPSAhttp://www.ipsa.co.jpJohnson(强生) /Juvena(柔美娜)http://www.juvena.ch/juv/juvena/de/iframe/start.html Kanebo(佳丽宝)http://www.kanebo.co.jp/english/Index.htmKOSE(高丝)http://www.kose.co.jp(雪肌精) ×La PrairieLancome(兰蔻)Lamer(海洋拉娜)/brands/lamer.html L"Occitane(欧舒丹)L"Oreal(欧莱雅)MacMaryKay(玫琳凯) /http://www.marykay.ca/home/Search.htmMax Factor(蜜斯佛陀)Maybelline(美宝莲)Neutrogena(露得清)Nina Ricci(莲娜丽姿)http://www.ninaricci.fr/defaultFS.htmNivea(妮维雅)NuskinNuxeNoxzema /Olay(玉兰油)Origins(品木宣言)Orlane(幽兰)http://www.orlane.frPolaProactive /Revlon(露华浓)Roc /Shu Uemura(植村秀)http://www.shu-uemura.co.jp /Tony & Tina (托尼蒂娜) /Vichy(薇姿)http://www.vichy.frYves Rocher(伊夫罗谢)ZAAnnaSui(安娜苏)Shiseido(资生堂)http://www.shiseido.co.jp/e/index.htmSisley(希思黎)http://www.sisley.tm.frSK2Sofina(苏菲娜)http://www.sofina.co.jpSonia Rykiel(索妮亚丽奈尔)http://www.soniarykiel.frAveda(艾凡達)http://www.aveda.co.jpAvene(雅漾)http://www.avene.co.jpAvon(雅芳)http://www.avon.ca/flash2/lang.htmlNONON男版http://mensnonno.shueisha.co.jp/home.html JILLEhttp://www.futabasha.co.jp/new/jille_latest.html JUNNIEhttp://www.fusosha.co.jp/juniepage/junie.html VIVI/vivi /non-nohttp://non-no.shueisha.co.jp //oggi /FINEhttp://www.hinode.co.jp/public/fine /FARU/frau /RAY /CAWAII /SEVENTEENhttp://st.shueisha.co.jp /POPTEEN/index2.html POPTEEN(TW)/asp/mag/PTN/index.asp smarthttp://www.takarajimasha.co.jp/smart / SPURhttp://spur.shueisha.co.jp /ZIPPERhttp://www.shodensha.co.jp/zipper / MELONET(中小学生看滴)http://www.melonet.jp /PICHI LEMON(中小学生看滴) /i-Voce/voce /with/with /ELLE (日版ELLE)http://www.elle.co.jp /CUTIEhttp://www.takarajimasha.co.jp/cutie / CanCam/cancam /BAILAhttp://baila.shueisha.co.jp /MOREhttp://more.shueisha.co.jp /MINIhttp://www.takarajimasha.co.jp/mini /MINA/index.htmlhttp://www.takarajimasha.co.jp/spring /SWEEThttp://www.takarajimasha.co.jp/sweet /OLIVEhttp://olive.magazine.co.jp /PS(PRETTY style) /SEDAhttp://www.hinode.co.jp/public/seda /HARPER'S BAZAARhttp://www.bazaar.co.jp /カジカジ(关西的时尚杂志,有街头随拍) /Vingtainehttp://www.hfm.co.jp/magazines/ving...opics/index.htmEF(依人风尚日版) /style(OL )http://kodansha.cplaza.ne.jp/style /Make up Magazine (看名字就知道是关于MAKE UP的杂志啦) /VOGUE(日版)http://www.vogue.co.jp/splash.htmlBOON(日本人气第一的男性杂志,有街头随拍) /FINEBOYS (男生的杂志) /集英社(有多本杂志)http://www.shueisha.co.jp /光文社(介绍各种时尚杂志和书籍,JJ,CALSSY,VERY。
小型电话号码查询系统王雨娉目录摘要 (1)1绪论 (1)2系统分析 (1)2.1功能需求 (1)2.2性能需求 (2)3总体设计 (2)3.1功能模块设计 (2)3.2系统设计方案 (3)4详细设计 (3)4.1系统信息添加和结果显示模块 (3)4.2系统信息保存和清空操作模块 (6)4.3系统信息查询模块 (7)5调试与测试 (8)5.1调试 (8)5.2测试 (10)6结论 (9)结束语 (9)参考文献 (9)附录1-用户手册 (10)附录2-源程序 (15)摘要当前社会已经步入了一个信息化的时代,随着社会劳动生产率的不断提高,与之相对应的信息查询服务系统也在不断的完善。
本程序运用查找函数和结构体的建立,构建的哈希表采用再哈希的方法解决冲突,实现电话号码及有相关信息的准确查询,同时编译了对信息的保存和清空函数,使该电话号码的查询系统操作起来更加自如。
本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。
关键词:哈希表;再哈希法;查找函数1绪论高度信息化的年代里,电话号码信息系统的出现正是当前时代发展的需要,它的出现给我们的工作生活无疑带来了很多方便。
编程人员通过对电话号码及其相关信息查询功能的不断编写和完善,来尽量满足人们的需要。
根据课程设计任务书要求,本程序的开发主要完成以下功能和性能。
(1)设置一个包括用户姓、地址、号码的信息的结构体。
(2)编译void Create()函数来创建结点,运用int Apend()函数来添加结点信息,通过node* Input()函数来对用户的信息进行存储。
(3)编译函数void List()、void List2()分别根据号码和姓名的查询方式显示用户信息的哈希结果,并且结果会在屏幕上显示出来。
(4)编译void Find(char num[11]) 、void Find2(char name[8])函数分别根据用户的电话号码和姓名对用户的详细信息进行查找,当要查询的结果不在系统存储时,屏幕上将显示“无此记录”。
湖南工业大学课程设计资料袋计算机与通信学院学院(系、部)2013 ~ 2014 学年第二学期课程名称数据结构指导教师朱文球职称副院长学生姓名洪智全专业班级计算机科学与技术1201 学号12408100103题目简单个人电话号码查询系统成绩 B 起止日期2013 年 6 月20 日~2013 年6 月27 日目录清单数据结构课程设计设计说明书简单个人电话号码查询系统课程设计时间: 2013.6.24-2013.6.27学生姓名洪智全班级计算机科学与技术1201 学号12408100103成绩 B指导教师(签字)一课题任务人们在日常生活中经常要查找某个人或某个单位的电话号码,本实验将实现一个简单的个人电话号码查询系统,根据用户输入的信息(例如姓名等)进行快速查询。
二、设计要求(1)在外存上,用文件保存电话号码信息;(2)在内存中,设计数据结构存储电话号码信息;(3)提供查询功能:根据姓名实现快速查询;(4)提供其他维护功能,例如插人、删除、修改等。
三、程序的节点设置现假设链表节点仅含有一个数据域和一个指针域。
数据域是为了描述通讯者的相关信息,定义通讯者的节点类型:typedef struct node{char name[20];//客户名字long int tel;//电话号码、struct node *next;}node,*lnode;四、程序的功能设计创建:创建通讯录文件插入:插入通讯录记录输出:显示通讯录记录删除:删除通讯录记录查找:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件中五、程序的数据设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:结构体的建立,定义客户的姓名,电话号码。
模块三:个人电话号码查询系统使用菜单声明函数void welcome(),对整个系统进行声明模块四:用户信息的输入用lnode模块五:显示学生信息,用void show()控制显示用户的信息模块六:用户信息的查找用void search()查找函数,通过输入姓名查找电话号码。
模块七:插入用户信息,通过void insert()为插入函数,每次插入都从最后面插入。
模块八:删除用户信息通过void delete()实现用户信息的删除,模块九:保存用户信息到外存,用void save实现用户信息的存储。
模块十:修改用户信息,用void revise()实现对用户信息进行修改。
模块十一:结束输入模块,exit(0)结束输入。
六、程序的函数设计#include<stdio.h>#include<stdlib.h>#include<string.h>#include<process.h>typedef struct node{char name[20];long int tel;struct node *next;}node,*lnode;node *head=NULL;int lengh;lnode enter() //输入客户信息{node *p1,*p2;int n=0;long int x;char y[20];lengh=0;int i=0;do{if(head==NULL){p1=(node*)malloc(sizeof(node));head=p1;}printf("\t 请输入姓名");scanf("%s",y);printf("\t 请输入电话号码");scanf("%ld",&x);p2=(node*)malloc(sizeof(node));p2->tel=x;strcpy(p2->name,y);p1->next=p2;p2->next=NULL;p1=p1->next;lengh++;n++;printf("有%d条客户信息\n",lengh);printf("\n\t继续输入请按,结束输入请按返回主界面:");scanf("%d",&i);system("cls");}while(i==1);return head;}void show(){node *p=head->next;printf("客户信息如下:\n");while(p!=NULL){printf("\n\t姓名\t\t电话号码:\n");printf("\t%s\t\t%d\n\n",p->name,p->tel);p=p->next;}return;}void search(){char ma[20];node *p=head->next;printf("\t请输入要查找的客户名字:\n");scanf("%s",ma);while(p!=NULL){if(!(strcmp(p->name,ma))){printf("客户%s的号码如下:\n",ma);printf("\t%ld\n",p->tel);return;}p=p->next;}if(p==NULL){printf("无此客户号码:\n");return;}}void insert(){node *p,*q;p=head;q=(node*)malloc(sizeof(node));printf("\t\n请输入要插入客户的姓名\n");scanf("%s",q->name);printf("\t\n请输入客户号码\n");scanf("%ld",&q->tel);while(p!=NULL){if(q->tel==p->tel){if(q->name==p->name){printf("\t\n该用户已存在,不需要插入\n");}return;}p=p->next;}p=head;p=p->next;q->next=p->next;p->next=q;lengh++;printf("\t\n插入成功\n");return;}void Delete(){char n[20];node *p,*q;q=head,p=head->next;printf("请输入要删除的客户姓名:");scanf("%s",n);while(p!=NULL){if(!(strcmp(p->name,n))){q->next=p->next;free(p);lengh--;printf("\n\t删除成功\n");return;}p=p->next;q=q->next;}if(p==NULL){printf("找不到该客户信息\n");return;}}void revise(){char ma[20];node *p,*q;int mun;p=head,q=head->next;printf("\n\t请输入需要修改的客户的名字:");scanf("%s",ma);while(q!=NULL){if(!(strcmp(q->name,ma))){printf("\n\t请输入需要修改客户的电话号码:");scanf("%d",&mun);q->tel=mun;return;}p=p->next;q=q->next;}if(q==NULL){printf("\t找不到该客户信息\n");return;}}void save() //保存{FILE *p;if(lengh==0){printf("没有客户信息可保存\n");return;}p=fopen("a.txt","w");//只写方式打开a.txtprintf("\n存文件。
\n");fwrite(head,sizeof(node)*lengh,1,p);//写入文件fclose(p);printf("\n%d记录已经存入文件,请继续操作\n",lengh);}void welcome(){printf("\t\t\t---------------------------\n");printf("\t\t\t\t请输入选择|\n");printf("\t\t\t0|\t结束输入信息\t|\n");printf("\t\t\t1|\t输入客户信息\t|\n");printf("\t\t\t2|\t显示客户信息\t|\n");printf("\t\t\t3|\t查找客户信息\t|\n");printf("\t\t\t4|\t插入客户信息\t|\n");printf("\t\t\t5|\t删除客户信息\t|\n");printf("\t\t\t6|\t保存客户信息\t|\n");printf("\t\t\t7|\t修改客户信息\t|\n");printf("\t\t\t---------------------------\n"); }int main(){lnode p=NULL;int a;//输入选择char str[10];//输入字母welcome();for( ; ; ){printf("\t\n\t您的选择是:");scanf("%d",&a);system("cls");if(a<0||a>7){printf("输入错误");return 0;}switch(a){case 0:exit(0);case 1:enter();system("cls");welcome();break;case 2:if(head){show();//显示。