




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 VC课程设计报告课 程:VC+课程设计 系 别:班 级:学 号:姓 名:选题2名称: 选题2难易级别:自报成绩: 起止时间:指导教师: 日期: 年 月 日目 录 一、 课题目标1.1 程序功能简介1.2 课程设计要求1.3 评定难易级别二、 具体实现2.1 程序总体方案开发平台程序结构或流程图2.2 所做改进 改进一 .1 改进方案 .2 具体实现改进二 .1 改进方案 .2 具体实现2.2.n 改进N 2.2.n.1 改进方案 2.2.n.2 具体实现三、 调试报告(在设计和实现过程所遇到的问题和解决,请如实填写)四、 总体小结(在整个设计过程中的心得体会)五、 分工介绍 (是独立完成还是
2、合作完成,若为合作完成,说明合作者以及之间的具体分工)一、课题目标1.1 程序功能简介 一个电话簿管理小程序。利用文本文件存储电话簿数据,具有添加、删除、显示和查询联系人电话号码的功能。1.2 课程设计要求(1)将电话簿数据和相应的函数封装在类中,改写程序使之结构化。(2)增加记录修改功能,能选择修改用户的姓名、电话。(3)增加录入时间的显示及存储。(4)增加缺省的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资料均在屏幕上显示。1.3 评定难易级别 A级二、具体实现2.1 程序总体方案开发平台操作系统:Windows XP开发工具:VC+6.0程序结构或流程图(1)主函数的流程
3、图: 开始输出菜单及提示输入选择 1 2 3 4 5 6 0根据首字母查找根据姓名查找修改已有记录删除已有记录显示电话簿内容添加电话簿记录返回主菜单退出退出结束2.2 所做改进 改进一.1 改进方案 把程序改成类:将数据成员和对这些数据相关的操作函数封装在类中,使程序结构化。定义了类的友元类,使访问类成员时更方便。.2 具体实现class TelRecord /定义类private:int Year,Month,Day,Hour,Minute;char LName20;char FName20;char Tel20;public: TelRecord(); /缺省的构造函数TelRecord(
4、); /析构函数 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
5、 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; /缺省
6、的构造函数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* get
7、Data() 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(); /删除链表函数Nod
8、e* 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(); /修改数据函数 vo
9、id modifyTel(); /修改电话号码函数 void modifyName(); /修改姓名函数 void load_list_from_file(); /从文件载入数据函数 void write_list_to_file(); /把信息写入文件的函数void handle_choice(int); /选择处理函数;2.2.2改进二2.2.2.1 改进方案 增加时间单元的存储与显示:在结点数据域中增加一个时间单元,在结点数据的构造函数中调用系统时间给时间单元赋值。2.2.2.2 具体实现void setTime() time_date=time(0); CurrentTime=loca
10、ltime(&time_date); Year=CurrentTime->tm_year+1900; Month=CurrentTime->tm_mon+1; Day=CurrentTime->tm_mday; Hour=CurrentTime->tm_hour; Minute=CurrentTime->tm_min;int getYear() return Year; int getMonth() return Month; int getDay() return Day; int getHour() return Hour; int getMinute
11、() return Minute; void setRecord(char*lastname,char*number,char*firstname,int year,int month,int day,int hour,int minute ) strcpy(LName,lastname); strcpy(Tel,number); strcpy(FName,firstname);Year=year;Month=month;Day=day;Hour=hour;Minute=minute;2.2.3改进三.1 改进方案 使用户界面更加友好:避免输入数据类型错误导致程序无效循环或终止,在输入数据类型
12、时进行判断,对非法输入予以提示。2.2.3.2 具体实现/要求用户确认函数int List:verify_delete() char YesNo; cout<<"n 确定删除吗?(y/n) " YesNo=cin.get(); while(YesNo!='y'&&YesNo!='n') cin.ignore(20,'n'); cout<<" 输入有误,重新输入: " YesNo=cin.get(); if(YesNo='y') cin.get(); r
13、eturn 1; else cin.get(); return 0; /将输入的字符转换为整型int main() char str20;List FriendsList;cout<<"*欢迎使用电话簿管理系统*"<<endl;cout<<"按回车键开始"<<endl;cin.get(pause);system("cls");FriendsList.load_list_from_file();current_ptr=FriendsList.getListHead();do system(
14、"cls");cout<<"n=菜单=n".cout<<"=n"cout<<"请输入您的选择:n"cin.clear();cin.getline(str,20);choice=atoi(str); FriendsList.handle_choice(choice);while(choice!=0);return 0;三、调试报告以下面的表格形式记录程序调试和测试过程。日期遇到的问题解决方法9月5号在main()函数中定义的变量,在其调用的函数中不能实现。了解到变量的作用域问题,把需要在整个程序中用得到变量定义为全局变量,由于是多文件,故使用了extern 说明。9月8号在返回主菜单的程序中,总是有异常的程序终止。检查程序,查找各种输入流函数的用法,在一些输入后立即清空
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆保管寄售协议书
- 人工费外包合同协议书
- 驾校投资加盟协议书
- 采样作业安全协议书
- 解除期权股权协议书
- 代家长陪读合同协议书
- 让老公签忠诚协议书
- 农场看护房转让协议书
- 车祸报废赔偿协议书
- 解除增资扩股协议书
- 超星尔雅学习通《美学原理(北京大学)》2025章节测试附答案
- (高清版)DB11∕T2256-2024城市轨道交通钢轨踏面维修技术规范
- DB11∕T2279-2024社会单位消防安全评估规范
- 病历质量培训课件
- 机房施工安全培训
- 中国卒中学会急性缺血性卒中再灌注治疗指南+2024解读
- 装饰报价单完整版本
- 设计单位现场施工期间配合及技术经验服务措施
- 【MOOC期末】《英美文学里的生态》(北京林业大学)期末中国大学慕课MOOC答案
- 能源管理系统投标技术文件
- 大学生个人职业生涯规划课件模板
评论
0/150
提交评论