课程设计目的:通过本课程设计巩固《C语言程序设计》课程教学成果,深入理解结构体、指针、链表、动态分配内存和文件操作等C程序设计中的中高级技术,熟练掌握C语言的调试方法,初步培养良好的编程习惯和编程风格,初步学习程序文档的撰写方法。 一、 题目
1、实用的通讯录管理 2、单科课程成绩管理 3、多功能网址收藏管理 4、图书信息管理 二、 调试环境
TurboC++3.0或者VC++6.0
所有同学必须提交实验报告电子版一份,内容包括: 1.课程设计说明书
2.源代码和注释、编译链接生成的目标文件、可执行文件(请将所有文件压缩成rar格式一并提交) 三、 注意事项 (一)独立完成
任何人不得抄袭、拷贝。凡发现实验报告或源程序雷同,涉及的全部人员后果自负。 (二)一人一题
一人一题,要求独立完成,清考学生可以自选任意一题。 (二)课程设计说明书要求 课程设计说明书有以下内容:
题目一 实用的通讯录管理
题目简述
现代社会人们之间的交往越来越多,通信录的建立和管理显得尤为重要。本课题旨在建立一个通讯录系统,系统中保存着各人员的姓名、电话、Email以及与本人的关系(亲戚、同学、朋友、同事等)等信息,通过该系统的简单界面可以对通讯录进行新建、浏览、查找、更新、删除等操作。
具体要求
1、基本功能: (1)添加记录
先判断链表是否已经存在。若不存在,需首先自动新建一个链表,然后再添加一条或多条通讯记录。 (2)显示记录 显示当前所有记录。 (3)查询记录
按名字查找,并显示该记录。 (4)通信录排序
按姓名的字母顺序排序,涉及到冒泡等排序算法。 (5)删除记录
实现逐条删除和删除全部记录两种功能。 (6)更新记录
修改已存在记录的信息(提示:需首先判断该记录是否存在)。 (7)按关系显示记录
只显示与本人有指定关系(亲戚、朋友、同事、同学)的记录。 (8)保存记录
存储所有记录到某个文件(.txt)或缺省文件(Phonebook.txt)。 (9)读入记录
从某个文件(.txt)或缺省文件(Phonebook.txt)读入所有记录。首先判断当前是否有记录在进行操作,若有,进行存储或放弃存储,然后释放内存空间,
之后才能从文件读入记录。 (10)退出
结束通讯录软件操作,释放内存后退出。
2、数据录入提示 (1)Name
联系人姓名。为了实现排序,可以输入英文或拼音的姓名,便于调用字符串比较等函数进行比较排序。 (2)Tel
可以为固定电话号码或手机号。 (3)Email
输入时要根据@判断一下是否是正确的email地址格式。Email地址首位不能是下划线’_’,斜杠‘\\’或‘/’,点号‘.’等(类似对输入数据的判断可作为扩展,不是必须实现的功能)。 (4)Relation
可以为Relative, Friend, Workmate或Classmate中的一种,用于进行条件显示,即只显示与本人有某种关系的记录。
3、其他实现提示
对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。
除了基本功能和异常处理,鼓励进行以下扩展或改进:
? 有创意的设计
? 采用改进程序性能的其他方法(如执行效率、访问速度、占内存量、灵
活性、可移植性等) ? 友好的输入界面;
? 对输入数据的对错判断等; ? 功能扩展;
? 程序的简洁明了和可读性等。
主要数据结构
结构体Address: