通讯录小项目(C语言静态版)
来源:互联网 发布:阿里云域名主机记录 编辑:程序博客网 时间:2024/05/22 12:00
项目要求:
1、通讯录可以用来存储1000个人的信息,每个人的信息包括:`姓名、性别、年龄、电话、住址`。2、通讯录基本要求如下:a、添加联系人信息b、删除指定联系人信息c、查找指定联系人信息d、修改指定联系人信息e、显示所有联系人信息f、清空所有联系人g、以名字排序所有联系人
思路框图:
test.c:
#include"address_list.h"void address_list()//通讯录主函数{ ADDRESS con; int input = 0; init(&con); do { menu2(); printf("请选择:>"); scanf("%d", &input); switch (input) { case EXIT: break; case ADD: system("CLS"); add(&con); break; case DELETE: system("CLS"); dele(&con); break; case SEARCH: system("CLS"); search(&con); break; case MODIFY: system("CLS"); modify(&con); break; case SHOW: system("CLS"); show(&con); break; case CLEAR: system("CLS"); clear(&con); break; case SORT: system("CLS"); sort(&con); break; default: printf("输入有误,请重新选择!\n"); break; } } while (input);}void menu1(){ printf("*************************\n"); printf("**** 1、open 0、exit ****\n"); printf("*************************\n");}void test()//测试函数{ int input = 0; do { menu1(); printf("请选择:>"); scanf("%d", &input); switch (input) { case 0: break; case 1: system("CLS"); address_list();//通讯录主函数 break; default: printf("输入有误,请重新输入!\n"); break; } } while (input);}int main(){ test();//测试函数 return 0;}
address_list.h:
#ifndef __ADDRESS_LIST_H_#define __ADDRESS_LIST_H_#define _CRT_SECURE_NO_WARNINGS 1//此标识符为了防止微软VS2008及以上版本对scanf()函数报错处理。#include<stdio.h>#include<string.h>#include<stdlib.h>#define NAME_MAX 20//姓名最大长度#define SEX_MAX 6//性别最大长度#define PHONE_MAX 12//电话最大长度#define ADD_MAX 20//地址最大长度#define MAX 1000//通讯录最大容量struct list//单个联系人数据结构{ char name[20]; char sex[6];//男人man,女人woman int age; char phone[12]; char add[20];};typedef struct//通讯录整体结构{ struct list arr[MAX]; int count;//用于记录通讯录中实际存储人数} ADDRESS,*PADDRESS;enum//枚举结构为 case 后面标签使用{ EXIT, ADD, DELETE, SEARCH, MODIFY, SHOW, CLEAR, SORT};void menu2();//通讯录功能菜单函数void init(PADDRESS pcon);//初始化函数void add(PADDRESS pcon);//添加函数void dele(PADDRESS pcon);//删除函数void search(PADDRESS pcon);//查找函数void modify(PADDRESS pcon);//修改函数void show(PADDRESS pcon);//显示函数void clear(PADDRESS pcon);//清空函数void sort(PADDRESS pcon);//排序函数#endif //__ADDRESS_LIST_H_
address_list.c:
#include"address_list.h"void menu2()//通讯录功能菜单函数实现{ printf("********************************\n"); printf("**** 0.EXIT 1.ADD ****\n"); printf("**** 2.DELETE 3.SEARCH ****\n"); printf("**** 4.MODIFY 5.SHOW ****\n"); printf("**** 6.CLEAR 7.SORT ****\n"); printf("********************************\n");}void init(PADDRESS pcon)//初始化函数实现{ pcon->count = 0;}static int hunt(PADDRESS pcon,const char *pname)//各功能函数公共模块——搜索函数实现{ int i = 0; for (i = 0; i < pcon->count; i++) { if (strcmp(pcon->arr[i].name, pname) == 0) { return i; } } return -1;}void add(PADDRESS pcon)//添加函数实现{ if (pcon->count >= MAX)//判断通讯录是否存满 { printf("Contact overflow!\n"); } else { printf("请输入姓名:>"); scanf("%s", pcon->arr[pcon->count].name); printf("请输入性别:>"); scanf("%s", pcon->arr[pcon->count].sex); printf("请输入年龄:>"); scanf("%d", &(pcon->arr[pcon->count].age)); printf("请输入电话:>"); scanf("%s", pcon->arr[pcon->count].phone); printf("请输入地址:>"); scanf("%s", pcon->arr[pcon->count].add); pcon->count++; printf("Add success!\n"); }}void dele(PADDRESS pcon)//删除函数实现{ char tmp[NAME_MAX] = { 0 }; int ret = 0; printf("请输入要删除联系人姓名:>"); scanf("%s", tmp); ret = hunt(pcon, tmp); if (ret < 0) { printf("Not find contact!\n"); } else { for (; ret < pcon->count - 1; ret++) { pcon->arr[ret] = pcon->arr[ret + 1]; } pcon->count--; printf("Delete success!\n"); }}void search(PADDRESS pcon)//查找函数实现{ int ret = 0; char tmp[NAME_MAX] = { 0 }; printf("请输入要查找联系人姓名:>"); scanf("%s", tmp); ret = hunt(pcon, tmp); if (ret < 0) { printf("Not find contact!\n"); } else { printf("Search contact subscript is :%d\n", ret+1); }}void modify(PADDRESS pcon)//修改函数实现{ char tmp[NAME_MAX] = { 0 }; int ret = 0; printf("请输入要修改联系人的姓名:>"); scanf("%s", tmp); ret = hunt(pcon, tmp); if (ret < 0) { printf("输入联系人姓名有误!\n"); } else { printf("请输入姓名:>"); scanf("%s", pcon->arr[ret].name); printf("请输入性别:>"); scanf("%s", pcon->arr[ret].sex); printf("请输入年龄:>"); scanf("%d", &(pcon->arr[ret].age)); printf("请输入电话:>"); scanf("%s", pcon->arr[ret].phone); printf("请输入地址:>"); scanf("%s", pcon->arr[ret].add); printf("Modify success!\n"); }}void show(PADDRESS pcon)//显示函数实现{ int i = 0; printf("%-10s %-6s %-3s %-12s %-15s\n", "NAME", "SEX", "AGE", "PHONE", "ADD"); for (i = 0; i < pcon->count; i++) { printf("%-10s %-6s %-3d %-12s %-15s\n", pcon->arr[i].name, pcon->arr[i].sex, pcon->arr[i].age, pcon->arr[i].phone, pcon->arr[i].add); }}void clear(PADDRESS pcon)//清空函数实现{ pcon->count = 0;}void sort(PADDRESS pcon)//排序函数实现{ struct list tmp = {0}; int i = 0; for (i = 0; i < pcon->count - 1; i++) { int j = 0; for (j = 0; j < pcon->count - 1 - i; j++) { if (strcmp(pcon->arr[j].name,pcon->arr[j+1].name) > 0) { tmp = pcon->arr[j]; pcon->arr[j] = pcon->arr[j + 1]; pcon->arr[j + 1] = tmp; } } }}
阅读全文
0 0
- 通讯录小项目(C语言静态版)
- 【c语言小项目】通讯录-文件版
- 通讯录--C语言小项目
- C语言编写—通讯录(小项目)
- 通讯录小项目(C语言动态版本)
- C语言小项目制作之---通讯录
- C语言实现通讯录(静态版)
- c语言通讯录项目
- 项目:通讯录(C语言的实现)
- 【C语言】C语言实现静态通讯录
- C语言项目总结-通讯录
- C语言实现通讯录项目
- 【C语言】实现一个通讯录(一:静态的实现)
- 通讯录(C语言)
- 通讯录(C语言)
- C语言通讯录(初级版)
- 通讯录小程序(C/C++)C语言练习小程序
- C语言项目——通讯录
- 嵌入式linux+ARM 15
- mysql--赋予用户远程连接数据库的权限
- tesorflow 实现多层感知器(MLP)(亦即全连接网)
- matlab作图字体大小常规设置
- java中动态代理的实现
- 通讯录小项目(C语言静态版)
- SQL优化总结
- 解决mysql“Access denied for user 'root'@'IP地址'
- 大型网站在架构上应当考虑哪些问题
- matlab中特殊字符, 上标和下标
- CC2541 特征值之Notify 与Indicate 一起使用
- 使用for语句找一组整数中最大整数
- ALSA System on Chip(ASOC)
- C#方法的简单总结