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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java控制台通讯录

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

一、課程設計目的

本課程設計是利用Java進行程序設計的一個關鍵實踐環節。它是根據教學計劃的要求,在教師的指導下,對學生實施程序設計訓練的必要過程,是對前期課堂教學效果的檢驗。其目標在于培養學生綜合運用面向對象的方法完成小型軟件系統的分析與設計,熟練使用Java語言及JavaSE類庫完成桌面應用軟件的開發和調試。通過這個課程設計,要求學生能夠遵循軟件開發過程的基本規范,按照課程設計的題目要求,獨立地完成設計、編寫、調試和測試應用程序及編寫文檔的任務。

二、課程設計任務

通訊錄:

制作一個通訊錄程序,功能要求:

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

    所選擇的課題進行需求分析,詳細描述所要實現的功能

    需要實現的功能如下:

    1.系統可以使用命令退出

    2.信息的查詢:可以讓用戶選擇是否繼續查詢,或隨時結束

    3.信息的添加

    4.信息的刪除:當用戶輸入未在通訊錄中的人時提示用戶重新輸入

    5.信息的修改

    6.信息的顯示

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

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

    四、系統設計

    系統模塊劃分,描述類與類之間的關系

    先考慮到通訊錄的內容為:姓名與電話,所以建立聯系人實體類Contact

    再考慮到系統功能為數據的增刪改查,所以定義了訪問數據的類Text

    然后采用類MainMenu實現界面上顯示

    五、系統實現

    程序設計,核心模塊實現技術的說明

    增添模塊:

    ?

    ?

    刪除模塊:

    ?

    ?

    修改模塊:

    ?

    ?

    查詢模塊:

    ?

    ?

    文件操作讀寫方法:

    ?

    ?

    ?

    界面跳轉方法:

    GoView()

    六、總結

    我的課程設計的基于Java的通訊錄系統。在一個月的課程時間里,通過不斷的查找資料,調試代碼和同學的幫助,完成了指定的系統的功能。通過這次課程設計,我加深了對Java程序的理解,熟練掌握了類的封裝等,并且能把它們運用到實際的程序中去。

    通過這次課程設計,我收獲的不僅僅是課程上的知識得到實際應用,還有編程的基本習慣和開發系統時應注意的流程。

    ?

    附錄:

    程序代碼(主要模塊)

    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("***查詢聯系人請按0!***");

    contact.AddMenuBar("***添加聯系人請按1!***");

    contact.AddMenuBar("***刪除聯系人請按2!***");

    contact.AddMenuBar("***修改聯系人請按3!***");

    contact.AddMenuBar("顯示所有聯系人信息請按4!");

    contact.AddMenuBar("拷貝所有聯系人信息請按5!");

    contact.PrintMenuBar();

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

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

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

    }

    ?

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

    int?judge=0;

    while(judge==0){

    new?MainMenu();

    System.out.println("返回請按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("請輸入客戶姓名:");

    contact.setName(a.nextLine());

    System.out.println("請輸入客戶電話號碼:");

    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?自動生成的構造函數存根

    }

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

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

    arg[0]="聯系人姓名 聯系人電話";

    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 自動生成的構造函數存根

    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 + "錯誤!"); ?

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

    ?????} ?

    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 + "錯誤!"); ?

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

    ?????} ?

    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("未找到此人無法刪除,請重新輸出姓名"+"\n請輸入姓名:");

    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("未找到此人,請重新輸入!");

    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("未找到此人無法修改,請重新輸出姓名"+"\n請輸入姓名:");

    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("請輸入新的用戶信息:");

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

    new Add();

    return 1;

    }

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

    return 0;

    }

    }

    ?

    package?task;

    ?

    import?java.util.Scanner;

    ?

    public?class?Delete {

    private?Text xx;

    private?Scanner scanner;

    public?Delete() {

    // TODO?自動生成的構造函數存根

    xx=new?Text();

    int?judge=1;

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

    while(judge==1){

    System.out.println("請輸入要刪除的聯系人的姓名"+"\n請輸入姓名:");

    xx.DeleteInfor();

    System.out.println("是否確認刪除聯系人,繼續刪除輸入1,否則任意鍵結束查詢");

    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?自動生成的構造函數存根

    int?judge=1;

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

    xx=new?Text();

    while(judge==1){

    System.out.println("請輸入聯系人姓名:");

    xx.SearchName();

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

    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?自動生成的構造函數存根

    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("請輸入要存放的位置以及名字");

    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("復制成功。請往"+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("請輸入要修改的的姓名"+"\n請輸入客戶姓名:");

    xx.Update();

    }

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

    new?Change();

    }

    }

    ?

    ?

    ?

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。