有代码 信管一班 蓝俊杰 单位仪器设备基本信息管理软件设计Word文档下载推荐.docx
- 文档编号:21329230
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:40
- 大小:299.62KB
有代码 信管一班 蓝俊杰 单位仪器设备基本信息管理软件设计Word文档下载推荐.docx
《有代码 信管一班 蓝俊杰 单位仪器设备基本信息管理软件设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《有代码 信管一班 蓝俊杰 单位仪器设备基本信息管理软件设计Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。
(3)报废功能(对“可用性”信息为“否”的设备报废,被报废设备数减x);
(3)查找功能(需指定设备号或设备名);
(5)统计功能(统计每种设备可用数、不可用数);
(6)退出程序的运行。
2系统总体设计思想
(1)开发与设计的总体思想
内容示例:
单位仪器设备基本信息管理软件算法说明:
STEP1预处理,定义结构体
STEP2进入欢迎界面
STEP3选择某一种功能
STEP4根据提示输入一个数字
STEP5对于输入的数字编辑关于购进、报废、查找、统计功能的函数
STEP6如果输入的字母表示退出,退出系统
(2)系体模块结构图
(3)系统文件及函数组成、功能(参考P154的表12-1)
源文件
函数名或其他成分
功能
facility.c
main
总控函数
select
菜单选择
menu_select
菜单处理
quit
结束运行
Facility_add_sum.c
showTable
打印表头
show
显示所有的设备信息
addfacility
在表尾追加信息
facility_Modify_remove.c
findRecord
查找到指定的信息
seekfacility
查询指定设备的信息
removefacility
报废设备
modifyfacility
修改设备
facility.h
常数
提供常数
结构声明
设备结构
库函数及函数原型声明
引用库函数及函数
facility_save_load.c
saveRecords
存储信息
loadRecords
读取信息
3系统详细设计思想
(1)函数的描述
内容包括:
分模块(函数)简述其功能;
函数中使用的各变量的类型及作用等(可参考材P155的写法)。
1.显示所有设备信息函数
函数原型:
voidshow(void)
功能:
显示内存里的记录信息
参数:
void
返回值:
工作方式:
从头部开始逐个显示记录内容。
要求:
报告是否有记录及记录条数和内容。
2.购进设备函数
voidaddfacility(void)
增加记录
从尾部开始逐个追加记录。
将新记录追加在记录尾部,并对记录进行计数。
3.显示所有设备信息函数
voidshowTable(void)
输出表头信息
输出一行表头信息。
4.报废设备函数
voidremovefacility(void)
把所选的仪器报废,被报废设备数减x。
根据给定的关键字,查找符合的记录并将报废的设备删除。
将报废的设备数减去。
5.显示所有设备信息函数
intfindRecord(char*target,inttargetType,intfrom)
查找指定的记录
char*target:
欲查找记录的某一项与target相同
inttargetType:
表明通过哪项来查找,0为编号,1为名称。
intfrom:
从第from个记录开始找。
根据给定的关键字,查找符合记录的序号。
找不到则返回-1.
6.查询指定设备的信息函数
voidseekfacility(void)
可以按照编号、名称来查询
打印查询到的设备的信息
7.修改设备信息
voidmodifyfacility(void)
修改指定设备的信息
修改设备的信息
报告是否有记录及记录条数和内容
8、文件存储操作函数
函数原型:
intsaveRecords(void)
把信息存储进指定文件中
int
输入文件名字并保存
有空间存储
9、文件读取操作函数
intloadRecords(void)
从指定文件中读取出的记录
输入已经存在的文件名字来读取文件中的信息
已经存在文件可供读取
10.主函数
intmain()
控制程序
管理菜单命令并完成初始化
11.菜单处理函数
voidselect(void)
处理选择的菜单命令
根据命令,调用相应函数
给出结束信息
12.菜单选择函数
intmenu_select()
接收用户选择的命令代码
int
返回命令代码的整数值
只允许选择规定键,如果输入不合要求,则提醒用户重新输入
13.结束程序运行函数
voidquit(void)
结束程序运行
根据要求决定在退出前是否将修改的记录存入文件
结束运行之前,询问是否对修改的记录进行存储
14.头文件
device.h
声明函数原型,包含文件及自定义宏和数据结构
报告是否能正常打开文件执行存入操作及存入记录的条数
15、文件
(2)主要函数流程图
1.voidaddfacility(void)
2.voidselect(void)
3.voidshow(void)
4.intfindRecord(char*target,inttargetType,intfrom)
5.voidremovfacility(void)
6.voidmodifyfacility(void)
调试结果:
(1)欢迎界面:
输入密码
(2)功能选择菜单
(3)购进新设备功能
而在于设备数量大于100台和小于100台的处理上,大于100台则直接输入可用设备的数目,而对于小于100台,则逐台输入每台的可用性不可用性。
(4)显示已有设备
(5)报废设备
报废功能也可以按照名字和编号来报废,报废前还会打印出将要被报废的设备信息再一次询问操作者是否要删除该设备。
(6)查找设备
按编号查找
按设备名称查找
(7)保存设备信息
(8)读取设备信息
本人在程序设计中感想
本人在程序设计的课程设计中感受到:
很多的函数设计与学生管理系统还是有挺大的差别的。
通过设置密码可改变背景和字体颜色的设计,让我懂得了C语言还是有很多我没有了解到的地方,通过互联网上的资源我们可以懂得的更多。
而遇到不懂的地方就要耐心的读懂,实在不懂的就要谦虚地问同学和老师,例如在程序设计过程中scanf语句与getchar()语句混搭容易出现跳句,需要不断的修改来完善。
将保存文件语句和读取文件语句穿插也需要注意,当记录为0时直接调用saveRecord()语句是保存不了的,所以需要再修改。
通过实验让我更加深刻学习到了C语言的好处。
5结束语
C语言的程序设计实验的成功实验,靠得不仅仅是自己的努力,还有同学的帮助,当然最重要的还是老师的耐心解答。
参考文献
[1]谭浩强,C程序设计(第二版),北京:
清华大学出版社,2001.1(左对齐,宋体,五号)
[2]陈朔鹰,C语言程序设计习题集,北京:
人民邮电出版社,2003.6
#ifndefH_STUDENT_HH//如果没有定义H_STUDENT_HH,继续执行
#defineH_STUDENT_HH//定义H_STUDENT_HH,可避免重复编绎
#include<
stdio.h>
stdlib.h>
conio.h>
string.h>
//头文件包含
#defineINITIAL_SIZE5//数组初始大小
#defineINCR_SIZE5//数组每次增加的大小
//可根椐系统使用需要的常量定义
structfacility_info{
charnumber[20];
//设备编号
charname[20];
//设备名称
charmanufactory[20];
//设备生产厂家
charyear[20];
//设备购进年代
floatgetnumbers;
//设备购进数目
floatusable;
//可用设备
floatprice;
//设备单价
};
typedefstructfacility_infoSBInfo;
//定义一个类型名SBInfo代表定义的结构体shebei_info
externintnumStus;
//记录的设备数
externSBInfo*records;
//记录设备信息的数组指针
externintarraySize;
//数组大小
externcharsavedTag;
//共享的全局变量定义
voidselect(void);
intmenu_select(void);
voidaddfacility(void);
voidmodifyfacility(void);
voidshow(void);
voidseekfacility(void);
voidremovefacility(void);
voidquit(void);
voidshowTable(void);
intfindRecord(char*target,inttargetType,intfrom);
intgetIndex(floatsum);
intsaveRecords(void);
intloadRecords(void);
voidcopyRecord(SBInfo*hum,SBInfo*orc);
//函数申明,注意()里必须包含对应函数形参类型
#endif//H_STUDENT_HH
#include"
facility.h"
#include<
/**************************
*初始化
**************************/
intnumStus=0;
//记录的学生数
SBInfo*records=NULL;
//记录学生信息的数组
intarraySize;
charch1[15],ch2[15]={"
JJ"
charsavedTag=0;
//信息是否已保存的标志,1为未保存,0为已保存
*主函数
{
system("
color9"
);
//初始化数组
records=(SBInfo*)malloc(sizeof(SBInfo)*INITIAL_SIZE);
//给数组分配StuInfo分配INITIAL_SIZE个记录空间大小
if(records==NULL)
{
printf("
memoryfail!
"
exit(-1);
//如果内存空间不够分配,退出程序
}
arraySize=INITIAL_SIZE;
printf("
*************************************************************************\n"
*callmeJJSINGLEJJBIRTHDAY*\n"
*lovelove**handsome19920929*\n"
**********\n"
*********\n"
***QQ:
496798140*****\n"
***嘿我是蓝俊杰*****\n"
***QQQQQQ*********\n"
*手机:
150QQQQQQ673798673798*\n"
*15593798QQQQQQ*******\n"
***\n"
****\n"
**欢迎使用仪器设备基本信息管理程序**\n"
**设计者蓝俊杰1251101121**\n"
**********\n"
**********\n"
************\n"
**************************************************\n"
************************************************\n"
******\n"
******\n"
printf("
\n"
for(;
;
)
{printf("
\n进入系统的密码是:
gets(ch1);
if(strcmp(ch1,ch2)==0)break;
elseprintf("
\nSORRY!
密码错啦T_T!
\n\t\t欢迎使用设备管理系统!
\t\n"
select();
}
*菜单处理函数
for(;
;
){
switch(menu_select())
{
case1:
addfacility();
break;
case2:
seekfacility();
case3:
removefacility();
case4:
modifyfacility();
case5:
show();
case6:
saveRecords();
case7:
loadRecords();
case8:
quit();
}
/****************************
*菜单选择函数menu_select
****************************/
chars[2];
intcn=0;
printf("
\t1.购进设备\n"
);
printf("
\t2.查找设备\n"
\t3.报废设备\n"
\t4.修改设备信息\n"
\t5.显示设备信息\n"
\t6.保存设备信息\n"
\t7.读取设备信息\n"
\t8.退出程序\n"
\n\t左边数字对应功能选择,请选1-8:
gets(s);
cn=atoi(s);
if(cn<
1||cn>
8)printf("
\n\t输入错误,重选1-8:
elsebreak;
returncn;
/***************************************
*结束运行,退出*
*参数量void
***************************************/
charstr[5];
if(savedTag==1)
\n是否保存记录?
(Y/n)\n"
选择:
"
gets(str);
if(str[0]!
='
n'
&
str[0]!
N'
saveRecords();
free(records);
\nByeBye啦啦啦啦~\n\n"
exit(0);
facility_add_sum.c
/********************
*打印表头
********************/
floatgetnumbers,usenumbers_1,usenumbers_2;
floatunusable,usable;
\n\t编号\t名称\t厂家"
\t年代\t单价\t数量\t可用数\n"
/***********************
*显示所有的设备信息
***********************/
voidshow(void)
inti;
if(numStus==0)
{
\n没有可供显示的记录!
return;
showTable();
if(getnumbers<
=100)
for(i=0;
i<
numStus;
i++)
//打印设备的信息
\t%s\t%s\t%s\t%s\t%.2f\t%.f\t%.f\n"
records[i].number,records[i].name,records[i].manufactory,records[i].year,records[i].price,records[i].getnumbers,records[i].usable);
elseif(getnumbers>
100)
/*****************************
*在当前表的末尾增加新的信息
*结果:
records中将记录新的信
*息,如果数组大小不够,会重
*新申请数组空间
*****************************/
voidaddfacility(void)
charstr[10];
floatunusable,usable;
intj;
floatgetnumbers,usenumbers_1;
if(numStus==0)
\n原来没有记录,现在建立新表\n"
else
\n下面在当前表的末尾增加新的信息\n"
while
(1)//()中为1表示无条件反复循环
您将要添加一组信息,确定吗?
(Y/n)"
gets(str);
if(str[0]=='
||str[0]=='
)//不再添加新的信息
break;
if(numStus>
=arraySize)//现在的数组空间不足,需要重新申请空间
records=realloc(records,(arraySize+INCR_SIZE)*sizeof(SBInfo));
//新空间大小变为(arraySize+INCR_SIZE)记录大小,即在原来基础上增加INCR_SIZE个记录大小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有代码 信管一班 蓝俊杰 单位仪器设备基本信息管理软件设计 代码 一班 俊杰 单位 仪器设备 基本信息 管理 软件设计