网站大量收购独家精品文档,联系QQ:2885784924

C语言初级项目实践选题..doc

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

附件2 关于C语言项目实践的技术指导 项目实践的目的及意义 设计并实现该项目实践的目的主要在于: 对一定规模的综合软件编程有一定的经历与认识。在做的过程中,你会发现,提前的规划(即分析与设计)比编程过程要重要,否则会走很多弯。 综合并结合现实应用使用C语言的知识。这个设计会用到C语言这门课的全部知识,其中以文件、数组与链表为主,书中提到的主要及重点算法都会使用到。 不仅涉及编程,还涉及到功能分析、模块规划等方面的知识,这些知识在后续课程学习时,会经常使用。这些知识在学《软件工程》这门课时,会系统讲解。希望有了这次的经历,你能更好的体会《软件工程》这门课的意义,并能学好和用好其中的知识 。 每项功能的实现,一般有多种方法,这里都强调使用时空效率最高的方法,此次实现只是让你有一个初步的认识,在下学期学习了《数据结构》后,你就知道为什么让你这样做,你也对《数据结构》这门课的作用及意义有所了解。 项目实践的实现思路 任何一个管理系统的基本操作主要如下: 能录入并能向文件里保存数据 能计算并修改文件里的数据 能向文件里追加数据 能查找文件里是否有某项数据 根据要求显示文件里的某些数据或全部数据 能在文件里插入或删除某项数据 按某个数据项进行排序生成排序文件 可以看出,所有操作围绕的中心是文件。而文件本身提供的功能相当有限,主要是打开与关闭文件、读与写文件、在文件末尾追加数据、修改文件里的某些数据(这个前提是需要用fseek找到修改的位置再往里写数据),这四项功能。其它的功能文件不能直接完成,需要借由内存将相应的操作完成后,再写入文件。比如: 录入并向文件里保存数据的实现思路:C语言并没有提供由键盘输入数据直接录入文件的功能,只有内存变量向文件写入数据的功能,而由键盘输入数据可以到内存变量,因此实现此部分功能时,应当由键盘将数据放入变量,再由变量写入文件。这里录入要求不采用书上例子,它是用结构体数组,我们要求只用一个结构体实现。先将一个人的信息放入结构体,将这个结构体数据写入文件后,再将下一个人的信息继续放在这个结构体中,再将这个结构体写入文件。这样节省内存空间。 计算并修改文件里数据的实现思路:这部分的功能的实现应当先将文件的数据读到变量当中,在变量当中完成计算,再将数据写入文件。如果只是修改文件的数据,并不计算,则可以直接定位到文件中相应的位置,写入数据,则把原来的数据覆盖以完成修改。 向文件里追加数据的实现思路:文件本身提供了这项功能,只要以 “a”的方式打开就行。然后向文件写入的数据,直接放在文件末尾。 查找文件里是否有某项数据的实现思路:C语言并没有提供判断文件内容的功能,必须将文件内容读到变量里再进行判断。实际的查找可能是在大量的数据里的查找,高效的查找是折半查找(下学期的数据结构专门讲这一内容),折半的前提是排序,因此需先对排序后的文件读出,以折半方式查找。(这要要求,是希望巩固折半查找与排序两个重要算法,至于它的时空效率是否高,可以学完《数据结构》知识后自己再判断)。 根据要求显示文件里的某些数据或全部数据的实现思路:C语言没有提供将文件内容显示的功能,所以需要将文件内容读到变量里,再显示变量。 在文件里插入或删除某项数据的实现思路:C语言同样没有直接提供该项功能,因此必须借由内存变量完成。由以前的知识知道,在大量的数据里删除一个数,用数组表示不合适,因为涉及到大量的数据的移动,用链表是合适的,效率高(关于这一点,在《数据结构》这门课有详细的讲解)。因此完成这部分操作要求用链表实现,先将文件里的数据读出组织成链表,在链表上完成插入与删除后,再将链表中的数据写入文件。 按某个数据项进行排序生成排序文件的实现思路:排序是在数组里实现。因此先要将文件里的数据读到数组里,将数组排完序后,再将数据写入文件(一般写入一个新文件)。 因此对每一项功能,关于内存变量的使用有三种方案:一个结构体、结构体数组与结构体链表,实现每个功能应当只会使用其中的一种结构,使用哪种结构取决于你的做的事和使用的算法,比如排序必须用数组,插入与删除必须用链表,其它的根据要求可能会有多种选择,但只有一种时空效率最高,可以从这个角度选择一种结构。 最终实现的软件,只要提供这上面提到的所有功能就算满足要求,至于其它功能,能结合实际要求考虑周全,更好。 项目实践的方法 此次项目实践的功能较多,相对于以往所做程序规模较大,因此在编写与调试程序时,特别注意调试程序的方法,以提高效率。具体方法如下: 将功能分解,细分至每个函数要完成的功能后,编写一个函数测试一个函数,测试完全通过后,再编写测试下一个函数,然后再将这些函数组合后完成相应功能。将全部功能完成后,再组合成软件,最后再加入菜单控制。从《软件工程》的角度看,这是从底至上的开发过程,这样便于测试与实现,出错也便于

文档评论(0)

xznh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档