VC++课程设计报告.doc

上传人:创****公 文档编号:1821893 上传时间:2019-10-26 格式:DOC 页数:9 大小:65.50KB
返回 下载 相关 举报
VC++课程设计报告.doc_第1页
第1页 / 共9页
VC++课程设计报告.doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《VC++课程设计报告.doc》由会员分享,可在线阅读,更多相关《VC++课程设计报告.doc(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 1VCVC课程设计报告课程设计报告课课 程:程:VC+课程设计课程设计 系系 别:别:班班 级:级:学学 号:号:姓姓 名:名:选题选题 2 名称:名称: 选题选题 2 难易级别:难易级别:自报成绩:自报成绩: 起止时间:起止时间:指导教师:指导教师: 日期: 年 月 日2目目 录录一、 课题目标1.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.2.n 改进 N2.2.n.1 改进方案2.2.n.2 具体实现 三、 调试报告(在设计和实现过程所遇到的问题和解决,请如实填写) 四、 总体小结(在整个设计过程中的心得体会) 五、 分工介绍(是独立完成还是合作完成,若为合作完成,说明合作者以及之间的 具体分工)3一、课题目标一、课题目标1.1 程序功能简介程序功能简介一个电话簿管理小程序。利用文本文件存储电话簿数据,具有添加、删除、显示和查 询联系人电话号码的功能。1.2 课程设计要求课程设计要求(1)将电话簿数据和相应的函数封装在类中,改写程序使之结构化。 (2)增加记录修改功能,能选择修改用户的姓名、电话。 (3)增加录入时

3、间的显示及存储。 (4)增加缺省的查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电话资 料均在屏幕上显示。1.3 评定难易级别评定难易级别A 级二、具体实现二、具体实现2.1 程序总体方案程序总体方案2.1.1 开发平台开发平台操作系统:Windows XP 开发工具:VC+6.02.1.2 程序结构或流程图程序结构或流程图(1)主函数的流程图:41 2 3 4 5 6 0开始输出菜单及提示输入选择添 加 电 话 簿 记 录显 示 电 话 簿 内 容删 除 已 有 记 录修 改 已 有 记 录根 据 姓 名 查 找根 据 首 字 母 查 找返回主菜单退出结束退出52.2 所做改进所做

4、改进 2.2.1 改进一改进一2.2.1.1 改进方案把程序改成类:将数据成员和对这些数据相关的操作函数封装在类中,使程序结构化。定义了类的友元类,使访问类成员时更方便。 2.2.1.2 具体实现 class TelRecord /定义类 private: int Year,Month,Day,Hour,Minute; char LName20; char FName20; char Tel20; public:TelRecord(); /缺省的构造函数 TelRecord(); /析构函数TelRecord(char*,char*,char*,int,int,int,int,int); vo

5、id 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();

6、 void modify(char*); /修改电话号码void modify(char *,char *); /修改姓名 int lookChar(char); /首字母匹配的返回 1,不匹配的返回/按照 首字母查找,若匹配返回 1,否则返回 0 ; class Node /结点类 friend class List; private:6TelRecord* pData;Node *pNext; public:Node() pData=new TelRecord; pNext=0; /缺省的构造函数 Node(TelRecord telrecord,Node node) pData= pNe

7、xt= /构造函数Node(NodepNext=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=no

8、de; /构造函数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(N

9、ode*); /删除结点函数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); /选择处理函数 ;72

10、.2.2 改进二改进二2.2.2.1 改进方案增加时间单元的存储与显示:在结点数据域中增加一个时间单元,在结 点数据的构造函数中调用系统时间给时间单元赋值。 2.2.2.2 具体实现 void setTime() time_date=time(0);CurrentTime=localtime(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

11、 Year; int getMonth() return Month; int getDay() return Day; int getHour() return Hour; int getMinute() 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=yea

12、r; Month=month; Day=day; Hour=hour; Minute=minute; 2.2.3 改进三改进三2.2.3.1 改进方案使用户界面更加友好:避免输入数据类型错误导致程序无效循环或终止, 在输入数据类型时进行判断,对非法输入予以提示。 2.2.3.2 具体实现8/要求用户确认函数 int List:verify_delete() char YesNo;cout“n 确定删除吗?(y/n) “;YesNo=cin.get();while(YesNo!=ycout“ 输入有误,重新输入: “;YesNo=cin.get();if(YesNo=y) cin.get();

13、return 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(“cls“); cout“n=菜单=n“; . cout“=n“; cout“请输入您的选择:n“; ci

14、n.clear(); cin.getline(str,20); choice=atoi(str);FriendsList.handle_choice(choice); while(choice!=0); return 0; 9三、调试报告三、调试报告以下面的表格形式记录程序调试和测试过程。日期遇到的问题解决方法9 月 5 号在 main()函数中定义的变量,在其调用的函数中不能实现。了解到变量的作用域问题,把需要在整个程序中用得到变量定义为全局变量,由于是多文件,故使用了 extern 说明。9 月 8 号在返回主菜单的程序中,总是有异常的程序终止。检查程序,查找各种输入流函数的用法,在一些输入后立即清空缓存,或提取缓存区中的换行符。9 月 11 号设计容错函数时,出现程序异常终止。检查程序代码,做细节改动9 月 13 号电话簿输出出现错误,姓名与电话号码交叉输出。检查程序,在读取结点数据时,数据成员顺序与构造函数中不一致,修改。四、总体小结四、总体小结此次课程设计的题目的程序流程并不复杂,但实现的操作较多,涉及类的 继承和友元类的实现,要有正确地访问类的私有数据途径;关键的是,实现了 文本文件的输入输出,在大数据程序的实现中,可方便地调用、存储数据。五、分工介绍五、分工介绍独立完成。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com