信息理论与技术教研中心。
2023年8月。
一、 实验目的。
通过本实验巩固《c语言程序设计》课程教案成果,深入理解结构体、指针、链表、动态分配内存和文件操作等c程序设计中的中高级技术,熟练掌握c语言的调试方法,初步培养良好的编程习惯和编程风格,初步学习程序文档的撰写方法。
二、 题目。
1、 实验室物料管理系统。
2、 航班信息管理系统。
3、 个人记账系统。
4、 运动会管理系统。
课程设计以分组形式完成,每组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。
五、 调试环境。
visual studio 2008
六、 考核方式。
总评分分为两部分:一部分是分组答辩打分,由指导老师逐组验收后根据每组的整体成绩及每个组员的个人分工与贡献,分别给定每个同学的成绩,占60%;另一部分由各指导老师根据实验报告打分,占40%。
一)分组验收。
时间:第二周周五(9月4日)下午1:00;
具体安排:各组演示时间为7分钟,提问3分钟。
验收要求:答辩分为ppt讲解和程序演示两部分。ppt给出程序设计思路、完成的基本功能和扩展功能、组员分工等。
程序演示主要验证主要功能的正确性以及对提问进行回答。提前做好答辩ppt,严格把握答辩时间,到时间未讲解完成也必须停止;根据指导教师要求进行程序运行和演示,提前准备好供演示用的数据文件,以免浪费时间。(如果在现场输入数据,小组成员每人扣5分)
演示结束后,指导教师会针对程序中某些细节进行提问,根据程序分工由指定同学进行回答。
二)实验报告的要求。
c程序设计实践的实验报告应包括如下内容:
1、 功能描述,特别是对于自己实现的扩展功能要进行详细描述。
2、 数据结构描述,对于所采用的数据组织方式进行描述,必要时采用图示方式或将结构定义附在这一部分。
3、 程序模块描述:对主要模块的功能、输入输出接口等加以说明。
4、 组内分工描述,说明各人在组内的分工,完成的主要模块。
5、 主要功能块的流程图。
6、 各种功能的测试记录,特别是扩展功能的测试记录、结果及说明。
7、 调试过程中的主要问题及难点。
8、 心得体会。
9、 要求实验报告着重对本人负责完成的部分进行重点描述,但对于系统的整体实现原理也应全面覆盖。
三)提交的内容及提交方式。
电子版程序:
内容:本次小学期结束后,每组同学共同提交一份电子版源程序,包括源**和注释、编译链接生成的目标文件、可执行文件、测试过程中所生成的文本文件、以及含组员名单和分工说明的文本文件。请将所有文件压缩成rar格式以一个文件提交。
文件命名:组号_题目编号。rar;组号在各班提交分组名单后统一确定,答辩的顺序即根据组号由小到大进行。
提交方式:ftp上传。ip:
59.64.138.
49;用户名-cprogram000;密码-bupt000。两个目录:upload是上传的文件夹不可**,请上传至对应班级的目录下;download是有关题目、要求和验收通知,可**。
纸版实验报告:
每个同学各自提交一份纸版实验报告,实验报告要求详见上述“六(二)”。由各班学习委员统一收齐后,于课程设计结束后的下一个周一,即9月7日下午5:00前以班为单位交到教三楼818室。
设计报告中一定要注明自己的班级、学号、姓名、****(邮件和**),方便指导老师联系大家。同时请提交一份纸版设计报告成绩单,模版请在ftp上**,并请将个人相关部分填写完整。
七、 注意事项。
一)独立完成。
任何人必须有相应的分工,不得抄袭、拷贝。凡发现不同组的程序雷同,或任何同学的实验报告雷同,涉及的全部人员本次课程设计成绩为不合格。
二)指导老师****。
附录一:c程序设计实践题目。
题目一实验室物料管理系统。
1.1 题目背景和记录信息说明。
实验室管理很重要的一项就是对材料和设备等物料进行管理。实验室物料管理系统要求用c语言实现对电子元器件、设备和仪器仪表等的购入、借出(使用)、报废等情况进行更新并记录,每条记录包含设备等的类型、名称、型号、单价、库存数量、借出数量等信息。系统可以进行简单统计,如某种型号设备的总数量;可以进行简单排序,如按照库存量的降序进行排序等。
物料记录信息举例说明如下。
类别:主要分为设备(如计算机、打印机等)、仪器仪表(如示波器、信号发生器等)、单元电路(由多种元器件和芯片等组合在一起、完成特定功能的电路成品或半成品,如开发板、电源模块等)、芯片(如运算放大器)、分立元器件(如电感、电阻、电容等)等5大类,可用数字1~5分别代表物料的5种大的分类。
名称:如类别1中的计算机,类别5的电感、电阻等;
型号:假设型号和物料的最细节分类相对应,即同一型号的物料,其用途、单价、参数值/封装等完全一致。同一型号的物料仅对应于一条记录。对于电阻、电容等,可以是其参数值。
单价:第一次某条创建物料记录时需要设定,同一型号物料后续购入或归还均不需更新或修改单价信息。
库存数量:显示物料目前可用的数量;
借出数量:显示物料目前已被占用的数量。
程序实现功能具体说明如下。
2.2 程序功能。
本程序的基本要求是利用单链表存储结构完成对物料信息的动态管理,要求实现如下的基本功能。
2.2.1 菜单操作。
在屏幕上显示菜单,通过输入0-x之间的数字调用相应的功能函数。
2.2.2 创建链表。
即在链表尚不存在的情况下,逐个输入物料记录信息,如类别、物料名称、型号、数量等。注意:(1)假设新创建链表时只增加库存数量而缺省地保持借出数量为0;(2)申请内存空间,验证输入数据是否符合要求,设置输入结束标志。
2.2.3 显示链表。
显示当前链表中的所有记录,即每种物料的库存和借出情况。注意输出格式的直观。
2.2.4 添加新的物料记录。
当购入库存中没有的物料时,需要添加新的物料记录。缺省情况下,在链表的末尾添加记录。
2.2.5 物料记录更新。
要根据物料外借、归还、后续购买或报废等不同情况进行物料信息的更新。例如,当外借物料时,需要根据借出的数量,减少库存数量而增加外借数量;当归还物料时,增加库存而减少外借数量;当后续购买库存已有的物料时,需要增加库存信息而保持外借数量不变;当报废已借出的物料时,需要减少外借数量而保持库存信息不变。
2.2.6 删除记录。
删除指定型号的物料记录。注意:删除记录要释放该记录占用的内存空间。
2.2.7 查询记录。
按型号查找并显示记录。可扩展为按照多种方式查找。
2.2.8 保存文件。
将物料信息保存到指定文件(中。
2.2.9 读取记录。
从指定的文件(中读入所有物料记录。
2.2.10 排序。
根据库存数量进行排序。
2.2.11 统计:
统计各类别物料的库存数量。并保存到文件中。
2.2.12 退出。
结束软件操作,释放内存后退出。
2.3 数据结构。
将同一型号的物料作为一个结构体类型的结点,其中至少含有下列信息:类别、名称、型号、单价、库存数量、借出数量,以及指向后续结点的指针等。
2.4 具体技术。
1. 指针、结构体的应用。
2. 单向链表的建立、插入、添加及删除等。
3. 文件的读写。
4. 简单算法:如排序算法等。
2.5 功能扩展。
对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。
除了基本功能和异常处理,鼓励进行以下扩展或改进:
有创意的设计。
采用改进程序性能的其他方法(如执行效率、访问速度、内存占用量、灵活性、可移植性等)
友好的输入界面;鼓励图形化界面的设计。
对输入数据的对错判断等。
程序的简洁明了和可读性等。
功能扩展。
如模糊匹配查找,确认后再进行后续操作等;
如设计并添加物料记录的其他信息,如封装类型、主要参数等;
如采用双链表,增加物料外借人员的记录;
如设置软件操作权限等。
2.6 测试要求。
1、要求准备分别至少有10条记录的记账信息文件(便于进行演示;
2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;
题目二航班信息管理系统。
题目简述。国际化的社会我们离不开快捷的交通工具,航班信息的保存和管理将变得十分必要。本课题旨在建立一个航班信息管理系统,系统中保存着各航线、航班号、航班日期、机型以及所属公司(国航、南航、美联航、汉莎等)等信息,通过该系统的简单界面可以对文件进行新建、浏览、查找、更新、删除等操作。
具体要求。1、基本功能:
1)添加记录。
先判断链表是否已经存在。若不存在,需首先自动新建一个链表,然后再添加一条或多条通讯记录。
2)显示记录。
显示当前所有记录。
3)查询记录。
按命名查找,并显示该记录。
4)航班号的排序。
按航班号的字母顺序排序,涉及到冒泡等排序算法。
5)删除记录。
实现逐条删除和删除全部记录两种功能。
6)更新记录。
修改已存在记录的信息(提示:需首先判断该记录是否存在)。
7)按关系类别显示记录。
只显示指定航空公司的记录(国航、南航、美联航、汉莎)的记录。
8)保存记录。
存储所有记录到某个文件(.txt)或缺省文件(
9)读入记录。
从某个文件(.txt)或缺省文件(读入所有记录。首先判断当前是否有记录在进行操作,若有,进行存储或放弃存储,然后释放内存空间,之后才能从文件读入记录。
10)退出。
C语言高级编程实验指导书
实验。一 熟悉开发平台 常用工具。实验要求 熟练使用该节介绍的linux命令 使用vi创建 编辑 保存文件。实验平台 pc机 ubuntu 10.04 实验步骤 一 熟悉常用命令 1.man命名查看常用命令函数的具体用法。2.cd切换目录。3.ls命令查看目录内容。4.pwd命令查看当前路径。5.u...
《C语言高级应用》实验指导书
c语言高级应用。实验指导书。电子与计算机科学技术学院。实验一顺序 选择及循环结构程序设计。一 实验目的。1 熟悉c语言编程环境。2 掌握输入输出函数的使用。3 掌握if语句和switch语句的使用。4 掌握for语句 while语句和do while语句的使用。5 通过练习掌握顺序 选择及循环结构程...
C语言程序设计任务书 2019
青岛理工大学。c语言程序设计 题目学生成绩管理系统。指导教师 陈哲云。姓名 苏洋洋。学号 201007060 班级 计算102班。专业 计算机科学与技术。地点 教育中心207室。时间 2011年6月27日至 7月1日。一 内容 标题 宋体,粗体,四号字 一 本程序包括 1 学生成绩信息初始化 2 登...