C语言初级项目实践选题

上传人:re****.1 文档编号:431640630 上传时间:2023-04-18 格式:DOCX 页数:6 大小:19.41KB
返回 下载 相关 举报
C语言初级项目实践选题_第1页
第1页 / 共6页
C语言初级项目实践选题_第2页
第2页 / 共6页
C语言初级项目实践选题_第3页
第3页 / 共6页
C语言初级项目实践选题_第4页
第4页 / 共6页
C语言初级项目实践选题_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《C语言初级项目实践选题》由会员分享,可在线阅读,更多相关《C语言初级项目实践选题(6页珍藏版)》请在金锄头文库上搜索。

1、附件2关于C语言项目实践的技术指导一、项目实践的目的及意义设计并实现该项目实践的目的主要在于:1) 对一定规模的综合软件编程有一定的经历与认识。在做的过程中,你会发现,提前的规划(即 分析与设计)比编程过程要重要,否则会走很多弯。2) 综合并结合现实应用使用 C 语言的知识。这个设计会用到 C 语言这门课的全部知识,其中以文 件、数组与链表为主,书中提到的主要及重点算法都会使用到。3) 不仅涉及编程,还涉及到功能分析、模块规划等方面的知识,这些知识在后续课程学习时,会 经常使用。这些知识在学软件工程这门课时,会系统讲解。希望有了这次的经历,你能更 好的体会软件工程这门课的意义,并能学好和用好其

2、中的知识 。4) 每项功能的实现,一般有多种方法,这里都强调使用时空效率最高的方法,此次实现只是让你 有一个初步的认识,在下学期学习了数据结构后,你就知道为什么让你这样做,你也对数 据结构这门课的作用及意义有所了解。二、项目实践的实现思路任何一个管理系统的基本操作主要如下:1) 能录入并能向文件里保存数据2) 能计算并修改文件里的数据3) 能向文件里追加数据4) 能查找文件里是否有某项数据5) 根据要求显示文件里的某些数据或全部数据6) 能在文件里插入或删除某项数据7) 按某个数据项进行排序生成排序文件可以看出,所有操作围绕的中心是文件。而文件本身提供的功能相当有限,主要是打开与关闭文件、 读

3、与写文件、在文件末尾追加数据、修改文件里的某些数据(这个前提是需要用 fseek 找到修改的位置 再往里写数据),这四项功能。其它的功能文件不能直接完成,需要借由内存将相应的操作完成后,再 写入文件。比如:1) 录入并向文件里保存数据的实现思路:C语言并没有提供由键盘输入数据直接录入文件的功能, 只有内存变量向文件写入数据的功能,而由键盘输入数据可以到内存变量,因此实现此部分功 能时,应当由键盘将数据放入变量,再由变量写入文件。这里录入要求不采用书上例子,它是 用结构体数组,我们要求只用一个结构体实现。先将一个人的信息放入结构体,将这个结构体 数据写入文件后,再将下一个人的信息继续放在这个结构

4、体中,再将这个结构体写入文件。这 样节省内存空间。2) 计算并修改文件里数据的实现思路: 这部分的功能的实现应当先将文件的数据读到变量当中, 在变量当中完成计算,再将数据写入文件。如果只是修改文件的数据,并不计算,则可以直接 定位到文件中相应的位置,写入数据,则把原来的数据覆盖以完成修改。3) 向文件里追加数据的实现思路:文件本身提供了这项功能,只要以“a”的方式打开就行。然后 向文件写入的数据,直接放在文件末尾。4) 查找文件里是否有某项数据的实现思路: C 语言并没有提供判断文件内容的功能,必须将文件 内容读到变量里再进行判断。实际的查找可能是在大量的数据里的查找,高效的查找是折半查 找(

5、下学期的数据结构专门讲这一内容),折半的前提是排序,因此需先对排序后的文件读出, 以折半方式查找。(这要要求,是希望巩固折半查找与排序两个重要算法,至于它的时空效率是 否高,可以学完数据结构知识后自己再判断)。5) 根据要求显示文件里的某些数据或全部数据的实现思路: C 语言没有提供将文件内容显示的功 能,所以需要将文件内容读到变量里,再显示变量。6) 在文件里插入或删除某项数据的实现思路: C 语言同样没有直接提供该项功能,因此必须借由 内存变量完成。由以前的知识知道,在大量的数据里删除一个数,用数组表示不合适,因为涉 及到大量的数据的移动,用链表是合适的,效率高(关于这一点,在数据结构这门

6、课有详 细的讲解)。因此完成这部分操作要求用链表实现,先将文件里的数据读出组织成链表,在链表 上完成插入与删除后,再将链表中的数据写入文件。7) 按某个数据项进行排序生成排序文件的实现思路: 排序是在数组里实现。因此先要将文件里的 数据读到数组里,将数组排完序后,再将数据写入文件(一般写入一个新文件)。因此对每一项功能,关于内存变量的使用有三种方案:一个结构体、结构体数组与结构体链表,实 现每个功能应当只会使用其中的一种结构,使用哪种结构取决于你的做的事和使用的算法,比如排序必 须用数组,插入与删除必须用链表,其它的根据要求可能会有多种选择,但只有一种时空效率最高,可 以从这个角度选择一种结构

7、。最终实现的软件,只要提供这上面提到的所有功能就算满足要求,至于其它功能,能结合实际要求 考虑周全,更好。三、项目实践的方法此次项目实践的功能较多,相对于以往所做程序规模较大,因此在编写与调试程序时,特别注意调 试程序的方法,以提高效率。具体方法如下:1) 将功能分解,细分至每个函数要完成的功能后,编写一个函数测试一个函数,测试完全通过后, 再编写测试下一个函数,然后再将这些函数组合后完成相应功能。将全部功能完成后,再组合 成软件,最后再加入菜单控制。从软件工程的角度看,这是从底至上的开发过程,这样便于 测试与实现,出错也便于定位错误位置。不要一开始的精力放在菜单控制上,也不要一开始就将 所有

8、的函数都编写、组装并一起调试,这样出错位置较难定位,调试效率低。2) 在编程过程中,不要使用全局量。它不仅长时间大量占用内存,而且完全违背实际的软件开发要 求。需要使用的数据,应当通过参数传递。就这个软件而言,数据主要是从文件读写,所以连数 据传递都不太多。3) 在列出的这些功能里,有些操作是很多功能都使用的,比如从某个文件读或写数据,这些可以编 写成一个函数(当然里面可能再调用其它函数)。这些一次编写严格测试通过后,可以被其它函 数调用,避免代码重复,并提高效率。4) 因为软件有一定的规模,所以必须拆成多个文件,这样附合实际项目开发需求,同时便于编写与 调试。在做这个软件过程中,必须学会这种

9、方法。5) 有问题要及时交流,尽早动手编写代码,在编写过程中掌握知识,同时发现问题并进行调整,在 这个过程中一步步积累经验。编程就是一个经验积累的过程。哪怕走了弯路,也是一种经验积累。附件 1 题目选择指南综合设计可供选择的题目如下。要求:其中不同的系统,难易和功能有所不同,自己根据自己的能力进行选择。每个题目选择的人数相对 均匀,不要出现一个题目过于集中,其它题目少有人选择的情况。 在实现时,可根据自己的能力和现实需要,尽量加上好的图形界面,方便的键盘操作和鼠标控制。这里 只给出基本需求,可以根据自己的理解,加上更多的功能和操作。 在实现时,必须要用到结构体数组,链表和文件三方面的知识,这其

10、中有一项知识没用到,则没有成绩。该系统要求一人做一份,不分组,最后一一答辩,会将相同题目的同学分在同一时段答辩,以利于 比较并监测作弊情况。成绩会从功能完整、界面美观舒服、操作方便、有创新创意、答辩表现自然等几个方面打综合成绩。 不定期检查项目实践进展情况,需要将自己的成果演示一下,并解决问题。一、图书资料信息管理系统目的要求 目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成一个图书资料信息管理系 统,并能最终实现本系统的功能要求。功能要求需要处理的基础数据: 图书资料基本信息:中图法分类号、图书编号、书名、作者(要考虑多个作者情况)、出版社、出版日 期、ISBN、版次、定

11、价、馆藏数、借阅数等。 图书采购信息:书名、作者、采购日期、采购数量、采购单价、采购金额、发票号码、图书编号等。 图书借阅信息:借阅人、借阅人所在单位、借书证号、所借书名、借阅日期、归还日期、逾期罚款等。 借阅期限为一个月,逾期 1天,罚款1角。中图法分类号:T 工业科学TB 一般工业技术,TD矿业工程,TE石油、天然气工业,TF金工业,TG金属学,TH机械TJ 武器工业, TK 动力工业, TL 原子能技术, TM 电工技术, TN 无线电电子学、通信技术,TP 自动化技术、计算技术,。系统功能:(1)各种基本数据的录入。如:图书资料基本信息录入等。(2)各种基本数据的修改。即:允许对以及录

12、入的数据重新进行编辑、修改。(3)各种基本数据的插入。如:在图书采购信息中插入一条新信息等。(4)各种基本数据的删除。如:假设某本书遗失且馆藏数为 0,删除该书的相关信息等。(5)基于各种数据的查询。如:书名中含有“计算机”的所有书籍、全部借出的所有图书等。(6)基于各种基本数据的统计计算。如:(6-1)统计馆藏书籍总数、已借出数据总数、在馆书籍数等。 (6-2)统计馆藏书籍总金额、馆藏书籍的平均价格。(6-3)找出借阅次数最多的 10本书,并对它们进行排序。(6-4)统计每月逾期罚款总金额。被罚款金额最多的前 5 名借阅者并对其排序。 (6-5)统计借阅书籍最多的前 5 名读者。(6-6)图

13、书资料信息其它方面的统计。程序运行的参考界面: 欢迎进入图书信息管理系统 1: 图书输入 2: 图书统计 3:借阅的图书统计并排名4:图书数据的添加、修改、与删除5:图书数据的读取与存储6:退出系统 二、自动贩卖机程序设计任务书目的要求 目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成一个自动贩卖机控制系统, 并能最终实现本系统的功能要求。功能要求 【题目描述】 某公司请你为其生产的自动贩卖机编写软件。这种无人值守自动贩卖机贩卖价值为ABC三种商品,价格 分别为2元,3元和6元。顾客投入10元的纸币,然后选择购买3种商品之一,自动贩卖机吐出商品, 并且找给用户零钱。如果商品

14、用完,或者无法找零,则给出用户一个提示,商品已售完,并且退还纸币 自然,你的贩卖机用户希望尽可能地给用户找零,以免流失顾客。为了调查用户的喜好,希望得到三种 商品的每日消费数据,由此来调整货柜中三种货物的存贮量。你的程序将实现以下功能: 库存查询:检索当前三种商品的储存量 商品上架:为三种商品增加或者减少储量销售查询:分别统计今天每种商品的销售量和销售额 会计查询:打印当天的往来帐目以及剩余零钞数目 结算功能:取出今天所有的10元纸币,并且分别设置零钞的数目 销售界面:顾客投入纸币,选择商品,获得商品和零钱;或者直接显示错误并退还纸币【题目要求】(1)为各项操作功能设计一个菜单。应用程序运行后

15、,先显示这个菜单,然后操作员通过菜单项选择 希望进行的操作项目;(2)你的贩卖机用户不希望每一位顾客都有权限执行以上功能,因此一旦进入销售界面,就不应当退 回到系统界面,但是应允许顾客反复购买,前一个顾客购买完毕后应停留在销售界面里允许下一个顾客 操作。直到某位特殊的顾客(超级顾客)输入特殊的商品代号(密码)方可回到主控界面。(3)计算机安排的找零算法应该合理,不要出现某一种零钱找光的情况。同时顾客也不喜欢明明有5 元零钞,却被找给5个一元的零钞。尽量满足这两个要求。(3)、要求以上功能分别用函数实现。并要求用C语言的文件操作语句将以上所有结果保存在文件 XX.out。【输入/输出要求】(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后, 根据程序的提示输入相应的信息;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等三、校际运动会管理系统校际运动会管理系统。设有n个学校参加校际运动会,共有男子竞赛项目数m女子竞赛项目数w。每 个学校可以参加所有竞赛项目,也可以只

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

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号