【项目】通讯录--文件存储(C语言)

【项目】—— 通讯录3(C语言)

通讯录是存储和管理我们的个人信息的程序应用。这里我们实现一个文件版本的通讯录(联系人信息存储在文件内,每次运行程序都会加载联系人信息进入文件,结束程序会保存联系人信息到文件)

通讯录的功能

  1. 在文件里存储联系人的信息(姓名、性别、年龄、电话、地址)
  2. 加载文件中的联系人信息进入内存
  3. 添加联系人
  4. 删除联系人
  5. 修改联系人
  6. 根据姓名查寻联系人
  7. 根据姓名将联系人升序排序
  8. 展示所有联系人

一、通讯录的结构

​ 通讯录由C语言实现,实现环境是VS2019编译程序,结构如下

  1. 头文件contact.h:引入头文件,并声明通讯录的数据类型和函数声明
  2. 源文件contact.c:实现通讯录各个功能的函数
  3. 测试文件test.c:写有main函数,启动程序并实现业务逻辑
  4. 联系人文件contact.txt:存储联系人信息的文件

二、头文件

1. 头文件引用

#pragma once			//防止头文件重复引用
#include <stdio.h>		//标准输入输出,具体作用懂得都懂
#include <assert.h>		//我们会对每个函数内部的一些变量进行断言,方便我们调试
#include <string.h>		//我们会对字符串进行操作
#include <Windows.h>	//我们会执行一些命令行

2. 结构体声明

//定义变量最大数量
#define MAX_NAME 20		//姓名占20字符
#define MAX_SEX 10		//性别占10字符
#define MAX_TEL 20		//电话占20字符
#define MAX_ADDR 50		//地址占50字符

//个人信息
typedef struct PeoInfo
{
   
	char name[MAX_NAME];	 //姓名
	char sex[MAX_SEX];		 //性别
	int age;				 //年龄
	char tel[MAX_TEL];		 //电话
	char addr[MAX_ADDR];	 //地址
} PeoInfo;

//通讯录
typedef struct Contact
{
   
	PeoInfo* data;	 	//联系人
	int count;			//联系人数量
} Contact;

3. 函数声明

void menu();							// 菜单
void init(Contact* pc);					// 初始化
void add(Contact* pc);					// 添加
void del(Contact* pc);					// 删除
void search(const Contact* pc);			// 查寻
void alter(Contact* pc);		 		// 修改
void sort(Contact* pc);					// 排序
void show(const Contact* pc);			// 展示
void saveContact(const Contact* pc);	// 保存信息进入文件
void destroy(Contact* pc);				// 销毁

三、测试文件

当我们声明完变量和函数时,不要着急去实现函数,而是先构思好逻辑业务,构思好后再实现函数,边实现边调试,才能将BUG消灭到最初的时候

int main()
{
   
	Contact con;
	init(&con);

	menu();

	int chose = 0;
	do
	{
   
		printf("请输入您要进行的操作序号>");

		scanf("%d", &chose);

		system("cls");		//此时有一个清屏,让黑乎乎的界面更加美观,清完之后打印菜单,方便用户操作
		menu();

		switch (chose)
		{
   
		case 0:
			printf("欢迎下次光临!\n");
			saveContact(&con);
			destroy(&con);
			return 0;
			break;

		case 1:
			add(&con);	//添加联系人
			break;

		case 2:
			del(&con);	//删除联系人
			break;

		case 3:
			search(&con);	//查找联系人
			break;

		case 4:
			alter
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值