下载点此去
运行截图:

我自己选择的是通讯录管理系统,该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础。该设计的任务是利用一个简单实用的菜单,通过菜单单项进行选择,实现和完成通讯录管理中常用的几个不同的功能。
问题描述:随着计算机应用技术的快速发展和日益普及,网络也遍及到我们生活的每个角落,为我们的学习和工作带来极大的方便。很多人都使用过传统的纸质通讯录,与之不同的另外一种管理方式——2
设计思路:为实现系统功能,本程序主要分为七个模块。它们分别为:主界面、建立通讯录链表、通讯者结点的插入、通讯者结点的查询、通讯者结点的删除、通讯者结点的输出、退出管理系统。这几个函数再通过主函数调用分别得以实现。
主函数,首先提供了程序运行时的友好界面,提供客户选择的菜单。然后,通过执行多分支选择语句——switch语句,分别实现其它各个函数的调用功能
程序功能:
(0) 通讯录链表的建立
(1)通讯者结点的插入
(2)通讯者结点的查询
(3)通讯者结点的删除
(4)通讯录链表的输出
(5)退出管理系统
如下图所示:

         图3-1

详细设计:本程序中,运用了线性表的链式结构。首先进入了主界面,建立通讯录链表、添加通讯者结点、查询通讯者结点、删除通讯者结点、输出全部通讯者结点和退出通讯录管理系统。在主函数中分别调用各项的函数。
public class Node {
public class Friend{
public Friend next;
private String Name;
private String Tel;
private String Email;
private String BornAdd;
public Friend(){}
public Friend(String Name,String Tel,String Email,String BornAdd){
this.Name=Name;
this.Tel=Tel;
this.Email=Email;
this.BornAdd=BornAdd;
}
Switch控制菜单函数(主体)
public static void main(String[] args) {
Node sm = new Node();
Scanner in = new Scanner(System.in);
boolean open = true;
while (open) {
printMenu();
System.out.println(“请输入菜单序号进行操作”);
int menu = -1;
try {
menu = in.nextInt();
} catch (Exception e) {
in = new Scanner(System.in);
}
switch (menu) {
case 0: {
System.out.println(“创建成功”);
}
break;
case 1: {
System.out.println(“请输入姓名”);
String Name1 = in.next();

              System.out.println("手机号,邮箱地址,家庭地址(空格结束,回车确认插入)");try {String Tel = in.next();String Email = in.next();String BornAdd = in.next();Friend news = sm.new Friend(Name1, Tel, Email, BornAdd);sm.insertHead(news);} catch (Exception e) {System.out.println("输入信息有误");in = new Scanner(System.in);}break;}case 2: {System.out.println("请输入要查询联系人的姓名");String Name2 = in.next();Friend selectS = sm.select(Name2);System.out.println("姓名\t手机号\t邮箱地址\t家庭地址");if (selectS == null) {} else {System.out.println(selectS.toString());}}break;case 3: {System.out.println("请输入要删除联系人的姓名");String Name3 = in.next();if (sm.delete(Name3)) {System.out.println("删除成功");} else {System.out.println("删除失败");}sm.display();}break;case 4: {sm.display();}break;case 5: {System.out.println("系统已退出");System.exit(0);break;}default:System.out.println("输入错误");}

输出的功能菜单:
public static void printMenu(){
System.out.println(“通讯录管理系统”);
System.out.println(“");
System.out.println("* 0----创建链表 “);
System.out.println(”
1----插入联系人 “);
System.out.println(”
2----查找联系人 “);
System.out.println(”
3----删除联系人 “);
System.out.println(”
4----输出通讯录 “);
System.out.println(”
5----退出系统 *");
System.out.println("
”);
}}

关键代码(遇到的难点——查找关键结点)
在有序表中查找指定结点的算法是比较简单的,其基本思路是:首先输入要查找的通讯者的编号或姓名,从表头顺序访问表中结点。成功返回一个指向查找到的通讯者信息的结点;若失败,则返回一个空指针值NULL. 当按编号查找时,如果需要查找的通讯者编号不在表中,则不一定需要循环比较到表尾,因表是按编号递增有序的;按姓名查找时,则要循环比较到表尾,才能确定查不到的情况。

   public void setEmail(String Email){this.Email=Email;}public String getEmail(){return Email;}public void setBornAdd(String BornAdd){this.BornAdd=BornAdd;}public String getBornAdd(){return BornAdd;}public void message(String Name,String Tel,String Email,String BornAdd){this.Name=Name;this.Tel=Tel;this.Email=Email;this.BornAdd=BornAdd;}public String toString(){return this.Name+"\t"+this.Tel+"\t"+this.Email+"\t"+this.BornAdd;

不足与改进:
本程序基本满足功能,但是在正常使用中数据不可能直接一直运行,没有数据库将数据承接,是本程序最大的不足。改进的地方需要给程序配置数据库,不至于让程序关闭后,数据丢失。
特色功能:网上很多的通讯录管理系统,以电话作为查找方式,但是在现实生活中很难记住对方号码,本程序的查询方式选择以联系人姓名查找

Java通讯录管理系统使用线性表任务台程序相关推荐

  1. Java学生管理系统使用线性表任务台程序

    点此去下载 运行截图: (线性表) 基本概念与设计思路:链表的每个元素称为一个节点,每个节点都可以存储在内存中的不同的位置,为了表示每个元素与后继元素的逻辑关系,以便构成"一个节点链着一个节 ...

  2. 数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)

    数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...

  3. 数据结构课程设计:1、单位员工通讯录管理系统(线性表的应用)

                                        单位员工通讯录管理系统(线性表的应用) [问题描述] 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话. ...

  4. 数据结构课程设计报告 单位员工通讯录管理系统(线性表的应用)

    题目1.单位员工通讯录管理系统(线性表的应用) [问题描述] 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话.手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息的查 ...

  5. c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...

    数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...

  6. 单位员工通讯录管理系统(线性表的应用)

    [问题描述] 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话.手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息的查询.修改.插入与删除.以及整个通讯录表的输出. ...

  7. 用Java描述数据结构之线性表的链式存储(链表),模拟LinkedList实现

    上一篇介绍了顺序表:用Java描述数据结构之线性表的顺序存储(顺序表),ArrayList及其方法的介绍 上一篇博客中说明了什么是线性表--线性表就是一个个数据元素逻辑上以一对一的相邻关系(但是在物理 ...

  8. 用Java描述数据结构之线性表的顺序存储(顺序表),ArrayList及其方法的介绍

    我们先来想一想什么是线性表? 线性表是最基本.最简单.也是最常用的一种数据结构.线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列. 线性表中数据元素之 ...

  9. [数据结构与算法] (顺序)线性表简单demo程序

    1 /******************************************************* 2 * @: Project: (顺序)线性表数据结构演示 3 * @: File ...

最新文章

  1. android adb命令
  2. IntelliJ IDEA 2017 注册方法
  3. mysql 配置文件设置最大链接数 max_connections不生效
  4. 成功解决IndexError: shape mismatch: indexing arrays could not be broadcast together with shapes (100,)
  5. html5导航菜单置顶,jQuery和css3顶部固定导航菜单特效插件
  6. GO模仿python –m SimpleHTTPServer 8080
  7. 计算机绘制轴类零件图,轴类零件工序图自动绘制的方法和系统研究
  8. 同步异步 阻塞 非阻塞 异步调用 线程队列 协程
  9. 回顾18年我的Java自动化测试框架
  10. imnoise, imnoise2 imnoise3
  11. android荣耀v20圆角适配,AR新玩法 让荣耀V20成为你随身的尺子
  12. SqlServer2012中使用动态sql语句
  13. 锂电池基本原理解析:充电及放电机制
  14. (附源码)springboot电影院售票与管理系统 毕业设计 011449
  15. 互联网电影购票网站调查思考
  16. Apollo星火计划学习笔记——第六讲上自动驾驶感知基础(I)
  17. 【TCP专题】TCP的可靠性传输
  18. 正则表达式验证身份证号以及验证校验位的正确性
  19. JavaScript实现读秒按钮,按钮计时器,倒计时结束方可点击按钮(setInterval,clearInterval)
  20. 初学Python:encode、decode和Unicode等

热门文章

  1. Leecode刷题热题HOT100(9)——回文数
  2. 将您的SQL Server工作负载迁移到PostgreSQL –第2部分
  3. 使用HP Vertica进行.NET编程
  4. 2020年最好用的手机是哪一款_2020年入手5G手机最佳时期到了:5款最佳手机,您认可哪款...
  5. mysql数据库校对_mysql数据库校对原则
  6. mysql导入库排除某个表_mysql导入数据排除表-mysql导入数据排除某张表或多张表-吾爱编程网...
  7. mfc ribbon动态修改字符_如何動態更改CMFCRibbonLabel的文本
  8. 32f407tim4时钟源频率_华为以太时钟同步原理介绍(一)
  9. redis管理_Redis基本管理
  10. selenium autoit java_selenium借助AutoIt识别上传文件Java篇