编写程序,实现电话号码查询(设10人)。假设有一电话号码表,信息包括户主的姓名、地址和电话号码。输入一个电话号码,用折半法找出该号码对应的户主的姓名、地址。
时间: 2023-05-01 08:03:39 浏览: 432
这段文字描述了一个程序实现在一个用户组里查询电话号码。程序假设有一个电话号码表,其中每个电话号码被表示为一个包含用户主要信息(包括姓名、地址和电话号码)的信息包。用户输入一个电话号码,程序将按位处理该电话号码,并输出包含该电话号码的信息包的用户主要信息(即姓名和地址)。
相关问题
编写一程序,实现电话号码查询。假设有一电话号码表,信息包括户主的姓名、身份证号、户主地址、电话号码,输入一个电话号码,找出该号码对应的户主的姓名、地址。(用结构体实现)
好的,以下是用中文回复的程序:
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100 // 定义电话号码表的最大容量
// 定义结构体,表示电话号码表中的一条记录
struct PhoneNumber {
char name[20]; // 姓名
char id[20]; // 身份证号
char address[50]; // 地址
char number[20]; // 电话号码
};
int main() {
struct PhoneNumber phoneBook[MAX_SIZE]; // 定义电话号码表
int count = 0; // 记录电话号码表中的记录数
// 读取电话号码表文件,将记录存入phoneBook数组中
FILE *fp = fopen("phoneBook.txt", "r");
if (fp == NULL) {
printf("无法打开电话号码表文件!\n");
return 1;
}
while (fscanf(fp, "%s %s %s %s", phoneBook[count].name, phoneBook[count].id, phoneBook[count].address, phoneBook[count].number) != EOF) {
count++;
}
fclose(fp);
// 输入要查询的电话号码
char queryNumber[20];
printf("请输入要查询的电话号码:");
scanf("%s", queryNumber);
// 在电话号码表中查找对应的记录
int i;
for (i = 0; i < count; i++) {
if (strcmp(phoneBook[i].number, queryNumber) == 0) {
printf("姓名:%s\n", phoneBook[i].name);
printf("地址:%s\n", phoneBook[i].address);
break;
}
}
if (i == count) {
printf("未找到该电话号码对应的记录!\n");
}
return 0;
}
电话号码查询系统 [基本要求] (1)使用哈希查找表存储信息 (2)实现查找、插入、删除、统计、输出等功能。 提示: (1)构建电话号码表 (2)编写一个电话号码查询系统,要求实现对电话号码记录的录入(插入)存储、查询、记录删除、排序、打印等模块。
好的,这是一个电话号码查询系统的基本要求,需要使用哈希查找表来存储信息,并实现查找、插入、删除、统计、输出等功能。具体实现可以按照以下步骤进行:
1. 构建电话号码表:可以使用哈希表来存储电话号码信息,哈希表可以根据电话号码的特定属性进行哈希计算,将电话号码映射到对应的哈希桶中。每个哈希桶中可以存储一组电话号码信息,如姓名、电话号码、地址等。
2. 实现电话号码记录的录入(插入)存储:用户可以通过输入姓名、电话号码、地址等信息来插入一条电话号码记录。在插入时需要计算哈希值,将记录存储到对应的哈希桶中。
3. 实现查询功能:用户可以根据姓名或电话号码来查询对应的电话号码记录。在查询时也需要计算哈希值,找到对应的哈希桶,然后查找桶中是否有对应的记录。
4. 实现记录删除:用户可以根据姓名或电话号码来删除对应的电话号码记录。同样需要计算哈希值,找到对应的哈希桶,然后删除桶中对应的记录。
5. 实现统计功能:可以统计电话号码表中的记录数、桶的数量、每个桶中记录的平均数量等信息。
6. 实现排序功能:可以按照姓名或电话号码等属性对电话号码记录进行排序,方便用户查找。
7. 实现打印功能:可以将电话号码表中的所有记录打印出来,作为备份或者备案。
以上是电话号码查询系统的基本要求,可以根据实际情况进行扩展和优化。
阅读全文