算 法 与 数 据 结 构
专业:数字媒体艺术
学号:
姓名:
指导老师:
完成时间:2011 年 12 月 25 日
1
学生期末作品报告
工程技术 学院 数媒 系 数字媒体艺术 专业 ( 1 ) 班级
期末作业名称 通讯录信息管理系统
课程名称 数据结构 主讲教师 成 绩
姓 名 年 级 级 时 间
项
目
要
求
要求根据线性表、二叉树或者图等逻辑结构为基础解决生活或者学
习中实际遇到的问题:比如舍费信息管理、类似永辉超市购物收费小
系统等等。其中线性表的算法实现要求用链式存储结构(如单链表
等)。
2
项
目
说
明
(
意
义
、
框
架
、
功
能
等
)
功能:
1、创建通讯录
2、显示通讯录
3、添加通讯录
4、删除通讯录
5、查找通讯录
6、更新通讯录
7、保存通讯录
8、读取数据库通讯录
9、清屏
10、退出系统
3
项
目
完
成
的
体
会
及
自
我
评
价
(
重
点
是
所
遇
到
问
题
及
解
决
方
法
)
在编程调剂过程中遇到如下问题及对应解决方法:
1、添加通讯录时输入格式的规定,基本信息不能含有特殊符号。
解 决 办 法 : 用 Glibc 库 中 函 数 ispunct(), 同 时 在 加 入 头 文 件
#include<ctype.h>。
2、添加通讯录时输入姓名时,不能含有数字。
解决办法:汉字在内存中占 2 个字节,而且每个字节的最高位为
1,所以用名字和 0x80 按位与,(即:name[j]&0x80)。
3、添加通讯录时输入手机号码时,不能含有字符。
解决办法:用 Glibc 库中函数 isalpha()。
4、数据库表位空时,读入时系统停止运行。
解决办法:m_pRecordset->adoEOF 来判断。
5、通讯录保存后,若在添加通讯录,保存失败。
解决办 法 : 增 加 一 个 中 间指 针 w 来保存 尾 指 针 地 址 , 即 在
addmessage()函数中添加 w=r 语句,在主函数中调用 savedata(w)
函数。
6、更新数据库记录信息。
解决办法:
if(strcmp(updatename,(_bstr_t)(m_pRecordset-
>GetCollect("name")))==0)
{ m_pRecordset->PutCollect("name",_variant_t(L->name));
m_pRecordset->Update();}
7、删除数据库记录。
解决办法:m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();
4
自评成绩:
学生签名: