C语言大型综合程序范例

更新时间:2023-08-13 08:36:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

大型综合程序范例解析通讯录问题描述: 以文件的方式保存用户录入的通讯录数据 供用户查询和使用通讯录信息

大型综合程序范例解析通讯录功能分析: 记录项的基本属性:姓名、性别、住址、联 系电话、电子邮件 等 操作功能: 录入:操作添加一条新的记录项 删除:删除一条已经存在的记录项

大型综合程序范例解析通讯录功能分析: 修改:改变记录项的一个或多个属性,并用 新的记录项覆盖已经存在的记录项 查找:根据用户输入的属性值查找符合条件 的记录项。

大型综合程序范例解析通讯录功能分析: 通讯录数据以文件形式存储在磁盘上,根据实 际需要定义文件的存储格式;在程序运行中需 要对文件进行读取操作。 程序中还要对输入数据的容错性进行检查, 可以保证通讯录数据的合法性。

大型综合程序范例解析通讯录设计: 程序总体结构: 输入输出模块:人机交互,包括程序界面显示、 用户输入响应、结果输出等 管理模块:管理模块从输入输出模块读取用户命 令并进行相应的操作,包括录入、删除、修改 、查找、列表等 文件操作模块:进行存储文件的读写

大型综合程序范例解析通讯录模块结构图用户输入

输入输出终端系统输出

输入输出模块管理模块 文件操作模块文件写入 文件读出

存储文件

大型综合程序范例解析通讯录界面设计 :

大型综合程序范例解析通讯录数据结构设计: struct myrecord{ unsigned int num; unsigned int group; char name[MAXLEN+1]; char gender; date birthday; char address[MAXLEN+1]; char phone[MAXLEN+1]; char email[MAXLEN+1]; };

大型综合程序范例解析通讯录数据结构设计: struct mydate{ unsigned int year; unsigned int month; unsigned int day; }; typedef struct mydate date;

大型综合程序范例解析通讯录数据结构设计: 三个查询关键字:记录编号、组别和联系人姓名 union mysearch_entry{ unsigned int num; unsigned int group; char name[MAXLEN+1]; }; typedef union mysearch_entry search_entry;

大型综合程序范例解析通讯录-函数设计函数原型 函数功能 以文本方式显示程序主菜单,同时响应 用户输入 向上滚动光标条 向下滚动光标条 等待用户响应

menu.c输入输出文件函数处理描述

void menulist(void)void upbar(int y) void downbar(int y) void mydelay(void)

调用bioske(0),获取按键的值通过改变字体颜色实现光标条移动 通过改变字体颜色实现光标条移动 调用getch()实现

void format(void)void searchmenu(void) void input_search(char ch) int input_num(void) int input_new(myrecord *p) myrecord *input_app(void)

结果输出时打印输出的格式信息输出查询功能的子菜单 处理查询时用户的输入,将关键字读入

读入一个整型数值(记录编号),进行 合法性检查 进行数据修改时,读入一个新的记录项 ,并用它覆盖输入参数所指向的数 据记录项。 录入信息时处理键盘输入,对输入进行 合法性检查 检查日期是否为合法

调用printf()实现调用printf()实现 根据输入参数ch,执行相应的操作 采用了递归的方法循环读取数据 参数:新记录项的指针 返 回 值:返回是否进行了修改的信息 ,已修改返回 1,否则返 回0。 逐项录入通讯记录 参数:年、月、日的信息

int date_legal(int year,int

大型综合程序范例解析通讯录-函数设计int file_app(myrecord *p) 添加一条新的记录项

file.c文件处理文件

参 数:要录入的记录项的指针 返 回 值:操作结果(插入成功返 回1,失败返回0) 参 数:下标值 返 回 值:读取结果的指针 参 数:指向记录项的指针和要 写入的块位置 返 回 值:操作结果(插入成功返 回1,失败返回0) 参 数:指向查询项的指针和查 询类型 返 回 值:符合条件的记录项总数 (如果是0则查找失败) 参 数:下标值 返 回 值:操作结果(插入成功返 回1,失败返回0)

myrecord *read_record(int n)

从文件中读出下标为n的块(记录项)

int write_record(myrecord *p,int n)

向文件中写入某一块(如果该块已经存在 ,将进行覆盖)

int file_search(search_entry *s,int f)

对存储文件进行遍历,查找符合输入的记 录项并输出

int file_delete(int n)

删除文件中某个记录块

大型综合程序范例解析通讯录-函数设计control.c控制文件

void append(void) void delet(void)

执行数据录入操作 执行数据记录项删除操作

调用input_app()完成数据录入,调用 file_app()完成数据保存。 调用file_search查找要删除的记录,然后 调用file_delete()进行删除 调用searchmenu()进入查找的菜单,调用 input_search(ch)获得要查找的内容, file_search()进行查找 调用input_num()输入待修改的记录,调 用file_search()进行查找,调用 input_new()输入新的内容,调用 write_record()进行更新 打开文件,遍历所有记录并输出 调用fopen()打开文件,初始化 关闭文件,退出系统

void search(void)

执行数据查找操作

void change(void)

执行数据记录项修改操作

void list_all(void) void init(void) void quit(void)

列出当前所有联系人信息 系统初试化操作,保证文件的正确性和合法性 系统退出函数,写回文件以保证数据的一致性

大型综合程序范例解析通讯录-程序运行示意图

本文来源:https://www.bwwdw.com/article/fxij.html

Top