线性电话簿
来源:互联网 发布:软件兼容性测试 编辑:程序博客网 时间:2024/06/03 11:17
#include "stdafx.h"#include<iostream>#include<string>#include<cstring>#include<algorithm>#define LISTINCREMENT 10;//每次扩容增量using namespace std;struct telephonenumber{char name[100];char number[50];};struct telephoneNumberList{struct telephonenumber *elem;//设定基址int leghth;//目前已存在的长度int listsize;//设定长度}List;void CoutTelephone(){telephonenumber *q;if (List.leghth == 0){cout << "不好意思,你没有输入任何信息" << endl;return;}q = List.elem;for (; q < List.elem + List.leghth; q++){cout << "联系人姓名" << endl;cout << q->name << endl;cout << "联系人电话" << endl;cout << q->number << endl;}cout << "输入完毕" << endl;}void Init(telephoneNumberList &t)//初始化电话簿{t.elem = (struct telephonenumber*)malloc(100*sizeof(struct telephonenumber));//申请地址if (!t.elem)//判断是否申请成功{exit(OVERFLOW);}t.leghth = 0;t.listsize = 100;cout << "--------------------------------------" << endl;cout << " 初始化完成" << endl;cout << "--------------------------------------" << endl;}void insert(telephonenumber tt){if (List.leghth >= List.listsize) {//判断是否目前长度超过申请地址长度 List.elem= (struct telephonenumber *)realloc(List.elem, (List.listsize + 10) * sizeof(struct telephonenumber));if (!List.elem) exit(OVERFLOW);List.listsize += 10;}//List.elem[List.leghth].name = tt.name;//List.elem[List.leghth].number = tt.number;strcpy_s(List.elem[List.leghth].name, tt.name);strcpy_s(List.elem[List.leghth].number, tt.number);List.leghth++;cout << "添加成功" << endl;}/*void search(telephoneNumberList *p, telephonenumber tmp){telephonenumber *q;q = List.elem;for (int i = 0; i < List.leghth; i++){q = &(List.elem[List.leghth]);if (q->name == tmp.name){cout << "已经找到联系人" << endl;cout << "该联系人的电话是:" << endl;cout << tmp.number << endl;}}cout << "对不起,你所查找的联系人不存在" << endl;cout << "是否选择添加该联系人??是输入1,否则输入0" << endl;cin >> x;}*/void DelteNumber(int k){if (k > List.leghth || k<1){cout << "对不起,所输入的位置不存在,请重新再输入" << endl;int x;cin >> x;DelteNumber(x);}telephonenumber *q, *p;p = &(List.elem[k - 1]);q = List.elem + List.leghth - 1;for (++p; p <= q; ++p){*(p - 1) = *p;}--List.leghth;cout << "删除完成" << endl;}void InsertNumber(int k){if (List.leghth >= List.listsize) {//判断是否目前长度超过申请地址长度List.elem = (struct telephonenumber *)realloc(List.elem, (List.listsize + 10) * sizeof(struct telephonenumber));if (!List.elem) exit(OVERFLOW);List.listsize += 10;}if (k > List.leghth||k<1){cout << "对不起,所输入的位置不存在,请重新再输入" << endl;int x;cin >> x;InsertNumber(x);}telephonenumber tn;cout << "请输入联系人姓名" << endl;cin>> tn.name;cout << "请输入联系人电话" << endl;cin >> tn.number;telephonenumber *p, *q;p = &(List.elem[k - 1]);for (q = &(List.elem[List.leghth - 1]); q>=p; --q){*(q + 1) = *q;}*p = tn;List.leghth++;cout << "插入成功!" << endl;}int main(){string x;telephonenumber tn;int tot = 0;Init(List); cout << " 欢迎使用'关闭程序即失去'电话薄" << endl;cout << " 添加电话号码请输入+" << endl;cout << " 删除电话号码的位置请输入-" << endl;cout << " 查询联系人请输入#" << endl;cout << " 查询某个位置请输入/" << endl;cout << " 打印电话簿请输入@" << endl;cout << " 退出程序请输入*" << endl;for(;;){cin >> x;if (x == "+"){cout << "请输入增加联系人的姓名" << endl;cin >> tn.name;cout << "请输入增加联系人的电话" << endl;cin >> tn.number;tot++;insert(tn);}if(x=="-"){int k;cout << "输入您要删除的位置" << endl;cin >> k;DelteNumber(k);}else if(x=="@"){CoutTelephone();}/*else if(x=="#"){int k;cout << "如果只知道联系人姓名请输入1,否则输入2" << endl;cin >> k;if (k == 1){cout << "请输入要查找的联系人姓名" << endl;cin >> tn.name;}else{cout << "请输入要查找的联系人姓名" << endl;cin >> tn.name;cout << "请输入要查找的联系人电话" << endl;cin >> tn.number;}search(p, tn);}*/else if (x == "/"){int k;cout << "输入您要添加的位置" << endl;cin >> k;InsertNumber(k);}else if(x=="*"){cout << "感谢您的使用,您会永久失去这些号码的" << endl;break;}}}
0 0
- 线性电话簿
- 电话簿
- 无名电话簿
- C#电话簿
- 电话簿项目
- 简易电话簿
- JAVA电话簿
- 通信簿,电话簿
- WinCE智能手机电话簿
- BREW:电话簿管理变量
- 如何利用反向电话簿
- 如何利用反向电话簿
- Trie——电话簿
- java:简单电话簿
- 课程设计--简易电话簿
- JAVA电话簿2
- 电话簿维护程序
- 小鲨鱼(shayoo)电话簿 bt
- 多选本地相册中的图片并展示(仿QQ空间动态发送页面)上传至服务器
- 天净沙 秋思
- html中的meta
- 1001. 害死人不偿命的(3n+1)猜想
- xml数据模板
- 线性电话簿
- this和super的区别
- HDU 2608 0 or 1
- java日志管理--logback
- 运行angularjs项目--安装nodejs,配置项目运行环境
- Sqlserver 常用sql汇总
- app前端请求,接口响应代码一览
- islider滑动控件
- HTTP ERROR 500