Java--通讯录管理系统【课程设计】

这篇具有很好参考价值的文章主要介绍了Java--通讯录管理系统【课程设计】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1 设计任务

1.1需求分析

1.2任务分析

2 系统分析

2.1 总体设计分析

2.1.1设计要求

2.1.2设计任务

2.1.3设计思路

2.2 可行性分析

2.2.1 技术可行性分析

2.2.2 经济可行性分析

2.2.3 操作可行性分析

2.3 功能结构分析

3 系统设计

4 系统实现

5 系统测试

5.1新建联系人

5.2修改联系人

5.3查询联系人

5.3.1 显示已保存联系人

5.3.2 查找联系人

5.4保存联系人

5.5删除联系人

6 设计总结和心得体会

参考文献


1 设计任务

1.1需求分析

通讯录在当今的日常生活工作中的应用是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。但随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。直接操作来查找,添加,修改,删除这些信息,由于数据多,工作量十分巨大,查找,编辑都很困难,而且极易出错,容易造成资料的混乱或丢失。在各种手机,上午通内设的电话簿尽管携带方便却又存在“记录量少,界面小,浏览不方便,记录信息不全面”的缺点。有人利用 Exce.或 Word 编制通讯录,虽然数据比较全面,信息比较充分,可是查找及其不便,维护起来也麻烦,所以运用文件或数据库技术建立一个通讯录管资料理系统十分必要,使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱。提高信息处理速度和准确性,能够及时,准确,有效的查询和修改通讯录的情况。

1.2任务分析

通讯录管理系统将会为个人信息联系的现代化管理提供一个良好的平台,它也是针对人们之间大量信息处理工作而开发的管理软件,每个人的个人信息的统计和录入功能,随着人与人之间的交往更加频繁,利用 JDK1.7.0 和NetBeans6.9.1 软件,设计并实现图形用户界面,其中管理自己联系人信息管理以提高我们办事效率为目的,经过多方面的思考与查询,设计出通讯录管理系统相应的功能。通讯录管理包含对联系人信息输入、查询、维护和输出等功能。

2 系统分析

2.1 总体设计分析

2.1.1设计要求

通讯录中包括一般通讯录中的基本信息,也需要实现普通的检索功能,通过将联系人写入文件,程序执行时,需要从文件中导入数据,程序退出后再将数据文件保存到文件中。

2.1.2设计任务

录入联系人信息;查询联系人;删除指定的联系人信息;退出通讯录管理系统。

2.1.3设计思路

一个程序的主类是进入系统,进行图形交互的界面设计;通过建立使用ArrayList 动态数组、结合文件输入与输出流的操作方式,进行添加、查找、删除等:通过按钮添加、查找、删除、退出的 addActionListener0方法实现事件响立。

通过 FileDescriptor 在标准输入流上建立文件输入流,然后通过键盘的输入读取数据,并把读取的数据到指定的文件“readfromkeyboard.txt”中然后再建立文件的输入流,通过 FileDescriptor 在标准输出流上建立的文件输出流,将文件中的数据显示在屏幕上。

2.2 可行性分析

系统的可行性就是利用最低的成本在非常短的时间内确定这个系统功能能否实现,不能靠凭空的猜想,而是要靠详细的分析报告,从各个层面分析系统是否可行,系统的可行性分析就是要简化设计的过程,以抽象的方法分析系统的过程,从而节约成本提高系统的稳定性,减少设计的工作量从而在某种程度上节约成本,达到事半功倍的效果。

可行性分析是通过对项目的主要内容和配套条件。可行性分析过程是确定系统是否值得开发的过程。

2.2.1 技术可行性分析

经过这个学期的Java课程的学习,小组成员已基本掌握了Java语言的语义,语法。本系统主要依靠Java语言来实现。如果遇到问题还可以在图书馆,上网查找资料,自主学习研究。技术方面可行。

2.2.2 经济可行性分析

系统由Java语言编写,当前运行仅需带有Java编译功能的设备即可,由于系统仅涉及通讯录信息的简单管理,由于小组成员学习经验有限,暂未连入数据库,后期加入数据库后,也仅需租赁一个服务器,以及数据库的运营成本。经济方面可行。

2.2.3 操作可行性分析

本系统的操作界面非常简洁,具有简便的可操作性。用户及管理员都可根据系统的提示通过键盘来进行一系列的操作,在短时间内掌握系统的全部操作。

在通讯录系统中,可以对联系人进行分类,比如家人、好友、同学等,在分好组后,可以在每个组内相应的增加成员。同时可以不断增添、修改或者删除组以满足用户的需求。当用户需要查询联系人时可以直接通过搜索名字来获得联系人信息,或者在分组中查询联系人。本系统大大提高了查询的工作效率,为用户提高了更多的便利。因此,操作方面可行。

2.3 功能结构分析

(1)增加联系人信息:用户在主界面菜单中选择此功能时,进入录入界面。用户在录入界面中输入各项联系人信息后,系统将采集界面中的联系人信息。

(2)查询联系人:用户在主界面菜单中选择此功能时,进入查询界面。系统为用户提供完全信息查询和模糊查询功能。 用户在查询界面中输入联系人姓名后,系统按要求查询联系人信息表,将查询出联系人信息显示于列表中。

(3)修改联系人:用户在主界面菜单中选择此功能时,进入修改界面1,首先根据用户输入信息完成联系人信息的查询,用户在列表中选择需修改的联系人后,进入修改界面2。用户在修改界面2中完成联系人信息的修改后,系统采集界面2中的信息后,修改相应记录。

(4)删除联系人:用户在主界面菜单中选择此功能时,进入删除界面。首先根据用户输入信息完成联系人信息的查询,用户在列表中选择需删除的联系人后,系统删除联系人信息相应记录。

3 系统设计

Infro类:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Infro{
	public String id;
	public String name;
	public String sex;
	public String address;
	public String e_mail;
	public String phoneNumber;
	static int index = 0;
	static ArrayList<Infro> list = new ArrayList();
	static int len = list.size();
	
	//构造函数
	public Infro(String id,String name,String sex,String address,String e_mail,String phoneNumber){
		this.id = id;
		this.name = name;
		this.sex = sex;
		this.address = address;
		this.e_mail = e_mail;
		this.phoneNumber = phoneNumber;
		}
	public String toString(){
		return "Id:"+id+" 联系人姓名:"+name+" 性别:"+sex+" 通讯地址:"+address+" 邮箱地址:"+e_mail+" 联系人电话:"+phoneNumber;
		}
	
	//添加
	public static void addFunction(){
		Infro infro = new Infro("","","","","","");
		System.out.println("请输入添加的数据:");
		Scanner in = new Scanner(System.in);
		System.out.println("输入Id号:");
		infro.id = in.next();
		System.out.println("输入联系人姓名:");
		infro.name = in.next();
		System.out.println("输入性别:");
		infro.sex = in.next();
		System.out.println("输入通讯地址:");
		infro.address = in.next();
		System.out.println("输入邮箱地址:");
		infro.e_mail = in.next();
		System.out.println("输入电话:");
		infro.phoneNumber = in.next();
		list.add(index,infro);
		index++;
		if(list.isEmpty()){
			System.out.println("数据添加失败啦");
		}else{
			System.out.println("数据添加成功啦");
			len++;//list集合长度加一
			}
		}
	
	//删除
	public static void deleteFunction(){
		System.out.println("输入要删除的联系人的编号");
		Scanner in_2 = new Scanner(System.in);
		String d1 = in_2.nextLine();
		java.util.Iterator<Infro> it = list.iterator();
		while (it.hasNext()){
			Infro infro = it.next();
			if (infro.id.equals(d1)){
				it.remove();
				--index;
				System.out.println("删除完毕"+"此时通讯录记录条数为:" + --len);
				}
			}
		}
	
	//修改
	public static void reditFunction(){
		System.out.println("输入要修改的通讯录的Id");
		Scanner in_r = new Scanner(System.in);
		String r1 = in_r.nextLine();
		for(int a = 0; a < len;a++){
			if(r1.equals(list.get(a).id)){
				System.out.println("输入修改后的姓名:");
				String name_1 = in_r.next();
				list.get(a).name = name_1;
				System.out.println("输入修改后的性别:");
				String sex_1 = in_r.next();
				list.get(a).sex = sex_1;
				System.out.println("输入修改后的通讯地址:");
				String address_1 = in_r.next();
				list.get(a).address = address_1;
				System.out.println("输入修改后的邮箱地址:");
				String e_mail_1 = in_r.next();
				list.get(a).e_mail = e_mail_1;
				System.out.println("输入修改后的电话:");
				String phoneNumber_1 = in_r.next();
				list.get(a).phoneNumber = phoneNumber_1;
				System.out.println("数据修改完毕");
				}
			}
		}
	
	//查询
	public static void searchFunction() throws Exception{
		System.out.println("请输入要查询的姓名:");
		Scanner in_1 = new Scanner(System.in);
		String s1=in_1.nextLine();
		for(int a= 0;a<len;a++){
			if(s1.equals(list.get(a).name)){
				System.out.println(list.get(a).toString());
				}
			}
		}
	
	//显示
	public static void showFunction(){
		for(int i = 0 ;i<len;i++){
			System.out.println(list.get(i).toString());
			}
		}
	
	//保存
	public static void writeFunction() throws IOException{
		FileWriter writer = new FileWriter("通讯录管理.txt");
		for(int i = 0 ;i<len;i++){
			String []strwriter = new String[len];
			strwriter[i]=list.get(i).toString();
			writer.write(strwriter[i]);
			writer.write("\r\n");
			System.out.println("成功写入一行数据到 通讯录管理.txt 中");
			}
		writer.close();//关闭写入流,释放资源
		}
	
	//读取
	public static void readFunction() throws IOException{
		FileReader reader = new FileReader("通讯录管理.txt");
		BufferedReader br = new BufferedReader(reader);
		String str;
		while((str = br.readLine()) != null){//每次读取一行文本,判断是否到达文件尾
			System.out.println(str);
			}
		br.close();
		}
	}

Demo类:

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class Demo extends JFrame {
	public Demo(){
		Container c = getContentPane(); //定义一个顶级容器c
		JPanel jp = new JPanel(); //新建JPanel面板--jp
		JButton button1 = new JButton("新建联系人");
		JButton button2 = new JButton("删除联系人");
		JButton button3 = new JButton("编辑联系人");
		JButton button4 = new JButton("查找联系人");
		JButton button5 = new JButton("显示已保存联系人");
		JButton button6 = new JButton("保存联系人");
		JButton button7 = new JButton("读取已保存联系人");
		jp.setLayout(new GridLayout(2,4,5,5));//新建网格布局管理器(行数,列数,组件间的水平垂直间距)
		jp.add(button1);
		jp.add(button2);
		jp.add(button3);
		jp.add(button4);
		jp.add(button5);
		jp.add(button6);
		jp.add(button7);
		c.add(jp);
		setSize(600,500);
		setTitle("*通 讯 录 管 理 系 统*");
		setVisible(true);
		setResizable(false);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		button1.addActionListener(new ActionListener(){//添加功能实现
			public void actionPerformed(ActionEvent arg0){
				Infro.addFunction();
				}
			});
		button2.addActionListener(new ActionListener(){//删除功能实现
			public void actionPerformed(ActionEvent arg0){
				Infro.deleteFunction();
				}
			});
		button3.addActionListener(new ActionListener(){//修改功能实
			public void actionPerformed(ActionEvent arg0){
				Infro.reditFunction();
				}
			});
		button4.addActionListener(new ActionListener(){//查询功能实现
			public void actionPerformed(ActionEvent arg0){
				try {
					Infro.searchFunction();
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						}
				}
			});
		button5.addActionListener(new ActionListener(){//显示功能实现
			public void actionPerformed(ActionEvent arg0){
				Infro.showFunction();
				}
			});
		button6.addActionListener(new ActionListener(){//保存功能实现
			public void actionPerformed(ActionEvent arg0){
				try {
					Infro.writeFunction();
					} catch (IOException e) {
						e.printStackTrace();
						}
				}
			});
		button7.addActionListener(new ActionListener(){//读取功能实现
			public void actionPerformed(ActionEvent arg0){
				try {
					Infro.readFunction();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						}
				}
			});
		}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Demo();
		Infro a = new Infro("", "", "", "", "", "");
		}
	}

4 系统实现

通讯录管理系统总体实现代码运行正常,总体运行效果图如图4.1所示:

Java--通讯录管理系统【课程设计】

图4.1 通讯录管理系统总体运行效果图

5 系统测试

5.1新建联系人

用户使用后,可直接选择新建联系人进行信息添加,如图5.1所示:

Java--通讯录管理系统【课程设计】

图5.1 新建联系人

5.2修改联系人

用户登陆系统后,可在系统主功能模式中选择编辑联系人如图5.2所示:

Java--通讯录管理系统【课程设计】

图5.2 修改联系人

5.3查询联系人

5.3.1 显示已保存联系人

用户登陆系统后,可在系统主功能模式中选择显示已保存联系人查询,如图5.3所示:

Java--通讯录管理系统【课程设计】

图5.3 已保存联系人查询

5.3.2 查找联系人

用户登陆系统后,可在系统主功能模式中选择查找联系人通过姓名查询,如图5.4所示:

Java--通讯录管理系统【课程设计】图5.4 查找联系人查询 

5.4保存联系人

用户登陆系统后,可在系统主功能模式中选择保存和查看保存联系人,如图5.5所示:

Java--通讯录管理系统【课程设计】图5.5 保存和查看保存联系人

5.5删除联系人

用户登陆系统后,可在系统主功能模式中选择删除联系人。

6 设计总结和心得体会

认识上的提升。本组成员一直都没有写过行数特别长的代码,以为没必要进行各种分析,但是在这次课程设计中,每个人都深深的感觉到了分析的重要性。没有一个大体规划,会导致思维上的混乱和程序上的错误,既不方便别人读写,也不方便本组成员发现错误和改正错误,所以这也是为什么一开始需要花功夫在分析设计上。

思维上的进步。一个好的程序需要强悍的编程能力,更需要一个良好的思维能力,这一点决定了代码是否拥有高的利用率,代码的利用率高可以节约不少阅读时间,既方便更改代码,还能节省空间,又能减小运行时间。

基础知识技能的提高。面向对象的思想是编程界的基本指导思想之一,它能够让程序设计人员采用一种接近真实世界的方式来设计程序,而不仅仅是考虑需要处理的数据和功能实现。这样我们就可以将程序中所需操作的对象抽象成类,并按照我们的需要来为它设置属性和方法,程序中的数据交换可以抽象为对象之间的交流,这样的思想隐藏了大量的细节,使得我们可以迅速的构建出程序的框架,实现快速开发。基于对象的程序扩展性也很强,具有十分优秀的可维护性。

总之,这次课程设计使本组成员收获很多、学会很多、比以往更有耐心很多。感谢学校及老师给本组成员这次课程设计的机会,在整个课程设计过程中我们懂得了许多东西,也培养了我们独立工作的能力,树立了对自我作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我们充分体会到了在创造过程中探索的艰难和成功的喜悦。由于我们的知识和能力有限,在很多方面还存在很多问题与不足,考虑不是十分充分。使本次设计离实际还是有一定的距离,需要进行不断地补充和完善。在此,也非常感谢老师给我们的指导和帮助。

参考文献

[1]贠玉芝.联系人管理系统的设计与实现[J].赤子(上中旬),2017(05):175.

[2]罗小朝. 民办学院联系人管理系统的设计与实现[D].西南交通大学,2018.

[3] 刘毅.Java高级编程课程思政案例教学初探[J].计算机时代,2020(12):85-87+90.

[4] 养廷,郭慧,任宏德.Java程序设计能力培养的探索与实践[J].工业和信息化教育,2020(11):89-92.

[5] 陈素清.Java程序设计课程实验教学研究[J].福建电脑,2020,36(11):176-177.

[6] 鹏飞,马宗保.轻量级Java客户端分布式服务的模块化工作流引擎方法[J].电子设计工程,2020,28(22):160-164+169.

[7]王玉庆.基于Java的联系人查询系统设计与实现[J].信息与电脑(理论版),2021,33(02):138-140.

[8]徐连霞,傅伟.联系人管理系统设计与实现[J].数码世界,2019(09):95-96.

[9] 韩继英.基于JAVA数据可视化设计与实现[J].科学技术创新,2020(32):89-90.

[10] 段莎莉.浅谈JAVA集合框架及其应用[J].信息技术与信息化,2020(10):104-106.文章来源地址https://www.toymoban.com/news/detail-418791.html

到了这里,关于Java--通讯录管理系统【课程设计】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 简单通讯录管理系统(Java)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档     任务 : 在之前的练习任务中,我们已经实现了通讯录的增删改查等基本功能,主要实现一个通讯录的菜单管理功能。 仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中实现通讯录菜单管

    2024年02月09日
    浏览(66)
  • Java、JSP等通讯录管理系统

    技术: Java、JSP 等 摘要: 1.1 选题背景 随着市场经济的发展和人们生活水平的提高,随着科学技术的发展,计算机领域不断取得新的研究成果。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。人们已经不满

    2024年02月04日
    浏览(50)
  • java+springboot+mysql校园通讯录管理系统

    项目介绍: 使用java+springboot+mysql开发的校园通讯录管理系统,系统包含超级管理员、管理员、用户角色,功能如下: 超级管理员:管理员管理;部门管理;用户管理;留言管理;公告管理;个人信息修改;密码修改。 管理员:比超级管理员少了一个管理员管理模块;其他的

    2024年02月13日
    浏览(40)
  • 通讯录管理系统

    作者:狮子也疯狂 专栏:《项目集锦》 坚持做好每一步,幸运之神自然会驾凌在你的身上 该项目是用于日常生活中记录联系人信息的一款智能小工具。实现了对联系人的姓名、年龄、性别、电话号码、住址的添加及修改、查找、删除、排序等功能。该项目是以 Windows 控制台

    2024年02月05日
    浏览(54)
  • 通讯录管理系统 C++

    目录 一、前言 二、设计要求  三、概要设计 3.1 主界面设计 3.1.1 设计图 3.1.2设计代码 3.2 存储结构设计 3.3 系统功能设计 3.3.1 系统流程图​编辑 3.3.2 系统子程序及功能介绍  四、详细设计 4.1 头文件 4.2 数据定义 4.3 系统主要子程序详细设计 4.3.1 主函数 4.3.2 添加联系人 4.3

    2024年02月09日
    浏览(72)
  • 通讯录管理系统C++代码

    目录 通讯录管理系统(课程设计) 一、系统中需要实现的功能 二、创建项目 三、实现功能 1、菜单功能  2.添加联系人功能  3.显示联系人功能 4.删除联系人  5 .查找联系人功能  6.修改联系人功能  7.清空联系人功能  8.退出功能 对于通讯录管理系统而言,不需要太复杂的

    2024年02月09日
    浏览(53)
  • 数据结构--学生通讯录管理系统

    文章目录 一、问题描述 二、系统功能设计 三、各个代码部分 四、整体代码及其运行 五、总结 学生通讯录管理系统--C语言实现 在现实中,用学号和姓名来记录学生需要花费大量的纸质材料,并且出现容易丢失、查找困难等问题。 “学生通讯管理系统”是为了帮助老师、同

    2024年02月11日
    浏览(59)
  • 【C语言】实现通讯录管理系统

    大家好,我是苏貝,本篇博客带大家实现通讯录,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 本文将使用C语言来实现通讯录管理系统,该通讯录包括若干联系人,和每个联系人的姓名、年龄、性别、电话、地址。此通讯录的功能包括:增加联系人信息,

    2024年02月08日
    浏览(49)
  • c++手机通讯录管理系统280

    定制魏:QTWZPW,获取更多源码等 目录 软件达到的目的 功能分析说明图  各项功能说明  主要数据结构类型  各个模块之间的调用关系和数据储存格式说明  各软件模块之间的调用方式  软件中实现各项功能的函数与程序主要代码  软件使用结果  添加联系人 显示联系人 拨

    2024年04月12日
    浏览(78)
  • 【C语言】优化通讯录管理系统

    大家好,我是苏貝,本篇博客带大家优化上一篇的通讯录,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 在上一篇博文 实现通讯录管理系统 的最后,我们了解了那段代码的问题:通讯录的大小是固定的100个元素,如果想要存放1000个人的信息,那么空间就

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包