1、 1 C 语言课程设计 名称:通信录管理系统 2 前言 课程设计目的:C 语言编程实践是学习 C 语言的一个重要环节,为提高学生的程序设计能 力, 通过课堂和上机实践使学生的程序设计能力有一个上升的台阶。 通过前四单元的温故而 知新、庖丁解牛、举一反三、熟能生巧等过程的练习之后能够解决一些简单的实际问题。 1、 题目要求 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 (1) 数据包括:人名、工作单位、电话号码和 E-MAIL 地址。 (2) 可对记录中的姓名和电话号码进行修改。 (3) 可增加和删除记录。 (4) 可显示所有的保存记录。 (5) 可按人名或电话号码进行查询 2、
2、需求分析 根据题目要求,建立文件,应选择结构体数组来存放数据,再定义一个全局变量和文件 指针进行程序的运行, 然后把数据信息存入文件中, 所以要提供结构体和文件的输入输出等 操作;在程序中要进行数据的插入、删除、更新、查询等操作,所以需要建立相应的模块来 实现,为简便起见,还应建立一个主菜单,在每个模块中建立相应的副菜单;另外,还要提 供键盘式选择菜单来实现选择功能,使程序在运行时达到要求。 3、总体设计 根据题目要求,可以将系统分为: 1) 输入数据模块; 2) 查看数据模块 3) 删除数据模块; 4) 增加数据模块 5) 修改数据模块 6) 查找数据模块; 系统功能模块图 3 4、详细设计
3、 1、主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能 模块用菜单方式选择。 流程图 程序代码: void menu() 通讯录管理系统 插 入 数 据 模 块 查 看 数 据 模 块 删 除 数 据 模 块 增 加 数 据 模 块 修 改 数 据 模 块 查 找 数 据 模 块 显示一系列功能选项 开始 输入 n,判断是否是 06 根据 n 的值调用各模块函数 结束 Y N 4 int n; int w1; void add(); puts(“ntttt 欢迎使用通讯录管理系统nn“); puts(“tt*菜单*“); puts(“tttt1.输入联系人“
4、); puts(“tttt2.查看联系人“); puts(“tttt3.删除联系人“); puts(“tttt4.增加联系人“); puts(“tttt5.修改联系人信息“); puts(“tttt6.查找联系人“); puts(“tttt0.退出系统“); puts(“nntt*“); printf(“请你选择(0-6): bb“); do scanf(“%d“, if(n6) printf(“你的选择有误!请重新选择:n“); w1=1;getchar(); else w1=0; while(w1=1);switch(n) case 1:shuru() ;break; case 2:cha
5、kan();break; case 3:del() ;break; case 4:zj() ;break; case 5:xiugai() ;break; case 6:cz();break; case 0:printf(“nttt 谢谢使用!n“);exit(0); 2. 输入数据模块 这个模块的功能是输入并保存联系人的信息, 输入是输入到全局结构体数组变量里的, 调用 save 函数储存到文件里,然后调用 back 函数提示使用者进行下一步操作。 流程图 5 程序代码: void shuru() int i,n; printf(“你想添加多少个联系人? “); scanf(“%d“, pr
6、intf(“n 现在开始增加联系人nn“); for(i=0;in;i+) printf(“n 输入第%d 个联系人的信息n“,i+1); printf(“姓名n“); scanf(“%s“,peri.nam); printf(“工作单位n“); scanf(“%s“,peri.adr); 开始 输入要输入的联系人个数 n 调用 save 函数保存联系人信息 结束 调用 back 函数 i=n i=0 Y N i+ 6 printf(“电话号码n“); scanf(“%s“,peri.pho); printf(“电子邮件n“); scanf(“%s“,peri.email); j=i ; save(); printf(“n