(简易手机通讯录管理系统)

合集下载

学生手机通信录管理系统

学生手机通信录管理系统

学生手机通信录管理系统学生手机通信录管理系统文档一、系统说明学生手机通信录管理系统是一款方便学生进行联系人信息管理的应用程序,主要针对学生的使用需求,能够方便地添加、修改、删除联系人信息,同时提供了快速查找和导出通讯录的功能。

二、主要功能1.添加联系人:学生可通过学生手机通信录管理系统添加新的联系人,并可以输入联系人的姓名、电话、邮箱、地址等相关信息。

2.编辑联系人:编辑联系人时,可以修改联系人的信息,例如修改电话号码等。

3.删除联系人:学生可以在学生手机通信录管理系统中删除联系人信息,以避免产生重复的联系人信息。

4.快速查找:学生在需要查找联系人时,可以直接输入姓名或电话号码进行查找,以快速定位到相应的联系人。

5.导出通讯录:学生可以将通讯录导出为CSV文件,以便后续使用。

三、使用说明1.启动系统:学生首先需要下载学生手机通信录管理系统并安装,在安装完成后,启动系统。

2.添加联系人:点击“添加联系人”按钮,填写你需要添加的联系人的姓名、电话、邮箱、地址等相关信息即可。

3.编辑联系人:在学生手机通信录管理系统中选中需要编辑的联系人,然后点击“编辑联系人”按钮进行联系人信息的修改。

4.删除联系人:在学生手机通信录管理系统中选中需要删除的联系人,然后点击“删除联系人”按钮即可删除该联系人。

5.快速查找:在学生手机通信录管理系统中输入“姓名”或“电话”进行快速查找相应的联系人信息。

6.导出通讯录:在学生手机通信录管理系统中点击“导出通讯录”按钮即可将通讯录导出为CSV文件。

四、系统优势学生手机通信录管理系统能够让学生方便地管理联系人信息,避免了联系人重复或管理混乱的情况,以及提供了快速查找和导出通讯录的功能,这些都可以帮助学生高效地管理自己的联系人,成为学生生活中的一项便捷工具。

五、总结学生手机通信录管理系统是一项非常实用的工具,经过使用,它可以帮助学生方便地管理自己的联系人信息,节省时间和精力,成为学生生活中重要的一部分。

个人通信录管理系统..

个人通信录管理系统..

个人通信录管理系统简介个人通信录管理系统是一款基于电子化的通信录管理软件,主要应用于个人通信录的维护、更新、查询和管理。

该系统具有简单易用、高效便捷、信息共享等特点,方便用户在日常生活和工作中使用。

该系统可应用于不同类型的用户,例如企业职工、教师、学生等。

功能登录模块用户在使用个人通信录管理系统前需要进行登录,输入用户名和密码即可登录。

用户信息模块用户可以在该模块中更新个人信息,包括姓名、性别、联系方式、地址等。

用户也可以进行修改和删除自己的个人信息。

通信录模块用户可以在该模块中添加、修改、删除通信录联系人信息,包括姓名、性别、联系方式、地址等。

用户也可以通过查询功能,查找特定联系人信息。

系统还支持导入和导出通信录。

统计模块用户可以在该模块中查看通信录中的联系人数量、性别比例、地域分布等统计信息,方便用户对通信录信息的管理和筛选。

设置模块用户可以在该模块中修改个人账户设置、安全设置等信息,包括修改密码、设置密保等。

使用说明安装个人通信录管理系统支持不同的操作系统,例如Windows、Linux、Mac OS等,用户可以根据自己的系统选择对应的安装包下载。

登录用户需要输入自己的用户名和密码,若忘记密码可通过找回密码功能或联系管理员重置。

使用用户可以按照系统提供的功能,对个人信息和通信录进行维护、更新、查询和管理。

导入和导出用户可以从本地文件导入通信录信息,也可以将通信录信息导出到本地文件。

个人通信录管理系统极大地方便了用户在通讯录的维护和查找,增加了日常工作和生活的便捷性。

该系统具有简单易用、高效便捷、信息无纸化等特点,对提高工作效率和保障信息安全具有积极的促进作用。

(简易手机通讯录管理系统)

(简易手机通讯录管理系统)

(简易手机通讯录管理系统)一、课题名称简易手机通讯录管理系统(线性表、查找、排序)二、主要内容简易手机通讯录管理系统的设计主要是实现对手机通讯录的管理和相关操作。

基本功能如下:三、课题设计的基本思想,原理和算法描述(1)本次课程设计题目为简易手机通讯录管理系统,主要运用到线性表中顺序表的相关知识,以及顺序查找的思想和冒泡排序算法。

(2)界面设计//菜单函数intmenu(){intc;printf(\☆☆☆☆☆☆☆手机通讯录信息管理系统☆☆☆☆☆☆☆☆\\n\\n\printf(\某某某\\n\printf(\printf(\printf(\printf(\printf(\printf(\printf(\ printf(\某某某\\n\\n\printf(\★请输入您的选择(0-6):\while(1){}returnc;}//主函数voidmain(){SqLit某L;InitLit(L);ytem(\while(1){witch(menu()){cae1:ytem(\信息的增加\\n\cae2:ytem(\信息的查询\\n\canf(\if(c<0||c>6)printf(\▲输入错误!请重新选择:\ elebreak;cae3:ytem(\对信息进行排序\\n\cae4:ytem(\信息的修改\\n\cae5:ytem(\信息的删除\\n\6:ytem(\统计联系人个数cae\\n\}}(3)功能模块的实现初始化顺序表voidInitLit(SqLit某&L)cae0:printf(\再见!\\n\default:printf(\▲输入错误!请重新选择:\}{L=(SqLit某)malloc(izeof(SqLit));L->length=0;}增加信息函数。

定义变量a起标记作用,用于判断输入信息是否与已有信息重复voidLitAdd(SqLit某&L)//增加函数{inta=0;//标记printf(\号码(五位数字!):\printf(\姓名:\printf(\性别:\printf(\家庭住址:\for(inti=0;ilength;i++)//判断是否重号{}if(a==0)L->length++;}查找符合条件的信息的下标并返回到需要调用的函数体中intFindNum(SqLit某&L){printf(\★输入需要进行操作的号码:\charnum[10];canf(\inti=0;while(ilength&&trcmp(L->data[i].num,num)!=0)i++;if(i>=L->length){}returni;if(trcmp(L->data[i].num,L->data[L->length].num)==0){}printf(\该号码已经存在\\n\a=1;break;}④查询信息函数分两种情况:按号码查找与按姓名查找。

通讯录管理系统设计报告

通讯录管理系统设计报告

通讯录管理系统设计报告一、引言通讯录在日常生活中扮演着重要的角色,用来存储和管理各种联系人信息,方便人们随时找到需要联系的人或组织。

随着移动互联网的普及,通讯录的管理变得更加便捷和高效。

为了提高通讯录的管理效率,我们设计并开发了一款通讯录管理系统。

二、系统概述通讯录管理系统是一个基于Web的应用程序,用户可以通过浏览器访问系统,进行通讯录的管理操作。

系统主要包括以下功能:•用户登录与注册:用户可以注册新账号,并通过账号密码登录系统。

•联系人管理:用户可以添加、编辑、删除联系人信息,包括姓名、电话号码、邮箱等。

•分组管理:用户可以创建分组并将联系人归类到不同分组。

•搜索功能:用户可以通过关键词搜索联系人信息。

•导出和导入功能:用户可以将联系人信息导出为Excel表格,并可以通过Excel文件导入联系人到系统中。

三、系统架构通讯录管理系统采用了前后端分离的架构,前端使用Vue.js框架开发,提供友好的用户界面;后端使用Node.js和Express框架搭建RESTful API,负责数据的存储和管理。

系统中的数据存储在MySQL数据库中,用户的密码使用bcrypt进行加密存储,确保用户信息的安全性。

同时,系统对用户权限进行了细致管理,保障用户在系统中的数据安全。

四、系统界面系统的界面设计简洁直观,用户可以轻松进行操作。

主要包括登录页面、通讯录首页、联系人管理页面、分组管理页面等。

用户登录页面:[登录页面截图]通讯录首页:[通讯录首页截图]联系人管理页面:[联系人管理页面截图]五、系统特色•简洁高效:系统操作简单直观,提供了快速的联系人管理功能。

•个性化定制:用户可以根据自己的需求创建分组,快速查找联系人。

•数据安全:采用了加密技术和权限管理,确保用户数据的安全性。

•导入导出功能:支持Excel文件导入导出,方便用户管理大批量联系人信息。

六、未来展望通讯录管理系统将继续进行优化和迭代,引入更多智能化功能,如联系人推荐、消息提醒等,提升用户体验。

Android手机通讯录(源码)

Android手机通讯录(源码)

Android⼿机通讯录(源码) 简易⼿机通讯录⼀:功能模块 1.主界⾯,通过listview 展⽰所有联系⼈信息,并在没有联系⼈时给出友好提⽰ 2.主界⾯.显⽰最近查看的某个联系⼈信息 3.主界⾯,可以长按某联系⼈项,弹出菜单,删除该联系⼈;删除联系⼈后,在⼿机通知栏弹出信息给⽤户提⽰ 4.主界⾯选择分组,可以查看所有联系⼈,也可以只查看某⼀分组的联系⼈ 5.点击主界⾯的某联系⼈,可以进⼊联系⼈详情界⾯,查看联系⼈各详细信息,并可修改联系⼈各信息; 联系⼈的性别和所在分组可通过下拉菜单选择;长按电话号码,可以进⼊拨打电话功能; 修改联系⼈信息后,跳转回到主界⾯,并使⽤Toast给予⽤户提⽰ 6.主界⾯菜单栏可以添加新联系⼈,关于等功能 7.能在联系⼈详情界⾯,动态增加多个联系电话,并储存到数据库中效果图展⽰:源码下载地址:项⽬回顾: 1.scrollview嵌套listview产⽣的滑动冲突(recyclerview) 解决⽅案:listView.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if(event.getAction() == MotionEvent.ACTION_UP){//点击listview⾥⾯滚动停⽌时,scrollview拦截listview的触屏事件,就是scrollview该滚动了scrollView.requestDisallowInterceptTouchEvent(false);}else{//当listview在滚动时,不拦截listview的滚动事件;就是listview可以滚动,scrollView.requestDisallowInterceptTouchEvent(true);}return false;}}); 2.关于listview 中 EditText 监听//1.在设置text前,先移除监听if (viewHodler.number.getTag() instanceof TextWatcher) {viewHodler.number.removeTextChangedListener((TextWatcher) viewHodler.number.getTag());}if (TextUtils.isEmpty(phoneNumber.getNumber())){viewHodler.number.setText("");}else {viewHodler.number.setText(phoneNumber.getNumber());}//2.新建监听类TextWatcher watcher = new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {}@Overridepublic void afterTextChanged(Editable s) {if (TextUtils.isEmpty(s)) {phoneNumber.setNumber(null);finalViewHodler.imageView.setVisibility(View.GONE);} else {phoneNumber.setNumber(s.toString());finalViewHodler.imageView.setVisibility(View.VISIBLE);}Log.e("tag", "afterTextChanged: " +s.toString() );}};//3.添加监听器viewHodler.number.addTextChangedListener(watcher);viewHodler.number.setTag(watcher); 3.获取listview 中所有 Editext 的值 思路:在适配器中创建HashMap 在getview()⽅法中保存所有的Editext key = position value = editext 然后在通过HashMap 获取就⾏了private HashMap<Integer,EditText> edMap;@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {PhoneAdapter.ViewHodler viewHodler = null;if (convertView == null) {viewHodler = new PhoneAdapter.ViewHodler();convertView = LayoutInflater.from(context).inflate(yout.phone_list_item, null, false);viewHodler.spinner = convertView.findViewById(R.id.pnone_spinner);viewHodler.number = convertView.findViewById(R.id.pnone_number);viewHodler.imageView = convertView.findViewById(R.id.imageView4);//put 保存edMap.put(position,viewHodler.number);spMap.put(position,viewHodler.spinner);convertView.setTag(viewHodler);} else {viewHodler = (PhoneAdapter.ViewHodler) convertView.getTag();edMap.put(position,viewHodler.number);spMap.put(position,viewHodler.spinner);} 4.拨打电话功能的坑public void call(String telPhone){if(checkReadPermission(Manifest.permission.CALL_PHONE,REQUEST_CALL_PERMISSION)){//要在telPhone前加上字符串tel:Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + telPhone));startActivity(intent);}} 不让你就会见到下图:。

数据结构 通讯录管理系统

数据结构 通讯录管理系统

数据结构通讯录管理系统数据结构通讯录管理系统1、引言1.1 目的和范围本文档旨在详细描述一个通讯录管理系统的设计和实现,以便帮助开发人员了解系统的功能和特性。

本系统可以用于存储和管理个人联系信息,实现添加、删除、修改和查询等功能。

1.2 定义、缩略语和缩写词- 通讯录:存储个人联系信息的系统。

- 系统:通讯录管理系统。

2、总体概述2.1 系统背景通讯录管理系统是为了方便用户管理个人联系信息而开发的软件。

它提供了一系列功能,包括添加联系人、删除联系人、修改联系人信息以及搜索联系人等。

该系统旨在提供一个高效、方便和可靠的通讯录管理解决方案。

2.2 产品功能- 添加联系人:用户可以添加新的联系人,并输入其姓名、方式号码、电子邮箱等信息。

- 删除联系人:用户可以删除已经存在的联系人。

- 修改联系人信息:用户可以修改已经存在的联系人的姓名、方式号码、电子邮箱等信息。

- 搜索联系人:用户可以根据姓名、方式号码等信息搜索联系人。

- 显示所有联系人:系统可以显示所有已经存在的联系人。

2.3 用户特点通讯录管理系统的主要用户群体为个人用户,他们需要管理自己的联系人信息。

这些用户对于系统的易用性、稳定性和功能性要求较高,因此系统需要提供简单直观的用户界面,并保证操作的正确性和数据的安全性。

3、系统需求3.1 功能需求3.1.1 添加联系人- 用户可以输入联系人的姓名、方式号码、电子邮箱等信息进行添加。

- 系统应该对输入进行合法性检查,确保输入的信息符合格式要求。

- 添加联系人后,系统应该将联系人信息保存到数据库中。

3.1.2 删除联系人- 用户可以删除已经存在的联系人。

- 删除联系人后,系统应该将联系人信息从数据库中删除。

3.1.3 修改联系人信息- 用户可以修改已经存在的联系人的姓名、方式号码、电子邮箱等信息。

- 系统应该对输入进行合法性检查,确保输入的信息符合格式要求。

- 修改联系人信息后,系统应该将修改后的联系人信息保存到数据库中。

Java实现简单通讯录管理系统

Java实现简单通讯录管理系统

Java实现简单通讯录管理系统本⽂实例为⼤家分享了Java实现通讯录管理系统的具体代码,供⼤家参考,具体内容如下题⽬:1、完成⼀个通讯录,需求:(1)添加联系⼈(联系⼈:编号,姓名,⼿机号,QQ,邮箱地址)添加时需要检查⼿机号和邮箱地址格式是否正确,若不正确,不允许添加(2)联系⼈查询(输⼊姓名或电话查询)(3)显⽰联系⼈列表(4)根据编号删除指定编号的联系⼈代码分析:之前写过类似的管理系统,不过是使⽤数组进⾏数据存储,这次的通讯录管理系统通过动态数组ArrayList进⾏数据存储。

其中代码实现的原理和之前所写相似。

在此不再赘述。

判断⼿机号邮箱地址格式是否格式正确使⽤了正则表达式进⾏判断,如果输⼊错误则输出提⽰语句,并重新输⼊正确格式,递归实现。

其中修改⼿机号的⽅法和删除⽤户类似,顺带写了⼀下,没有进⾏实现,感兴趣的朋友可以⾃⼰进⾏实现测试⼀下。

代码实现:⽤户类:package com.softeem.j2106.work;/*** @author admin* 2021/7/26*/public class User {private int no;private String name;private String phone;private String QQ;private String email;public User() {}public User(int no, String name, String phone, String QQ, String email) {this.no = no; = name;this.phone = phone;this.QQ = QQ;this.email = email;}public int getNo() {return no;}public void setNo(int no) {this.no = no;}public String getName() {return name;}public void setName(String name) { = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getQQ() {return QQ;}public void setQQ(String QQ) {this.QQ = QQ;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"no=" + no +", name='" + name + '\'' +", phone='" + phone + '\'' +", QQ='" + QQ + '\'' +", email='" + email + '\'' +'}';}}⽤户管理类:public class UserMange {static ArrayList<User> s = new ArrayList<>();public boolean addUser(User user){return s.add(user);}public ArrayList showInfo(){return s;}public User searchByName(String name){for (User user : s) {if (Objects.equals(name,user.getName()) ||Objects.equals(name,user.getPhone())){ return user;}}return null;}public boolean updatePhone(int no,String phone){User user = null;for(User u:s) {if(no == u.getNo()) {u.setPhone(phone);break;}}if(user == null) {System.out.println("该⽤户不存在");return false;}System.out.println("修改成功!");return true;}public boolean delUser(int no){User user = null;for(User u:s) {if(no == u.getNo()) {user = u;break;}}if(user == null) {System.out.println("该⽤户不存在");return false;}return s.remove(user);}}测试类:public class Test2 {static UserMange user = new UserMange();static Scanner sc = new Scanner(System.in);public static void start(){System.out.println("=======SOFTEEM通讯录管理系统=====");System.out.println("【1】添加联系⼈");System.out.println("【2】联系⼈查询");System.out.println("【3】显⽰联系⼈列表");System.out.println("【4】根据编号删除指定编号的联系⼈");System.out.println("=============================");int i = sc.nextInt();switch (i){case 1:add();start();break;case 2:System.out.println("【1】通过联系⼈姓名查询/【2】通过联系⼈电话查询"); int a = sc.nextInt();findbyName(a);start();break;case 3:show();start();break;case 4:del();start();break;case 0:System.out.println("谢谢使⽤,再见!");System.exit(0);break;default:System.out.println("请输⼊正确的指令!");start();break;}}public static void add(){System.out.println("请输⼊联系⼈编号:");int a = sc.nextInt();System.out.println("请输⼊联系⼈姓名:");String b = sc.next();System.out.println("请输⼊联系⼈⼿机号:");String c = sc.next();judgePhone(c);System.out.println("请输⼊联系⼈QQ:");String d = sc.next();System.out.println("请输⼊联系⼈邮箱地址:");String e = sc.next();judgeEmail(e);User x = new User(a,b,c,d,e);if(user.addUser(x)){System.out.println("添加成功!");}}public static void judgePhone(String phone){if (phone.matches("1[34589][0-9]{9}")){}else {System.out.println("⼿机号输⼊有误,请重新输⼊");String v = sc.next();judgePhone(v);}}public static void judgeEmail(String email){if (email.matches("[A-Za-z0-9]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)")){}else {System.out.println("邮箱格式输⼊有误,请重新输⼊");String v = sc.next();judgeEmail(v);}}public static void findbyName(int a){if (a==1){System.out.println("请输⼊联系⼈姓名");}else {System.out.println("请输⼊联系⼈电话");}String name = sc.next();User user = er.searchByName(name);System.out.println(user);}public static void show(){ArrayList list = user.showInfo();for (Object o : list) {System.out.println(o);}}public static void del(){System.out.println("请输⼊编号");int no = sc.nextInt();if(user.delUser(no)){System.out.println("删除成功");}}public static void main(String[] args) {start();}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

学生手机通信录管理系统

学生手机通信录管理系统

学生手机通信录管理系统一、背景如今, 手机已成为现代人生活中不可或缺的一部分。

尤其对于学生群体而言, 手机的重要性更加显著。

学生们常常使用手机来完成作业、和同学聊天、查阅信息等多种功能。

而通信录是其中一个不可或缺的功能,它方便了学生们管理自己的联系人信息。

但是,学生们经常添加的联系人数量巨大,管理起来需要花费大量的时间和精力。

另一方面,由于“小破派”与“牛高马大”的手机品牌数量众多,学生们从换机、重置手机到更换操作系统都是极其正常的现象。

因此,手机通信录的备份与恢复就成了备受关注的问题。

本文简要介绍了学生手机通信录管理系统,为学生们解决通信录备份和恢复、信息管理等问题,提高学生们的使用体验。

二、系统功能系统主要有以下几个功能:1. 添加联系人学生在使用过程中,可以通过系统添加联系人,方式灵活,可根据学生个人喜好选择输入方式。

2. 删除联系人学生在管理通信录时,可以通过本系统对其中的联系人进行删除操作。

3. 修改联系人信息通过系统,学生们可以随时对通信录中的联系人信息进行修改。

4. 实现通信录备份为了帮助学生更好地管理通信录,系统实现了通信录备份,方便学生在更改手机或者重置手机等情况下快速恢复通信录信息。

5. 实现通信录恢复同样地,当学生更改手机或者重置手机等情况下,可以通过本系统支持的恢复功能来恢复通信录信息。

6. 信息快速检索学生可以在本系统中通过输入联系人的名称或者电话号码等条件来快速地检索所需要的联系人信息。

7. 分类管理联系人为了使通信录能够更好地管理,本系统支持对联系人进行分类管理,方便用户查找、筛选所需联系人。

三、系统运行环境1. 系统运行平台本系统运行在Android系统平台。

2. 内存由于系统需要加载很多的联系人信息等内容,因此为了系统能够流畅地运行,建议手机内存大于2GB。

3. 存储空间通信录中包含了众多联系人的信息,因此系统需要占用一定的存储空间。

因此,建议手机的存储空间需大于0.5GB。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、课题名称简易手机通讯录管理系统(线性表、查找、排序)二、主要内容简易手机通讯录管理系统的设计主要是实现对手机通讯录的管理和相关操作。

基本功能如下:(1)联系人信息录入、添加功能:包括手机号(此处用短号,5位,不能重复)、姓名、家庭住址的录入和添加。

(2)联系人信息查询功能:能①按手机号进行查询。

②按联系人姓名进行查询。

(3)排序:①能按手机号升序进行排序;②能按姓名进行升序排序,姓名相同时按手机号从小到大进行排序(4)联系人信息的修改、删除功能:①按手机号进行联系人信息的修改和删除。

②按姓名进行联系人信息的修改和删除,多个姓名时,再指定具体的号码。

(5)统计功能:统计自己的联系人有多少个。

三、课题设计的基本思想,原理和算法描述(1)本次课程设计题目为简易手机通讯录管理系统,主要运用到线性表中顺序表的相关知识,以及顺序查找的思想和冒泡排序算法。

(2)界面设计//菜单函数int menu(){int c;printf("\n\n\t☆☆☆☆☆☆☆手机通讯录信息管理系统☆☆☆☆☆☆☆☆\n\n");printf("******************************************************************* ***\n");printf(" 1.添加联系人信息\n");printf(" 2.查询联系人信息\n");printf(" 3.对联系人信息进行排序\n");printf(" 4.修改联系人信息\n");printf(" 5.删除联系人信息\n");printf(" 6.统计联系人个数\n");printf(" 0.退出信息管理系统\n");printf("******************************************************************* ***\n\n");printf("★请输入您的选择(0-6):");while(1){scanf("%d",&c);if(c<0||c>6)printf("\n▲输入错误!请重新选择:");elsebreak;}return c;}//主函数void main(){SqList * L;InitList(L);system("color 3f");while(1){switch(menu()){case 1:system("cls");printf("\n\t\t\t信息的增加\n");ListAdd(L);break;case 2:system("cls");printf("\n\t\t\t信息的查询\n");Search(L);break;case 3:system("cls");printf("\n\t\t\t对信息进行排序\n");Paixu(L);break;case 4:system("cls");printf("\n\t\t\t信息的修改\n");ListModify(L);break;case 5:system("cls");printf("\n\t\t\t信息的删除\n");Delete(L);break;case 6:system("cls");printf("\n\t\t\t统计联系人个数\n");ListLength(L);break;case 0:printf("再见!\n");return;default:printf("\n▲输入错误!请重新选择:");break;}}}(3)功能模块的实现初始化顺序表void InitList(SqList *&L)L=(SqList *)malloc(sizeof(SqList));L->length=0;}②增加信息函数。

定义变量a起标记作用,用于判断输入信息是否与已有信息重复void ListAdd(SqList *&L) //增加函数{int a=0;//标记printf("1.号码(五位数字!):");scanf("%s",L->data[L->length].num); printf("2.姓名:");scanf("%s",L->data[L->length].name);printf("3.性别:");scanf("%s",L->data[L->length].sex);printf("4.家庭住址:");scanf("%s",L->data[L->length].add);for(int i=0;i<L->length;i++)//判断是否重号{if(strcmp(L->data[i].num,L->data[L->length].num)==0){printf("该号码已经存在\n");a=1;break;}}if(a==0)L->length++;}③查找符合条件的信息的下标并返回到需要调用的函数体中int FindNum(SqList *&L){printf("★输入需要进行操作的号码:");char num[10];scanf("%s",num);int i=0;while(i<L->length&&strcmp(L->data[i].num,num)!=0)i++;if(i>=L->length){printf("不存在该联系人!\n");}return i;④查询信息函数分两种情况:按号码查找与按姓名查找。

由于号码唯一所以可以直接调用之前的查找下标函数。

按姓名查找时则需要考虑到重名的情况,所以用一个for循环将所有符合条件的信息全部输出。

void Search(SqList *&L){if(L->length==0){printf("通讯录此时为空,无法进行查找!\n");}else{int m,i;printf("***************************************************************\n"); printf("\t\t1.按联系人号码进行查询\n");printf("\t\t2.按联系人姓名进行查询\n");printf("***************************************************************\n"); int a;printf("★请输入您的选择(1 or 2):");scanf("%d",&a);switch(a){case 1:m=FindNum(L);if(m<L->length){printf("您查询的信息如下\n");printf("号码姓名性别家庭住址\n");printf("%s %s %s%s\n",L->data[m].num,L->data[m].name,L->data [m].sex,L->data[m].add);}break;case 2:printf("★输入需要进行操作的姓名:");char name[20];scanf("%s",name);for( i=0;i<L->length;i++){if(strcmp(L->data[i].name,name)==0){printf("号码姓名性别家庭住址\n");printf("%s %s %s%s\n",L->data[i].num,L->data[i].name,L->data [i].sex,L->data[i].add);}else{printf("不存在该联系人\n");}}break;default:printf("输入错误!");break;}}}⑤修改函数按号码修改时先调用之前查找下标的函数,找到符合条件的信息后直接输入信息将原有信息覆盖。

按姓名修改时当只有一个信息符合条件时与按号码修改算法一样,当出现重名情况时提示用户选择相应的号码再调用按号码修改的算法。

每一次修改都进行一次判断,判断修改后的信息是否与表中已有信息重复。

void ListModify(SqList *&L){if(L->length==0){printf("通讯录此时为空,无法进行信息的修改!\n");}else{int m,n;int b=0;printf("***************************************************************\n") ;printf("\t\t1.按联系人号码进行修改\n");printf("\t\t2.按联系人姓名进行修改\n");printf("***************************************************************\n") ;i nt a;printf("★请输入您的选择(1 or 2):");scanf("%d",&a);switch(a){case 1:m=FindNum(L);if(m<L->length){Telphone p;printf("号码姓名性别家庭住址\n");printf("%s %s %s%s\n",L->data[m].num,L->data[m].name,L->data [m].sex,L->data[m].add);printf("输入修改后的联系人信息:\n");printf("号码姓名性别家庭住址\n");scanf("%s %s %s %s",p.num , ,p.sex,p.add);for(int j=0;j<L->length;j++)//判断是否重号{if(strcmp(L->data[j].num,p.num)==0){printf("修改失败!(该号码已经存在)\n");printf("重新输入修改后的联系人信息:\n");printf("号码姓名性别家庭住址\n");scanf("%s %s %s%s",L->data[m].num,L->data[m].name,L->data[m].sex,L->data[m].add);printf("\n");break;}else{L->data[m]=p;}}}break;case 2:printf("★输入需要进行操作的姓名:");char name[20];int i;scanf("%s",name);for( i=0;i<L->length;i++){if(strcmp(L->data[i].name,name)==0){b++;}}if(b==0){printf("不存在该联系人!\n");}if(b==1){for(int i=0;i<L->length;i++){if(strcmp(L->data[i].name,name)==0){Telphone q;printf("再次确认需要修改的信息:\n");printf("号码姓名性别家庭住址\n");printf("%s %s %s%s\n\n",L->data[i].num,L->data[i].name,L->data [i].sex,L->data[i].add);printf("★输入修改后的联系人信息:\n");printf("号码姓名性别家庭住址\n");scanf("%s %s %s %s",q.num , ,q.sex,q.add);for(int j=0;j<L->length;j++)//判断是否重号{if(strcmp(L->data[j].num,q.num)==0){printf("修改失败!(该号码已经存在)\n");printf("重新输入修改后的联系人信息:\n");printf("号码姓名性别家庭住址\n");scanf("%s %s %s%s",L->data[i].num,L->data[i].name,L->data[i].sex,L->data[i].add);printf("\n");break;}else{L->data[i]=q;}}}}}if(b>1){printf("符合条件的联系人有%d个!详细信息如下:\n",b);for(int i=0;i<L->length;i++){if(strcmp(L->data[i].name,name)==0){printf("号码姓名性别家庭住址\n");printf("%s %s %s%s\n",L->data[i].num,L->data[i].name,L->data [i].sex,L->data[i].add);}}printf("请根据以上显示出的信息选择对应的号码进行修改!\n");n=FindNum(L);if(n<L->length){Telphone t;printf("号码姓名性别家庭住址\n");printf("%s %s %s%s\n",L->data[n].num,L->data[n].name,L->data [n].sex,L->data[n].add);printf("输入修改后的联系人信息:\n");printf("号码姓名性别家庭住址\n");scanf("%s %s %s %s",t.num , ,t.sex,t.add);for(int i=0;i<L->length;i++)//判断是否重号{if(strcmp(L->data[i].num,t.num)==0){printf("修改失败!(该号码已经存在)\n");printf("重新输入修改后的联系人信息:\n");printf("号码姓名性别家庭住址\n");scanf("%s %s %s%s",L->data[n].num,L->data[n].name,L->data[n].sex,L->data[n].add);printf("\n");break;}else{L->data[n]=t;}}}}break;default:printf("输入错误!");break;}}}⑥删除函数按号码删除时先查找到符合条件的信息,再用for循环将该信息后面的信息依次向前覆盖达到删除功能。

相关文档
最新文档