《C语言课程设计报告》.docx
- 文档编号:12590870
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:25
- 大小:204.29KB
《C语言课程设计报告》.docx
《《C语言课程设计报告》.docx》由会员分享,可在线阅读,更多相关《《C语言课程设计报告》.docx(25页珍藏版)》请在冰点文库上搜索。
《C语言课程设计报告》
YangtzeUniversityCollegeofArtsandScience
学生实习手册
(课程设计报告)
学部:
理工学部
专业:
电子信息工程
班级:
电信5111
姓名:
xx
学号:
xxxxxxx
课程名称:
C语言程序设计课设
指导教师:
杜红、呙明辉
实习时间:
2012年7月6日至2012年7月15日
一、题目
实验设备管理系统设计
二、设计目的
设备信息包括:
设备编号、设备种类(如:
微机打印机扫描仪等等)、设备名字、设备价格、设备购入日期、是否报废、报废日期、维修费、处理方式。
本课将要设计的程序需要实现以下功能:
(1)录入设备信息
(2)对设备信息进行查询(以不同的方式查询)
(3)对设备信息的修改(只修该需要修改的项)
(4)对设备进行分类统计
(5)对设备以编号的大小进行排序
(6)删除设备信息
三、总体设计
程序设计组成框图、流程图
1.程序的主题部分。
2.修改功能的框图结构。
3.删除功能的框图结构。
四、详细设计
主函数被定义了结构体,方便以后函数调用。
结构体定义了两个,前者
structEquipment
{
charnumber[20];//设备编号//
chartype[20];//设备种类//
charname[20];//设备名称//
intprice;//设备价格//
chardate[20];//购入日期//
charstate[10];//是否报废//
charworrydate[10];//报废日期//
intrepair;//破损耗费//
chardispose[10];//处理方法//
};中的设备种类为不同设备的数目,后者
structStr
{
chartype[10];//设备的类型//
intnum;//类型的数量//
};某种设备的数目。
二者不同,因此要分开定义。
在主函数下有有六个模块,分别为:
录入模块、查询模块、修改模块、分类模块、排序模块、删除模块。
此外,还有一些单独定义的函数,如查找、读取、存储等。
1.录入模块:
录入模块中,先通过prinf来显示示例和提示,再通过scanf来输入相关数据。
并在结尾用了save,此函数保证了数据的存入(此存入非存入到内存中,而是通过建立文件的方式存储,保证了关闭程序后录入的数据仍然存在)。
数据会被存在一开始定义的数组之中。
而save(ep,2)中的2表明数据录入后不会覆盖原来的数据。
2.查询模块:
查询模块中,有四种查询方式。
这就运用了switch进行选择查询。
当然,之前会调用存有数据的数组equipment,这使用到了get。
在以编号查询的选项中,使用了查找函数,即find。
在以种类、名称查询的选项中,使用到了if和strcmp,用来比较字符串是否一致。
全部查询时,亦运用了if、strcmp,及“!
”、“&&”,是所有数据全部显示。
为了可以重复查找,用到了reset2(程序中定义的一种重置,作用是将以前的输入清除,方便再次操作,后不赘述)。
3.修改模块:
运用find查找要修改的数据。
switch用来选择修改的部分。
这一模块的头部定义了revise(修改)函数,此函数功能类似程序中的查找功能(即find)。
修改后的数据将直接覆盖原来对应的数据。
修改成功。
4.分类模块:
此模块定义了assort,通过对不同设备种类的对比,甄别出相同的种类,如果相同,则程序中的temp会自加1,这样便统计出了这个种类设备的数量。
这其中还运用了strcpy,作用是,如果某种设备只有一个,那么就相当于只选取了所有设备种类中的这个种类(这个种类代表的数字当然是1了),统计结果就是这种设备只有一个。
5.排序模块:
排序功能是以设备编号的大小排序来实现的。
选取数据的编号,通过比大小的方式来排列,即“冒泡”排序。
然后再让整体数据根据排序后的编号进行排列。
6.删除模块:
输入编号,通过find查找到该组数据。
然后用reset2将此组数据清零。
最后还要将此组已经清零的数据放到整个数组尾部,这样,该组数据就已经在形式上被删除了。
五、运行结果及分析
1.运行程序,显示主菜单。
2.输入功能编号1,进行对数据的录入。
3.输入功能编号2,进入查询功能。
程序设定有四种查询方式,输入1、2、3、4中任意数字进入相应的查询方式。
4.输入数字编号3,进入设备信息的修改功能。
输入要修改的设备的编号,按数字键提示进行相应项的修改。
修改完成后,输入数字键0,退出修改功能。
5.输入数字编号4,显示当前设备的分类情况。
6.输入数字编号5,进入排序功能。
各设备的编号将按照从小到大的顺序排列,设备信息也将一并显示出来。
7.输入数字编号6,进入删除功能。
输入想要删除的设备的编号,即可删除该设备的信息。
8.输入数字编号7后,按任意键即可退出程序。
六、调试与测试
程序是由一个小组具体分工后合作完成的,因此在将各个功能合并到一起的时候,经常会出现很多错误。
因此要进行一系列的查错和排错工作,即调试。
这就需要用到断点功能及“//”“/**/”符号。
其中断点可以用来在某一个特定位置终止程序。
“//”可以让该行禁用,而“/**/”可以让在其中的程序禁用。
在程序片段组合时,如果之前程序运行的很好,加入一部分后便出错,就必须通过一些调试的手段检查出错在哪里,然后通过不断更改来消除错误,最终达到准确无误。
程序完全做好后,虽然在编译的时候可能不会出现bug,但在运行时有可能会遇到错误,或者可以运行,但有些功能却存在缺陷。
测试程序,便可以寻找到相应的缺陷和错误,便于及时修改,使程序达到预期目标。
七、课程设计心得及体会
本次课程设计,让我得到了很大的提高。
尤其是在上机编程方面,以往上机的时间不长,而且很多时间都是参照书中的例子写一段很短的程序,而此次的课设,编制的是一个比较大的程序,我们小组本次的程序有三百多行,而以前我们连一个一百行的程序都没编制过,这对我们形成了很大的挑战。
本次的编程中,通过上网、看书查资料,我们接触到了很多很生疏,甚至从来都没有接触
过知识,使得我们学到了很多,而且同学之间的合作,增强了我们之间的默契,有利于培养合作的精神,也有利于我们将来的学习和工作。
在编制程序方面,我觉得,程序是不能一蹴而就的。
至少一蹴而就的程序不会尽善尽美。
程序编写要一步一步的完成。
首先,对于要编的程序要有一个总体思路。
要明确想要什么。
只要把思路理清楚了,程序就好编写了。
把程序分割成几个块,即多个函数,一块一块的编写。
然后将分散的函数用另外的函数连接起来或者用main函数连接。
到这一步,程序也就初步编成了,之后便是调试,检查错误。
最后我觉得还可以对于已经编写好的程序进行一些修改添加,使它更加人性化。
优化程序的阶段是很重要的。
最后,编程是要一步一步地去完成的,在追求自己梦想的时候也是一样,只有先踏出基础的一步,才能迈向更高远的一步,才能在在追逐梦想的道路上走的更远!
八、源程序清单和执行结果:
#include
#include
#include
#defineN100//定义最多存100组//
#defineM10
structEquipment
{
charnumber[20];//设备编号
chartype[20];//设备种类
charname[20];//设备名称
intprice;//设备价格
chardate[10];//购入日期
charstate[10];//是否报废
charworrydate[10];//报废日期
intrepair;//破损耗费
chardispose[10];//处理方法
};
structStr
{
chartype[10];//定义结构体//
intnum;
};
//查找
intfind(structEquipment*ep,char*num)
{
inti;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课程设计报告 语言 课程设计 报告