项目实践:电话薄程序

6.38电话薄程序。




一、问题描述:



     建立一个结构体数组,存放若干人的信息,包括:姓名,电话,职业,住址。要求这个管理小程序可以完成的任务:

(1)电话簿的内容显示。
(2)按姓名、电话查询联系人信息。
(3)按输入的关键字修改联系人的信息。
(4)用指向该数组的指针完成上述功能。
(5)输出如下菜单,用switch语句实现根据用户输入的选择执行相应的操作。
     1.显示所有联系人信息
     2.查询联系人信息

     3.修改联系人信息


二、代码实现:


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//定义结构体数组
struct address
{
	char name[20];
	char phone[20];
	char work[20];
	char place[20];
}a[100]={{"hj","110","police","yantai"},{"yj","120","doctor","beijing"}};
  struct address *p;//定义指向结构体的指针
  int n=2;
//输出联系人的列表
void List()
{
	system("cls");//清屏函数
	int i;
	printf("****************************Address List***************************************\n\n");
	printf("name                phone          work                place          \n\n");
	for(p=a,i=0;i<n;i++,p++)
	{
    printf("%-20s%-15s%-20s%-20s\n",p->name,p->phone,p->work,p->place);
	}
	system("pause");
}
//查找联系人函数
void Research()
{
	void DChange();
	int g;
	int i;
	char t[20];
	printf("             Please Input name or phone number:\n");
	scanf("%s",t);
	for(p=a, i=0;i<n;i++,p++)
	{//strcmp函数做字符串对比
          if ((strcmp(t,a[i].name)==0)||(strcmp(t,a[i].phone)==0))
		  {
			 printf("name                phone          work                place          \n\n");
             printf("%-20s%-15s%-20s%-20s\n",p->name,p->phone,p->work,p->place);
			 p=&a[i];
			 printf("What do you want to do?\n");
	         printf("1:return      2:change    3:quit \n");
			 scanf("%d",&g);
	         switch(g)
			 {
		     case 1:return;break;
		     case 2:DChange();break;
		     case 3:exit(0);
			 }
		  }
	      if((i==n-1)&& ((strcmp(t,a[i].name)!=0)&&(strcmp(t,a[i].phone)!=0)))
		  {
		     printf("Don't hava this record\n");

		 }
	 }
	system("pause");
}
void Change()
{
	void Research();
    printf("What persons information do you want to change?\n");
	Research();
}
void DChange()
{
	void ChangeName();
	void ChangePhone();
	void ChangeWork();
	void ChangePlace();
    printf("what do you want to change?\n");
	printf("1:name    2:phone     3:work      4:place\n");
    int k;
	scanf("%d",&k);
	switch(k)
	{
		case 1:ChangeName();break;
		case 2:ChangePhone();break;
		case 3:ChangeWork();break;
		case 4:ChangePlace();break;
	}
}
void ChangeName()
{
	printf("Please Input name:\n");
	scanf("%s",p->name);
	printf("Change name successful\n");
	return;
}
void ChangePhone()
{
	printf("Please Input phone:\n");
	scanf("%s",p->phone);
	printf("Change phone successful\n");
	return;
 }
void ChangeWork()
{
	printf("Please Input work:\n");
	scanf("%s",p->work);
	printf("Change work successful\n");
	return;
 }
void ChangePlace()
{
	printf("Please Input place:\n");
	scanf("%s",p->place);
	printf("Change place successful\n");
	return;
 }
int main()
{
    int i;
	int s;
    system("cls");

    while(1)
	{
		system("cls");
		printf("******************************MENU*********************************************\n\n");
		printf("                      0:List record of the address\n");
        printf("                      1:Research record\n");
		printf("                      2:Change a record \n");
		printf("                      3:Quit\n");
		printf("*******************************************************************************\n\n");
		do{
			printf("\n            Input your choice(0 ~ 3):");
			scanf("%d",&s);
		}while(s<0||s>3);
		switch(s)
		{
		case 0:List();break;
		case 1:Research();break;
		case 2:Change();break;
		case 3:exit(0);
		}
	}
   return 0;

}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,设计电话薄程序可以分为以下几个步骤: 1. 定义联系人对象 首先需要定义一个联系人对象,包含联系人的姓名电话号码、邮箱等基本信息,可以使用Java类来实现。 ``` public class Contact { private String name; private String phone; private String email; public Contact(String name, String phone, String email) { this.name = name; this.phone = phone; this.email = email; } public String getName() { return name; } public String getPhone() { return phone; } public String getEmail() { return email; } } ``` 2. 实现添加联系人功能 可以使用List来存储联系人对象,实现添加联系人的功能。 ``` List<Contact> contacts = new ArrayList<>(); public void addContact(Contact contact) { contacts.add(contact); } ``` 3. 实现查找联系人功能 可以遍历联系人列表,查找指定姓名的联系人。 ``` public Contact searchContact(String name) { for (Contact contact : contacts) { if (contact.getName().equals(name)) { return contact; } } return null; } ``` 4. 实现删除联系人功能 可以遍历联系人列表,查找指定姓名的联系人并删除。 ``` public void deleteContact(String name) { Contact contact = searchContact(name); if (contact != null) { contacts.remove(contact); } } ``` 5. 实现修改联系人功能 可以遍历联系人列表,查找指定姓名的联系人并修改。 ``` public void updateContact(String name, String phone, String email) { Contact contact = searchContact(name); if (contact != null) { contact.setPhone(phone); contact.setEmail(email); } } ``` 6. 实现显示所有联系人功能 可以遍历联系人列表,显示所有联系人的信息。 ``` public void displayContacts() { for (Contact contact : contacts) { System.out.println(contact.getName() + " " + contact.getPhone() + " " + contact.getEmail()); } } ``` 以上就是一个简单的电话薄程序的设计。可以根据实际需求进行扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值