C语言实习报告仪器仪表管理系统Word格式.docx
《C语言实习报告仪器仪表管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言实习报告仪器仪表管理系统Word格式.docx(32页珍藏版)》请在冰豆网上搜索。
另外提供键盘式选择菜单以实现功能选择。
设计内容与步骤
整个管理程序被设计为
(1)数据输入模块,
(2)数据查找模块,(3)数据修改模块,(4)数据删除模块,(5)数据统计模块。
数据结构采用结构体,设计学生证信息结构体:
StructStructinstrumentInfo
{
CharinstrName[20];
//仪器仪表名
CharinstrNo[10];
//仪器仪表编号
CharbuyDate[20];
//购买时间
CharborrowDate[20];
//借入时间
CharlendDate[20];
//借出时间
CharreturnDate[20];
//归还时间
CharrepairDate[20];
//维修时间
Intstate;
//状态信息(0代表可借出,1代表已借出,2代表正在维修)
}InstrInfo;
设计工作计划与进度安排
周一上午:
上网查找资料下午:
编写录入信息模块
周二上午:
编写修改信息模块下午:
编写删除信息模块
周三上午:
编写查询信息模块下午:
整理调试并修改程序错误
周四:
写课程设计论文
设计考核要求
(1)设计作品、说明书(论文)及设计图纸等设计成果的质量(占60%)。
(2)独立工作能力及设计过程的平时表现(占20%)。
(3)答辩情况(占20%)。
题目与要求
1、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部分)
一部分是为了确定现在文件中所具有的仪器仪表信息数量,而这部分功能在增加模块,修改模块,删除模块,以及统计模块当中的每个子模块都有这样的设计,这样设计的好处,能够使得可利用数据量不仅仅的局限在一个固定的大小,这个量可以随时的随着文件中数据的改变而改变。
另一部分是通过想要以输出的方式打开文件,使用了“w”的方式使用文件,来达到此目的,使得在此之前的记录都能够被覆盖。
三、详细设计
3.1数据结构设计
3.1.1结构体数组的设计
仪器仪表信息结构体数组里包括:
仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借入,1代表已借出,2表正在维修)。
(1)其中“bh”为“编号”的拼音缩写,“gmtime”中的“gm”表示购买的缩写“time”则是用英文代表“时间”。
(2)结构体的最后“s[50]”中的“50”为随意输入,若仪器仪表的数据过多,可以根据数量多少在进行调整。
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删除模块设计
删
除模块的程序代码如下图所示:
(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个子函数,下面对子函数里的内容进行一定的阐述:
统计模块的流程图如下图所示:
统计模块运行情况如下图所示:
3.3.7退出模块设计
在退出模块中输入一条”exit(0)”即退出程序
课程设计成绩评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况及设计过程表现(20分)
论文(20分)
设计成果(60分)
总成绩(100分)
综
合
指导教师签名:
年月日