实验室设备管理系统设计[1].doc
《实验室设备管理系统设计[1].doc》由会员分享,可在线阅读,更多相关《实验室设备管理系统设计[1].doc(30页珍藏版)》请在咨信网上搜索。
实验室设备管理系统设计[1] ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 1。 设计课题内容 实验设备管理系统设计 实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等. 主要功能: 1、能够完成对设备的录入和修改。 2、对设备进行分类统计. 3、设备的破损耗费和遗损处理. 4、设备的查询。 2. 应用程序的详细功能说明 该实验设备管理系统采用纯C语言编写,使用者能实验该管理系统方便、直观地对实验设备进行管理操作,如对实验设备信息的录入、实验设备信息的修改、查询需要的目标设备的信息并对其进行统计等等。 程序分两大系统,一是管理系统,二是查询系统。 在管理系统中 1。 建立链表储存设备信息::输入新的设备信息,若当前设备管理系统中的设备还未录入时,建立新的链表来储存当前输入的设备信息,并返回链表的头指针指向第一个输入的设备的信息。 2. 插入新的设备信息:输入新的设备信息,且当前设备管理系统中的链表非空,则将新的设备信息插入链表,并返回链表头指针. 3。 修改设备信息:若对已有的设备的信息需要修改,则按设备编号进行查找,在成功找到该设备时,并选择需要修改的信息进行修改。 4. 删除设备信息:若已有设备的信息错误或该设备不可用即已经报废,则要对该条信息进行删除处理。 5。 对设备进行遗损处理:当设备将要报废或已报废时则删除该设备的相关信息,并通知。 在查询系统中 1. 查找设备信息:当需要查看已有的设备信息对设备进行进一步的管理和维护时,就可按设备编号、设备类型、设备名称、设备购入价格、设备购入时间、设备报废时间、设备是否可用对已有设备信息进行检索,同时也可选择查看所有设备信息.并且能在程序的根目录下的result.txt文件中查看信息。 3。 输入数据类型、格式和内容控制 输入实验设备的信息: 设备编号为整形; 设备类型为10个字符; 设备名称为20个字符; 设备购入价格为浮点型,输出时保留一位小数; 设备购入时间为整形 设备报废时间为整形; 设备是否可用为整形,记0为不可用,1为可用; 4. 主要模块的算法描述 4.1 简单算法描述 1. 新的设备信息添加到链表 2. 删除错误和无用的设备信息 3. 查找所需相关类型信息的设备信息 4. 修改设备信息 建立带头节点的链表 head=tail=NULL 输入设备信息 num!=0 指针申请内存单元 p=(struct ShiyanEquip *) malloc(SIZE) p->next==NULL head==NULL head=p tail->next=p tail=p 输入新设备信息 返回头指针head N Y Y N 4。2 流程图显示将新的设备信息插入链表 指针申请内存单元 pt2=(struct ShiyanEquip *) malloc (SIZE) 链表为空 head=NULL pt1=head head=pt2 head->next=NULL pt2->next=pt->next pt->next=pt2 输入信息 返回头指针head Y N 删除节点操作的算法流程图 输入要删除的设备的编号 num 链表是否为空 head==NULL 判断要删除的是否为头结点 head->num==num pt1=head pt2=head->next pt2!=NULL pt->num==num return NULL pt2=head head=head->next free(pt2) pt1=pt2 pt2=pt1->next pt1->next=pt2->next free(pt2) 返回头指针head Y N Y N Y N Y N 5。结束语 在课程设计中,我体会颇多,学到很多东西。我加强了对C的认识,复习了自己以前的知识,自己的逻辑思考能力也提高不少.从而对Microsoft Visual C++ 6.0开发环境又有了更深入的认识!在这次课程设计中,我还总结了程序开发的一些比较重要的步骤,比如需求分析、总体设计、数据库设计(含概念设计、逻辑设计、物理设计)、程序模块设计(含功能需求、用户界面设计、程序代码设计与分析、运行结果)、系统使用说明等.这次课程设计激发了我对编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序的人,使我对编程更加热爱了。在这次的课程设计中我考虑了很多的东西,产生了许多的问题,通过对资料的查找和筛选,我也找到了这些问题的解决办法,这使我有了很大的成就感,让我对编写程序有了更浓烈的兴趣和信心。相信在以后的设计中我会提交出更加优秀的作品! 6。课程设计源程序清单 #include <stdio。h> #include 〈stdlib.h〉 #include <string.h> #include 〈conio.h〉 #include 〈windows。h> #define SIZE sizeof(struct ShiyanEquip) struct ShiyanEquip{ int num; char type[10],name[20]; double price; int btime; int otime; int able; struct ShiyanEquip * next; }; //============================================================函数声明 struct ShiyanEquip * NewList(); struct ShiyanEquip * InsertNode( struct ShiyanEquip *head, struct ShiyanEquip *newin); void SearchNode( struct ShiyanEquip *head); void SearchNode_num( struct ShiyanEquip *head, int num); void SearchNode_type( struct ShiyanEquip *head, char type[]); void SearchNode_name( struct ShiyanEquip *head, char name[]); void SearchNode_price( struct ShiyanEquip *head, double price); void SearchNode_btime( struct ShiyanEquip *head, int btime); void SearchNode_otime( struct ShiyanEquip *head, int otime); void SearchNode_able( struct ShiyanEquip *head, int able); struct ShiyanEquip * Delete_num( struct ShiyanEquip *head, int num); void ChangeNode(struct ShiyanEquip *head,int num); void Dealwithpass( struct ShiyanEquip * head , int nowtime); struct ShiyanEquip * manage(); void search(struct ShiyanEquip * head); static count=0; int main(void) { struct ShiyanEquip * head=NULL; char chose; do { printf(”********Wlecome to use my program ~********\n\n”); printf("**********Here is the Menu **********\n"); printf("*No。1:管理系统 *\n”); printf("*No。2:查询系统 *\n”); printf(”*No.#:退出系统 *\n"); printf("*******************************************\n"); scanf("%s",&chose); switch(chose) { case ’1': head=manage(); break; case ’2’: search(head); break; case '#': system(”cls”); printf("********Thankyou for using my program ~********\n\n"); exit(0); } }while (1); return 0; } //====================================================管理系统 struct ShiyanEquip * manage() { char chose2; int num,nowtime; char type[10],name[20]; double price; int btime; int otime; int able; struct ShiyanEquip * pcurr,* head; system(”cls”); do{ system("cls"); printf(”********** 管理系统 **********\n”); printf(”**No.1:建立新实验器材管理清单 **\n"); printf(”**No。2:插入新的实验器材 **\n”); printf("**No.3:删除目标器材信息 **\n"); printf(”**No.4:修改目标器材信息 **\n”); printf("**No.5:遗损处理 **\n”); printf(”**No。#:返回上级菜单 **\n”); printf("********************************\n"); scanf("%s",&chose2); switch(chose2) { case '1': head=NewList(); break; case '2': pcurr=(struct ShiyanEquip *)malloc(SIZE); printf("=输入实验器材的编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n"); scanf(”%d%s%s%lf%d%d%d”,&num,type,name,&price,&btime,&otime,&able); pcurr->num=num; strcpy(pcurr-〉type,type); strcpy(pcurr—>name,name); pcurr—>price=price; pcurr—>btime=btime; pcurr->otime=otime; pcurr—〉able=able; head=InsertNode(head,pcurr); break; case '3’: printf("=请输入要删除的实验器材的编号=:"); scanf("%d",&num); head=Delete_num(head,num); break; case ’4': printf(”=请输入要修改的实验器材的编号=:”); scanf(”%d",&num); ChangeNode(head,num); break; case ’5': printf("=请输入现在的日期=”); scanf(”%d”,nowtime); Dealwithpass(head,nowtime); break; case '#': system(”cls”); return head; } }while ( 1); return head; } struct ShiyanEquip * NewList()//=====================================新建链表 { int num; char type[10],name[20]; double price; int btime; int otime; int able; struct ShiyanEquip * p,* head,* tail; head=tail=NULL; printf("录入实验器材的信息。。.。。\n”); printf(”=输入实验器材的编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n"); scanf(”%d%s%s%lf%d%d%d",&num,type,name,&price,&btime,&otime,&able); while ( num != 0) { p=(struct ShiyanEquip *)malloc(SIZE); p-〉num=num; strcpy(p—>type,type); strcpy(p-〉name,name); p->price=price; p-〉btime=btime; p->otime=otime; p-〉able=able; p->next = NULL; if (head == NULL) head = p; else tail-〉next = p; tail = p; printf(”=输入实验器材的编号,类型,名称,价格,购入时间,报废时间,是否可用(0:报废;1:可用)=\n”); scanf("%d%s%s%lf%d%d%d”,&num,type,name,&price,&btime,&otime,&able); } return head; } struct ShiyanEquip * InsertNode (struct ShiyanEquip * head,struct ShiyanEquip *newin) //插入节点 { struct ShiyanEquip * pt1,* pt2; pt1=head; pt2=newin; if (head == NULL) { head = pt2; head -〉next = NULL; count++; }else { pt2 —〉next = pt1 —〉next; pt1 ->next = pt2; count++; } return head; } struct ShiyanEquip * Delete_num( struct ShiyanEquip * head,int num)//======删除节点 { struct ShiyanEquip * pt1,* pt2; if ( head == NULL ) return NULL; else { if ( head -> num == num) { pt2 = head; head = head —> next; free(pt2); count—-; return head; }else { pt1 = head; pt2 = head —〉 next; if (pt2 != NULL) { if (pt2 -〉 num == num) { pt1 -> next = pt2 -〉 next; free(pt2); count-—; }else { pt1 = pt2; pt2 = pt1 —〉 next; } } } } return head; } void ChangeNode(struct ShiyanEquip *head,int num)//===================更改节点 { char type[10],name[20]; double price; int btime; int otime; int able; int flag=0,chose4; struct ShiyanEquip *pt; if (head == NULL) { printf(”=抱歉,没有任何信息!=\n"); return; } for( pt = head; pt ; pt = pt -> next) if(pt->num == num) { printf(”====选择要修改的信息====\n”); printf("=1.编号 =\n”); printf(”=2.类型 =\n"); printf(”=3.名称 =\n”); printf(”=4。价格 =\n”); printf(”=5。购入时间 =\n”); printf("=6.报废时间 =\n”); printf("=7。是否可用 =\n"); switch(chose4) { case 1:printf(”=请输入新的信息=”);scanf(”%d",&num);pt->num=num;break; case 2:printf("=请输入新的信息=");scanf("%s",&type);strcpy(pt—〉type,type);break; case 3:printf("=请输入新的信息=");scanf("%s”,&name);strcpy(pt—〉name,name);break; case 4:printf("=请输入新的信息=");scanf(”%lf”,&price);pt->price=price;break; case 5:printf(”=请输入新的信息=");scanf("%d”,&btime);pt-〉btime=btime;break; case 6:printf("=请输入新的信息=”);scanf(”%d”,&otime);pt—〉otime=otime;break; case 7:printf("=请输入新的信息=”);scanf("%d”,&able);pt—〉able=able;break; } } } //===========================================================查询系统 void search(struct ShiyanEquip * head) { int num; char type[10],name[20]; double price; int btime; int otime; int able; char chose3; system(”cls”); do{ system(”cls”); printf(”********** 查询系统 **********\n”); printf("**No.1:按编号查找 **\n”); printf("**No.2:查找统一价格 **\n”); printf("**No.3:查找同一类型 **\n”); printf("**No.4:查找同一名称 **\n”); printf(”**No.5:查找按购入日期 **\n"); printf(”**No。6:查找按报废日期 **\n"); printf("**No。7:查找按是否可用 **\n”); printf(”**No.8:显示全部器材信息 **\n"); printf("**No.#:返回上一级菜单 **\n”); printf("********************************\n”); scanf(”%s”,&chose3); switch(chose3) { case ’1’: printf(”=请输入要查找的编号=”); scanf("%d",&num); SearchNode_num(head,num); break; case '2': printf(”=请输入想要查看的价格=”); scanf("%lf”,&price); SearchNode_price(head,price); break; case ’3’: printf(”=请输入想要查找的类型="); scanf(”%s",type); SearchNode_type(head,type); break; case ’4’: printf("=请输入想要查看的名称=”); scanf("%s",name); SearchNode_name(head,name); break; case '5’: printf(”=请输入想要查看的购入时间=”); scanf(”%d",&btime); SearchNode_btime(head,btime); break; case '6’: printf(”=请输入想要查看的报废时间="); scanf("%d”,&otime); SearchNode_otime(head,otime); break; case ’7’: printf(”=请输入要查看是否可用的器材(0:报废;1:可用)=”); scanf(”%d",&able); SearchNode_able(head,able); break; case '8’: SearchNode(head); break; case '#’: system("cls”); return; } }while ( 1); } void SearchNode_num( struct ShiyanEquip *head, int num)//按编号查找 { FILE *fp; if (( fp = fopen(”result。txt”,"w”)) == NULL) { printf(”===文件打开错误!===\n"); exit(0); } int flag=0; struct ShiyanEquip *pt; if (head == NULL) { printf("=抱歉,没有任何信息!=\n"); for( int i=5;i〉0;i-—) { printf("%d秒后请重新操作\n",i); Sleep(1000); } return; } for( pt = head; pt ; pt = pt -> next) if(pt—〉num == num) { flag=1; printf(”=============================\n"); printf("=编号%d \n”,pt-〉num); printf(”=类型%s \n",pt—>type); printf("=名称%s \n”,pt-〉name); printf("=价格%.1lf \n”,pt—>price); printf("=购入时间%d \n",pt—〉btime); printf(”=报废时间%d \n",pt-〉otime); printf("=是否可用%d \n”,pt-〉able); printf("=============================\n"); fprintf(fp,”=============================\n”); fprintf(fp,"=编号%d \n",pt->num); fprintf(fp,"=类型%s \n",pt->type); fprintf(fp,”=名称%s \n",pt—>name); fprintf(fp,”=价格%.1lf \n”,pt—>price); fprintf(fp,"=购入时间%d \n",pt—>btime); fprintf(fp,”=报废时间%d \n”,pt->otime); fprintf(fp,"=是否可用%d \n”,pt—>able); fprintf(fp,”=============================\n"); for( int i=10;i〉0;i——) { Sleep(1000); } printf("=可以在文件result。txt中查看更多=\n"); } if ( flag == 0) { printf(”=抱歉没有找到您所要查找的器材~=\n”); for( int i=5;i〉0;i——) { printf("%d秒后请重新操作\n”,i); Sleep(1000); } } if ( fclose(fp) ) { printf(”===文件关闭错误===\n"); exit(0); } } void SearchNode_type( struct ShiyanEquip *head, char type[])//按类型查找 { FILE *fp; if (( fp = fopen(”result。txt”,"w")) == NULL) { printf(”===文件打开错误!===\n"); exit(0); } int countS=0; struct ShiyanEquip *pt; if (head == NULL) { printf(”=抱歉,没有任何信息!=\n"); for( int i=5;i>0;i--) { printf("%d秒后请重新操作\n",i); Sleep(1000); } return; } for( pt = head; pt ; pt = pt -〉 next) if (strcmp(pt—>type,type) == 0) { countS++; printf(”=============================\n"); printf(”=编号%d \n”,pt->num); printf("=类型%s \n”,pt->type); printf(”=名称%s \n”,pt-〉name); printf(”=价格%.1lf \n",pt—〉price); printf(”=购入时间%d \n",pt-〉btime); printf(”=报废时间%d \n",pt->otime); printf("=是否可用%d \n”,pt—>able); printf("=============================\n”); fprintf(fp,”=============================\n”); fprintf(fp,"=编号%d \n",pt-〉num); fprintf(fp,”=类型%s \n”,pt—〉type); fprintf(fp,”=名称%s \n",pt—〉name); fprintf(fp,”=价格%。1lf \n",pt-〉price); fprintf(fp,"=购入时间%d \n",pt->btime); fprintf(fp,”=报废时间%d \n”,pt->otime); fprintf(fp,"=是否可用%d \n",pt—〉able); fprintf(fp,”=============================\n"); for( int i=10;i〉0;i-—) { Sleep(1000); } } if ( countS == 0) { printf("=抱歉没有找到您所要查找的器材~=\n"); for( int i=5;i〉0;i——) { printf("%d秒后请重新操作\n",i); Sleep(1000); } } else { printf(”=共查找到%d条信息=\n",countS); printf("=可以在文件result。txt中查看更多=\n"); fprintf(fp,”=共查找到%d条信息=\n”,countS); for( int i=5;i>0;i——) { printf(”%d秒后请重新操作\n",i); Sleep(1000); } } if ( fclose(fp) ) { printf("===文件关闭错误===\n”); exit(0); } } void SearchNode_name( struct ShiyanEquip *head, char name[])//按名称查找 { FILE *fp; if (( fp = fopen("result.txt”,"w")) == NULL) { printf("===文件打开错误!===\n”); exit(0); } int countS=0; struct ShiyanEquip *pt; if (head == NULL) { printf(”=抱歉,没有任何信息!=\n"); for( int i=5;i>0;i——) { printf(”%d秒后请重新操作\n",i); Sleep(1000); } return; } for( pt = head; pt ; pt = pt —〉 next) if (strcmp(pt —> name,name) == 0) { countS++; printf(”=============================\n”); printf(”=编号%d \n”,pt->num); printf(”=类型%s \n”,pt—>type); printf(”=名称%s \n”,pt—>name); printf("=价格%.1lf- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验室设备 管理 系统 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文