根据给定的信息,我们可以推断出这是一份关于Java课程设计中的通讯录程序设计文档,但实际提供的代码示例却是C语言实现版本。因此,我们将基于这个标题与描述,生成有关Java课程设计通讯录源代码的相关知识点。 ### Java 课程设计 - 通讯录 #### 1. 项目概述 在本课程设计中,我们通过Java编程语言实现了一个简单的通讯录管理系统。该系统主要功能包括添加联系人、删除联系人、查询联系人以及显示所有联系人等基本操作。本系统的目的是为了加深学生对Java面向对象编程的理解,并掌握如何利用类和对象来实现数据管理的功能。 #### 2. 技术栈介绍 - **Java语言**:作为开发语言,利用其强大的类库支持和面向对象特性。 - **IDEA**:作为集成开发环境,方便代码编写、调试及运行。 - **JDK**:Java开发工具包,提供了必要的开发工具和库。 #### 3. 通讯录类设计 为了实现通讯录功能,我们首先需要定义一个`Contact`类来存储每个联系人的信息,包括姓名、电话号码、地址等。 ```java public class Contact { private String name; private String tel; private String address; public Contact(String name, String tel, String address) { this.name = name; this.tel = tel; this.address = address; } // Getter and Setter methods... } ``` #### 4. 通讯录管理类设计 接下来,我们需要设计一个`AddressBook`类来管理所有的联系人对象。该类将提供添加、删除、查找和显示联系人等方法。 ```java import java.util.ArrayList; import java.util.List; public class AddressBook { private List<Contact> contacts; public AddressBook() { contacts = new ArrayList<>(); } public void addContact(Contact contact) { contacts.add(contact); } public boolean deleteContact(String name) { for (int i = 0; i < contacts.size(); i++) { if (contacts.get(i).getName().equals(name)) { contacts.remove(i); return true; } } return false; } public Contact findContact(String name) { for (Contact contact : contacts) { if (contact.getName().equals(name)) { return contact; } } return null; } public void displayContacts() { for (Contact contact : contacts) { System.out.println("Name: " + contact.getName()); System.out.println("Tel: " + contact.getTel()); System.out.println("Address: " + contact.getAddress()); System.out.println("------------------------------"); } } } ``` #### 5. 用户界面设计 为了使用户能够与系统交互,还需要设计一个简单的命令行界面(CLI),用于接收用户的输入并执行相应的操作。 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); AddressBook addressBook = new AddressBook(); while (true) { System.out.println("Welcome to the Address Book System!"); System.out.println("1. Add a contact"); System.out.println("2. Delete a contact"); System.out.println("3. Find a contact"); System.out.println("4. Display all contacts"); System.out.println("5. Exit"); System.out.print("Please enter your choice: "); int choice = scanner.nextInt(); scanner.nextLine(); // Consume newline switch (choice) { case 1: System.out.print("Enter name: "); String name = scanner.nextLine(); System.out.print("Enter telephone number: "); String tel = scanner.nextLine(); System.out.print("Enter address: "); String address = scanner.nextLine(); Contact contact = new Contact(name, tel, address); addressBook.addContact(contact); break; case 2: System.out.print("Enter name to delete: "); name = scanner.nextLine(); boolean result = addressBook.deleteContact(name); if (result) { System.out.println("Contact deleted successfully."); } else { System.out.println("Contact not found."); } break; case 3: System.out.print("Enter name to find: "); name = scanner.nextLine(); Contact foundContact = addressBook.findContact(name); if (foundContact != null) { System.out.println("Found contact:"); System.out.println("Name: " + foundContact.getName()); System.out.println("Tel: " + foundContact.getTel()); System.out.println("Address: " + foundContact.getAddress()); } else { System.out.println("Contact not found."); } break; case 4: addressBook.displayContacts(); break; case 5: System.out.println("Exiting..."); System.exit(0); default: System.out.println("Invalid choice. Please try again."); } } } } ``` #### 6. 运行与测试 完成上述步骤后,可以在IDEA中运行`Main`类来启动通讯录系统。用户可以根据提示进行操作,例如添加、删除或查找联系人信息。 #### 7. 总结 本课程设计不仅帮助学生熟悉了Java语言的基本语法和面向对象的编程思想,还通过实际项目锻炼了学生的编程能力,提高了他们解决实际问题的能力。此外,通过该项目的设计和实现,还增强了学生的团队合作能力和项目管理能力。
#include<stdlib.h>
#include<string.h>
struct node{ //定义通讯录的结构
char name[20];
char tel[15];
char address[100];
char grade[100];
struct node *next;
};
struct node * CreatDoc(); //新建通讯录
struct node * InsertDoc(struct node *L,struct node *contact); //插入联系人
struct node * DeleteDoc(struct node *L,int num); //删除联系人
void PrintDoc(struct node *L); //遍历联系人
//创建通讯录链表
struct node * CreatDoc()
{
struct node *L,*p;
char name1[20]="end";
char name[20];
char tel[15];
char address[100];
char grade[100];
L=NULL;
printf(" 快输入通讯录成员的信息吧!注意啦,结束时要在姓名栏下输入end哦!!\n");
printf(" 姓名 电话 地址 年级\n");
scanf("%20s%15s%100s%100s",name,tel,address,grade);
while(strcmp(name1,name)!=0){
strcpy(p->name,name);
strcpy(p->tel,tel);
strcpy(p->address,address);
strcpy(p->grade,grade);
L=InsertDoc(L,p); //调用插入函数
scanf("%15s",name);
if(strcmp(name1,name)==0)break;
scanf("%15s%100s%100s",tel,address,grade);
}
return L;
}
//插入联系人操作
struct node * InsertDoc(struct node *L,struct node *contact)
{
struct node *ptr,*ptr1,*ptr2;
ptr2=L;
ptr=contact; //ptr指向待插入的新的联系人结点
if(L==NULL){ //原通讯录链表为空时的插入
L=ptr;
L->next=NULL;
}
else{ //原通讯录链表不为空时的插入
while(ptr2->next!=NULL){
剩余9页未读,继续阅读
- 菩提树下吹口哨2012-06-04有点乱,不过能调试成功的,不错
- 粉丝: 2
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助