中国地质大学C语言实习报告仪器仪表管理系统.doc_第1页
中国地质大学C语言实习报告仪器仪表管理系统.doc_第2页
中国地质大学C语言实习报告仪器仪表管理系统.doc_第3页
中国地质大学C语言实习报告仪器仪表管理系统.doc_第4页
中国地质大学C语言实习报告仪器仪表管理系统.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中 国 地 质 大 学C语言课程设计报告 中 国 地 质 大 学C语言课程设计报告课程名称: C语言程序设计 教师姓名: 学生姓名: 浩 学生学号: 学生专业: 学生班号: 所在院系: 日 期: 2016年1月11日 中国地质大学C语言课程设计报告报告 评 语对课程报告的评语:平时成绩:课程报告成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目录一、题目与要求11.1题目11.2要求1二、系统总体设计22.1 需求分析22.2 系统功能模块划分2三、详细设计53.1 数据结构设计53.1.1 结构体数组的设计53.1.2 关于文件的设计53.1.3 变量定义63.2函数规划设计73.3.1 各函数功能73.2.2 各函数之间相互调用关系图83.3功能模块设计93.3.1 保存模块设计93.3.2 浏览模块设计93.3.3 增加模块设计103.3.4 修改模块设计133.3.5 删除模块设计163.3.6查询模块设计193.3.7统计模块设计223.3.7退出模块设计30四、总结反思314.1 程序总体设计思路314.2 程序设计的优点324.3 程序设计的缺点324.4 程序设计的缺点的改进想法334.5 C语言课程设计个人心得感悟334.6 参考文献34附录35中国地质大学c语言课程设计一、题目与要求1.1题目仪器仪表管理系统(14题)1.2要求(1) 新的仪器仪表信息录入。(2) 在借出、归还、维修时对仪器仪表信息的修改。(3) 对报废仪器仪表信息的删除。(4) 按照一定的条件查询、统计符合条件的仪器仪表信息。查询功能至少应包括仪器仪表基本信息的查询、统计功能包括时间段(如在2004年1月1日到2004年10月10日购买、借出、维修的仪器仪表等)统计等。(5) 对查询、统计的结果打印输出。二、系统总体设计2.1 需求分析仪器仪表信息用文件储存,故要提供文件的输入输出操作;要完成对仪器仪表信息的修改和删除,需要提供仪器仪表信息修改和删除操作;要实现对仪器仪表信息的查询和统计,需要提供查询、统计及显示功能;另外,还要提供键盘式选择菜单以实现功能选择。2.2 系统功能模块划分在仪器仪表管理系统当中,设计了浏览模块,增加模块,修改模块,删除模块,查询模块,统计模块,退出模块总计7个模块。主界面代码以及运行结果如下图注释:(1) 在主函数里,首先要注意的是需要把定义的变量放在整个函数的最前面,在C语言里,变量只能在函数的开头处声明和定义。因为这个定义位置的问题使得我的整个程序在编写的过程中出现过好几次的错误。(2) Init()函数是对仪器仪表信息文件里的仪器编号这一变量进行属性的初始化,即统计出现在系统中信息的条数。(3) 主函数中通过设计了一个选择结构,来实现想要实现的功能,每个功能对应着一个函数,也就是总计行程了7个功能模块。(4) 其实在整个程序的功能设计中还有一个保存功能模块,能够使对文件数据的更改保存到储存仪器仪表信息的文件当中去。但是在本程序设计的过程中没有将保存模块功能在运行窗口中明确的体现出来。保存函数的代码如下图:对保存函数的解释:(保存模块分为2部分)一部分是为了确定现在文件中所具有的仪器仪表信息数量,而这部分功能在增加模块,修改模块,删除模块,以及统计模块当中的每个子模块都有这样的设计,这样设计的好处,能够使得可利用数据量不仅仅的局限在一个固定的大小,这个量可以随时的随着文件中数据的改变而改变。 这样的设计方法解释将不在下文的功能模块设计中做以详细解释,会提示“详细解释请见Page4,2.2 系统功能模块划分”另一部分是通过想要以输出的方式打开文件,使用了“w”的方式使用文件,来达到此目的,使得在此之前的记录都能够被覆盖。 此处为保存模块的详细解释,为了使读者理解本程序的设计,所以把这一功能模块的设计解释放到了前面进行介绍,在3.3.1保存模块设计部分,会提示“详细解释请见Page4,2.2 系统功能模块划分”三、详细设计3.1 数据结构设计3.1.1 结构体数组的设计仪器仪表信息结构体数组里包括:仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借入,1代表已借出,2表正在维修)。注释:(1) 其中“bh”为“编号”的拼音缩写,“gmtime”中的“gm”表示购买的缩写“time”则是用英文代表“时间”。 (2) 结构体的最后“s50”中的“50”为随意输入,若仪器仪表的数据过多,可以根据数量多少在进行调整。3.1.2 关于文件的设计读取文件模块的代码如下图所示:对读取文件函数模块的注释:(1) “FILE *fp;if (fp = fopen(YQGLXT.txt, r) = NULL) printf(cant open file!); exit(0);”表示对文件以只读的形式进行打开(2) “while (fscanf(fp, n%2d %s %8d %8d %8d %8d %8d %2dn, &sN.bh, sN.name, &sN.gmtime,&sN.jrtime,&sN.jctime, &sN.ghtime, &sN.wxtime, &sN.jczt) != EOF) N+; fclose(fp);return N;” “fscanf”表示是从文件中以括号内的格式读取数据文件中所储存的仪器仪表信息数据内容如下图:3.1.3 变量定义本程序在设计的过程中,由于模块和变量的数量较多,出于便于编写和查阅检查的角度,没有使用全局变量以及宏定义,对于变量的定义全都是在各个模块内部使用的局部定义。3.2函数规划设计3.3.1 各函数功能save_spot()保存模块函数Re_file()文件读取函数Append() 增加模块函数modify() 修改模块函数Delete() 删除模块函数Display() 浏览模块函数Query() 查询模块函数statistics() 统计模块函数buytime() 统计模块当中按购买时间统计函数borrowtime() 统计模块当中按借入时间统计函数lendtime() 统计模块当中按借出时间统计函数returntime() 统计模块当中按归还时间统计函数repairtime() 统计模块当中按维修时间统计函数borrowcon() 统计模块当中按借出状态统计函数Quit() 退出模块函数Init() 仪器仪表信息中编号属性初始化函数main() 主函数 3.2.2 各函数之间相互调用关系图注释:本程序的模块设计大多采用的是调用函数的形式,这一特色突出的体现在了在调用统计函数之后,又调用了6个子函数来实现整个统计模块的运行。 3.3功能模块设计3.3.1 保存模块设计详细解释请见Page4,2.2 系统功能模块划分3.3.2 浏览模块设计浏览模块的程序代码如下图所示:浏览模块运行情况如下图所示:注释:通过设计一个循环while语句来实现对每一条仪器仪表信息的输出3.3.3 增加模块设计增加模块的程序代码如下图所示:注释:(1) 在“printf”前部分详细解释请见Page4,2.2 系统功能模块划分(2) 增加模块的主要部分通过一个循环体,来不断对数据进行增添功能,设置要增添的信息有K条,则循环体就会循环K次,使得每条数据都能够成功的录入。增加模块流程图如图所示:增加模块运行情况如下图所示:而在增加模块之后,程序自动进入到保存模块,对文件里的数据进行修改,得到的修改为:3.3.4 修改模块设计修改模块的程序代码如下图所示:注释:(1) “while(true)N=count;” 部分详细解释请见Page4,2.2 系统功能模块划分(2) 定义一个字符数组”m”,用来在下面输入仪器的名称,通过选择结构,进入到相应的修改方式中。(3) 通过覆盖原文件中的仪器仪表信息的方式来使得修改内容得以实现和保存。修改模块流程图:修改模块运行情况如下图所示:对于错误输入的运行处理3.3.5 删除模块设计删除模块的程序代码如下图所示:注释:(1) “while(true)N=count;” 部分详细解释请见Page4,2.2 系统功能模块划分(2) 通过设计一个if条件语句来实现想要选择的删除方式(3) 在选择了自己想要的删除方式之后,进入另一个if条件语句如果”j= -1”则说明没有找到这个仪器。如果”j!= -1”则此时用想要删除的这条信息的后一条信息对这条信息进行覆盖操作,一直在for循环语句中循环知道到整个仪器仪表文件的最后一条信息为止。删除模块的流程图如下图所示:删除模块运行情况如下图所示:对于错误输入的运行处理3.3.6查询模块设计查询模块的程序代码如下图所示:注释:(1) 在查询模块的开始定义的变量:“I,N,count”为获得当前设备程序所用到的代码“num”代表下面输入的仪器编号“tag”用于下面程序中查询方式的选择“t”用来控制在程序运行的过程中是否找到所要查询的那条仪器信息“j”用来记录在执行查询循环时找到的仪器信息的编号(即此时i的数值)(2) 通过一个选择结构来控制想要的查询方式(3) 在每种查询方式中,都用”j”变量来及时记录下此时仪器仪表信息的编号,并且对变量”t”进行”t=t+1”的语句,来确定整个仪器仪表信息文件里有多少条满足查询条件的信息(4) 在整个模块的最后对所找到的信息进行输出语句删除模块的流程图如下图所示:查询模块运行情况如下图所示:对于错误输入的运行处理3.3.7统计模块设计统计模块的程序代码如下图所示:、注释:统计模块是在编写过程中最长的一个模块,统计模块的整体思路是参考着主函数的编写方式进行的,通过调用不同的函数的方式来实现不同的统计方式对仪器仪表信息进行统计,再整个统计模块的最开始进行超前声明。整个统计函数共引用了6个子函数,下面对子函数里的内容进行一定的阐述:(1) “buytime, borrowtime, lendtime, returntime, repairtime” 这五种查询方式的程序编写,实质上没有太大的差别,在此就”buytime”查询方式进行详细的解释: 定义变量环节:“I,N,count”为获得当前设备程序所用到的代码“b”为下面输入的起始时间“e”为下面输入的结束时间“j”为计数变量,记录符合统计条件的数量有多少运用for语句进行循环结构,在所有的数据中进行统计运用if语句进行筛选,符合在这个统计的时间段的计入输出统计结果(2) “ borrowcon ”的统计方式 定义变量环节:“I,N,count”为获得当前设备程序所用到的代码“j”为计数变量,记录符合统计条件的数量有多少“p”为下面输入的仪器状态运用for语句进行循环结构,在所有的数据中进行统计运用if语句进行筛选,符合仪器状态的计入输出统计结果统计模块的流程图如下图所示:统计模块运行情况如下图所示:对于错误输入的运行处理3.3.7退出模块设计统计模块运行情况如下图所示:注释:在退出模块中输入一条” exit(0)”即退出程序统计模块运行情况如下图所示:四、总结反思4.1 程序总体设计思路根据基于PBL的C语言课程设计及学习指导上题目所提出的要求,在朱老师的指导下,了解了做课程设计的大概思路和步骤,确定了目标程序运行的次序与界面,即本程序首先运行的水仪器仪表管理系统主界面,一共有7个选项,用户可以输入相应的编号运行对应的程序。第一项【浏览】功能是对文件中已有的仪器仪表信息进行浏览操作,用户可以方便快捷清楚的看到系统中已存在的信息,同时方便了其他功能的调试和操作。第二项【增加】功能是对文件中已有的仪器仪表信息进行增加录入的操作,通过这一功能,用户可以及时的更新增添系统里所存储的仪器仪表信息。第三项【修改】功能是对文件中的仪器仪表信息进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论