版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE1北京邮电大学信息与通信工程学院信息工程专业10级C程序设计实践实验指导书信息理论与技术教研中心2011年8月实验目的通过本实验巩固《C语言程序设计》课程教学成果,深入理解结构体、指针、链表、动态分配内存和文件操作等C程序设计中的中高级技术,熟练掌握C语言的调试方法,初步培养良好的编程习惯和编程风格,初步学习程序文档的撰写方法。题目实验室物料管理系统航班信息管理系统个人记账系统运动会管理系统课程设计以分组形式完成,每组3人,可任意选择做同一题目的同学组队,每组推选组长一名(最好在小班范围内组合)。课程设计完成后,程序检查以各组依次答辩的方式进行,根据每组的整体成绩及每个组员的个人分工与贡献,分别给定每个同学的成绩。分组名单请各小班学委在第一周周三前上报至指导老师,指导老师确认后给各组分配组号。有关四个题目的具体要求详见附录一。具体安排(1)第一周的第一天(即8月30号上午8:30-11:30):上课,老师说明课程设计要求,讲解题目,并给出具体思路。(2)第一周的其余时间:学生调研、进行可行性研究、确定程序的系统框架。(3)第二周:学生根据所选题目开发出一个基本系统,进行调试和测试,并加以完善。集中答疑时间:第一周周四上午8:30~11:30,第二周周二上午8:30~11:30,地点:教三楼818.QQ群在线答疑:92093015实验场地主楼1121机房,凭学生证免费上机。机房开放时间:课程设计两周中,8月25日~9月4日上午8:30~11:30,下午2:00~5:00。调试环境Visualstudio2008考核方式总评分分为两部分:一部分是分组答辩打分,由指导老师逐组验收后根据每组的整体成绩及每个组员的个人分工与贡献,分别给定每个同学的成绩,占60%;另一部分由各指导老师根据实验报告打分,占40%。(一)分组验收时间:第二周周五(9月4日)下午1:00;具体安排:各组演示时间为7分钟,提问3分钟。验收要求:答辩分为PPT讲解和程序演示两部分。PPT给出程序设计思路、完成的基本功能和扩展功能、组员分工等。程序演示主要验证主要功能的正确性以及对提问进行回答。提前做好答辩PPT,严格把握答辩时间,到时间未讲解完成也必须停止;根据指导教师要求进行程序运行和演示,提前准备好供演示用的数据文件,以免浪费时间。(如果在现场输入数据,小组成员每人扣5分)演示结束后,指导教师会针对程序中某些细节进行提问,根据程序分工由指定同学进行回答。(二)实验报告的要求C程序设计实践的实验报告应包括如下内容:功能描述,特别是对于自己实现的扩展功能要进行详细描述。数据结构描述,对于所采用的数据组织方式进行描述,必要时采用图示方式或将结构定义附在这一部分。程序模块描述:对主要模块的功能、输入输出接口等加以说明。组内分工描述,说明各人在组内的分工,完成的主要模块。主要功能块的流程图。各种功能的测试记录,特别是扩展功能的测试记录、结果及说明。调试过程中的主要问题及难点。心得体会。要求实验报告着重对本人负责完成的部分进行重点描述,但对于系统的整体实现原理也应全面覆盖。(三)提交的内容及提交方式电子版程序:内容:本次小学期结束后,每组同学共同提交一份电子版源程序,包括源代码和注释、编译链接生成的目标文件、可执行文件、测试过程中所生成的文本文件、以及含组员名单和分工说明的文本文件。请将所有文件压缩成rar格式以一个文件提交。文件命名:组号_题目编号.rar;组号在各班提交分组名单后统一确定,答辩的顺序即根据组号由小到大进行。提交方式:FTP上传。IP:9;用户名-cprogram000;密码-bupt000。两个目录:upload是上传的文件夹不可下载,请上传至对应班级的目录下;download是有关题目、要求和验收通知,可下载。纸版实验报告:每个同学各自提交一份纸版实验报告,实验报告要求详见上述“六(二)”。由各班学习委员统一收齐后,于课程设计结束后的下一个周一,即9月7日下午5:00前以班为单位交到教三楼818室。设计报告中一定要注明自己的班级、学号、姓名、联系方式(邮件和电话),方便指导老师联系大家。同时请提交一份纸版设计报告成绩单,模版请在ftp上下载,并请将个人相关部分填写完整。注意事项(一)独立完成任何人必须有相应的分工,不得抄袭、拷贝。凡发现不同组的程序雷同,或任何同学的实验报告雷同,涉及的全部人员本次课程设计成绩为不合格。(二)指导老师联系方式Name别志松Emailzhisongbie@Tel62284023Lab教三楼818
附录一:C程序设计实践题目题目一实验室物料管理系统1.1题目背景和记录信息说明实验室管理很重要的一项就是对材料和设备等物料进行管理。实验室物料管理系统要求用C语言实现对电子元器件、设备和仪器仪表等的购入、借出(使用)、报废等情况进行更新并记录,每条记录包含设备等的类型、名称、型号、单价、库存数量、借出数量等信息。系统可以进行简单统计,如某种型号设备的总数量;可以进行简单排序,如按照库存量的降序进行排序等。物料记录信息举例说明如下。类别:主要分为设备(如计算机、打印机等)、仪器仪表(如示波器、信号发生器等)、单元电路(由多种元器件和芯片等组合在一起、完成特定功能的电路成品或半成品,如开发板、电源模块等)、芯片(如运算放大器)、分立元器件(如电感、电阻、电容等)等5大类,可用数字1~5分别代表物料的5种大的分类。名称:如类别1中的计算机,类别5的电感、电阻等;型号:假设型号和物料的最细节分类相对应,即同一型号的物料,其用途、单价、参数值/封装等完全一致。同一型号的物料仅对应于一条记录。对于电阻、电容等,可以是其参数值。单价:第一次某条创建物料记录时需要设定,同一型号物料后续购入或归还均不需更新或修改单价信息。库存数量:显示物料目前可用的数量;借出数量:显示物料目前已被占用的数量。程序实现功能具体说明如下。2.2程序功能本程序的基本要求是利用单链表存储结构完成对物料信息的动态管理,要求实现如下的基本功能。菜单操作在屏幕上显示菜单,通过输入0-X之间的数字调用相应的功能函数。创建链表即在链表尚不存在的情况下,逐个输入物料记录信息,如类别、物料名称、型号、数量等。注意:(1)假设新创建链表时只增加库存数量而缺省地保持借出数量为0;(2)申请内存空间,验证输入数据是否符合要求,设置输入结束标志。显示链表显示当前链表中的所有记录,即每种物料的库存和借出情况。注意输出格式的直观。添加新的物料记录当购入库存中没有的物料时,需要添加新的物料记录。缺省情况下,在链表的末尾添加记录。物料记录更新要根据物料外借、归还、后续购买或报废等不同情况进行物料信息的更新。例如,当外借物料时,需要根据借出的数量,减少库存数量而增加外借数量;当归还物料时,增加库存而减少外借数量;当后续购买库存已有的物料时,需要增加库存信息而保持外借数量不变;当报废已借出的物料时,需要减少外借数量而保持库存信息不变。删除记录删除指定型号的物料记录。注意:删除记录要释放该记录占用的内存空间。查询记录按型号查找并显示记录。可扩展为按照多种方式查找。保存文件将物料信息保存到指定文件(wrecord.txt)中。读取记录从指定的文件(rrecord.txt)中读入所有物料记录。排序根据库存数量进行排序。统计:统计各类别物料的库存数量。并保存到文件total.txt中。退出结束软件操作,释放内存后退出。2.3数据结构将同一型号的物料作为一个结构体类型的结点,其中至少含有下列信息:类别、名称、型号、单价、库存数量、借出数量,以及指向后续结点的指针等。2.4具体技术指针、结构体的应用单向链表的建立、插入、添加及删除等文件的读写简单算法:如排序算法等2.5功能扩展对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。除了基本功能和异常处理,鼓励进行以下扩展或改进:有创意的设计采用改进程序性能的其他方法(如执行效率、访问速度、内存占用量、灵活性、可移植性等)友好的输入界面;鼓励图形化界面的设计对输入数据的对错判断等程序的简洁明了和可读性等功能扩展如模糊匹配查找,确认后再进行后续操作等;如设计并添加物料记录的其他信息,如封装类型、主要参数等;如采用双链表,增加物料外借人员的记录;如设置软件操作权限等。2.6测试要求1、要求准备分别至少有10条记录的记账信息文件(account.txt),便于进行演示;2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;
题目二航班信息管理系统题目简述国际化的社会我们离不开快捷的交通工具,航班信息的保存和管理将变得十分必要。本课题旨在建立一个航班信息管理系统,系统中保存着各航线、航班号、航班日期、机型以及所属公司(国航、南航、美联航、汉莎等)等信息,通过该系统的简单界面可以对文件进行新建、浏览、查找、更新、删除等操作。具体要求1、基本功能:(1)添加记录先判断链表是否已经存在。若不存在,需首先自动新建一个链表,然后再添加一条或多条通讯记录。(2)显示记录显示当前所有记录。(3)查询记录按命名查找,并显示该记录。(4)航班号的排序按航班号的字母顺序排序,涉及到冒泡等排序算法。(5)删除记录实现逐条删除和删除全部记录两种功能。(6)更新记录修改已存在记录的信息(提示:需首先判断该记录是否存在)。(7)按关系类别显示记录只显示指定航空公司的记录(国航、南航、美联航、汉莎)的记录。(8)保存记录存储所有记录到某个文件(.txt)或缺省文件(flight.txt)。(9)读入记录从某个文件(.txt)或缺省文件(flight.txt)读入所有记录。首先判断当前是否有记录在进行操作,若有,进行存储或放弃存储,然后释放内存空间,之后才能从文件读入记录。(10)退出结束软件操作,释放内存后退出。2、数据录入提示(1)航线自己对航线的命名。为了实现排序,可以输入英文或拼音的姓名,便于调用字符串比较等函数进行比较排序。(2)航班号每个航空公司的开头字母应该相同(3)航班日期输入时要判断一下是否是正确的日期格式。(类似对输入数据的判断可作为扩展,不是必须实现的功能)。(4)机型737,747,757,A-380(5)所属公司可以为国航,南航,美联航或汉莎的一种,用于进行条件显示,即只显示与航班有某种关系的记录。3、其他实现提示对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。除了基本功能和异常处理,鼓励进行以下扩展或改进:有创意的设计采用改进程序性能的其他方法(如执行效率、访问速度、占内存量、灵活性、可移植性等)友好的输入界面;对输入数据的对错判断等;功能扩展;程序的简洁明了和可读性等。主要数据结构结构体Air:包含AirLine,Number,Date,Plane,Company(与航线的关系)以及Air类型的指针(用于链表操作)等成员变量。具体技术指针、结构体的应用单向链表的建立,插入,添加及删除等文件的读写简单算法:如排序算法等测试要求1、要求准备至少有10条记录的文件(flight.txt),便于进行上机测试;2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;3、就某些功能实现情况及其实现细节进行现场解答。
题目三个人记账系统2.1题目背景理财从记账开始。个人记账系统要求用C语言实现收入、支出信息的记录,包括收入支出行为的时间,涉及的币种、币值,所属的门类,比如收入的父母赞助、学校补助以及个人劳动所得,支出的衣、食、行、娱乐等;而且可以根据所记录的信息进行统计,例如余额、总收入与总支出,月度开销,各项门类的比例等。具体的要求如下。2.2程序功能本程序利用单链表存储结构完成对个人收支信息的动态管理,要求实现如下的基本功能。菜单操作在屏幕上显示菜单,通过输入0-X之间的数字调用相应的功能函数。创建链表即输入收支信息,按照提示信息输入序号、时间、收或支、金额、门类、余额等。注意:申请内存空间,验证输入数据是否符合要求,设置输入结束标志。显示链表显示当前链表中的所有记录。注意输出格式的直观。插入记录插入记录需要输入插入位置和新记录信息。输入某个记录的序号,新结点将插入在这个指定记录之前。删除记录删除指定时间或序号的记录。注意删除记录要释放该记录占用的内存空间。查询记录按序号或门类查找并显示记录。(可扩展为按照多种方式查找)更新记录修改已存在记录的分量信息。保存文件将收支信息保存到指定文件(waccount.txt)中。读取记录从指定的文件(raccount.txt)中读入所有记录。排序根据时间、金额或者门类进行排序。统计:统计各类别的收入或者支出数额,并保存到文件total.txt中。退出结束软件操作,释放内存后退出。2.3数据结构将一次收支行为信息作为一个结构体类型的结点,其中至少含有下列类型的信息:序号、时间、大类别(收入或支出)、涉及币种、涉及币值、具体门类、当时余额,以及指向后续结点的指针等。2.4具体技术指针、结构体的应用单向链表的建立,插入,添加及删除等文件的读写简单算法:如排序算法等2.5功能扩展对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。除了基本功能和异常处理,鼓励进行以下扩展或改进:有创意的设计采用改进程序性能的其他方法(如执行效率、访问速度、占内存量、灵活性、可移植性等)友好的输入界面;对输入数据的对错判断等;功能扩展;程序的简洁明了和可读性等。2.6测试要求1、要求准备分别至少有10条记录的记账信息文件(account.txt),便于进行演示;2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;
题目四运动会管理系统4.1题目背景某大型运动会需要一个管理系统对所有参与的运动员及其成绩进行统一管理,本题目要求用C语言设计一个运动会管理系统,能够增加、删除运动员和修改运动员成绩,并实现各种统计功能。4.2程序功能本程序利用单链表存储结构完成对运动员的动态管理,要求实现如下的基本功能。菜单操作在屏幕上显示菜单,通过输入0-X之间的数字调用相应的功能函数。创建链表即输入运动员信息,按照提示信息输入运动员编号、姓名、代表团、参加项目等。注意:一个运动员参加多个项目者需要有多条记录。显示链表显示当前链表中的所有记录。注意输出格式。删除记录删除指定序号的记录。注意同时释放内存空间。查询运动员项目或成绩按姓名查找并显示该记录。(可扩展为按照姓名和编号两种方式查找)插入记录插入记录需要输入插入位置和新记录信息。输入某个记录的运动员编号,新结点将插入在这个指定记录之前。更新记录如:在已有列表中修改运动员成绩信息。保存文件将运动员信息保存到指定文件(Athletes.txt)中。读取记录从指定的文件(Athletes.txt)中读入所有记录。计算:每个项目的前8名计算成绩,第一名10分,第二名8分,第三名7分,第四名至第八名分别获得5~1分,计算各代表团积分。统计:生成奖牌榜、总积分榜(以代表团为单位)等,生成某一个项目的参赛人员名单。退出结束软件操作,释放内存后退出。注意进行退出操作以前需要重新写文件。4.3数据结构将一个运动员参加一个项目的相关信息当作一个结点,这个结点的类型为结构体,其中至少含有下列类型的信息:编号、运动员编号、姓名、参加项目、所属代表团、项目名次、以及指向后面结点的指针等。4.4功能扩展一般的实现方法是一个(对、队)运动员每参加一个项目就增加一条记录,鼓励其他实现方式,如每一个运动员对应一条记录,他参加的每一个项目及成绩用其他方法存储。同时鼓励其他创意的和具有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初探孤独症儿童随班就读的融合策略
- hadoop大数据分析课程设计
- 人教版九年级物理第十七章欧姆定律微专题12图像题的分析与计算分层作业课件
- 继续教育学习计划
- 文秘实习小总结(汇编11篇)
- dsp语音处理实验课程设计
- 《金版教程•高考数学复习创新方案》提升版第八章素能培优七与球有关的切、接问题
- 31二倍角公式课件高一下学期数学北师大版
- c语言课程设计 航空订票系统
- 中学政治课程设计
- 中外政治思想史-形成性测试四-国开(HB)-参考资料
- 沟通技巧与商务礼仪
- 18 奇妙的建筑 (教案)岭南版美术三年级上册
- 小学三通两平台汇报
- 防火巡查记录表防火检查记录表
- “校园周边环境安全隐患”自检自查(排查)记录表
- 高二上学期日语阅读四篇自测
- 大学生职业生涯规划成长赛道 (第二稿)
- JB T 6464-2006额定电压1kV(Um=1.2kV)到35kV行业标准
- 呼吸科健康宣教
- 人体身体成分健康分析报告
评论
0/150
提交评论