日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java控制台通讯录

發(fā)布時(shí)間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java控制台通讯录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、課程設(shè)計(jì)目的

本課程設(shè)計(jì)是利用Java進(jìn)行程序設(shè)計(jì)的一個(gè)關(guān)鍵實(shí)踐環(huán)節(jié)。它是根據(jù)教學(xué)計(jì)劃的要求,在教師的指導(dǎo)下,對(duì)學(xué)生實(shí)施程序設(shè)計(jì)訓(xùn)練的必要過程,是對(duì)前期課堂教學(xué)效果的檢驗(yàn)。其目標(biāo)在于培養(yǎng)學(xué)生綜合運(yùn)用面向?qū)ο蟮姆椒ㄍ瓿尚⌒蛙浖到y(tǒng)的分析與設(shè)計(jì),熟練使用Java語言及JavaSE類庫完成桌面應(yīng)用軟件的開發(fā)和調(diào)試。通過這個(gè)課程設(shè)計(jì),要求學(xué)生能夠遵循軟件開發(fā)過程的基本規(guī)范,按照課程設(shè)計(jì)的題目要求,獨(dú)立地完成設(shè)計(jì)、編寫、調(diào)試和測(cè)試應(yīng)用程序及編寫文檔的任務(wù)。

二、課程設(shè)計(jì)任務(wù)

通訊錄:

制作一個(gè)通訊錄程序,功能要求:

  • 自定義數(shù)據(jù)庫文件格式。
  • 提供輸入、顯示、查找、添加、刪除、插入、保存、讀入、拷貝、排序等功能。
  • 三、需求分析

    所選擇的課題進(jìn)行需求分析,詳細(xì)描述所要實(shí)現(xiàn)的功能

    需要實(shí)現(xiàn)的功能如下:

    1.系統(tǒng)可以使用命令退出

    2.信息的查詢:可以讓用戶選擇是否繼續(xù)查詢,或隨時(shí)結(jié)束

    3.信息的添加

    4.信息的刪除:當(dāng)用戶輸入未在通訊錄中的人時(shí)提示用戶重新輸入

    5.信息的修改

    6.信息的顯示

    7.信息的拷貝:提示用戶要存放及查看的位置

    8.返回主菜單:每項(xiàng)功能的使用完成后能夠返回主菜單選擇其他功能

    四、系統(tǒng)設(shè)計(jì)

    系統(tǒng)模塊劃分,描述類與類之間的關(guān)系

    先考慮到通訊錄的內(nèi)容為:姓名與電話,所以建立聯(lián)系人實(shí)體類Contact

    再考慮到系統(tǒng)功能為數(shù)據(jù)的增刪改查,所以定義了訪問數(shù)據(jù)的類Text

    然后采用類MainMenu實(shí)現(xiàn)界面上顯示

    五、系統(tǒng)實(shí)現(xiàn)

    程序設(shè)計(jì),核心模塊實(shí)現(xiàn)技術(shù)的說明

    增添模塊:

    ?

    ?

    刪除模塊:

    ?

    ?

    修改模塊:

    ?

    ?

    查詢模塊:

    ?

    ?

    文件操作讀寫方法:

    ?

    ?

    ?

    界面跳轉(zhuǎn)方法:

    GoView()

    六、總結(jié)

    我的課程設(shè)計(jì)的基于Java的通訊錄系統(tǒng)。在一個(gè)月的課程時(shí)間里,通過不斷的查找資料,調(diào)試代碼和同學(xué)的幫助,完成了指定的系統(tǒng)的功能。通過這次課程設(shè)計(jì),我加深了對(duì)Java程序的理解,熟練掌握了類的封裝等,并且能把它們運(yùn)用到實(shí)際的程序中去。

    通過這次課程設(shè)計(jì),我收獲的不僅僅是課程上的知識(shí)得到實(shí)際應(yīng)用,還有編程的基本習(xí)慣和開發(fā)系統(tǒng)時(shí)應(yīng)注意的流程。

    ?

    附錄:

    程序代碼(主要模塊)

    package?task;

    import?java.util.Scanner;

    public?class?MainMenu {

    private?Menu contact;

    private?static?Scanner scanner;

    public?MainMenu() {

    contact=new?Menu();

    ??System.out.println("*************************");

    contact.AddMenuBar("***查詢聯(lián)系人請(qǐng)按0!***");

    contact.AddMenuBar("***添加聯(lián)系人請(qǐng)按1!***");

    contact.AddMenuBar("***刪除聯(lián)系人請(qǐng)按2!***");

    contact.AddMenuBar("***修改聯(lián)系人請(qǐng)按3!***");

    contact.AddMenuBar("顯示所有聯(lián)系人信息請(qǐng)按4!");

    contact.AddMenuBar("拷貝所有聯(lián)系人信息請(qǐng)按5!");

    contact.PrintMenuBar();

    ?System.out.println("*************************");

    System.out.println("請(qǐng)選擇功能(0-5):");

    while(GoView.Menu()==0);

    }

    ?

    public?static?void?main(String args[]) {

    int?judge=0;

    while(judge==0){

    new?MainMenu();

    System.out.println("返回請(qǐng)按0");

    scanner?= new?Scanner(System.in);

    ?judge=Integer.valueOf(scanner.nextLine());

    }

    }

    }

    ?

    ?

    ?

    ?

    package?task;

    import?java.util.Scanner;

    public?class?Add {

    private?Menu addView;

    private?Text xx;

    private?Contact contact;

    private?Occur Occur;

    public?Add() {

    xx=new?Text();

    contact=new?Contact();

    Occur=new?Occur();

    Scanner a=new?Scanner(System.in);

    System.out.println("請(qǐng)輸入客戶姓名:");

    contact.setName(a.nextLine());

    System.out.println("請(qǐng)輸入客戶電話號(hào)碼:");

    contact.setTelephone(a.nextLine());

    xx.AddInfor(contact);

    }

    public?Menu getAddView() {

    return?addView;

    }

    ?

    public?void?setAddView(Menu addView) {

    this.addView?= addView;

    }

    ?

    public?Text getxx() {

    return?xx;

    }

    ?

    public?void?setxx(Text xx) {

    this.xx?= xx;

    }

    ?

    public?Contact getContact() {

    return?contact;

    }

    ?

    public?void?setContact(Contact contact) {

    this.contact?= contact;

    }

    ?

    public?Occur getOccur() {

    return?Occur;

    }

    ?

    public?void?setGenerated(Occur Occur) {

    this.Occur?= Occur;

    }

    ?

    public?static?void?main(String atg[]){

    new?Add();

    }

    }

    package?task;

    ?

    import?java.util.List;

    ?

    public?class?Array {

    ?

    public?Array() {

    // TODO?自動(dòng)生成的構(gòu)造函數(shù)存根

    }

    public?static?String[] getOfCustomerInfor(List <Contact>list){

    String arg[]=new?String[list.size()];

    arg[0]="聯(lián)系人姓名 聯(lián)系人電話";

    for(int?i=1;i<list.size();i++)

    {

    arg[i]=list.get(i).getName()+" "+list.get(i).getTelephone();

    }

    return?arg;

    }

    public?static?String ?getInfor(Contact contact){

    String arg=new?String();

    arg=contact.getName()+" "+contact.getTelephone();

    return?arg;

    }

    public?static?String getofString(List <String>list){

    String arg[]=new?String[list.size()];

    String sum=new?String();

    for(int?i=0;i<list.size();i++)

    {

    String temp=i+":"+list.get(i)+"\n";

    sum+=temp;

    }

    return?sum;

    }

    }

    package task;

    ?

    import java.io.BufferedWriter;

    import java.io.FileWriter;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Scanner;

    ?

    ?

    public class Text ?{

    private Occur Occur;

    public Text() {

    // TODO 自動(dòng)生成的構(gòu)造函數(shù)存根

    Occur=new Occur();

    }

    public void AddInfor(Contact contact){

    System.out.println(Array.getInfor(contact));

    String temp=Array.getInfor(contact);

    writeLineFile("src/1.txt",temp);

    }

    public void writeLineFile(String filename, String content){ ?

    ?????????try { ?

    ???????? FileWriter fileWriter=new FileWriter(filename,true);

    ???????????BufferedWriter bufWrite = new BufferedWriter(fileWriter);

    ???????????bufWrite.write(content+"\r\n");

    ???????????bufWrite.close(); ?

    ???????????fileWriter.close();

    ???????????System.out.println("錄入成功");

    ?????????} catch (Exception e) { ?

    ?????????????e.printStackTrace(); ?

    ?????????????System.out.println("讀取" + filename + "錯(cuò)誤!"); ?

    ?????????} ????????

    ?????} ?

    public void writeallLine(String filename, String []content){

    ?????????try { ??

    ???????? FileWriter fileWriter=new FileWriter(filename);

    ???????????BufferedWriter bufWrite = new BufferedWriter(fileWriter);

    ????????????for (int i = 0; i < content.length; i++) { ?

    ??????????????bufWrite.write(content[i]+"\r\n"); ?

    ????????????}

    ???????????bufWrite.close(); ?

    ???????????fileWriter.close();

    ?????????} catch (Exception e) { ?

    ?????????????e.printStackTrace(); ?

    ?????????????System.out.println("讀取" + filename + "錯(cuò)誤!"); ?

    ?????????} ????????

    ?????} ?

    public Occur getOccur() {

    return Occur;

    }

    public void setOccur(Occur Occur) {

    this.Occur = Occur;

    }

    public void DeleteInfor(){

    while(DeleteByName()==0);

    }

    private int ?DeleteByName(){

    Scanner sc = new Scanner(System.in);

    String judge=new String();

    judge=sc.nextLine();

    String Name=new String();

    List <Contact> pl=Occur.getContacts();

    for(Object temp:pl){

    Contact p =(Contact)temp;

    if (judge.equals(p.getName())){

    Name=judge;

    judge="1";

    }

    }

    if(!judge.equals("1")){

    System.out.println("未找到此人無法刪除,請(qǐng)重新輸出姓名"+"\n請(qǐng)輸入姓名:");

    return 0;

    }

    System.out.println(Name);

    List <Contact> ple=Occur.getContacts();

    List del =new ArrayList<>();

    int tep=ple.size();

    for(Object temp:ple){

    Contact p =(Contact)temp;

    if (Name.equals(p.getName())){

    del.add(p);

    }

    }

    ple.removeAll(del);

    if(ple.size()!=tep)

    {

    System.out.println("刪除成功");

    }

    else{

    System.out.println("刪除失敗");

    return 0;

    }

    writeallLine("src/1.txt", Array.getOfCustomerInfor(ple));

    return 0;

    }

    public void SearchName(){

    while(MainSearchByName()==null);

    }

    public String MainSearchByName(){

    Scanner sc = new Scanner(System.in);

    String judge=sc.nextLine();

    List <Contact> ple=Occur.getContacts();

    for(Object temp:ple){

    Contact p =(Contact)temp;

    if (judge.equals(p.getName())){

    Occur.Format(p);

    return judge;

    }

    }

    System.out.println("未找到此人,請(qǐng)重新輸入!");

    return null;

    }

    public String SearchAll(){

    List <Contact> ple=Occur.getContacts();

    for(Object temp:ple){

    Contact p =(Contact)temp;

    Occur.FormatMain(p);

    }

    return null;

    ?

    }

    public void Update(){

    while(UpdateByName()==0);

    }

    private int ?UpdateByName(){

    Scanner sc = new Scanner(System.in);

    String judge=new String();

    judge=sc.nextLine();

    String Name=new String();

    List <Contact> pl=Occur.getContacts();

    for(Object temp:pl){

    Contact p =(Contact)temp;

    if (judge.equals(p.getName())){

    Name=judge;

    judge="1";

    }

    }

    if(!judge.equals("1")){

    System.out.println("未找到此人無法修改,請(qǐng)重新輸出姓名"+"\n請(qǐng)輸入姓名:");

    return 0;

    }

    List <Contact> ple=Occur.getContacts();

    List del =new ArrayList<>();

    int tep=ple.size();

    for(Object temp:ple){

    Contact p =(Contact)temp;

    if (Name.equals(p.getName())){

    del.add(p);

    }

    }

    ple.removeAll(del);

    if(tep!=ple.size()){

    System.out.println("請(qǐng)輸入新的用戶信息:");

    writeallLine("src/1.txt", Array.getOfCustomerInfor(ple));

    new Add();

    return 1;

    }

    System.out.println("未找到該用戶,請(qǐng)重新輸入!");

    return 0;

    }

    }

    ?

    package?task;

    ?

    import?java.util.Scanner;

    ?

    public?class?Delete {

    private?Text xx;

    private?Scanner scanner;

    public?Delete() {

    // TODO?自動(dòng)生成的構(gòu)造函數(shù)存根

    xx=new?Text();

    int?judge=1;

    scanner?= new?Scanner(System.in);

    while(judge==1){

    System.out.println("請(qǐng)輸入要?jiǎng)h除的聯(lián)系人的姓名"+"\n請(qǐng)輸入姓名:");

    xx.DeleteInfor();

    System.out.println("是否確認(rèn)刪除聯(lián)系人,繼續(xù)刪除輸入1,否則任意鍵結(jié)束查詢");

    judge=Integer.valueOf(scanner.nextLine());

    xx=new?Text();

    }

    ?

    }

    public?static?void?main(String arg[]){

    new?Delete();

    }

    }

    ?

    package?task;

    ?

    import?java.util.Scanner;

    public?class?Search {

    private?Text xx;

    private?Scanner scanner;

    public?Search() {

    // TODO?自動(dòng)生成的構(gòu)造函數(shù)存根

    int?judge=1;

    scanner?= new?Scanner(System.in);

    xx=new?Text();

    while(judge==1){

    System.out.println("請(qǐng)輸入聯(lián)系人姓名:");

    xx.SearchName();

    System.out.println("是否要繼續(xù)查詢,繼續(xù)請(qǐng)按1,退出請(qǐng)按任意鍵");

    judge=Integer.valueOf(scanner.nextLine());

    }

    ?

    }

    public?static?void?main(String arg[]){

    new?Search();

    }

    }

    package task;

    ?

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileReader;

    import java.io.IOException;

    import java.io.ObjectInputStream;

    import java.util.ArrayList;

    import java.util.List;

    ?

    ?

    public class Occur {

    private List<Contact> contacts;

    public Occur() {

    contacts=new ArrayList<Contact>();

    this.readFileByLinesCustomerInfor("src/1.txt", contacts);

    }

    ?public List<Contact> getContacts() {

    return contacts;

    }

    public void setContacts(List<Contact> contacts) {

    this.contacts = contacts;

    }

    public List<Contact> readFileByLinesCustomerInfor(String fileName,List <Contact>list) {

    ????????File file = new File(fileName);

    ????????BufferedReader reader = null;

    ????????try {

    ????????????reader = new BufferedReader(new FileReader(file));

    ????????????String tempString = null;

    ????????????int line = 1;

    ????????????while ((tempString = reader.readLine()) != null) {

    ???????????? list.add(GetInfor(tempString));

    ????????????????line++;

    ????????????}

    ????????????reader.close();

    ???????????

    ????????} catch (IOException e) {

    ????????????e.printStackTrace();

    ????????} finally {

    ????????????if (reader != null) {

    ????????????????try {

    ????????????????????reader.close();

    ????????????????} catch (IOException e1) {

    ????????????????}

    ????????????}

    ????????}

    ????????if(list!=null)

    ????????????return list;

    ????????????return null;

    ????}

    ?public static Contact GetInfor(String tempString){

    ??String []temp=tempString.split(" "); ?

    ??Contact employee=new Contact();

    ??if(!temp[0].equals("客戶姓名")){

    ??employee.setName(temp[0]);

    ??employee.setTelephone(temp[0]);

    ??}

    ??return employee;

    ?}

    public static void Format(Contact contact){

    if(contact.getName()!=null){

    System.out.println("客戶姓名:"+contact.getName());

    System.out.println("客戶電話:"+contact.getTelephone()+"\n");

    }

    }

    public static void FormatMain(Contact contact){

    if(contact.getName()!=null){

    System.out.println("客戶姓名:"+contact.getName());

    }

    }

    public static void main(String args[]) throws IOException, Exception{

    List list=new ArrayList<>();

    Occur OccurtAccount=new Occur();

    for(int i=0;i<OccurtAccount.getContacts().size();i++){

    Format(OccurtAccount.getContacts().get(i));

    }

    }

    }

    ?

    package?task;

    public?class?GetAll {

    private?Text xx;

    public?GetAll() {

    // TODO?自動(dòng)生成的構(gòu)造函數(shù)存根

    xx=new?Text();

    xx.SearchAll();

    }

    public?static?void?main(String args[]){

    GetAll allContacts=new?GetAll();

    }

    }

    package?task;

    import?java.util.Scanner;

    public?class?GoView {

    private?static?Scanner aa;

    ?

    public?static?int?Menu(){

    aa?= new?Scanner(System.in);

    String judge=aa.nextLine();

    if(judge.equals("0")){

    new?Search();

    return?1;

    }

    if(judge.equals("1")){

    new?Add();

    return?1;

    }

    if(judge.equals("2")){

    new?Delete();

    return?1;

    }

    if(judge.equals("3")){

    new?Change();

    return?1;

    }

    if(judge.equals("4")){

    new?GetAll();

    return?1;

    }

    if(judge.equals("5")){

    new?Copy();

    return?1;

    }

    return?0;

    }

    ?

    ?

    ?

    }

    ?

    ?

    ?

    ?

    package task;

    ?

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.util.Scanner;

    ?

    public class Copy {

    ?

    public Copy() {

    System.out.println("請(qǐng)輸入要存放的位置以及名字");

    Scanner aa=new Scanner(System.in);

    String judge=aa.nextLine();

    CopyTo(judge);

    }

    public void CopyTo(String string){

    ?FileInputStream fis=null; ?

    ????????FileOutputStream fos=null; ?

    ????????try {

    ????????????fis = new FileInputStream("src/1.txt"); ?

    ????????????fos = new FileOutputStream(string,true); ?

    ????????????byte[] words=new byte[1024]; ?

    ????????????while((fis.read())!=-1){ ?

    ????????????????fis.read(words); ?

    ????????????????fos.write(words, 0, words.length); ?

    ????????????} ?

    ????????????System.out.println("復(fù)制成功。請(qǐng)往"+string+"查看"); ???????

    ????????} catch (FileNotFoundException e) { ?

    ????????????e.printStackTrace(); ?

    ????????} catch (IOException e) { ?

    ????????????e.printStackTrace(); ?

    ????????}finally{ ?

    ????????????try { ?

    ????????????????if(fos!=null) ?

    ????????????????????fos.close(); ?

    ????????????????if(fis!=null) ?

    ????????????????????fis.close(); ?

    ????????????} catch (IOException e) { ?

    ????????????????e.printStackTrace(); ?

    ????????????} ?

    ??????????????

    ????????} ?

    }

    }

    ?

    package task;

    ?

    import java.util.ArrayList;

    import java.util.List;

    ?

    public class Menu {

    private List <String>MenuBar;

    public Menu() {

    MenuBar=new ArrayList<String>();

    }

    public void AddMenuBar(String Menubar){

    MenuBar.add(Menubar);

    }

    public void PrintMenuBar(){

    System.out.println(Array.getofString(MenuBar));

    }

    }

    ?

    package?task;

    ?

    public?class?Change {

    private?Text xx;

    public?Change() {

    xx=new?Text();

    System.out.println("請(qǐng)輸入要修改的的姓名"+"\n請(qǐng)輸入客戶姓名:");

    xx.Update();

    }

    public?static?void?main(String arg[]){

    new?Change();

    }

    }

    ?

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的java控制台通讯录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。