用c语言编写手机通讯录程序设计 总体需求 具有数据插入、修改、删除、显示、查询和统计功能的电话簿管理程序。 基本功能: 人数不定,数据使用文件存放。 1. 记录每位联系人的学号、姓名、性别、工作单位、电话号码和E-mail地址建立单独的条目,存入数据文件。 2. 可对记录中的姓名和电话号码等进行修改。 3. 可增加或删除记录 4. 可显示所有保存的记录 5. 加入统计功能,可以统计男女或总人数。 6. 加入查询功能,通过姓名、学号或电话号码查询到同学的条目。 在开始画面加入简单的菜单便于选择功能。 文件格式 1.储存数据文件格式 编号 姓名 性别 工作单位 电话号码 E-mail 1 李四 …. …. ….
时间: 2024-02-05 13:13:41 浏览: 92
这是一个较为复杂的程序设计,需要涉及文件操作、数据结构和算法等知识。以下是一个基本的程序框架,仅供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_WORKPLACE_LEN 50
#define MAX_PHONE_LEN 15
#define MAX_EMAIL_LEN 50
// 定义联系人结构体
struct Contact {
int id;
char name[MAX_NAME_LEN];
char gender;
char workplace[MAX_WORKPLACE_LEN];
char phone[MAX_PHONE_LEN];
char email[MAX_EMAIL_LEN];
};
// 声明函数
void print_menu();
void add_contact(FILE *fp);
void modify_contact(FILE *fp);
void delete_contact(FILE *fp);
void display_all_contacts(FILE *fp);
void count_contacts(FILE *fp);
void search_contact(FILE *fp);
int main() {
FILE *fp;
int choice;
// 打开数据文件
fp = fopen("contacts.dat", "rb+");
if (fp == NULL) {
fp = fopen("contacts.dat", "wb+");
if (fp == NULL) {
printf("Failed to create data file.\n");
exit(1);
}
}
// 显示菜单
do {
print_menu();
printf("Please enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact(fp);
break;
case 2:
modify_contact(fp);
break;
case 3:
delete_contact(fp);
break;
case 4:
display_all_contacts(fp);
break;
case 5:
count_contacts(fp);
break;
case 6:
search_contact(fp);
break;
case 0:
printf("Thanks for using!\n");
break;
default:
printf("Invalid choice. Please try again.\n");
break;
}
} while (choice != 0);
// 关闭数据文件
fclose(fp);
return 0;
}
// 打印菜单
void print_menu() {
printf("--------------------\n");
printf("1. Add contact\n");
printf("2. Modify contact\n");
printf("3. Delete contact\n");
printf("4. Display all contacts\n");
printf("5. Count contacts\n");
printf("6. Search contact\n");
printf("0. Exit\n");
printf("--------------------\n");
}
// 添加联系人
void add_contact(FILE *fp) {
// TODO: 实现添加联系人功能
}
// 修改联系人
void modify_contact(FILE *fp) {
// TODO: 实现修改联系人功能
}
// 删除联系人
void delete_contact(FILE *fp) {
// TODO: 实现删除联系人功能
}
// 显示所有联系人
void display_all_contacts(FILE *fp) {
// TODO: 实现显示所有联系人功能
}
// 统计联系人数
void count_contacts(FILE *fp) {
// TODO: 实现统计联系人数功能
}
// 搜索联系人
void search_contact(FILE *fp) {
// TODO: 实现搜索联系人功能
}
```
以上仅为程序框架,具体实现需要根据需求进行编写。涉及的具体操作包括:
1. 读写数据文件,使用 `fopen()`、`fwrite()`、`fread()`、`fclose()` 等函数。
2. 定义和操作 `Contact` 结构体,包括插入、修改、删除等操作。
3. 实现菜单功能,使用 `switch` 语句根据用户选择调用不同的函数。
4. 实现具体的操作函数,如添加联系人、显示所有联系人、统计联系人数、搜索联系人等。其中涉及到的算法包括顺序查找、二分查找、快速排序等。
阅读全文