个人通讯录管理系统 建立一个同学通讯录,输入学号、姓名、电话号码、住址等信息,然后 对通信录进行显示、查找、添加、修改。 编写一个菜单驱动的通讯录,其功能要求: (1) 通讯录的每一条信息包括学号、姓名、家庭住址、电话、分类(如 同事、朋友、同学、家人等)、EMAIL、QQ 等。 (2) 输入功能:可以一次完成若干条信息的输入。 (3) 显示功能:完成全部通讯录信息的显示。 (4) 查找功能:可以按姓名或按类别等多种方式查找通讯信息 (5) 修改功能:根据需要完成通讯录信息的更新、修改 (6) 排序功能:可按照所有学生的学号从小到大进行排序; (7)通讯录数据要能够保存,可采用文件读写技术存放于专门的数据文 件如 xxx.txt,在程序开始运行时,可以通过读取该文件获得记录数据
时间: 2024-05-02 14:21:26 浏览: 25
好的,这是一个通讯录管理系统的需求,我可以为您提供一些实现思路。
首先,您可以使用一个结构体来表示每个通讯录条目,这个结构体包含学号、姓名、家庭住址、电话、分类、EMAIL、QQ等字段。
然后,您可以实现一个菜单驱动的程序,用户可以选择输入、显示、查找、添加、修改、排序等功能。
对于输入功能,您可以让用户逐条输入每个通讯录条目,或者批量输入多个条目。
对于显示功能,您可以遍历所有的通讯录条目,然后逐个输出到屏幕上。
对于查找功能,您可以让用户选择按照姓名、分类等方式进行查找,然后遍历所有的条目,找到符合条件的条目输出到屏幕上。
对于修改功能,您可以让用户选择要修改的条目,然后让用户输入新的信息,更新该条目的信息。
对于排序功能,您可以使用快速排序等算法,按照学号从小到大进行排序。
最后,您需要将通讯录数据保存到文件中,可以使用文件读写技术。在程序开始运行时,可以读取该文件中的记录数据,然后加载到内存中。
以上是一个通讯录管理系统的基本思路,您可以根据自己的需求进行进一步的修改和完善。
相关问题
C语言建立一个同学通讯录,输入学号、姓名、电话号码、住址等信息,然后 对通信录进行显示、查找、添加、修改
好的,这是一个比较基础的 C 语言项目,我可以为您提供大致的思路和代码框架。首先,我们可以定义一个结构体类型来存储同学的信息:
```c
typedef struct {
int id; // 学号
char name[20]; // 姓名
char phone[20]; // 电话号码
char address[50]; // 住址
} Student;
```
接下来,我们可以定义一个数组来存储多个同学的信息:
```c
#define MAX_STUDENTS 100 // 最多可以存储的同学数目
Student students[MAX_STUDENTS]; // 存储同学信息的数组
int num_students = 0; // 当前存储的同学数目
```
然后,我们可以编写几个函数来实现对通讯录的操作。具体实现可以参考下面的代码框架:
```c
// 显示所有同学的信息
void display_students() {
printf("所有同学的信息如下:\n");
for (int i = 0; i < num_students; i++) {
printf("学号:%d,姓名:%s,电话号码:%s,住址:%s\n",
students[i].id, students[i].name, students[i].phone, students[i].address);
}
}
// 查找指定学号的同学
void search_student() {
int id;
printf("请输入要查找的学号:");
scanf("%d", &id);
for (int i = 0; i < num_students; i++) {
if (students[i].id == id) {
printf("找到了以下同学的信息:\n");
printf("学号:%d,姓名:%s,电话号码:%s,住址:%s\n",
students[i].id, students[i].name, students[i].phone, students[i].address);
return;
}
}
printf("没有找到该学号的同学!\n");
}
// 添加一个新的同学
void add_student() {
if (num_students >= MAX_STUDENTS) {
printf("通讯录已满,无法添加新的同学!\n");
return;
}
printf("请输入新的同学信息:\n");
printf("学号:");
scanf("%d", &students[num_students].id);
printf("姓名:");
scanf("%s", students[num_students].name);
printf("电话号码:");
scanf("%s", students[num_students].phone);
printf("住址:");
scanf("%s", students[num_students].address);
num_students++;
printf("成功添加了新的同学!\n");
}
// 修改指定学号的同学信息
void modify_student() {
int id;
printf("请输入要修改的学号:");
scanf("%d", &id);
for (int i = 0; i < num_students; i++) {
if (students[i].id == id) {
printf("请输入新的同学信息:\n");
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("电话号码:");
scanf("%s", students[i].phone);
printf("住址:");
scanf("%s", students[i].address);
printf("成功修改了该同学的信息!\n");
return;
}
}
printf("没有找到该学号的同学,无法修改信息!\n");
}
```
最后,我们可以编写一个主函数来调用上述的函数,实现对通讯录的操作:
```c
int main() {
while (true) {
printf("请选择要进行的操作:\n");
printf("1. 显示所有同学的信息\n");
printf("2. 查找指定学号的同学\n");
printf("3. 添加一个新的同学\n");
printf("4. 修改指定学号的同学信息\n");
printf("0. 退出程序\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
display_students();
break;
case 2:
search_student();
break;
case 3:
add_student();
break;
case 4:
modify_student();
break;
case 0:
printf("感谢使用本程序,再见!\n");
return 0;
default:
printf("无效的操作,请重新选择!\n");
}
}
}
```
以上就是一个基本的同学通讯录的实现思路和代码框架,您可以根据实际情况进行修改和完善。希望对您有所帮助!
建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
好的,这是一个比较复杂的项目,需要涉及到文件读写、数据结构等知识,我会尽可能详细地给出代码和解释,希望能帮到你。
首先,我们需要定义一个联系人的结构体,其中包括姓名、电话号码、住址等信息:
```c++
struct Contact {
string name;
string phone;
string address;
};
```
接下来,我们需要实现一个通讯录类,其中包括显示、查找、添加、修改和删除联系人的功能。为了方便起见,我们将通讯录保存在一个文本文件中,每一行表示一个联系人,各个信息之间用逗号分隔。
```c++
class AddressBook {
public:
// 构造函数,从文件中读取联系人信息
AddressBook(string fileName) : m_fileName(fileName) {
ifstream fin(fileName);
if (fin) {
string line;
while (getline(fin, line)) {
Contact contact = parseLine(line);
m_contacts.push_back(contact);
}
fin.close();
}
else {
cerr << "Error: Failed to open file " << fileName << endl;
}
}
// 显示所有联系人
void displayAll() {
for (const auto& contact : m_contacts) {
cout << contact.name << "\t" << contact.phone << "\t" << contact.address << endl;
}
}
// 查找联系人
void search(string name) {
bool found = false;
for (const auto& contact : m_contacts) {
if (contact.name == name) {
cout << contact.name << "\t" << contact.phone << "\t" << contact.address << endl;
found = true;
}
}
if (!found) {
cout << "Contact not found" << endl;
}
}
// 添加联系人
void add(Contact contact) {
m_contacts.push_back(contact);
writeToFile(); // 将联系人信息写入文件
}
// 修改联系人
void modify(string name, Contact newContact) {
for (auto& contact : m_contacts) {
if (contact.name == name) {
contact = newContact;
writeToFile(); // 将联系人信息写入文件
return;
}
}
cout << "Contact not found" << endl;
}
// 删除联系人
void remove(string name) {
for (auto it = m_contacts.begin(); it != m_contacts.end(); ++it) {
if (it->name == name) {
m_contacts.erase(it);
writeToFile(); // 将联系人信息写入文件
return;
}
}
cout << "Contact not found" << endl;
}
private:
string m_fileName; // 保存通讯录的文件名
vector<Contact> m_contacts; // 所有联系人的信息
// 将一行字符串解析为一个联系人的信息
Contact parseLine(string line) {
Contact contact;
stringstream ss(line);
getline(ss, contact.name, ',');
getline(ss, contact.phone, ',');
getline(ss, contact.address, ',');
return contact;
}
// 将所有联系人信息写入文件
void writeToFile() {
ofstream fout(m_fileName);
if (fout) {
for (const auto& contact : m_contacts) {
fout << contact.name << "," << contact.phone << "," << contact.address << endl;
}
fout.close();
}
else {
cerr << "Error: Failed to write to file " << m_fileName << endl;
}
}
};
```
最后,我们可以在主函数中创建一个 AddressBook 对象,并使用它的各个方法进行通讯录的操作:
```c++
int main() {
AddressBook addressBook("contacts.txt");
addressBook.displayAll();
addressBook.search("Alice");
addressBook.add({"Bob", "123456789", "123 Main St"});
addressBook.modify("Bob", {"Bob", "987654321", "456 Oak St"});
addressBook.remove("Alice");
return 0;
}
```
这样就完成了一个简单的通讯录程序。需要注意的是,这里只是一个简单的示例,实际的通讯录程序可能需要更多的功能和错误处理。
相关推荐
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)