C语言课程设计简易通讯录设计源代码+流程图简易通讯录设计
1、设计目的
实现简单的通讯录信息管理,基本信息包括编号、姓名、电话。
1设计简单的菜单,能够进行系统功能选择
2实现信息的录入功能
3在已有信息的基础上添加新的记录
4删除指定姓名的记录
5修改指定姓名的记录
6实现信息的浏览功能
7按编号查询功能
8按机主姓名排序的功能
9存储记录功能
10 读取记录功能
11 排序记录功能
12 按指定姓名搜索记录
13 按所在位置搜索记录
2、总体设计(程序设计组成框图、流程图)
3、详细设计(模块功能说明(如函数功能、入口及出口参数说论文范文http://www.chuibin.com/ 明,函数调用关系描述等)
本题为一个较大型的综合性程序,考虑到情况较为复杂,因为在编辑的过程,依据题目要求,按功能选择不同将程序进行模块化分工。分别实现0输入记录,1列出记录,2按姓名搜索记录,3删除记录,4增添记录,5存储记录,6读取记录,7按所在位置搜索记录,8按姓名排序记录,9修改记录,10退出程序
在主函数main(),提示用户输入选项,通过switch语句链接到不同函数,实现功能的调用。整体思路是利用结构体数组存储记录,利用变量n存储记录总数,并将这两者作为函数的形参。从而实现不使用链表实现同样功能的目的。
4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施
本程序在win-tc平台下编译通过,本题我放弃了常规链表的做法,而改用结构体数组来存储数据。其原因是链表无法实现在随机输入后,按指定模式排序的功能,因为链表必须从head头部开始向后查找。也就是如果采用链表模式的话,在输入完之后就已经按一定顺序排列好,而不能再采用其他顺发存放。其次,在尝试文件存储,读取的功能时遇到很多问题,比如存储时,需要按格式写入文件,否则数据读取时后发生错误。读取时,在结构体数组内部成员num(即整形变量成员)前需要加取地址符号,否则也无法正常读取。
5、源程序清单和执行结果:
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*标准库函数*/
#include "string.h"/*字符串函数*/
#include "ctype.h" /*字符操作函数*/
#define M 50 /*定义常数表示记录数*/
typedef struct /*定义数据结构*/
{ int num;
char name[20]; /*姓名*/
char units[30]; /*单位*/
char tele[15]; /*电话*/
}ADDRESS;
/******以下是函数原型*******/
int enter(ADDRESS t[]); /*输入记录*/
void list(ADDRESS t[],int n); /*显示记录*/
void search(ADDRESS t[],int n); /*按姓名查找显示记录*/2515