编辑: GXB156399820 | 2013-06-08 |
1 程序功能简介 1.2 课程设计要求 1.3 评定难易级别 具体实现 2.1 程序总体方案 2.1.1开发平台 2.1.2程序结构或流程图 2.2 所做改进 2.2.1改进一 2.2.1.1 改进方案 2.2.1.2 具体实现 2.2.2改进二 2.2.2.1 改进方案 2.2.2.2 具体实现 … 2.2.n 改进N 2.2.n.1 改进方案 2.2.n.2 具体实现 调试报告 (在设计和实现过程所遇到的问题和解决,请如实填写)… 总体小结 (在整个设计过程中的心得体会) 分工介绍 (是独立完成还是合作完成,若为合作完成,说明合作者以及之间的具体分工)…
一、课题目标 1.1 程序功能简介 一个电话簿管理小程序.利用文本文件存储电话簿数据,具有添加、删除、显示和查询联系人电话号码的功能. 1.2 课程设计要求 (1)将电话簿数据和相应的函数封装在类中,改写程序使之结构化. (2)增加记录修改功能,能选择修改用户的姓名、电话. (3)增加录入时间的显示及存储. (4)增加缺省的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示. 1.3 评定难易级别 A级
二、具体实现 2.1 程序总体方案 2.1.1开发平台 操作系统:Windows XP 开发工具:VC++6.0 2.1.2程序结构或流程图 (1)主函数的流程图:
1 2
3 4
5 6
0 2.2 所做改进 2.2.1改进一 2.2.1.1 改进方案 把程序改成类:将数据成员和对这些数据相关的操作函数封装在类中,使程序结构化. 定义了类的友元类,使访问类成员时更方便. 2.2.1.2 具体实现 class TelRecord //定义类 { private: int Year,Month,Day,Hour,Minute;
char LName[20];
char FName[20];
char Tel[20];
public: TelRecord(缺省的构造函数 ~TelRecord(析构函数 TelRecord(char*,char*,char*,int,int,int,int,int);
void setRecord(char*,char*r,char*,int,int,int,int ,int );
void setTime();
char* getLName(获得姓 char* getFName(获得名 char* getTel(获得电话号码 int getYear(获得年 int getMonth(获得月 int getDay(获得日 int getHour(获得时 int getMinute(获得分 int compare(TelRecord&按照姓名比较若返回值为零,则两者相等 void show();
void modify(char*修改电话号码 void modify(char *,char 修改姓名 int lookChar(char)首字母匹配的返回1,不匹配的返回//按照首字母查找,若匹配返回1,否则返回0 class Node //结点类 { friend class List;
private: TelRecord* pData;
Node *pNext;
public: Node() {pData=new TelRecord;
pNext=0;
缺省的构造函数 Node(TelRecord telrecord,Node node) { pData=&telrecord;
pNext=&node;
构造函数 Node(Node&node) { if(node.pData!=NULL)用于拷贝的构造函数 pData=node.getData();
pNext=node.getpNext();
~Node(){};
void inputData(TelRecord*pdata) {pData=pdata;
数据录入函数 void showNode() {pData->show(结点显示函数 TelRecord* getData() {return pData;
获得结点信息函数 Node* getpNext() {Node *p=pNext;
return p;
获得下一个结点 };
class List //链表类 { Node* pHead;
public: List(Node* node=NULL) {pHead=node;
构造函数 ~List() { if(pHead!=NULL) deleteList(析构函数 void setpHead(Node* node) {pHead=node;
重置链表头函数 void showList(显示链表函数 void deleteList(删除链表函数 Node* getListHead() {return pHead;
} Node* lookUpfirstletter(按照姓氏首字母智能查询函数 void lookUp(TelRecord 按照姓名智能查询函数 void insert(Node*排序插入函数 void deleteNode(Node*删除结点函数 void delete_record(删除记录函数 int verify_delete(确认删除的函数 void add_record(在链表中增加一个记录函数 void modify_record(修改数据函数 void modifyTel(修改电话号码函数 void modifyName(修改姓名函数 void load_list_from_file(从文件载入数据函数 void write_list_to_file(把信息写入文件的函数 void handle_choice(int)选择处理函数 };