【www.gbppp.com--生活常识】
联通标准固定电话资费
国内电话号码和手机号常识
以前电信移动邮政还没有分家阿,邮电资源是邮电部(现信息产业部)统一调度的。在分配号段的时候,做了一些细致的规划,大体是这样:
10开头:电信服务号码,如103国际半自动挂号,108国际对方付费电话,10000中国电信服务中心,10010中国联通服务中心,10050中国铁通服务中心,10060中国网通服务中心,10070中国卫通服务中心,10086中国移动服务中心等等
11开头:赋予特种服务号码,如110匪警,111电信内部测试,112报修,113、115国内人工长途挂号,114查号台,116国内人工长途查询,117报时,119火警等
12开头:赋予民用特殊号码,如120(医院),121(天气预报),122交通事故告警,12312保护知识产权举报中心,12315消费投诉热线,12319城建服务,12348法律咨询,12358价格举报中心,12365质量监督,12366纳税服务,12369环境保护投诉,126、127、128、129寻呼台(BP机时代)
所以分配到手机用户时,以13开始做号段。后来分配130~133为联通,134~139为移动,13800138000中国移动充值。
日前新推出号段:以153开始做号段分给联通,以158、159开始做号段分给了移动。
以188开始做号段为TD-SCDMA制式的3G手机,将陆续有预先挑选出来的测试用户使用以“188”为开头的手机号码,在包括北京、青岛、厦门、保定等在内的几大城市中率先试用TD-SCDMA网络。
(查看日志《用号码以“188”开头的TD-SCDMA制式手机 体验读邮件、看手机电视等3G业务》)
其他的特殊号段号码有:
16:声讯类,如160中国电信工人信息服务接入码,166语音信箱业务,167吉通计算机互联网业务接入码,168声讯服务,中国电信公众多媒体网接入码等
17:长途电话服务,如170国内长途全自动话费查询台,173国内立接制长途半自动挂号台,176国内长途半自动查询台,177国内长途半自动班长台,179IP语音服务接入码等
18:部分服务台,如180邮政服务,184邮政编码查询接入码,185国家邮政局电话信息服务接入码,186移动服务中心,188固定电话交费台,189中国电信业务受理特服台等 (大多已停用,或换新号)
19:寻呼接入,191联通无线电人工寻呼接入码,192联通无线电自动寻呼接入码等等 20,30,电话卡服务
另外,8、9开头的号段部分也作电信及民用服务号码
95:金融及民用服务号码,95501深圳发展银行,95502永安财产保险,95505天安保险,
95508广州发展银行,95511中国平安人寿,95512中国平安产险,95515合众人寿,95516中国银联,95518中国人民保险,95519中国人寿保险,95522泰康人寿,95528浦东发展银行,95533中国建设银行,95555招商银行,95556中信银行,95559交通银行,95561兴业银行,95566中国银行,95567中国新华人寿,95568中国民生银行,95569安邦财产保险,95577华夏银行,95585中国联合财保,95588中国工商银行,95590中国大地财产保险,95595光大银行,95596民生人寿保险,95599中国农业银行,95598供电服务,96100民政服务,96118旅游投诉,96178廉政投诉,96198农业信用联社,96310城管执法,95105366中铁快运,95105768海康人寿
400:企业 主被叫分摊付费电话业务,是一项由固网运营商推出的为被叫客户提供一个全国范围内的唯一400号码,并把对该号码的呼叫接至被叫客户事先规定目的地(电话号码或呼叫中心)的全国性智能网业务。企业申请了400业务,无疑将有效提高企业的市场形象,但是如果背后没有呼叫中心作为支撑,400也就只是一个将来电转移的号码,其价值也大大降低。如:4006789000宅急送4008108000 DHL快递4008111111顺丰速运4008208388 UPS快递4008861888联邦快递4008888400上海证券交易所
800:为受话人集中付费业务,它的主要特征是由被叫方(企业)集中支付话费,而主叫方(客户)不支付任何费用。800电话的使用充分体现了企业“客户至上”的先进理念,它在国外的使用已是十分普遍。
以上号码均作分配,内容太多未详细列出,部分号码目前已经升级,如电信服务台,天气预报,邮政服务台等等。
手机为什么是11位数
国内的手机号码,是由国家信息产业部统一规划的。原来是10位,由于用户的不断增长,10位的号码不够使用,于是升为11位。
至于为什么是11位,一方面是由号码格式决定的,另一方面,就是上面说的号码段容量问题。
现在的手机号码格式是 3位网号+4位HLR号+4位的个人代码,这样的配置既能够最大程度的利用号码资源,不至于浪费,又能够在各运营商各地区之间进行灵活分配。
中国的手机号码目前是11位,是世界上最长的电话号码(11位的号码,又是以13、15、18开头的,基本上可以判断为中国手机,有些号码会中间人为加一些横线,不要被迷惑。)为什么是11位呢,原因很简单:
因为一个11位数的组合数是一个最小的12位数,一共有千亿个号码。而且即便除去头两位的“13”剩下9位数,而一个9位数的组合数是一个最小的10位数,也就是从13000000000——13999999999一共可以容纳10亿个不同的号码,中国才多少人?10来亿人,电话普及率还没达到100%吧,所以完全够用。即便到未来普及率到100%或者一人两个电话的时候,我们把首位的“1”固定下来,第二位换一个数字就又增加10亿个号码的容量。
既然对于我们这个人口巨型的大国来说这点电话号码就够用了,世界上哪个国家有我们的人口多?呵呵,所以他们都没有这么长的电话号码。
#include<iostream> #include<fstream> #include<string> using namespace std; int x=0; char a; int j=1;
struct TeleNumber //数据类 { char name[10]; //姓名
double phoneNumber; //固定电话号码 double mobileNumber; //移动电话号码 char email[10]; //电子邮箱 int s; TeleNumber * Next; void ReadFile(istream & in); void input(); void display(); } ;
void TeleNumber::ReadFile(istream & in) //从文件把数据读入到程序 { in>>name>>phoneNumber>>mobileNumber>>email; }
void TeleNumber::input() //信息输入 { cout<<"请输入姓名"<<endl; cin>>name; cout<<"请输入固定电话号码"<<endl; cin>>phoneNumber; cout<<"请输入移动电话号码"<<endl; cin>>mobileNumber; cout<<"请输入电子邮箱"<<endl; cin>>email; s=j++; }
void TeleNumber::display() //信息输出 { cout<<"姓名:"<<name<<'\t'<<"固定号码:"<<phoneNumber<<'\t' <<"移动电话号码:"<<mobileNumber<<'\t'<<"电子邮箱:"<<email<<endl; }
class TeleMessage //功能类 { public:
TeleMessage(); //构造数据结构 ~TeleMessage(); //释放单链表 void Save(); //数据保存到文件 TeleNumber * Search(char *); //信息查找 void Sort(); //排序 void Insert(); //插入 void Remove(); //删除 void Change(); //更改 void Show(); //显示 void Swap(TeleNumber *,TeleNumber *); private: TeleNumber * End,* Head; ifstream in; ofstream out; };
TeleMessage::TeleMessage() { Head=new TeleNumber; Head->Next=new TeleNumber; End=Head->Next; in.open("TeleNumber.text"); if(!in) cout<<"电话系统中没有任何号码"<<endl; else { while(!in.eof()) 到程序 { End->ReadFile(in); if(End->name[0]=='\0')break; End->Next=new TeleNumber; End=End->Next; } in.close(); cout<<"读取电话号码系统成功!"<<endl; } cout<<"输入任意字符键继续"<<endl; cin>>a; }
TeleMessage::~TeleMessage() { TeleNumber * temp; while(Head->Next!=End) {
//两个TeleNumber对象交换数据域 //定义读,写文件对象 //头插法建立单链表 //打开外存文件,看是否有数据存在 //如果有,则打开,并将数据读取 //释放单链表
temp=Head->Next; Head=Head->Next; delete temp; }
delete Head,End; //删除头尾指针 }
void TeleMessage::Save() //保存文件 { out.open("TeleNumber.txt"); //建立外存文件TeleNumber.txt for(TeleNumber *p=Head->Next;p!=End;p=p->Next) out<<p->name<<"\t"<<p->phoneNumber<<"\t"<<p->mobileNumber<<"\t"<<p->email<<endl; //将数据存到外存文件里 out.close(); cout<<"保存成功!"<<endl; }
void TeleMessage::Swap(TeleNumber *p1,TeleNumber *p2) //两个类对象数据域进行交换 { TeleNumber * temp=new TeleNumber; strcpy(temp->name,p1->name); strcpy(temp->email,p1->email); temp->mobileNumber=p1->mobileNumber; temp->phoneNumber=p1->phoneNumber; temp->s=p1->s; strcpy(p1->name,p2->name); strcpy(p1->email,p2->email); p1->mobileNumber=p2->mobileNumber; p1->phoneNumber=p2->phoneNumber; p1->s=p2->s; strcpy(p2->name,temp->name); strcpy(p2->email,temp->email); p2->mobileNumber=temp->mobileNumber; p2->phoneNumber=temp->phoneNumber; p2->s=temp->s; }
void TeleMessage::Sort() //起泡排序 { TeleNumber *p=NULL,*q=NULL; int exchange=j-1; int bound; int i; while(exchange) { bound=exchange;
exchange=0; for(p=Head->Next,i=1;i<bound;i++,p=p->Next) if(p->mobileNumber>p->Next->mobileNumber) { Swap(p,p->Next); //调用交换函数 exchange=p->s; } } Show(); }
void TeleMessage::Insert() //插入 { End->input(); //从单链表尾部插入 End->Next=new TeleNumber; End=End->Next; cout<<endl<<"插入成功"<<endl; }
void TeleMessage::Remove() //删除 { char name[20]; TeleNumber * p=new TeleNumber,*temp=NULL; cout<<"请输入要删除人的姓名:"<<endl; cin>>name; p->Next=Search(name); //先进行查找,找到所要删除的结点 if(Search(name)) { temp=p->Next; p->Next=p->Next->Next; //摘链 delete temp; cout<<"\t\t删除成功!"<<endl; } else { cout<<"\t\t没有找到!"<<endl; } }
TeleNumber * TeleMessage::Search(char * name) { for(TeleNumber *p=Head->Next;p!=End;p=p->Next) if(!strcmp(p->name,name)) { if(x==4) {
p->display(); return p; } else return p; } if(x==4) cout<<"查无此人"<<endl; return 0; }
void TeleMessage::Change() //修改信息 { char name[20]; cout<<"请输入要修改的人的姓名:"; cin>>name; if(Search(name)) { cout<<"\t\t已找到个人的信息,请输入新的信息!"<<endl; Search(name)->input(); cout<<"修改成功!"<<endl; } else {
cout<<"\t\t没有找到!"<<endl; } }
void TeleMessage::Show() { for(TeleNumber * p=Head->Next;p!=End;p=p->Next) p->display(); }
int main() { bool flag=true; TeleMessage tele; char name[20]; while(flag) { system("cls"); cout<<" 简单个人电话号码查询系统"<<endl; cout<<"1.增加电话号码"<<endl; cout<<"2.显示电话号码"<<endl; cout<<"3.排序个人电话"<<endl;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct TeleNumber
{
char name[10]; //姓名
char phoneNumber[20]; //固定电话号码
char mobileNumber[20]; //移动电话号码
char area[20]; //归属地
struct TeleNumber *next;
} TeleNumber,*TeleLink;
TeleLink InitList(); //初始化链表
void menu(); //系统菜单
void Tele_Insert(TeleLink L,int Num); //插入联系人
void Info_Search(TeleLink &L); //查找联系人
void Search_Name(TeleLink L); //按姓名查找
void Search_Mobile(TeleLink L); //按移动电话查找
void Search_Area(TeleLink L); //按归属地查找
void Search_Phone(TeleLink L); //按固定电话查找
void Info_Change(TeleLink L); //修改联系人
void Tem_Delate(TeleLink L); //删除联系人
void Save(TeleLink &L); //保存联系人
void sort(TeleLink &L); //对联系人排序
void Display_Single(TeleLink tem); //单个联系人输出
void Display_All(TeleLink L); //输出所有联系人
void read(TeleLink &L); //从文件中读取
int main()
{
menu();
return 0;
}
TeleLink InitList() //初始化链表
{
TeleLink L=(TeleLink)malloc(sizeof(TeleNumber));
if(L)
{
L->next=NULL;
return L;
}
else
return(NULL);
}
void menu() //系统菜单
{
TeleLink L;
L=InitList();
int n,i;
bool flag=1;
while(flag==1)
{
system("cls");
printf("\t\t\t**********************************\n"); printf("\t\t\t\t个人电话号码查询系统\n");
printf("\t\t\t**********************************\n");
printf("\t\t\t\t请选择您所需服务\n\n");
printf("\t\t\t\t1.增加联系人\n\n");
printf("\t\t\t\t2.查询联系人\n\n");
printf("\t\t\t\t3.修改联系人\n\n");
printf("\t\t\t\t4.删除联系人\n\n");
printf("\t\t\t\t5.保存联系人\n\n");
printf("\t\t\t\t6.输出联系人\n\n");
printf("\t\t\t\t7.读取联系人\n\n");
printf("\t\t\t\t0.退出系统\n\n");
printf("\t\t\t**********************************\n"); printf("\t\t\t\t请选择:");
scanf("%d",&n);
switch(n)
{
case 0:
exit(0);
case 1:
int NUM;
system("cls");
printf("\t\t\t**********************************\n"); printf("\t\t\t\t 增加联系人 \n");
printf("\t\t\t**********************************\n\n"); printf("请输入要添加人的数目:");
scanf("%d",&NUM);
Tele_Insert(L,NUM); //调用插入函数 printf("\n是否返回上一级菜单?(0/1)"); scanf("%d",&i);
if(i==1)
{
flag=1;
break;
}
else
{
flag=0;
break;
}
break;
case 2:
Info_Search(L); //调用查找函数
printf("\n是否返回上一级菜单?(0/1)"); scanf("%d",&i);
if(i==1)
{
flag=1;
break;【固定电话查询】
}
else
{
flag=0;
break;
}
break;
case 3:
Info_Change(L); //调用修改函数
printf("\n是否返回上一级菜单?(0/1)"); scanf("%d",&i);
if(i==1)
{
flag=1;
break;
}
else
{
flag=0;
break;
}
printf("%d",flag);
break;
case 4:
Tem_Delate(L); //删除联系人
printf("\n是否返回上一级菜单?(0/1)"); scanf("%d",&i);
if(i==1)
{
flag=1;
break;
}
else
{
flag=0;
break;
}
printf("%d",flag);
break;
case 5:
sort(L); //排序函数
Save(L); //保存
printf("保存成功!\n");
printf("\n是否返回上一级菜单?(0/1)"); scanf("%d",&i);
if(i==1)
{
flag=1;
break;
}
else
{
flag=0;
break;
}
case 6:
sort(L); //排序
Display_All(L); //输出
printf("\n是否返回上一级菜单?(0/1)"); scanf("%d",&i);
if(i==1)
{
flag=1;
break;
}
else
{
flag=0;
break;
}
case 7:
read(L); //读取数据
printf("读取成功!\n\n");
printf("是否返回上一级菜单?(0/1)"); scanf("%d",&i);
if(i==1)
{
flag=1;
break;
}
else
{
flag=0;
break;
}
printf("%d",flag);
break;
}
}
}
void Tele_Insert(TeleLink L,int Num) //插入联系人 {
TeleLink Head,q=NULL;
Head=L;
for(int i=0; i<Num; i++)
{
TeleLink p = (TeleLink)malloc(sizeof(TeleNumber)); getchar();
printf("\n请输入联系人姓名: ");
gets(p->name);
fflush(stdin);
printf("\n请输入固定电话: ");
gets(p->phoneNumber);
fflush(stdin);
课程设计任务书
2011—2012学年第1学期 电子与信息工程系 专业 班级
课程设计名称: 数据结构课程设计
设计题目: 简单个人电话号码查询系统 完成期限:自2012 年 1月2日至2012 年 1月 6 日共 1 周
一、设计目的
熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。
二、设计要求
在本课程设计过程中要求学生:
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩。
(3)学生在接受设计任务后,根据要求认真完成。
(4)认真编写课程设计报告。
三、设计内容
1) 问题描述
人们在日常生活中经常需要查找某个人或某个单位的电话号码,本实验将实现一个简单的个人电话号码查询系统,根据用户输入的信息(例如姓名等)进行快速查询。
2) 基本要求
(1) 在外存上,用文件保存电话号码信息;
(2) 在内存中,设计数据结构存储电话号码信息;
(3) 提供查询功能:根据姓名实现快速查询;
(4) 提供其他维护功能:例如插入、删除、修改等;
(5) 按电话号码进行排序。
3) 设计思想
由于需要管理的电话号码信息较多,而且要在程序运行结束后仍然保存电话号码信息,所以电话号码信息采用文件的形式存放到外存中。在系统运行时,需要将电话号码信息从文件调入内存来进行查找等操作,为了接收文件中的内容,要有一个数据结构与之对应,可以
设计如下结构类型的数组来接收数据:
const int max=10;
struct TeleNumber
{
string name; //姓名
string phoneNumber; //固定电话号码
string mobileNumber; //移动电话号码
string email; //电子邮箱
} Tele[max];
为了实现对电话号码的快速查询,可以将上述结构数组排序,以便应用折半查找,但是,在数组中实现插入和删除操作的代价较高。如果记录需频繁进行插入或删除操作,可以考虑采用二叉排序树组织电话号码信息,则查找和维护都能获得较高的时间性能。更复杂地,需要考虑该二叉排序树是否平衡,如何使之达到平衡。
四、参考文献
1.王红梅.数据结构.清华大学出版社
2.王红梅.数据结构学习辅导与实验指导.清华大学出版社
3. 严蔚敏, 吴伟民.数据结构(C语言版). 清华大学出版社
目录【固定电话查询】
一、需求分析........................................................ 2
二、总体设计........................................................ 2
三、详细设计........................................................ 4
四、调试与测试...................................................... 9
五、关键源程序清单和执行结果........................................ 9
六、感想与体会..................................................... 17
1
一、需求分析
1.程序的功能:
能够完成通讯录链表的建立、通讯者的插入、通讯者的查询、显示所有通讯者的信息、通讯录修改除名字外的其他信息、把txt文本中的信息导入到程序中、保存程序中打的信息导出到文本中保存以及通讯录表的退出等功能
2. 输入输出的要求:
程序运行后,给出7个菜单项的内容和输入提示:
1.增加电话号码
2.显示电话号码
3.排序个人电话
4.查找个人电话
5.删除个人信息
6.修改个人信息
7.保存个人信息
二、总体设计
图一 程序框架图
2
图二 程序设计流程图
3
/**********************************************************/
/*人们在日常生活中经常需要查找某个人或某个单位的电话号码, */
/*本程序将实现一个简单的个人电话号码查询系统,根据用户输入*/
/*的信息(例如姓名等)进行快速查询。 */
/**********************************************************/
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int x=0;
char a;
int j=1;
struct TeleNumber //电话号码类
{
char name[10]; //姓名
int phoneNumber; //固定电话号码
int mobileNumber; //移动电话号码
char email[10]; //电子邮箱
int s;
TeleNumber * Next; //下一指针
void ReadFile(istream & in); //读取数据文件
void input(); //数据输入函数
void display(); //数据显示函数【固定电话查询】
} ;
void TeleNumber::ReadFile(istream & in) //从文件把数据读入到程序 {
in>>name>>phoneNumber>>mobileNumber>>email; //将文件信息读到相关变量里面 }
void TeleNumber::input() //信息输入
{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入固定电话号码"<<endl;
cin>>phoneNumber;
cout<<"请输入移动电话号码"<<endl;
cin>>mobileNumber;
cout<<"请输入电子邮箱"<<endl;
cin>>email;
s=j++; //记录插入的人的信息的数量
}
void TeleNumber::display() //信息输出
{
cout<<"姓名:"<<name<<'\t'<<"固定号码:"<<phoneNumber<<'\t'
<<"移动电话号码:"<<mobileNumber<<'\t'<<"电子邮箱:"<<email<<endl;
}
class TeleMessage //功能类
{
public:
TeleMessage(); //构造数据结构
~TeleMessage(); //释放单链表析构函数
void Save(); //数据保存到文件
TeleNumber * Search(char *); //信息查找
void Sort(); //排序
void Insert(); //插入
void Remove(); //删除
void Change(); //更改
void Show(); //显示
void Swap(TeleNumber *,TeleNumber *); //两个TeleNumber对象交换数据域 private:
TeleNumber * End,* Head;
ifstream in; //定义读,写文件对象
ofstream out;
};
TeleMessage::TeleMessage() //构造函数初始化
{
Head=new TeleNumber; //头插法建立单链表
Head->Next=new TeleNumber;
End=Head->Next;
in.open("TeleNumber.text"); //打开外存文件,看是否有数据存在
if(!in)
cout<<"电话系统中没有任何号码,请输入号码"<<endl;
else
{
while(!in.eof()) //如果有,则打开,并将数据读取到程序
{
End->ReadFile(in);
if(End->name[0]=='\0')break; //如果名字为空
End->Next=new TeleNumber; //为下一个指针分配内存 End=End->Next; //指针下移
}
in.close(); //in对象关闭
cout<<"读取电话号码系统成功!"<<endl;
}
cout<<"输入任意字母继续"<<endl;
cin>>a;
TeleMessage::~TeleMessage() //析构函数释放单链表
{
TeleNumber * temp; //定义一个当前的指针
while(Head->Next!=End)
{
temp=Head->Next;
Head=Head->Next;
delete temp; //逐个释放内存空间
}
delete Head,End; //删除头尾指针
}
void TeleMessage::Save() //保存文件
{
out.open("TeleNumber.txt"); //建立外存文件TeleNumber.txt for(TeleNumber *p=Head->Next;p!=End;p=p->Next)
out<<p->name<<"\t"<<p->phoneNumber<<"\t"<<p->mobileNumber<<"\t"<<p->email<<endl; //将数据存到外存文件里
out.close();
cout<<"保存成功!"<<endl;
}
void TeleMessage::Swap(TeleNumber *p1,TeleNumber *p2) //两个类对象数据域进行交换 {
TeleNumber * temp=new TeleNumber; //定义一个中转指针 strcpy(temp->name,p1->name); //将当前要交换指针中间的一个的name值赋值给中间变量
strcpy(temp->email,p1->email);
temp->mobileNumber=p1->mobileNumber;
temp->phoneNumber=p1->phoneNumber;
temp->s=p1->s;
strcpy(p1->n
本文来源:http://www.gbppp.com/sh/440711/
推荐访问:全国固定电话查询 固定电话查询机主姓名