通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入n条记录,并且根据要求显示任意某条记录
时间: 2023-05-31 16:20:27 浏览: 298
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。
5星 · 资源好评率100%
### 回答1:
您好,根据题目要求,我们需要编写一个程序来录入n条通讯录记录,每条记录包含朋友的姓名、出生日期、性别、固定电话号码和移动电话号码。同时,程序还需要能够根据要求显示任意某条记录。
具体实现方法可以采用面向对象的思想,定义一个通讯录类,包含姓名、出生日期、性别、固定电话号码和移动电话号码等属性,以及录入、显示等方法。在录入时,可以通过循环输入n次来逐条录入记录;在显示时,可以通过输入要显示的记录的序号来获取对应的记录信息。
希望以上回答能够帮助您解决问题,如有不清楚的地方,请随时提出。
### 回答2:
题目要求编写程序录入n条记录,每一条记录包含了朋友的姓名、出生日期、性别、固定电话号码和移动电话号码五个基本信息。这里我会给出一个简单的程序实现方式。
首先,定义一个Friend类,用于存储一个朋友的五个基本信息:
class Friend:
def __init__(self, name, birthday, gender, phone, mobile):
self.name = name
self.birthday = birthday
self.gender = gender
self.phone = phone
self.mobile = mobile
然后,在主函数中,定义一个存储记录的列表,使用循环n次,分别输入每一条记录的五个基本信息,并将其存储到列表中:
def main():
n = int(input('请输入记录数:'))
friend_list = []
for i in range(n):
name = input('请输入朋友的姓名:')
birthday = input('请输入朋友的出生日期:')
gender = input('请输入朋友的性别:')
phone = input('请输入朋友的固定电话号码:')
mobile = input('请输入朋友的移动电话号码:')
friend = Friend(name, birthday, gender, phone, mobile)
friend_list.append(friend)
接下来,我们可以编写两个函数,一个用于显示所有记录,另一个用于根据姓名查找朋友并显示其所有信息:
# 显示所有记录
def show_all_friends(friend_list):
for friend in friend_list:
print(friend.name, friend.birthday, friend.gender, friend.phone, friend.mobile)
# 根据姓名查找朋友
def search_by_name(friend_list, name):
for friend in friend_list:
if friend.name == name:
print(friend.name, friend.birthday, friend.gender, friend.phone, friend.mobile)
最后,在主函数中,我们可以调用这两个函数分别显示所有记录和查找朋友:
if __name__ == '__main__':
main()
show_all_friends(friend_list)
name = input('请输入要查找的朋友姓名:')
search_by_name(friend_list, name)
这样,一个简单的通讯录程序就完成了。当然,这只是其中的一种实现方式,你可以按照自己的需求和习惯进行修改和优化。
### 回答3:
要实现这个程序,我们可以利用结构体来存储通讯录中的每一条记录,具体实现步骤如下:
1. 定义结构体类型
```c
struct Contact {
char name[20]; // 姓名
char gender; // 性别
char phone[12]; // 固定电话号码
char mobile[12]; // 移动电话号码
int birthday; // 出生日期,用8位数字表示,如19900101
};
```
这个结构体类型包含了5个字段,分别是朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。其中,姓名使用字符串类型存储,性别使用字符类型表示,固定电话号码和移动电话号码使用字符串类型存储,出生日期使用整数类型存储,采用8位数字的格式表示,比如19900101表示1990年1月1日。
2. 编写录入信息的函数
我们可以通过一个函数来实现录入通讯录信息的功能。这个函数需要从键盘输入每个字段的值,并将其保存到一个结构体变量中。具体代码如下:
```c
void addContact(struct Contact* p) {
printf("请输入姓名:");
scanf("%s", p->name);
printf("请输入性别(男-M,女-F):");
scanf(" %c", &p->gender);
printf("请输入固定电话号码:");
scanf("%s", p->phone);
printf("请输入移动电话号码:");
scanf("%s", p->mobile);
printf("请输入出生日期(格式为:19900101):");
scanf("%d", &p->birthday);
}
```
在这个函数中,我们首先通过指针p访问要保存的结构体变量的各个字段,然后通过scanf函数从键盘输入对应的值。
3. 编写显示信息的函数
我们可以通过一个函数来实现显示通讯录信息的功能。这个函数需要根据用户的选择,输出某一条记录的各个字段值。具体代码如下:
```c
void showContact(const struct Contact* p) {
printf("姓名:%s\n", p->name);
printf("性别:%c\n", p->gender);
printf("固定电话:%s\n", p->phone);
printf("移动电话:%s\n", p->mobile);
printf("出生日期:%d\n", p->birthday);
}
```
在这个函数中,我们首先通过指针p访问要显示的结构体变量的各个字段,然后根据需求使用printf函数输出对应的值。
4. 编写主函数
在主函数中,我们首先需要定义一个结构体数组来存储通讯录中的所有记录,然后通过一个循环语句,调用addContact函数录入每一条记录的信息。最后,根据用户的选择,调用showContact函数显示任意一条记录的信息。具体代码如下:
```c
int main() {
int n, choice;
struct Contact contacts[100];
printf("请输入要录入的记录数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d条记录的信息:\n", i+1);
addContact(&contacts[i]);
}
printf("请输入要显示的记录的编号(1-%d):", n);
scanf("%d", &choice);
showContact(&contacts[choice-1]);
return 0;
}
```
在这个程序中,我们首先从键盘输入要录入的记录数n,然后定义一个大小为100的结构体数组,通过循环调用addContact函数录入每一条记录的信息。最后,从键盘输入要显示的记录的编号,通过调用showContact函数显示对应的记录的信息。
阅读全文