欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    VC++课程设计报告.doc

    • 资源ID:1821893       资源大小:65.50KB        全文页数:9页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VC++课程设计报告.doc

    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.n 改进 N2.2.n.1 改进方案2.2.n.2 具体实现 三、 调试报告(在设计和实现过程所遇到的问题和解决,请如实填写) 四、 总体小结(在整个设计过程中的心得体会) 五、 分工介绍(是独立完成还是合作完成,若为合作完成,说明合作者以及之间的 具体分工)3一、课题目标一、课题目标1.1 程序功能简介程序功能简介一个电话簿管理小程序。利用文本文件存储电话簿数据,具有添加、删除、显示和查 询联系人电话号码的功能。1.2 课程设计要求课程设计要求(1)将电话簿数据和相应的函数封装在类中,改写程序使之结构化。 (2)增加记录修改功能,能选择修改用户的姓名、电话。 (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 所做改进所做改进 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); 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:6TelRecord* pData;Node *pNext; public:Node() pData=new TelRecord; pNext=0; /缺省的构造函数 Node(TelRecord telrecord,Node node) pData= pNext= /构造函数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=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); /选择处理函数 ;72.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 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=year; 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!='y'cout<<“ 输入有误,重新输入: “;YesNo=cin.get();if(YesNo='y') cin.get(); 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“; cin.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 号电话簿输出出现错误,姓名与电话号码交叉输出。检查程序,在读取结点数据时,数据成员顺序与构造函数中不一致,修改。四、总体小结四、总体小结此次课程设计的题目的程序流程并不复杂,但实现的操作较多,涉及类的 继承和友元类的实现,要有正确地访问类的私有数据途径;关键的是,实现了 文本文件的输入输出,在大数据程序的实现中,可方便地调用、存储数据。五、分工介绍五、分工介绍独立完成。

    注意事项

    本文(VC++课程设计报告.doc)为本站会员(创****公)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档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  

    收起
    展开