同学录系统VC++课程的设计.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
同学录系统VC++课程的设计

南京理工大学VC++课程设计报告 课 程:VC++课程设计 系 别:班 级:选题名称:选题 指导教师: 陆建峰 日期: 2010 年 9 月 24 日 目 录 课题目标 1.1 程序功能简介 1.2 课程设计要求 1.3 评定难易级别 具体实现 2.1 程序总体方案 2.1.1开发平台 2.1.2程序结构或流程图 2.2 关键代码及注释 程序截图 调试报告 (在设计和实现过程所遇到的问题和解决,请如实填写)… 总体小结 (在整个设计过程中的心得体会) 分工介绍 (是独立完成还是合作完成,若为合作完成,说明合作者以及之间的具体分工)… 一、课题目标 1.1 程序功能简介 此程序是一个简单的同学录系统,具有导入同学信息,存储,显示、新增、删除、查询、修改同学信息等功能,最主要的是,它是用双向链表实现的,所以新增和删除的效率非常的高。 其菜单分为:显示所有同学录信息、新增一个同学录信息、删除一个同学录信息、查询系统、修改同学录信息,寻求帮助等。 1.2 课程设计要求 用双向链表完成一个同学录系统 实现同学录所该有的功能,并方便用户的使用! 1.3 评定难易级别 A组 二、具体实现 2.1 程序总体方案 2.1.1开发平台 操作系统:Windows 7 开发工具:visual studio 2010 2.1.2程序结构或流程图 主函数的流程图: 2.2 所做改进 2.2.1改进一 2.2.1.1 改进方案 基本上这个程序都是自己写的,改进也只是对原有要求的添加而已。 先说说这个程序怎么实现所有功能的吧。 2.2.1.2 具体实现 进入程序,首先是读取txt文件的信息,然后显示的是菜单。再然后一目了然的有各种功能。 总体是用双向链表做的。 新增结点信息:即添加一个链表结点信息。 显示所有信息:是先根据学号排序,然后从头至尾分屏显示所有信息,链表依次读取。 删除操作: 即链表操作,删除一个结点. 查询操作: 按要求进行各种情况查询,总体思想是线性的比较,如果有匹配的字符串就输出(这里面用的是string.find函数)。 修改同学录: 先根据查找操作找到这个信息,再修改当前结点信息 寻求帮助: 作为一些运用该程序的说明而存在。可以对用户一些较常见的疑问做出回答。 退出程序: 退出前会保存所有的信息至txt文件。 2.2.2改进二 2.2.2.1 改进方案 为了使我的查询更完善,我的程序做到了部分字符串匹配的查询方式,即比如在输入姓名查询的时候,如果输入的是姓名的姓或者名,那么与之匹配的所有信息都会显示,而不是显示结果不存在。 同样的,还可以根据自己一开始对该同学的评价做查询。 另外,我设置了帮助选项,可以为用户解答很多常见的疑问。可以方便用户。 2.2.2.2 具体实现 运用STL string类里面的find( )函数;把我的成员全都定义成string类的,最后再让用户输入所需查找的字符串(也是一个string类),然后从到之为用find函数查,如njust[i].name.find(temp)!=string::npos;则加入到输出。 在所有的查询方式里使用相同的方法,即可实现,所有的查询都带有子串查找功能。 STL确实方便 三、程序运行截图 进入程序: 进入菜单: 分屏显示 查询界面: 修改同学录信息: 帮助界面: 四、调试报告 调试还算顺利,只是一开始容错方面做得比较简陋。后来改好了。再又就是一开始功能比较少,后来慢慢一步步完善,变成现在这样,还算可以用用的程序。 五、总体小结 经过这么多天的编程,我了解到了要想完成一个比较大的程序,需要先根据程序的要求,确定设计思路,画出流程图,把想要用到的函数都写出其函数原型说明。然后根据自己已经写好的函数原型说明。一步步把函数都实现。即分别写出每一个功能所需要的具体的函数。 这样,有一个清晰的思路,就比较有调理,有了调理,也不容易忘记一些想要实现的东西。然后,才会有一个层次分明,客户友好的程序。 另外,类的封装和双向链表弄起来还是比较繁琐的。但是,把问题一个个搞清楚以后,问题就自然而然的被简化了。 另外编程序还要注重细节,任意一个看似细微的的错误,都可能会引起一连串的error,所以每次从键盘读入数据或者数据的处理的环节都要注意合法性的检查。 最后不得不提的是,我加入ACM队,在暑假做了大量的题目联系,所以在调试方面没有出现什么打问题,都算是比较轻松的过关了。熟练的写程序,对我们着实是非常重要的! 六、分工介绍 独立完成。 #pragma once #includestudent.h struct node //链表node结点

文档评论(0)

189****7685 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档