C语言课程设计-实验室设备信息管理系统_第1页
C语言课程设计-实验室设备信息管理系统_第2页
C语言课程设计-实验室设备信息管理系统_第3页
C语言课程设计-实验室设备信息管理系统_第4页
C语言课程设计-实验室设备信息管理系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础课程设计一实验室设备信息管理系统 /35 /35二O五二O六学年第一学期电子与信息工程系庁果程设计报告书课程名称:程序设计基础实践班级:学号:姓名:指导教师:二O五年十二月实验室设备信息管理系统1.实验室设备信息管理系统功能.每一条记录包括实验室的设备编号、设备名称、设备型号、设备价格、设备购买口期信息。.实验设备信息录入:可以一次完成诸多条记录的录入。.实验设备信息更改:町实现对实验设备信息更改的信息进行适当的修改。.报废设备信息删除:对实验损毁设备信息予以删除。.实验设备信息查询:本系统提供两种查询实验设备的方法:1按器材名称查询.2.按器材编号查询.从而完成按实验设备的查找查

2、找功能,并显示。.实验设备信息排序:根据实验设备的编号进行排序,以实现实验设备的有序全局查看。实验设备信息显示功能:完成全部学生记录的显示。.简单帮助:提供实验室负责人简单的信息。.保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:scoreo.读取功能:将保存在文件中的学生记录读取出来。.有一个清晰美观界面來调用各个功能2设计内容2.1程序的总体设计整个系统除了主函数外,另外还有II个函数,实现以卞功能:实验室设备录入功能、显示功能、查找功能、排序功能、读出与写入取功能。各个函数的详细设计说明分别如下:22数据结构根据系统要求,系统中设计实验器材具体信息,其结构如卜:数据项名称数据

3、项系统表示数据类型数据长度备注编号biaiiliao字符串名称name字符串20型号model字符串20购入时间buydate字符串20价格price字符串20使用C语言创建的结构体如下:typedefEquipment/*定义数据结构*/charbianliao;编号cliarname20;名称cliarmodel20;型号bnincliarprice20;价格cliarbuy_date20;购买口期;3详细设计3.1实验设备管理系统主程序模块设计控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程如图1所示。通过switch进入分支结构从而调用执行不同的函数,以实现菜单选

4、择的功能。程序如下:voidniam()hitchoice;mtchoice2;IO_ReadInfbO;svstem(HclsH);wlule(l)严主菜单可pnntfCiiiinnng苏州科技学院实验器材管理系统1.实验设备信息录入1T);2.实验设备信息更改1T);3.报废设备信息删除E);4.实验设备信息查询1T);5.实验设备信息排序1T);6.帮助也”);pnntfCtXft7.退出山”);*ir);scaiif(H%d,&choice);getchai();svstem(HclsH);switch(choice)case1:Equipment_IiisenQ;break;case

5、2:Equipment_Modify();break;case3:Equipment_DeleteQ;break;1按器材名称查询nj;2按器材编号查询nnn”);case4:pimtf(nniiniint请选择(1/2)pnntf(Mscanf(H%d,&choice2);switch(choice2)case1:Equipment_nameSelect();break;case2:Equipment_biaiiliaoSelect();break:break;case5:voidEquipment_paixuQ;Equipment_Displav();break;case6:printf(

6、iinniiiiiittt*电子与通信工程学院实验室*iiii);piintf(Mtttt负责人:sdiwenniT);pnntH-WtXt办公室:A-201W);pnntH-WtXtTeliT);*pnntHMttttt|madebywangluoyangiinM);break;case7:exit(O);break;system(MPausen);system(MclsH);IO_Wntenifb();图1主模块流程图其运行界面如卞:程序设计基础课程设计一实验室设备信息管理系统程序设计基础课程设计一实验室设备信息管理系统 /35 /35G:czstduyDeb

7、uglab.exe*XXMXw32些辅助函数丄通过设备编号返回数组下标(intEquipmenLSearcliByIndex(charid)通过(strcmp(equipmenti.biaiiliaojd)=0)进行比较,从而反馈回对应设备的数组下标。以方便查询函数,与显示函数的执行。程序如下:mtEquipment_SeaicliBvIndex(chai-id)mti;for(i=0;inum;i+)if(strcmp(equipmenti.biaiihaoad)=0)returni;return-1;丄通过设备名称返回数组下标(intEquipmenLSearchByName(charna

8、me)通过(strcmp(,name)进行比较,从而反馈回对应设备的数组下标。以方便查询函数,与显示函数的执行。程序如下:mtEquipment_SeaicliBvName(charname)mti;for(i=0;inum;i+)if(strcmp(,naiiie)=0)returni;程序设计基础课程设计一实验室设备信息管理系统程序设计基础课程设计一实验室设备信息管理系统 #/35| /35|return-1;4-显示单条设备记录(voidEquipment_DisplaySingIe(intindex)为报废设备删除提供信息的显

9、示。如下所示,即是调用单条显示函数。voidEquipment_DisplaySingle(mtmdex)设备编号设备名称设备型号设备价格设备购买口期n”);E);prmtf(n%5s%12s%1Os%12s%l5snH,,equipmentmdex.modeLequipmentmdex.price,equipmentiiidex.buy_date);丄显示在库设备信息(voidEquipment_Disphy()通过for循环语句将结构体数组中所有的内容显示出来,为排序函数提供显示提出,排序函数最后显示即需要

10、调用显示函数。voidEquipment_DisplayQmti;设备编号设备名称设备型号设备价格设备购买口期S”);E);for(i=0;inum;i+)prmtf(n%5s%12s%1Os%12s%l5snH,,equipmentfi.modeLequipmenti.price,equipmenti.buv.date);丄将设备信息从文件读出voidIO_ReadInfoO程序设计基础课程设计一实验室设备信息管理系统程序设计基础课程设计一实验室设备信息管理系统 /35 /35将设备信息写入文件voidIO.Writel

11、nfoO这两条函数即是将所录入系统的信息保存在database.txt中,以便卞次使用时信息的读取与保存。voidIO_ReadInfoQFILE*fp;mti;if(fp=fbpen(MDatabase.txtM/rbM)F=NULL)prmtf(n不能打开文件!n”);return;if(fiead(&num,siz亡of(int),1,fp)!=1)num=-l;elsefbr(i=O;inuni;i+)fiead(&equipmenti、siz亡ofstiuctEquipment),!,fp);fclose(fp);/*将设备信息写入文件*/voidIO_WiiteInfoQFILE*

12、fp;mti;if(fp=fbpen(MDatabase.mMxvbn)=NULL)prmtf(n不能打开文件!n”);return;if(fvwite(&mun、sizeof(int),1)prmtf(n写入文件错误!n”);for(i=0;in);scanf(H%s,&亡qi】ipmentnumbianhao);prmtf(n请输入实验设备名称一”);scanf(n%s,&亡qi】ipmentnumnaim);请输入实验设备型号”);scanf(n%s,&亡qi】ipmentnum.modul);请输入实验设备采购价格一”);scanf(n%s,&亡qi】ipmentnum.pice);p

13、rmtfC请输入实验设备购买口期一”);scanf(n%s,&亡qi】ipmentnumbuy_date);num+;pnntf(”n是否继续信息录入?(y/n);getchaiQif(getchar()=,n,)break;程序运行如下:信号发生器-xh-057)撿fS623HBfl-2W15-9-6搜狗扔音输入法半二2_羸设设设1A人-A入IAx4n-HrIV-_HHI-H-sFrG:cstduyDebuglab.exeM3.4实验设备信息更改模块设计(VoidEquipmentModifyO)修改信息,系统要求用户输入要修改的设备编号,用户只需将设备新的信息按要求输入即可对信息进行修改,

14、流程图如图3.其调用mdex=Equipment_SearcliByIiidex(id);ifll过编兮返回其F标,并对结构体对应的数组进行重新赋值从而达到修改的效果。图3.实脸设备信息更改模块流程图程序如下:voidEquipment_Modify()while(l)charid20;iiitindex;prmtf(niiiiiin请输入需要修改的实验设备编号scaiifC%s气&id);uidex=Equipment_SearchByIiidex(id);if(iiidex=-l)该设备不存在!抱歉else你需要修改的设备信息为EquipmenCDisplaySingle(mdex);请输

15、入修改新值pimtf(iiiin*请输入设备编号*:);scanf(n%s,&equipm亡ntindexbiaiihao);pnntf(请输入设备名称一”);scanf(n%s,&equipm亡ntindexname);pnntf(“请输入设备型号一”);scanf(n%s,&equipm亡ntindexmod亡1);pnntfC请输入设备价格一”);scanf(n%s,&equipm亡ntind亡x.piice);pnntf(“请输入设备购买口期“);scanf(n%s,&equipm亡ntind亡xbuy_date);是否继续?一(y/n);getchar();if(getchar()=

16、,n,)break;程序运行如下:CK*G:cstduyDebuglab.exe*購勰鬱盼编号F设备编号设备名称设备型号设备价榕设爸腹买日期血1信号冷竺器xh-05?5623201S-9-GM请输入衫改嶄值簽-8M_rlls9桑蟹in?认设设t爰诘x寺寺青主甩刀3.5报废设备信息删除模块设计(voidEquipment_J)elete()删除报废设备信息,系统要求用户输入要删除的设备编号,输入后即可删除设备信息,设计思想:流程图如图3开始图3.报废设备佶息删除模块流程图程序如下:voidEquipment_DeleteQmti;while(l)charid20;iiitindex;prmtf(

17、niiiiii请输入要删除的设备编号scanfCs&id);iiidex=Equipment_SearchByIiidex(id);if(iiidex=-l)pnntfC设备不存在!抱歉iT);elsepi-mtfC1你要删除的设备信息为fn”);EquipmenCDisplaySingle(mdex);prmtf(是否真的要删除该设备?一(y/n);if(getcha【0=y)for(i=mdex;iaixu()设备信息显示,可显示所有设备信息,流程图如图5图7设各信息排序模块流程图程序如下:voidEquipment_paixu()intij;structEquipmentpaixu;fo

18、r(i=0;inum;i+)for(j=lj本系统的功能已经达到设计的要求。系统中各个模块的功能均已实现,为整体系统的构建奠定了基础。系统模块的功能可以被进一步扩展。系统中模块划分明确,模块功能设计有较强的针对性。系统的设计遵循软件开发的全过程,使我对软件系统的开发过程有了更深刻的认识。当然系统的设计没有完美无缺的,本次系统在某些地方可能存在不足,囿于时间的原因在许多方面还需做出进一步的改进和完善。还有一些想法没能很好的体现在本次设计上。在课后还将进一步的思考整合所学知识做出创新。在最后感谢严迪新老师精彩的授课,使我对c语言以及C卄有了更深层次的认知,有了入门编程的思维。附录:源代码#incl

19、udestdio.h#includenstnngH/*定义实验器材结构体*/stmctEquipmentcharbianhao20;设备编号charname20;设备名称charmodel20;设备型号charprice20;设备价格charbuv_date20;设备购买日期;严声明实验器材数组及实验器材数量引stmctEquipmentequipment1000;mtnum=0;严通过设备编号返回数组下标*/mtEquipment_SearcliByIiidex(chai-id)inti;for(i=0;inum;i+)if(sticmp(equipmenti.biaiiliao4d)=0)

20、程序设计基础课程设计一实验室设备信息管理系统程序设计基础课程设计一实验室设备信息管理系统 /35 /35return1;return-1;严通过设备名称返凹数组下标*/mtEquipment_SeafchByName(charname)inti;for(i=0;inum;i+)if(stfcmp(,name)=O)return1;return-1;严显示单条设备记录*/voidEquipment_DisplaySingle(intmdex)printf(niiiin设备编号设备夕i称设备型号设备价格设备购买日期n“);pnntf(Hpnntf(n%5s%12s%1

21、Os%12s%15snequipmentmdexbianhao,equipmeiH,equipmentindex.model,equipmentindex.pnce,equipmentindex.buy_date)严插入设备信息*/voidEquipment_IiiseitOwlule(l)pnntf(iiiiii请输入实验设备编号-*”);scanf(u%s,&eqiiipinentnimi.bianhao);pnntfC请输入实验设备名称”);scanf(u%s,&);/getchaiQ;pnntf(,-请输入实验设备型号-J;sca

22、nf(,%s,&eqiiipmentnum.model);/getchaiQ;pnntf(n请输入实验设备采购价格一J;scanf(,%s,&eqiiipmentnumpiice);/getchaiQ;pnntf(*-请输入实验设备购买日期);scanf(,%s,&eqiiipmentnum.biiy_date);/getchaiQ;num+;prmtf(Hii是否继续信息录入?一(y/n)n);getcharQ;if(getcliai(j=,n,)break;严修改设备信息*7voidEquipment_Modify(Jwlule(l)charid20;mtindex;printf(iiii

23、iiiiii请输入需要修改的实验设备编号一);scanf(%s,&id);mdex=Equipment_SeaicliByIiidex(id);if(iiidex=-l)piintf(H*该设备不存在!抱歉elsepnntf(H你需要修改的设备信息为一iiH);Equipment_DisplaySingle(index);pnntf(-*请输入修改新值*-ii);piiiitf(Miiiin*请输入设备编号*:u);scanf(n%s,&eqi】ipmeiHindex.bianhao);/getcliarQ;pnntf(Hi#输入设备名称f“);scanf(n%s,&eqiiipmeiHind

24、exiKime);/getcliarQ;pnntf(M请输入设备型号一;scanf(n%s,&eqi】ipmentindex.model);/getchaiQ;pnntf(HW输入设备价格);scanf(n%s,&equipmentindex.price);/getcliarQ;pnntf(-W输入设备购买日期);scanf(n%s,&eqi】ipmeiHindexbuy_date);是否继续?f(y/n)u);getcharQ;if(getcliar(J=,n,)break;严删除设备信息*/voidEquipment_Delete()inti;wlule(l)charid20;mtinde

25、x;pnntfCiiiiiiii请输入要删除的设备编号一”);scanf(”s,&id);mdex=Equipment_SearcliByIndex(id);if(mdex=-l)pdntf(”设备不存在!抱歉n“);else你要删除的设备信息为一E);Equipment_DisplaySingle(index);是否真的要删除该设备?一(y/n)H);getchaiQ;if(getchai()=V)foi(i=index;inum-l;i+)equipmenti=equipmenti+1;/把后边的对象都向前移动num;/getcliarQ;pnntfC是否继续?一(y/n)”);getch

26、arQ;if(getcharO=,n,)break;严按设备名称查询*/voidEquipmenCnameSelectQwlule(l)chainame20;mtindex;pnntfC*请输入要査询的设备名称-scanf(u%sf&name);/getcharO;mdex=Equipment_SearcliByName(name);if(mdex=-l)printf(”设备不存在!抱歉n“);elsepnntf(n你要查询的设备信息为一n”);Equipnient_DisplavSingle(index);printfC*是否继续?一(y/n)”);getcharQ;if(getcliar(

27、J=,n,)break;严按设备编号查询*/voidEquipment_biaiiliaoSelectOwlule(l)charbiaiiliao20;mtindex;pnntfCiW请输入要查询的设备编号f”);scanf(”s,&bianliao);mdex=Equipment_SearcliByIndex(biaiiliao);if(mdex=-l)printf(”设备不存在!抱歉n“);elsepnntf(H你要查询的设备信息为一E);Equipment_DisplaySingle(index);printfC*是否继续?一(y/n)”);getcharQ;if(getcharO=,n

28、)break;严按设备编号排序引voidEquipment_paixu()int1J;stnictEquipmentpaixu;for(i=0;inum;i+)for(j=lJequipmentj.biaiiliao)paixu=equipmentj-1;equipmentj-1=equipmentj;equipmentj=paixu;严显示在库设备信息*/voidEquipment_DisplayOinti;pnntf(H设备编号设备名称设备型号设备价格设备购买日期n“);pnntf(Hfor(i=0;inum;i+)pnntf(n%5s%12s%1Os%12s%15snn9equipmen

29、ti.bianliao,,equipmenti.modeLequipmenti.pnce,equipmenti.buy_date);严将设备信息从文件读出WvoidIO_ReadLifo()FILE*fp;inti;if(Q)=fbpen(,Database.txt,ib)=NULL)printf(不能打开文件!nM);retuni;if(fiead(&num,sizeof(int),1,fp)!=1)num=-l;elsefdi(i=O;inum;i+)fiead(&eqi】ipmenti,sizeof(stnictEquipment)J,fp);fclose(Q);严将设备信息写入文件*/voidIO_WnteIiifbQFILE*fp;mti;if(Q)=fbpen(,Database.txt,wb)=NULL)pnntf(不能打开文件!iiH);retuin;if(fwriite(&niim、sizeof(int)丄Q?)!=1)pnntfC写入文件错误!n”);

温馨提示

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

评论

0/150

提交评论