通讯录静态版本
来源:互联网 发布:凭都网软件 编辑:程序博客网 时间:2024/06/14 08:06
contact.h
#ifndef _CONTACT_H__#define _CONTACT_H__# include<stdio.h># include <stdlib.h>#define MAX 1000#define MAX_NAME 10#define MAX_SEX 5#define MAX_TELE 20#define MAX_ADDR 30typedef struct PeoInfo//个人信息结构体{ char name[MAX_NAME]; int age; char sex[MAX_SEX]; char tele[MAX_TELE]; char addr[MAX_ADDR];}PeoInfo;typedef struct Contact//通讯录信息结构体{ PeoInfo contact[MAX];//可添加的信息量 int sz;//用于记录添加的信息量}Contact, *pContact;void InitContact(pContact pcon);void AddContact (pContact pcon);void ShowContact(const pContact pcon);void DelContact(pContact pcon);#endif //_CONTACT_H__
contact.c
#define _CRT_SECURE_NO_WARNINGS 1# include "contact.h"void InitContact(pContact pcon){ pcon->sz = 0; memset(pcon->contact, 0, sizeof(pcon->contact));}void AddContact(pContact pcon){ if (pcon->sz == MAX) { printf("通讯录已满!"); return;//不返回什么值吗?为何还要返回? } printf("请输入名字:>"); scanf("%s", pcon->contact[pcon->sz].name); printf("请输入年龄:>"); scanf("%d", &(pcon->contact[pcon->sz].age)); //注意加& printf("请输入性别:>"); scanf("%s", pcon->contact[pcon->sz].sex); printf("请输入电话:>"); scanf("%s", pcon->contact[pcon->sz].tele); printf("请输入地址:>"); scanf("%s", pcon->contact[pcon->sz].addr); pcon->sz++; printf("添加成功!\n");//有一个反馈信息会更好}void ShowContact(const pContact pcon){ int i = 0; printf("%12s\t%4s\t%5s\t%12s\t%12s\n", "name", "age", "sex", "tele", "addr"); for (i = 0; i < pcon->sz; i++) { printf("%12s\t%4d\t%5s\t%12s\t%12s\n", pcon->contact[i].name, pcon->contact[i].age, pcon->contact[i].sex, pcon->contact[i].tele, pcon->contact[i].addr); }}static int FindEntry(pContact pcon, char name[]){ int i = 0; for (i = 0; i < pcon->sz; i++) { if (strcmp(name, pcon->contact[i].name) == 0) { return i; } } return -1;}void DelContact(pContact pcon){ int pos = 0; char name[MAX_NAME] = { 0 }; if (pcon->sz == 0) { printf("通讯录已空\n"); return; } printf("请输入您想要删除的记录\n"); scanf("%s", &name); pos = FindEntry(pcon, name); if (pos == -1) { printf("您想要删除的记录不存在!\n"); } else { memmove(pcon->contact + pos, pcon->contact + pos + 1, (pcon->sz - pos - 1)*sizeof(PeoInfo)); pcon->sz--; printf("删除成功!\n"); }}
test.c
#define _CRT_SECURE_NO_WARNINGS 1# include "contact.h"enum Op{ EXIT, ADD, DEL, SEARCH, MODIFY, SHOW, EMPTY, SORT};void menu(){ printf("*******************************************\n"); printf("******* 1、add 2、 del *********\n"); printf("******* 3、search 4、 modify *********\n"); printf("******* 5、show 6、 empty *********\n"); printf("******* 7、stop 0、 sort *********\n"); printf("*******************************************\n");}test(){ int input = 0; Contact my_con;//将添加的信息和信息量封装后创建的一个变量 InitContact(&my_con);//想传结构体就传其地址 do { menu(); printf("请选择:>"); scanf("%d", &input); switch (input) { case ADD: AddContact(&my_con); break; case DEL: DelContact(&my_con); break; case SEARCH: break; case MODIFY: break; case SHOW: ShowContact(&my_con); break; case EMPTY: break; case SORT: break; case EXIT: break; default: printf("选择错误,请重新输入!"); break; } } while (input);}int main(){ test(); system("pause"); return 0;}
阅读全文
0 0
- 通讯录(静态版本)
- 通讯录--静态版本
- 通讯录静态版本
- 静态通讯录、动态通讯录
- 静态通讯录
- 静态通讯录
- 通讯录.静态
- 静态通讯录
- 通讯录-静态实现
- 通讯录的静态实现
- 静态存储实现通讯录
- 静态通讯录的实现
- 通讯录的文件版本
- 多版本通讯录
- 通讯录动态版本
- 通讯录(动态版本)
- 通讯录(文件版本)
- 通讯录动态开辟版本
- 暑假记录
- qmake手册——qmake语言
- SLAM实战 RGB-D SLAM V2
- 设计模式之观察者模式
- 【笔记】Android WallpaperService实现视频壁纸、相机桌面
- 通讯录静态版本
- 4.编写一个通用的 Makefile :-)
- Grafana、collectd 和 InfluxDB 构建监控系统
- 闭合浮动,元素浮动或绝对定位后失去文档流的友好解决办法
- sqlserver中的表值函数和标量值函数
- hdu 1812
- C++面向对象(1)
- PreparedStatement是如何防止SQL注入的
- 关于std::condition_variable需要注意的地方spurious wake-ups