ホームページ Java &#&ベース アドレス帳管理システムの Java 実装チュートリアル

アドレス帳管理システムの Java 実装チュートリアル

Jul 24, 2020 pm 05:37 PM

アドレス帳管理システムの Java 実装チュートリアル

#この記事の例では、参考までに Java でアドレス帳管理システムを実装するための具体的なコードを共有します。具体的な内容は次のとおりです。

プロジェクト完了までのプロセス:

1. ニーズに応じた大まかな方向性の決定

2. 機能モジュールの分析
3. インターフェース実装
4. 機能モジュールの設計
5.コーディング
6. コード テスト

以下はソース コードです:

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.concurrent.SynchronousQueue;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import javax.swing.text.html.HTMLDocument.Iterator;


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+" 姓名:"+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("输入编号:");
 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集合长度加一
// System.out.println(list.get(0).toString());
 }

 }
// public static void deleteFunction(){//删除功能
// System.out.println("输入要删除的联系人的编号");
// Scanner in_2 = new Scanner(System.in);
// String d1 = in_2.nextLine();
// for(int a= 0; a<len;a++){
// if(d1.equals(list.get(a).id)){
// list.remove(list.get(a));
// len --; 
// }
// }
// }
 /**
 * 删除功能
 **/
 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++){//切记,,这里不能用a<=list.seze(),否则会数组越界异常
 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();
 }
}


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);//将JPanel面板jp添加到顶级容器c中
 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("", "", "", "", "", "");
 }

}
ログイン後にコピー

推奨チュートリアル: "

Java チュートリアル "

以上がアドレス帳管理システムの Java 実装チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)