仪器仪表管理系统C++程序代码
Delphi3037实验室仪器管理系统源代码2
中文摘要实验室仪器管理系统为试验室仪器管理者管理日常试验所需要的仪器的编号,出库,入库,使用登记等日常工作提供充足方便和快捷的管理手段,其开发内容主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
利用DELPHI 6.0软件及其提供的各种面向对象的开发工具,建立完整性强、安全性好的数据库,开发出功能完备,易使用的应用程序。
经过调试、编译与实现,该程序界面友好、程序设计风格朴素,使用起来美观大方、方便易用。
尤其是系统的“查询模块”的功能极大的减轻工作人员的工作量,并以快速、准确等优点取代人工操作,提高了光盘管理工作效率。
关键词:DELPHI 6.0 信息管理系统数据库模块实验室仪器管理系统引言 11 Delphi语言概述 21.1 Delphi简介 21.2 数据库系统简介 21.3 本应用软件的基本介绍 32 本应用程序的构成和开发步骤 42.1 可行性研究 42.1.1 经济可行性42.1.2 时间可行性42.1.3 技术可行性42.1.4 社会可行性52.2 数据库的建立和连接 52.3 系统的总体设计 53 本程序的技术实现及具体功能133.1 仪器库维护界面与程序设计实现133.2 仪器借用库维护界面与代码设计实现及功能 133.3 通讯录维护界面与代码设计实现14,3.4 仪器代码库维护界面与代码设计153.5 主界面设计与代码设计 16总结21致谢22参考文献232.3 系统的总体设计这个管理系统从4月1日开始着手设计开发,经过一段时间的分析,并根据对影音店光盘管理的具体要求及需要本软件实现的功能,将本软件分为5个大的模块,分别是:第一部分:仪器库维护;第二部分:仪器借用库维护;第三部分:通讯录维护;第四部分:仪器代码库维护。
程序流程图如下:3 本程序的技术实现及具体功能3.1仪器库维护界面与程序设计实现3.2仪器借用库维护界面与代码设计实现及功能3.4 仪器代码库维护界面与代码设计3.5 主界面设计与代码设计重要提示:本论文由大学论文网毕业论文下载网: 提供如果需要详细内容请与QQ:4991024联系。
c语言仪器管理课程设计
c语言仪器管理课程设计一、教学目标本课程旨在通过学习C语言仪器管理,使学生掌握C语言编程的基本知识和技能,能够运用C语言进行简单的仪器管理程序设计。
具体目标如下:1.知识目标:•掌握C语言的基本语法和数据结构。
•理解仪器管理的基本原理和概念。
2.技能目标:•能够使用C语言进行简单的程序设计。
•能够运用C语言实现简单的仪器管理功能。
3.情感态度价值观目标:•培养学生的编程兴趣,提高学生的自主学习能力。
•培养学生对仪器管理的认识,提高学生对仪器管理的重视。
二、教学内容教学内容将根据课程目标进行选择和,确保内容的科学性和系统性。
具体教学内容如下:1.C语言基础知识:包括基本语法、数据类型、运算符、控制结构等。
2.仪器管理基本原理:包括仪器管理的概念、原理和常见的仪器管理方法。
3.C语言程序设计:包括函数、数组、指针等编程技巧。
4.仪器管理程序设计:包括仪器管理系统的结构、实现方法和编程实践。
教学大纲将根据教学内容的安排和进度进行制定,确保教学内容的连贯性和完整性。
具体教学大纲如下:1.第一章:C语言基础知识。
2.第二章:仪器管理基本原理。
3.第三章:C语言程序设计。
4.第四章:仪器管理程序设计。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法进行教学。
具体教学方法如下:1.讲授法:通过讲解和示例,使学生掌握C语言和仪器管理的基本知识和概念。
2.案例分析法:通过分析实际案例,使学生了解仪器管理程序设计的应用和实践。
3.实验法:通过实验操作,使学生掌握C语言编程技巧和仪器管理程序设计的实现方法。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。
具体教学资源如下:1.教材:选用权威、实用的C语言和仪器管理教材作为主要教学资源。
2.参考书:提供相关的参考书籍,供学生自主学习和拓展知识。
3.多媒体资料:制作教学PPT、视频等多媒体资料,丰富教学手段和学生的学习体验。
4.实验设备:提供计算机实验室,供学生进行实验操作和程序设计实践。
仪器仪表管理系统—C语言课程设计
仪器仪表管理1.题目要求Ⅰ.【要求】系统功能的基本要求:(1)新的仪器仪表信息的录入;(2)在借出、归还、维修时对仪器仪表信息的修改;(3)对报废仪器仪表信息的删除;(4)按照一定的条件查询符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间点(借入时间、借出时间、归还时间)查询等(5)对查询结果的输出。
【提示】数据结构采用结构体。
仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。
Ⅱ.需求分析根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。
2.功能实现设计2.1总体设计系统功能模块图2.2详细设计1.主函数主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。
其各功能模块用菜单方式选择。
本题将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。
【程序】main(){menu();}菜单部分设计如下:【流程图】N【程序】main(){system("cls");/**********清屏************/menu();}void menu(){int w,n;do{system("cls");printf("\t\t WELCOME TO THE EQUIPMENT MANAGEMENT SYSTEM\n\n\n");printf("\n\n\t\t====================******========= ===========\n\n\n");printf("\t\t\t1:Add message of new equipmen\n\n");printf("\t\t\t2:Load the message of all equipment\n\n");printf("\t\t\t3:Correct the message of equipment\n\n");printf("\t\t\t4:Ddlete the message of broken equipment\n\n");printf("\t\t\t5:Search the message of equipment\n\n");printf("\t\t\t6:Search of all the equipment\n\n");printf("\t\t\t7:Exit\n");printf("\n\n\t\t====================******========= ===========\n\n\n");printf("Please choice your number:[ ]\b\b");scanf("%d",&n);if(n<1||n>7) w=1;else w=0;}while (w==1);/****************选择功能****************/switch(n){case 1:add_new_message();break;/*添加模块*/case 2:load_record();break;/*显示模块*/case 3:modify();break;/*修改模块*/case 4:delete();break;/*删除模块*/case 5:search();break;/*查询模块*/case 6:statistic();break;/*统计模块*/case 7:exit(0);break;/*退出模块*/}}2.各功能模块设计(1)添加模块【数据结构】【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。
实验设备管理系统设计C源代码
源代码#include <iostream>#include <cstdlib>#include <string>#include <fstream>#include <sstream>using namespace std;class Node //结点类,用于存放客户的各种信息{publiclong id; //实验设备编号string name; //名称string type //随便类型string suoshushiyanshi; //实验设备所属实验室string buytime; //购买时间string price; //价格string amount; //库存量string shengchanriqi; //生产日期string shiyongshouming; //使用寿命string weight; //重量Node *next; //指向下一结点的指针Node(long id=000,string nname="noname",string ntype="unkown".string nsuoshushiyanshi="unknow",string nbuytime="unknow",string nprice="unknow",string namount="unknow",string nshengchanriqi="unkown",string nshiyongshouming="unknow",string nweight="unknow");//构造函数,初始化变量};class Link//Link 类,把数据以链表的形式存储,链表的每个结点为一个Node对象{private:Node *head;//链表的头指针,为Node对象类型的指针public:Link();//构造函数,初始化变量bool link IsEmpty();//判断链表是否为空void linkInsert(Node *newnode);//向链表中插入新的结点bool linkDelete(int nid);//从链表中删除的结点void linkClear();//清空链表中数据void linkView();//查看链表中数据Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针Node* getHead();//获取头指针};Node::Node(long nid,string nname,string ntype,string nsuoshushiyanshi,string nbuytime,string nprice,string namount,string nshengchanriqi,string nshiyongshouming,string nweight){id=nid;name=nname;type=ntypesuoshushiyanshi=nsuoshushiyanshi;buytime=nbuytime;price=nprice;amount=namount;shengchanriqi=nshengchanriqi;shiyongshouming=nshiyongshouming;weight= nweight;next=NULL;}Link::Link() //构造函数,初始化链表为空{head=NULL;}bool Link::linkIsEmpty() //判断链表是否为空,空则返回true{return(head==NULL);}void Link::linkInsert(Node *newnode)//按id值从小到大的顺序,插入新的结点{Node *pl;if(!head)//链表为空的情况head=newnode;else if((head->id)>(newnode->id))//插入到第一个结点的情况{newnode->next=head;head=newnode;}else//插入到第二个及以后情况{pl=head;while(1){if(!(pl->next)){pl->next=newnode;break;}else if((pl->next)->id>newnode->id){newnode->next=pl ->next;pl ->next=newnode;break;}pl=pl ->next;}}}bool Link::linkDelete(int nid)//删除结点,成功则返回true {Node *p;if(head==NULL)//链表为空的情况return false;if(head->id==nid)//删除的为第一个结点的情况{head=head->next;return true}p=head;while(p->next)//删除的为第二个及以后的情况{if((p->next)->id==nid){p->next=(p->next)->next;return true;}p=p->next;}return false;}void Link::linkClear()//清空链表{head=NULL;}Node* Link::linkFind(int nid)//查找id 值为nid的结点,返回该结的的指针{Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULL while(p){if(p->id==nid)break;elsep=p->next;}return p;}void Link::linkView()//显示链表数据{Node *p=head;while(p){cout<<"实验设备编号:"<<p->id<<endl;cout<<"名称:"<<p->name<<endl;cout<<"类型:"<<p->type<<endl;cout<<"所属实验室:"<<p->suoshushiyanshi<<endl;cout<<"购买时间:"<<p->buytime<<endl;cout<<"价格:"<<p->price<<endl;cout<<"库存量:"<<p->amount<<endl;cout<<"生产日期:"<<p->shenchanriqi<<endl;cout<<"使用寿命:"<<p->shiyongshouming<<endl;cout<<"重量:"<<p->weight<<endl;cout<<"*******************************************************"<<endl;p=p->next;}}Node* Link::getHead(){return head;}//类Shebei,用于包装Link类及菜单操作class Shebei{private:Link clink;//Link 对象成员bool k;//记录数据是否被修改public:Shebei();void ShebeiClear();void ShebeiInsert();void ShebeiDelete();void ShebeiFind();void ShebeiModify();void ShebeiView();void ShebeiLoad();void ShebeiSave();void Exit();//退出程序void showMenu();//显示菜单void showTip();//显示操作提示void doMenu(char n);//执行相应菜单项功能};Shebei:: Shebei(){Link();//调用成员对象的构造函数ShebeiLoad();从文件中读取数据,创建链表k=false;//设置数据被修改}void Shebei::ShebeiClear()//清空设备记录{clink.linkClear();cout<<"成功清空设备信息记录!"<<endl;}void Shebei::ShebeiInsert()//插入设备记录{Node *p=new Node();cout<<"请输入设备编号:";cin>>p->id;cout<<"请输入名称:";cin>>p->name;cout<<"请输入类型:";cin>>p->type;cout<<"请输入所属实验室:";cin>>p->suoshushiyanshi;cout<<"请输入购买时间:";cin>>p->buytime;cout<<"请输入价格:";cin>>p->price;cout<<"请输入库存量:";cin>>p->amount;cout<<"请输入生产日期:";cin>>p->shengchanriqi;cout<<"请输入设备重量:";cin>>p->weight;if(!clink.linkFind(p->id))判断设备信息是否存在{clink.linkInsert(p);k=true;}elsecout<<"设备编号为"<<p->id<<"的设备已存在,插入失败! "<<endl; }void Shebei::ShebeiDelete()//删除设备记录{long i;if(clink.linkIsEmpty())//链表为空的情况cout<<"没有设备记录! "<<endl;else{cout<<"请输入设备编号:";cin>>i;if(clink.linkDelete(i)){cout<<"成功删除编号为"<<i<<"的实验记录!"<<endl;k=true;}elsecout<<"没有找到编号为"<<i<<"的设备!"<<endl;}}void Shebei::ShebeiFind()//查找某编号的设备记录{long n;Node *p;if(clink.linkIsEmpty())//链表为空的情况cout<<"没有设备记录!"<<endl;else{cout<<"请输入要查找的设备的编号:";cin>>n;p=clink.linkFind(n);//获得找到的结点的指针if(p)//指针值不为NULL时{cout<<"实验设备编号:"<<p->id<<endl;cout<<"名称:"<<p->name<<endl;cout<<"类型:"<<p->type<<endl;cout<<"所属实验室:"<<p->suoshushiyanshi<<endl;cout<<"购买时间:"<<p->buytime<<endl;cout<<"价格:"<<p->price<<endl;cout<<"库存量:"<<p->amount<<endl;cout<<"生产日期:"<<p->shengchanriqi<<endl;cout<<"使用寿命:"<<p->shiyongshouming<<endl;cout<<"重量:"<<p->weight<<endl;}else//指针值为NULL时cout<<"没有找到编号为"<<n<<"的设备记录!"<<endl;}}void Shebei::ShebeiModify()//修改某编号的设备信息{long n;Node *p;if(clink.linkIsEmpty())//链表为空的情况cout<<"没有设备记录!"<<endl;else{cout<<"请输入要修改的设备的编号:";cin>>n;p=clink.linkFind(n);//获得找到的结点的指针if(p)//指针值不为NULL时{cout<<"实验设备编号:"<<p->id<<endl;cout<<"名称:"<<p->name<<endl;cout<<"类型:"<<p->type<<endl;cout<<"所属实验室:"<<p->suoshushiyanshi<<endl;cout<<"购买时间:"<<p->buytime<<endl;cout<<"价格:"<<p->price<<endl;cout<<"库存量:"<<p->amount<<endl;cout<<"生产日期:"<<p->shengchanriqi<<endl;cout<<"使用寿命:"<<p->shiyongshouming<<endl;cout<<"重量:"<<p->weight<<endl;cout<<"请输入新的设备信息"<<endl;cout<<"请输入设备编号:";cin>>p->id;cout<<"请输入名称:";cin>>p->name;cout<<"请输入类型:";cin>>p->type;cout<<"请输入所属实验室:";cin>>p->suoshushiyanshi;cout<<"请输入购买时间:";cin>>p->buytime;cout<<"请输入价格:";cin>>p->price;cout<<"请输入库存量:";cin>>p->amount;cout<<"请输入生产日期:";cin>>p->shengchanriqi;cout<<"请输入设备重量:";cin>>p->weight;}else//指针值为NULL时cout<<"没有找到编号为"<<n<<"的设备记录! "<<endl;}}void Shebei::ShebeiView()//显示所有设备的记录{if(clink.linkIsEmpty())cout<<"没有设备记录! "<<endl;elseclink.linkView();}void Shebei::ShebeiLoad()//从文件中读入数据,创建链表{Node *p;long nid;ifstream infile("data.txt");if(!infile)cerr<<"错误:数据文件不能打开!\n";elsewhile(infile>>nid)//读取客户,直到读空{p=new Node();p->id=nid;infile>>p->name>>" "; //读取名称infile>>p->type>>" ";infile>>p->suoshushiyanshi>>" ";infile>>p->buytime>>" ";infile>>p->price>>" ";infile>>p->amount>>" ";infile>>p->shengchanriqi>>" ";infile>>p->weight>>" ";clink.linkInsert(p);}infile.close(); //关闭文件}void Shebei::ShebeiSave()//将数据保存到文件{Node *p=clink.getHead();ofstream outfile("data.txt");if(!outfile)cerr<<"错误:数据文件不能打开!\n";else{while(p){outfile<<p->id<<" "<<p->name<<" "<<p->type<<""<<p->suoshushiyanshi<<" "<<p->buytime<<" "<<p->price<<" "<<p->amount<<" "<<p->shengchanriqi<<" "<<p->weight<<" "<<endl;p=p->next;}k=false;cout<<"保存成功!"<<endl;}}void Shebei::Exit(){char s='Y';if(k)//判断数据是否修改{cout<<"数据已经改变,是否保存?(y/n):"cin>>s;if(s=='Y'lls=='Y')ShebeiSave();}cout<<"已安全退出,";system("pause");exit(0);}void Shebei::showMenu()cout<<"\t\t*********************************************"<<endl; cout<<"\t\t* 实验室设备管理系统*"<<endl;cout<<"\t\t* *"endl;cout<<"\t\t* 1--清除所有设备信息*"endl;cout<<"\t\t* *"endl;cout<<"\t\t* 2--添加:增加一个设备到设备信息中*"endl;cout<<"\t\t* *"endl;cout<<"\t\t* 3--删除:删除指定设备数据*"endl;cout<<"\t\t* *"endl;cout<<"\t\t* 4--查找:根据设备数据查找设备信息*"endl;cout<<"\t\t* *"endl;cout<<"\t\t* 5--修改:修改指定设备信息*"endl; cout<<"\t\t* *"endl; cout<<"\t\t* 6--显示:在屏幕上显示所有设备的消息*"endl; cout<<"\t\t* *"endl; cout<<"\t\t* 7--存储:将设备信息保存在一个文件中*"endl; cout<<"\t\t* *"endl; cout<<"\t\t* 0--退出:安全的退出本系统*"endl;cout<<"\t\t********************************************"endl;}void Shebei::showTip(){cout<<endl;cout<<"*****************操作完成***************"<<endl;cout<<"***************选择0--7继续************"<<endl;cout<<"请选择:";}void Shebei::doMenu(char n){switch(n){case'1':ShebeiClear();break;case'2':ShebeiInsert();break;case'3':ShebeiDelete();break;case'4':ShebeiFind();break;case'5':ShebeiModify();break;case'6':ShebeiView();break;case'7':ShebeiSave();break;case'0':Exit();break;default:cout<<"输入错误!";}}int main(){Shebei c;char i='9';c.showMenu();cout<<"欢迎来到实验室设备管理系统:"<<endl;cout<<"请选择你需要的服务:";while(1){cin>>i;system("cls"); //清除屏幕c.showMenu();c.doMenu(i);c.showTip();}return 0;}。
(完整word版)仪器仪表管理系统设计——C语言
仪器仪表管理系统【要求】系统功能的基本要求:(1)新的仪器仪表信息的录入;(2)在借出、归还、维修时对仪器仪表信息的修改;(3)对报废仪器仪表信息的删除;(4)按照一定的条件查询符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间点(借入时间、借出时间、归还时间)查询等(5)对查询结果的输出。
【提示】数据结构采用结构体。
仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。
二、需求分析根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。
三、总体设计系统功能模块图四、详细设计1.主函数主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。
其各功能模块用菜单方式选择。
本题将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。
【程序】main(){menu();}菜单部分设计如下:N主函数的菜单流程图【程序】menu(){int n,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/do{puts("\t\t**************MENU********************\n\n");puts("\t\t\t\t 1.enter");puts("\t\t\t\t 2.modify");puts("\t\t\t\t 3.search");puts("\t\t\t\t 4.delete");puts("\t\t\t\t 5.exit");puts("\n\n\t\t ******************************************\n");printf("Choice your number(1-5):[ ]\b\b");scanf("%d",&n);if(n<1||n>5) /*对选择的数字作判断*/{w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:enter();break; /*输入模块*/case 2:modify();break; /*修改模块*/case 3:search();break; /*查找模块*/case 4:delete();break; /*删除模块*/case 5:exit(0); /*退出*/}}2.各功能模块设计(1)输入模块【数据结构】【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。
实验设备管理系统-c语言实现
一、设计目的1.1 设计题目:设计实现一个实验设备管理系统。
实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
1.2 设计要求(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的破损耗费和遗损处理(4)设备的查询(5)采用二进制文件方式存储数据,系统以菜单方式工作1.3 系统功能需求分析系统功能需求:设备信息的录入、修改;设备分类统计;设备破损耗费和遗损处理;设备信息查询;二进制文件方式存储数据;菜单方式工作;用户操作流程:运行程序后会弹出菜单界面,根据菜单界面的提示选择需要完成的相应功能即可完成操作。
数据处理流程:通过input函数将用户输入的各信息以二进制文件方式存储数据,后续可根据需要调用change函数、sort函数、search函数以及del函数进行数据的相应处理,最后通过output函数实现数据的输出显示。
二、总体设计实验设备管理系统功能结构图如下所示:三、详细设计3.1 结构体struct equipment_infor//定义结构体包含各设备信息{char ID[20]; //设备编号int sort; //设备种类(1代表微机 2代表打印机 3代表扫描机)char name[20]; //设备名称float price; //设备价格char buy_date[20]; //设备购买日期int state; //设备状态(报废为1,未报废为0)char scrap_date[20]; //设备报废日期}device[NUM];定义结构体数组,其中包含设备所有信息,方便数据信息的录入、输出等。
3.2 主要函数3.2.1 void load()加载已有数据函数void load() //加载已有数据{count=0;FILE* fp_5=fopen("binary.txt","rb");if(fp_5==NULL){return;}for(int i=0;;i++,count++){if(feof(fp_5)!=0){count--;break;}fread(&device[i], sizeof(struct equipment_infor),1,fp_5);}fclose(fp_5);}此函数实现了加载已有信息的功能,能够使得下次运行时上次的数据得以保留,同时计算出了count的值,可提供后续函数for循环的循环条件,一举两得。
实验设备信息管理系统——C语言
实验设备信息管理系统题目要求:实验设备信息包括:设备编号,设备种类(如微机,打印机,扫描仪等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:1.能够完成对设备的录入和修改。
2.对设备进行分类统计。
3.设备的查询。
需求分析:实验室设备信息用文件储存,提供文件的输入输出操作;要能够完成设备的录入和修改工作,需要添加设备的添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的查询需要提供查找操作,设备的查询可根据设备编号,设备种类,设备名称,设备购入日期等多种方式查询;另外还要提供键盘式选择菜单以实现选择功能。
总体设计:试验设备信息添加输入模块,试验设备信息修改模块,实验设备信息统计模块和试验设备信息查询模块。
建立试验设备信息结构体,结构体成员包括设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期。
我的程序设计如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 50void menu();void add();void modify();void stat();void search();int load();struct equipment{char num[10]; /*设备编号*/char kind[10]; /*设备种类*/char name[10]; /*设备名称*/char money[10]; /*设备价格*/char brithday[10]; /*设备日期*/char bf[10]; /*是否报废*/char badday[10]; /*报废日期*/}eup[N],temp;/* 返回主函数模块 */void menu(){int n;puts("\t\t************************MENU*************************\n\n" );puts("\t\t\t\t 1.tianjia shiyan ");puts("\t\t\t\t 2.xiugai");puts("\t\t\t\t 3.tongji");puts("\t\t\t\t 4.chaxun");puts("\t\t\t\t 5.EXIT");puts("\n\n\t\t****************************************************** ****\n");printf("please choice(1-5):[ ]\b\b");scanf("%d",&n);switch(n){case 1:add();break;case 2:modify();break;case 3:stat();break;case 4:search();break;case 5:exit(0);default:menu();}}void main()/*主函数*/{menu();}/* 追加模块 */void add(){int i;FILE *fp;fp=fopen("eup.txt","a");if((fp=fopen("eup.txt","a"))==NULL){printf("cannot open file\n");}printf("\nshuru:num\tkind\tname\tmoney\tbrithday\tbf\tbadday\n"); scanf("%s",temp.num);scanf("%s",temp.kind);scanf("%s",);scanf("%s",temp.money);scanf("%s",temp.brithday);scanf("%s",temp.bf);scanf("%s",temp.badday);fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s\t%s",temp.num,temp.kind,temp.na me,temp.money,temp.brithday,temp.bf,temp.badday);fclose(fp);printf("\n\n\tSuccessful.^_^\n\n");printf("\n********************************************************** *********************\n");printf("What do you want to do?\n\n");printf("\t1.Continue to add\t2.Back to main menu\t3.Exit\n"); printf("\n********************************************************** *********************\n");printf("\n\nInput your choice(1-3):");scanf("%d",&i);if(i==1){add();}if(i==2){menu();}if(i==3){exit(0);}}/* 修改模块 */void modify(){FILE *fp;int n,k=0,b,c,i,e;char a[10];n=load();for(i=0;i<n;i++){printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}printf("\nInput the shebei number you want to modify!\n\nThe equ number:");scanf("%s",a);for(i=0;i<n;i++)if(strcmp(a,eup[i].num)==0) /*查找要修改的设备信息*/{k=1;c=i;break;}if(k==0){printf("\n\nsorry meiyou zhaodao!");printf("\t1).zaici chazhao 2).fanhui MENU []\b\b");scanf("%d",&b);if(b==1){modify();}if(b==2){menu();}}if(k==1){printf("\nFind the shebei!\n");printf("\nPlease input the new information:\n");printf("\nnum kind name money brithday bf badday\n"); scanf("%s",eup[c].num);scanf("%s",eup[c].kind);scanf("%s",eup[c].name);scanf("%s",eup[c].money);scanf("%s",eup[c].brithday);scanf("%s",eup[c].bf);scanf("%s",eup[c].badday);}fp=fopen("eup.txt","w");for(i=0;i<n;i++){fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup [i].name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}fclose(fp);printf("\n\n\tSuccessful.^_^\n\n");printf("\n********************************************************** *********************\n");printf("What do you want to do?\n\n");printf("\t1.Continue to modify\t2.Back to main menu\t3.Exit\n"); printf("\n********************************************************** *********************\n");printf("\n\nInput your choice(1-3):");scanf("%d",&e);if(e==1){modify();}if(e==2){menu();}if(e==3){exit(0);}}/* 分类统计模块 */void stat(){int n,i;FILE *fp;fp=fopen("eup.txt","r");if((fp=fopen("eup.txt","r"))==NULL){printf("cannot open file\n");}while(!feof(fp)){fscanf(fp,"\n%s %s %s %s %s %s %s",temp.num,temp.kind,,temp .money,temp.brithday,temp.bf,temp.badday);printf("\n%s\t%s\t%s\t%s\t%s\t%s\t%s",temp.num,temp.kind,,t emp.money,temp.brithday,temp.bf,temp.badday);}fclose(fp);menu();}/* 查找模块 */void search(){int i,n,k=-1,w1,w2,w3;char c[10];n=load();printf("\n\n chazhao yiju:\n\n1).shebei number 2).kind 3).name 4).birthday [ ]\b\b");scanf("%d",&w3);switch(w3){case 1:{printf("\n\nprint yao chazhao de shebei number! num:");scanf("%s",c);for(i=0;i<n;i++)if(strcmp(c,eup[i].num)==0){k=i;printf("\nFind the shebei!\n");printf("\nThe shebei information:\n");printf("\nnum kind name money brithday bf badday\n\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}if (k!=-1)printf("\n\nSuccessful.^_^.");if (k==-1)printf("Did not find the shebei!\n");printf("\n\t1).Search again 2).Back menu [ ]\b\b"); scanf("%d",&w2);if(w2==2) menu();if(w2==1) search();}break;case 2:{printf("\n\nprint yao chazhao de shebei kind! kind:");scanf("%s",c);for(i=0;i<n;i++)if(strcmp(c,eup[i].kind)==0)k=i;printf("\nFind the shebei!\n");printf("\nThe shebei information:\n");printf("\nnum kind name money brithday bf badday\n\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}if (k!=-1)printf("\n\nSuccessful.^_^.");if (k==-1)printf("Did not find the shebei!\n");printf("\n\t1).Search again 2).Back menu [ ]\b\b"); scanf("%d",&w2);if(w2==2) menu();if(w2==1) search();}break;case 3:{printf("\n\nprint yao chazhao de shebei name! name:");scanf("%s",c);for(i=0;i<n;i++)if(strcmp(c,eup[i].name)==0){k=i;printf("\nFind the shebei!\n");printf("\nThe shebei information:\n");printf("\nnum kind name money brithday bf badday\n\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}if (k!=-1)printf("\n\nSuccessful.^_^.");if (k==-1)printf("Did not find the shebei!\n");printf("\n\t1).Search again 2).Back menu [ ]\b\b"); scanf("%d",&w2);if(w2==2) menu();if(w2==1) search();}break;{printf("\n\nprint yao chazhao de shebei birthday! birthday:");scanf("%s",c);for(i=0;i<n;i++)if(strcmp(c,eup[i].brithday)==0){k=i;printf("\nFind the shebei!\n");printf("\nThe shebei information:\n");printf("\nnum kind name money brithday bf badday\n\n");printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].num,eup[i].kind,eup[i]. name,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);}if (k!=-1)printf("\n\nSuccessful.^_^.");if (k==-1)printf("Did not find the shebei!\n");printf("\n\t1).Search again 2).Back menu [ ]\b\b"); scanf("%d",&w2);if(w2==2) menu();if(w2==1) search();}}}int load(){FILE *fp;int i;if((fp=fopen("eup.txt","r"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fscanf(fp,"%s %s %s %s %s %s %s\n",eup[i].num,eup[i].kind,eup[i].nam e,eup[i].money,eup[i].brithday,eup[i].bf,eup[i].badday);fclose(fp);return(i);}下面是程序运行的流程图。
c语言课程设计仪器管理
c语言课程设计仪器管理一、教学目标本节课的教学目标是使学生掌握C语言中关于仪器管理的知识,包括了解仪器的结构、功能和操作方法,能够运用C语言进行简单的仪器控制程序设计。
具体分为以下三个部分:1.知识目标:使学生了解常见的仪器类型及其在计算机系统中的应用,理解仪器控制的基本原理,掌握C语言中与仪器管理相关的API函数。
2.技能目标:培养学生能够运用C语言编写简单的仪器控制程序,能够阅读和分析仪器控制程序代码,提高学生的编程能力和问题解决能力。
3.情感态度价值观目标:培养学生对计算机科学和程序设计的兴趣,激发学生积极探索和创新的精神,培养学生的团队协作意识和沟通能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.仪器的基本概念:介绍常见的仪器类型,如输入输出设备、存储设备等,以及它们在计算机系统中的作用和功能。
2.仪器控制的基本原理:讲解仪器控制程序的设计方法,包括仪器的初始化、数据读写、中断处理等。
3.C语言中的仪器管理API:介绍C语言中与仪器管理相关的API函数,如文件操作函数、设备控制函数等,并通过实例演示如何使用这些函数。
4.仪器控制程序的编写与调试:讲解如何运用C语言编写简单的仪器控制程序,并进行调试和运行,使学生能够掌握仪器控制程序的设计与实现过程。
三、教学方法为了提高教学效果,本节课将采用以下几种教学方法:1.讲授法:教师讲解仪器的基本概念、仪器控制的基本原理以及C语言中的仪器管理API,使学生掌握相关知识。
2.案例分析法:通过分析具体的仪器控制程序案例,使学生了解仪器控制程序的设计方法和技巧。
3.实验法:安排实验室实践环节,让学生亲自动手编写和调试仪器控制程序,提高学生的实际操作能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,培养学生团队合作精神和沟通能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用与C语言程序设计相关的教材,为学生提供理论知识的学习。
仪器仪表管理系统--C语言课程设计报告
5.3.2输入模块21
5.3.3添加模块22
5.3.4修改模块22
5.3.5删除模块23
5.3.6查找模块24
5.3.7退出模块24
6.总结25
6.1编程中遇到的困难及解决方法25
6.2心得及建议25
7.致谢25
参考文献25
1
题目:仪器仪表管理系统
系统功能的基本要求:
(1)新的仪器仪表信息的录入。
struct equip
{ char num[10];char name[50];char pt[10]; char bt[10];char lt[10]; char rt[10]; char mt[10];
char st[5];
char time[5];/*为下面程序中按时间查找和修改时记录输入的时间*/
【程序】
main()
{
menu();
}
menu()
{
int n,w;
/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/
do
{ printf("\t\t**********************MENU*****************************\n\n");
if(n<1||n>6)/*对选择的数字做判断*/
{ w=1; getchar();}
else w=0;
} while(w==1);
switch(n)
{ case 1:newin();break;/*输入模块*/
case 2:add();break;/*添加模块*/
case 3:modify();break)
lab c c++ 实验室设备管理系统C C++源代码 完整版
fprintf(fp,"%s\n",current->factory);
fprintf(fp,"%s\n",current->buy_date);
//printf("%d %s %s %s %s ",current->num,current->name,current->model,current->factory,current->buy_date);
current = current->next;
}
fclose(fp);
}
//删除设备
void deleteEum){
if(head->next==NULL){
printf("没有设备!请先录入设备!");
char factory[20]; //厂家
char buy_date[20]; //购买日期
struct equipment *next;
char repair_time[20];
}Equipment;
void fprintE(Equipment *head); //将设备信息输出到文件
fclose(fp);
printf("记录成功!");
break;
}case 2:{
int t = 0;
printf("请输入查找编号:");
scanf("%d",&num);
printf("没有设备!请先录入设备!");
c语言课程设计仪器仪表
c语言课程设计仪器仪表一、教学目标本课程的目标是让学生掌握C语言编程的基本知识,培养学生运用C语言进行仪器仪表程序设计的能力。
具体目标如下:1.知识目标:a.掌握C语言的基本语法和数据类型;b.理解函数的定义和调用;c.学习常用的算法和数据结构;d.了解仪器仪表的基本原理和接口技术。
2.技能目标:a.能够编写简单的C语言程序;b.能够使用C语言进行仪器仪表的数据采集和处理;c.能够使用C语言实现仪器仪表的控制和调试;d.能够阅读和分析仪器仪表的程序代码。
3.情感态度价值观目标:a.培养学生对编程语言的兴趣和好奇心;b.培养学生解决问题的能力和创新精神;c.培养学生团队协作和沟通的能力;d.培养学生对仪器仪表行业的认知和责任感。
二、教学内容根据课程目标,本课程的教学内容如下:1.C语言基础知识:a.C语言概述和语法;b.数据类型、变量和运算符;c.控制语句和函数。
2.C语言高级特性:a.数组和字符串;b.指针和内存管理;c.结构体和文件操作。
3.仪器仪表编程:a.仪器仪表的基本原理和接口技术;b.数据采集和处理的方法;c.控制和调试的技巧。
4.综合案例:a.设计一个简单的仪器仪表控制系统;b.使用C语言实现数据的采集、处理和显示;c.对系统进行调试和优化。
三、教学方法为了达到课程目标,本课程采用以下教学方法:1.讲授法:讲解C语言的基本语法和数据类型,以及仪器仪表的基本原理和接口技术。
2.案例分析法:分析具体的仪器仪表编程案例,让学生了解实际应用中的问题和解决方案。
3.实验法:让学生动手编写和调试C语言程序,培养学生的实际操作能力。
4.小组讨论法:分组进行讨论和实践,培养学生的团队协作和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程准备以下教学资源:1.教材:《C语言程序设计》或《C语言入门与实践》;2.参考书:《C语言编程思想》或《C语言深度探索》;3.多媒体资料:教学PPT、视频教程、在线编程练习平台;4.实验设备:计算机、编程器、传感器和仪器仪表设备。
仪器仪表管理系统C++程序代码
仪器仪表管理系统C++程序代码仪器仪表管理系统把以下代码复制到CPP文件中,就可以在编译运行了(最好用VS 运行):// 仪器仪表管理系统.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include#include#include#includeusing namespace std;#define N 100struct machine{char name[10];charnum[10];charbuy_time[9];charborrow_time[100][9];charlend_time[100][9];charreturn_time[100][9];charmend_time[100][9];int condition;};classC_machine{public:C_machine();~C_machine();void menu();void enter();void add();void modify();void del();voidsearch_statics(); void input(inti);void save(int n);int load();void printf_one(inti); intmodify_data(inti); voidbasic_search(); voidsearch_by_time(); voidsearch_by_line(); voidborrow_time(); voidlend_time(); voidreturn_time(); voidbuy_line(); voidlend_line(); voidmend_line(); private:inti,n;machine mac[N]; machine m;};C_machine::C_machine() {}C_machine::~C_machine() {}voidC_machine::input(inti){cout<<"\n请输入仪器或仪表名:[ ]\b";cin>>mac[i].name;cout<<"\n请输入仪器或仪表编号:[ ]\b";cin>>mac[i].num;cout<<"\n请输入仪器或仪表购买时间:[ ]\b"; cin>>mac[i].buy_time;mac[i].condition=0;}voidC_machine::save(int n){ofstreamoutfile;outfile.open("machine.txt",ios::out);if(!outfile)cout<<"\n该文件不能打开"<<endl;< bdsfid="139" p=""></endl;<>for(i=0; i<="" p="">outfile.write((char *)&mac[i],sizeof(struct machine)); outfile.close();}intC_machine::load(){i=0;fstreaminfile("machine.txt",ios::in);while(infile.read((char *)&mac[i],sizeof(struct machine)))i++;infile.close();return (i-1);}voidC_machine::printf_one(inti){int j;cout<<"\n名称:"<<mac[i].name<<endl;< bdsfid="156" p=""></mac[i].name<<endl;<>cout<<"编号:"<<mac[i].num<<endl;< bdsfid="158" p=""></mac[i].num<<endl;<>cout<<"购买时间:"<<mac[i].buy_time<<endl;< bdsfid="160" p=""></mac[i].buy_time<<endl;<>cout<<"借入时间:";for(j=0; strlen(mac[i].borrow_time[j])!=0; j++)cout<<mac[i].borrow_time[j]<<"\t";< bdsfid="164" p=""></mac[i].borrow_time[j]<<"\t";<>cout<<"\n借出时间:";for(j=0; strlen(mac[i].lend_time[j])!=0; j++)cout<<mac[i].lend_time[j]<<"\t";< bdsfid="168" p=""></mac[i].lend_time[j]<<"\t";<>cout<<"\n归还时间:";for(j=0; strlen(mac[i].return_time[j])!=0; j++)cout<<mac[i].return_time[j]<<"\t";< bdsfid="172" p=""></mac[i].return_time[j]<<"\t";<>cout<<"\n维修时间:";for(j=0; strlen(mac[i].mend_time[j])!=0; j++)cout<<mac[i].mend_time[j]<<"\t";< bdsfid="176" p=""></mac[i].mend_time[j]<<"\t";<>cout<<"\n状态信息:";if(mac[i].condition==0) cout<<"可借";if(mac[i].condition==1) cout<<"已借";if(mac[i].condition==2) cout<<"在修";cout<<"\n"<<endl;< bdsfid="182" p=""></endl;<>}intC_machine::modify_data(inti){int c,w,w1,j;char m[9];do{do{cout<<"\n您要修改:\n\n\t1.名称 2.编号 3.购买时间\n\n\t"<<endl;< bdsfid="193" p=""></endl;<>cout<<"4.借入时间5.借出时间6.归还时间7.维修时间\t[]\b"; cin>>c;if(c<1||c>7){cout<<"\n输入错误!!!请重新选择:[ ]"<<endl;< bdsfid="198" p=""></endl;<>w=1;getchar();}else w=0;}while(w==1);switch(c){case 1:cout<<"\n输入名称:";cin>>mac[i].name;break;case 2:cout<<"\n输入编号:";cin>>mac[i].num;break;case 3:cout<<"\n输入时间:";cin>>mac[i].buy_time;break;case 4:cout<<"\n输入时间:";cin>>m;for(j=0; j<100; j++)if(!strlen(mac[i].borrow_time[j])) {strcpy_s(mac[i].borrow_time[j],m); break;};break;case 5:cout<<"\n输入时间:";cin>>m;for(j=0; j<100; j++)if(!strlen(mac[i].lend_time[j])) {strcpy_s(mac[i].lend_time[j],m); break;};break;case 6:cout<<"\n输入时间:";cin>>m;for(j=0; j<100; j++)if(!strlen(mac[i].return_time[j])){strcpy_s(mac[i].return_time[j],m);break;};break;case 7:cout<<"\n输入时间:";cin>>m;for(j=0; j<100; j++)if(!strlen(mac[i].mend_time[j])){strcpy_s(mac[i].mend_time[j],m);break;};break;}cout<<"\n修改成功!\n\n\t 1.确定 2.重新修改 3.退出(不保存该次修改)"; cout<<"\n您选择(1-3):[ ]";cin>>w1;}while(w1==2);return(w1);}voidC_machine::basic_search(){int k,w,w1;char c[10];n=load();do{k=-1;cout<<"\n请输入要查询的仪器或仪表的名称或编号;[ ]";cin>>c;for(i=0; i<="" p="">if(strcmp(c,mac[i].num)==0||strcmp(c,mac[i].name)==0){printf_one(i);k=i;cout<<"\n继续查询?1.是 2.退出[ ]\b\b";cin>>w;if(w==1) w1=1;else w1=0;}if(k==-1){cout<<"\n该仪器或仪表不存在!!!"<<endl;< bdsfid="290" p=""></endl;<>cout<<"继续查询?1.是 2.退出[ ]\b\b";cin>>w;if(w==1) w1=1;else w1=0;}}while(w1==1);menu();}voidC_machine::borrow_time(){char c[9];n=load();do{cout<<"\n请输入时间(如19880512):[ ]";cin>>c;for(i=0; i<="" p="">for(j=0; j<100; j++)if(strlen(mac[i].borrow_time[j]))if(strcmp(mac[i].borrow_time[j],c)==0){printf_one(i);k++;break;}cout<<"\n统计结果:1.是 2.否\t[ ]\b";cin>>w0;if(w0==1) cout<<"\n该天共借入"<<k<<"个仪器或仪表"; 2.退出\t[="" ]\b";<="" bdsfid="322" cout<<"\n继续查询?\t1.是="" p=""></k<<"个仪器或仪表";>cin>>w0;if(w0==1) w=1;else w=0;}while(w==1);menu();}voidC_machine::lend_time(){char c[9];n=load();do{cout<<"\n请输入时间(如19880512):[ ]";cin>>c;for(i=0; i<="" p="">for(j=0; j<100; j++)if(strlen(mac[i].lend_time[j]))if(strcmp(mac[i].lend_time[j],c)==0){printf_one(i);k++;break;}cout<<"\n统计结果: 1.是 2.否、\t[ ]\b";cin>>w0;if(w0==1) cout<<"\n该天共借出"<<k<<"个仪器或仪表"; 2.退出\t[="" ]\b";<="" bdsfid="352" cout<<"\n继续查询?\t1.是="" p=""></k<<"个仪器或仪表";>cin>>w0;if(w0==1) w=1;else w=0;}while(w==1);menu();}voidC_machine::return_time(){char c[9];n=load();do{cout<<"\n请输入时间(如19880512):[ ]";cin>>c;for(i=0; i<="" p="">for(j=0; j<100; j++)if(strlen(mac[i].return_time[j]))if(strcmp(mac[i].return_time[j],c)==0){printf_one(i);k++;break;}cout<<"\n统计结果: 1.是 2.否、\t[ ]\b";cin>>w0;if(w0==1) cout<<"\n该天共归还"<<k<<"个仪器或仪表";< bdsfid="382" p=""></k<<"个仪器或仪表";<>cout<<"\n继续查询?\t1.是 2.退出\t[ ]\b";cin>>w0;if(w0==1) w=1;else w=0;}while(w==1);menu();}voidC_machine::buy_line(){char a[9],b[9];n=load();do{cout<<"\n请输入时间间隔:\n"<<endl;< bdsfid="399" p=""></endl;<>cout<<"起始时间(如19880512):";cin>>a;cout<<"终止时间(如19880512):";cin>>b;for(i=0; i<="" p="">if(strcmp(mac[i].buy_time,a)>0&&strcmp(mac[i].buy_time,b) <0){printf_one(i);k++;}cout<<"\n统计结果?1.是 2.否\t[ ]\b"<<endl;< bdsfid="412" p=""></endl;<>cin>>w0;if(w0==1) cout<<"\n该时间段共购买仪器或仪表"<<k<<"个";2.退出\t[="" ]\b";<="" bdsfid="415" cout<<"\n继续查询?\t1.是="" p=""></k<<"个";>cin>>w0;if(w0==1) w1=1;else w1=0;}while(w1==1);menu();}voidC_machine::lend_line(){intj,k=0,m=0,w0,w1;char a[9],b[9];n=load();do{cout<<"\n请输入时间间隔:\n\n\t";cout<<"起始时间(如19880512):[ ]";cin>>a;cout<<"\n\t终止时间(如19880512):[ ]";cin>>b;for(i=0; i<="" p="">{for(j=0; j<100; j++)if(strlen(mac[i].lend_time[j]))if(strcmp(a,mac[i].lend_time[j])<0&&strcmp(b,mac[i].lend_ti me[j])>0){k++;printf_one(i);}}cout<<"\n统计结果?1.是2.否\t[]\b"<<endl;< bdsfid="447" p=""></endl;<>cin>>w0;if(w0==1)cout<<"\n该时间段共购买仪器或仪表"<<k<<"个";< bdsfid="451" p=""></k<<"个";<>cout<<"\n继续查询?\t1.是 2.退出\t[ ]\b";cin>>w0;if(w0==1) w1=1;else w1=0;}while(w1==1);menu();}voidC_machine::mend_line(){intj,k=0,m=0,w0,w1;char a[9],b[9];n=load();do{cout<<"\n请输入时间间隔:\n\n\t";cout<<"起始时间(如19880512):[ ]";cin>>a;cout<<"\n\t终止时间(如19880512):[ ]";cin>>b;for(i=0; i<="" p="">{for(j=0; j<100; j++)if(strlen(mac[i].mend_time[j]))if(strcmp(a,mac[i].mend_time[j])<0&&strcmp(b,mac[i].mend _time[j])>0){k++;printf_one(i);}}cout<<"\n统计结果?1.是 2.否\t[ ]\b"<<endl;< bdsfid="484" p=""></endl;<>cin>>w0;if(w0==1)cout<<"\n该时间段共维修仪器或仪表"<<k<<"个";< bdsfid="488" p=""></k<<"个";<>cout<<"\n继续查询?\t1.是 2.退出\t[ ]\b";cin>>w0;if(w0==1) w1=1;else w1=0;}while(w1==1);menu();}voidC_machine::search_by_time(){intk,w;n=load();do{cout<<"\n请输入时间类型:\n\n\t1.借入时间2.借出时间3.归还时间\b[ ]"; cin>>k;if(k<1||k>3){w=1;}else w=0;}while(w==1);switch(k){case 1:borrow_time();break;case 2:lend_time();break;case 3:return_time();break;}}voidC_machine::search_by_line(){intk,w;n=load();do{cout<<"\n请选择时间类型:\n\t1购买时间2借出时间3维修时间\b[ ]\t"; cin>>k;if(k<1||k>3){w=1;getchar();}else w=0;}while(w==1);switch(k){case 1:buy_line();break;case 2:lend_line();break;case 3:break;}}voidC_machine::menu(){intm,w;do{cout<<"\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^仪器仪表管理系统^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"<<endl;< bdsfid="557" p=""></endl;<>cout<<"\t\t**********************菜单**********************"<<endl;< bdsfid="559" p=""></endl;<> cout<<"\t\t*\t\t1.输入仪器仪表信息\t\t*\b\b"<<endl;< bdsfid="561" p=""></endl;<>cout<<"\t\t*\t\t2.追加新信息\t\t*\b\b"<<endl;< bdsfid="563" p=""></endl;<>cout<<"\t\t*\t\t3.修改信息\t\t*\b\b"<<endl;< bdsfid="565" p=""></endl;<>cout<<"\t\t*\t\t4.删除信息\t\t*\b\b"<<endl;< bdsfid="567" p=""></endl;<>cout<<"\t\t*\t\t5.查询并统计信息\t\t*\b\b"<<endl;< bdsfid="569" p=""></endl;<>cout<<"\t\t*\t\t6.退出\t\t*\b\b"<<endl;< bdsfid="571" p=""></endl;<>cout<<"\n\n\t\t********************************************** **\n"<<endl;< bdsfid="573" p=""></endl;<>cout<<"您选择操作(1-6):[ ]\b\b";cin>>m;if(m<1||m>6){cout<<"\n选择错误!请重新选择!";getchar();w=1;}else w=0;}while(w==1);switch(m){case 1:enter();break;case 2:add();break;case 3:modify();break;case 4:break;search_statics();break;case 6:exit(0);}}voidC_machine::enter(){cout<<"请输入仪器仪表的个数(0-"<<n-1<<"):[ ]\b";<="" bdsfid="608" p=""></n-1<<"):[>cin>>n;cout<<"\n 开始输入信息"<<endl;< bdsfid="611" p=""></endl;<>for(i=0; i<="" p="">{cout<<"\n请输入第"<<i+1<<"个仪器或仪表的信息";< bdsfid="616" p=""></i+1<<"个仪器或仪表的信息";<> input(i);mac[i].condition=0;}if(i!=0) save(n);menu();}voidC_machine::add(){intm,k;n=load();cout<<"请输入要追加的仪器的个数(0-"<<n-1-n<<"):"; bdsfid="628" cin="">>m;</n-1-n<<"):";>for(i=n; i<="" p="">{cout<<"\n请输入追加的第"<<i-n+1<<"个仪器或仪表的信息"; bdsfid="634" input(i);<="" p=""></i-n+1<<"个仪器或仪表的信息";>}ofstreamoutfile;outfile.open("machine.txt",ios::app);if(!outfile)cout<<"文件不能打开!"<<endl;< bdsfid="640" p=""></endl;<>for(i=n; i<="" p="">outfile.write((char *)&mac[i],sizeof(struct machine));outfile.close();}voidC_machine::modify(){int k,w0=1,w1,w2=0;char c[10];n=load();do{do{k=-1;cout<<"\n请输入要修改的仪器或仪表的名称或编号;[]"; cin>>c;for(i=0; i<="" p="">if(strcmp(c,mac[i].num)==0||strcmp(c,mac[i].name)==0){k=i;m=mac[i];}if(k==-1) cout<<"\n该仪器不存在!";}while(k==-1);printf_one(k);w1=modify_data(k);if(w1==1){cout<<"\n修改成功!\n\n继续修改?\t1.是 2.否\t[ ]\b\b"; cin>>w0;w2=1;cout<<"\n\n\n\n\n\n\n\n\n\n"<<endl;< bdsfid="674" p=""></endl;<>}else{w0=0;if(w2==1) mac[k]=m;}if(w0!=1&&w2==1) save(n);}while(w0==1);menu();}voidC_machine::del(){int k,w0=1,w1,w2=0;char c[10];n=load();do{do{k=-1;cout<<"\n请输入要删除的仪器或仪表的名称或编号;[ ]";cin>>c;for(i=0; i<="" p="">if(strcmp(c,mac[i].num)==0||strcmp(c,mac[i].name)==0){k=i;m=mac[i];}if(k==-1) cout<<"\n该仪器或仪表不存在!";}while(k==-1);printf_one(k);cout<<"\n你确定删除这个信息吗?\n\n\t1.确定2.取消3.返回(不保存该次修改)[ ]\b\b"; cin>>w1;if(w1==1){for(i=k; icout<<"\n删除成功\n\n 继续删除?\n\n\t1.是 2.否\t[ ]\b\b";cin>>w0;w2=1;}else{w0=0;if(w2==1) mac[k]=m;}if(w0!=1&&w2==1) save(n);}while(w0==1);menu();}voidC_machine::search_statics(){intc,w;do{cout<<"\t\t\t\t^^^^^^^^^^^^仪器仪表管理系统^^^^^^^^^^^^^^^\n"<<<"\t\t*********************菜单********************\n"<<<"\t\t\t\t1.查询基本信息";<="" p=""> cout<<"\t\t\t\t2.按时间点查询并统计";cout<<"\t\t\t\t3.按时间间隔查询并统计";cout<<"\t\t\t\t4.退出"<<endl;< bdsfid="738" p=""></endl;<>cout<<"\n\t\t**********************************************\n "<cin>>c;if(c<1||c>4){w=1;getchar();}else w=0;}while(w==1);switch(c){case 1:basic_search();break;case 2:search_by_time();break;case 3:search_by_line();break;case 4:exit(0);}}int _tmain(intargc, _TCHAR* argv[]) {C_machine a;a.menu();return 0;}。
C语言课程设计仪器仪表管理系统报告
C学院: 自动化学院 专业: 自动化 班级: XXX 姓名: XXX 学号: 231XXX-XX语言课程设计报告目录1.题目概述,总体设计--------------------------------第 1页2.详细设计,菜单函数--------------------------------第 2页3.功能模块:录入模块--------------------------------第 3页4.状态改变模块--------------------------------------第 4页5.状态改变,借出归还--------------------------------第 6页6.状态改变,维修------------------------------------第 7页7.状态改变,删除------------------------------------第 8页8.状态查询模块--------------------------------------第 9页9.按名称查询----------------------------------------第11页10.按时间点/段查询----------------------------------第12页11.公共函数-----------------------------------------第13页12.上机实践-----------------------------------------第14页13.程序的亮点与不足---------------------------------第17页14.总结---------------------------------------------第18页题目:仪器仪表管理系统[要求]系统功能的基本要求:(1)新的仪器仪表信息录入。
(2)在借出、归还、维修时对仪器仪表信息的修改。
仪器仪表管理源代码
char * sstatus[]={"可以借出","已经借出","维修中"};
void printInfo(int);
typedef struct
{
char name[MAX_NAME];
{
getname(name);
restore(name);
}
else if(0==strcmp(cmd,"look"))
{
getname(name);
banner();
locate(name);
}
else if(0==strcmp(cmd,"st"))
nowtm.tm_hour=0;
nowtm.tm_min=0;
nowtm.tm_sec=0;
t=mktime(&nowtm);
return t;
}
void lookBetweenTime(time_t t1,time_t t2)
{
int i;
banner();
}
int look(char *name)
{
int i=locate(name);
if(i==-1)return 0;
banner();
printInfo(i);
return 1;
}
time_t gettime()
{
int y,m,d;
time_t t;
struct tm nowtm;
智能温度仪器设计源程序代码
#include "reg51.h"char disp[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};char disp_dot[11]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xc0};sbit DQ = P1^3; //定义通信端口//晶振12MHzvoid delay_18B20(unsigned int i){while(i--);}//初始化函数Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位delay_18B20(8); //稍做延时DQ = 0; //单片机将DQ拉低delay_18B20(80); //精确延时大于480usDQ = 1; //拉高总线delay_18B20(14);x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败delay_18B20(20);}//读一个字节ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay_18B20(4);}return(dat);}//写一个字节WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay_18B20(5);DQ = 1;dat>>=1;}}//读取温度ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换delay_18B20(100);Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();b=ReadOneChar();//传感器返回值除16得实际温度值//为了得到2位小数位,先乘100,再除16,考虑整型数据长度,//技巧处理后先乘25,再除4,除4用右移实现t = (b*256+a)*25;return( t >> 2 );}main(){unsigned int tmp;unsigned char counter;while(1){//温度测量频率没有必要太高,太高反而影响数码显示//所以用计数器加以控制if(counter-- == 0){tmp = ReadTemperature();counter = 20;}P2 = 0xff;P0 = disp[tmp%10];P2 = 0xfb;delay_18B20(1000);P2 = 0xff;P0 = disp[tmp/10%10];P2 = 0xf7;delay_18B20(1000);P2 = 0xff;P0 = disp_dot[tmp/100%10];P2 = 0xef;delay_18B20(1000);P2 = 0xff;P0 = disp[tmp/1000%10];P2 = 0xdf;delay_18B20(1000);}}。
用C语言设计关于化工仪器管理的小软件
#include <stdio.h>#include <string.h>#include<stdlib.h>#include<conio.h>struct node{int date;char name[20];float price;int pudate;struct node *next;};struct node *init();struct node *px();struct node *del();struct node *output();struct node *cz();struct node *gl();void main(){int ch,cf;struct node *head,*p,*q;head=NULL;while(1){loop1: printf(" \n");printf(" 化学仪器管理\n");printf(" \n");printf("################################################################### \n");printf(" # #\n");printf(" # 1.购买仪器");printf(" 2.归类仪器#\n");printf(" # #\n");printf(" # 3.删除仪器");printf(" 4.显示仪器#\n");printf(" # #\n");printf(" # 5.查找仪器");printf(" 6.退出#\n");printf(" # #\n");printf(" # 7.编程人员#\n");printf(" # #\n");printf("################################################################### \n");printf(" \n");printf(" \n");printf(" 请选择:");ch=getchar();if(ch<'1'||ch>'7'){printf("输入错误!!!请重新输入!!!");system("cls");system("color");goto loop1;}elseswitch(ch){case '1':system("cls");system("color");if(head==NULL){char x;loop2: printf("\n");printf(" 没有仪器,是否购买(y/n)?");scanf("%s",&x);if(x=='y'){head=init(head,p,q);}else if(x=='n') break;else{printf("输入错误!!!重新输入");goto loop2;}}system("pause");system("cls");break;case '2':system("cls");system("color 0b");printf("\n");printf(" 归类仪器\n");printf("\n");printf("*********************************************************************\n");printf(" * *\n");printf(" * *\n");printf(" * 1.按编号排序 2.按仪器名归类*\n");printf(" * *\n");printf(" * *\n");printf(" * *\n");printf(" * *\n");printf("*********************************************************************\n");printf("\n");printf("\n");printf(" 请选择:");scanf("%d",&cf);system("cls");system("color");if(cf==1){head=px(head,p,q);}else if(cf==2){ printf("\n");head=gl(head,p,q);}else printf("输入错误,请重新输入!");system("pause");system("cls");break;case '3':system("cls");system("color 0b");printf("\n");printf(" 删除仪器\n");head=del(head,p,q);system("pause");system("cls");break;case '4':system("cls");system("color 0b");printf("\n");printf(" 显示仪器\n");output(head,p,q);system("pause");system("cls");break;case '5':system("cls");system("color 0b");printf("\n");printf(" 查找仪器\n");cz(head,p,q);system("pause");system("cls");break;case '6':exit(0);break;case '7':system("cls");system("color");out();system("pause");system("cls");break;}}}struct node *init(struct node *head,struct node *p,struct node *q){ char x;q=p=(struct node *)malloc(sizeof(struct node));q=NULL;head=NULL;/* printf("输入仪器编号:");scanf("%d",&p->date);printf("输入仪器名称:");scanf("%s",&p->name);printf("输入仪器价格:");scanf("%f",&p->price);printf("输入仪器年代:");scanf("%d",&p->pudate);*/while(1){printf("\n");printf(" 你确定要购买吗?(y/n)");scanf("%s",&x);if(x=='n'||x=='N'){break;}else{p=(struct node *)malloc(sizeof(struct node));p->next=NULL;if(head==NULL){head=p;}else{q->next=p;}q=p;printf("\n");printf(" 输入仪器编号:");scanf("%d",&p->date);printf("\n");printf(" 输入仪器名称:");scanf("%s",&p->name);printf("\n");printf(" 输入仪器价格:");scanf("%f",&p->price);printf("\n");printf(" 输入仪器年代:");scanf("%d",&p->pudate);}}return head;}struct node *gl(struct node *head,struct node *p,struct node *q) {int i=0;char x;p=(struct node *)malloc(sizeof(struct node));loop3: if(head==NULL){printf("\n");printf(" 购买仪器\n");printf("\n");printf(" 没有任何仪器,是否要购买仪器(y/n)");scanf("%s",&x);if(x=='y'){head=init(head,p,q);return head;}else if(x=='n') return(0);else{printf("输入错误!!!重新输入");goto loop3;}}printf("\n");printf("请输入仪器名称:");scanf("%s",&p->name);q=head;while(q!=NULL){if(strcmp(q->name,p->name)==0){i++;}q=q->next;}printf("仪器名称:");printf("%s\n",p->name);printf("仪器个数:");printf("%d",i);return head;}struct node *del(struct node *head,struct node *p,struct node *q) {int m;if(head==NULL){printf("\n");printf(" 没有仪器!!!\n");printf("\n");printf(" 请按enter返回主菜单购买仪器!!!\n");}else{printf("请输入删除的仪器编号:");scanf("%d",&m);p=(struct node *)malloc(sizeof(struct node));if(head->date==m){p=head->next;head=p;return head;}q=head;while(q->next!=NULL){if(q->next==NULL) return(0);if((q->next)->date==m) {p=q->next;q->next=p->next;return head;}}}return head;}struct node *output(struct node *head,struct node *p,struct node *q){if(head==NULL){printf("\n");printf(" 没有仪器!!!\n");printf(" 请按enter返回主菜单购买仪器!!!\n");}else{q=head;while(q!=NULL){printf("仪器编号\t仪器名称\t仪器价格\t仪器年代\n");printf("%d\t\t%s\t\t%f\t%d\n",q->date,q->name,q->price,q->pudate);q=q->next;}}return head;}struct node *cz(struct node *head,struct node *p,struct node *q){p=(struct node *)malloc(sizeof(struct node));printf("\n");printf(" 请输入仪器编号:");scanf("%d",&p->date);if(head==NULL){printf("\n");printf(" 没有找到!!!\n");printf(" 请按enter返回主菜单购买仪器!!!\n");}else{q=head;while(q!=NULL){if(q->date==p->date){printf("找到了!下面是仪器详细信息\n");printf("仪器编号:");printf("%d\n",q->date);printf("仪器名称:");printf("%s\n",q->name);printf("仪器价格:");printf("%f\n",q->price);printf("生产日期:");printf("%d",q->pudate);}q=q->next;}}free(p);return head;}int out(){printf("\n");printf("\n");printf(" 学生课程设计人员\n");printf("\n");printf("\n");printf(" 组长姓名:性别:学号:班级:\n");printf("\n");printf(" 吴学文男0921105038 09化工二班\n");printf("\n");printf(" 成员姓名:性别:学号:班级:\n");printf("\n");printf(" 王永梅女0921105062 09化工二班\n");printf("\n");printf(" 丁康男0921105058 09化工二班\n");printf("\n");printf(" 郭亚斌男0921105069 09化工二班\n");printf("\n");printf(" 郝维成男0921105052 09化工二班\n");return 1;}struct node *px(struct node *head,struct node *p,struct node *q){struct node *h,*p1,*p2;char x;p1=p2=h=p;loop4: if(head==NULL){printf("\n");printf(" 购买仪器\n");printf("\n");printf(" 没有任何仪器,是否要购买仪器(y/n)");scanf("%s",&x);if(x=='y'){head=init(head,p,q);return head;}else if(x=='n') return(0);else{printf("输入错误!!!重新输入");goto loop4;}}p=head;p=p->next;if(head!=NULL)do{ while((p->date>p1->date)&&(p1->next!=NULL)){ p2=p1;p1=p1->next; }if(p->date<=p1->date){ if(h=p1){p->next=h->next;h=p;}else {p->next=p2->next;p2->next=p;}}else{ p1->next=p;p->next=NULL; }p1=p2=h;p=p->next;}while(p!=NULL);return h;}。
仪器仪表管理系统设计——C语言
仪器仪表管理系统【要求】系统功能的基本要求:(1)新的仪器仪表信息的录入;(2)在借出、归还、维修时对仪器仪表信息的修改;(3)对报废仪器仪表信息的删除;(4)按照一定的条件查询符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间点(借入时间、借出时间、归还时间)查询等(5)对查询结果的输出。
【提示】数据结构采用结构体。
仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。
二、需求分析根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。
三、总体设计系统功能模块图四、详细设计1.主函数主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。
其各功能模块用菜单方式选择。
本题将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。
【程序】main(){menu();}菜单部分设计如下:N主函数的菜单流程图【程序】menu(){int n,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/do{puts("\t\t**************MENU********************\n\n");puts("\t\t\t\t 1.enter");puts("\t\t\t\t 2.modify");puts("\t\t\t\t 3.search");puts("\t\t\t\t 4.delete");puts("\t\t\t\t 5.exit");puts("\n\n\t\t ******************************************\n");printf("Choice your number(1-5):[ ]\b\b");scanf("%d",&n);if(n<1||n>5) /*对选择的数字作判断*/{w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:enter();break; /*输入模块*/case 2:modify();break; /*修改模块*/case 3:search();break; /*查找模块*/case 4:delete();break; /*删除模块*/case 5:exit(0); /*退出*/}}2.各功能模块设计(1)输入模块【数据结构】【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。
空气质量检测仪C程序
空气质量检测仪C程序程序代码#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define Data P0 //数据端口/*****1602管脚定义*****/sbit RS=P2^6;sbit RW=P2^5;sbit E=P2^7;/******AD管脚定义*****/sbit STA=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit CLK=P3^3;/*****按键管脚定义******/sbit key_U=P2^0;sbit key_D=P2^1;sbit key_L=P2^2;sbit key_R=P2^3;sbit key_S=P2^4;/******报警用管脚******/sbit beep=P3^4;sbit led1=P3^5;sbit led2=P3^6;unsigned char num=0;//记录设定键按下次数unsigned char k_flag=0;//记录设置键按下次数(用于调用)unsigned char wei=0;//光标位置unsigned char c_num=0;//记录切换键按下次数unsigned char c_flag=0;//记录切换键按下次数(用于调用)unsigned char voc_ad;//AD读取数据unsigned char flag;//DHT11函数用到/****************************/sbit DHT=P3^7;uchar WEN1[]="wen:16.00-28.00";//温度第一行数据uchar WEN2[]=" 00.00 "; //温度第二行数据uchar SHI1[]="shi:30.00-70.00";//湿度第一行数据uchar SHI2[]=" 00.00 "; //湿度第二行数据uchar VOC1[]="voc:0.00-2.70 ";//湿度第一行数据uchar VOC2[]=" 0.00 "; //湿度第二行数据unsigned char shiZ,shiX,wenZ,wenX,check;unsigned char tr_shiZ,tr_shiX,tr_wenZ,tr_wenX;/*********延时*******************************/void delay_1ms(uint x){uchar i;while(x--)for(i=0;i<120;i++);}void delay_10us(){unsigned char i;i--;i--;i--;i--;i--;i--;}void DelayUs(unsigned char us)//--延时函数{unsigned char uscnt;uscnt=us>>1; /*12MHz频率*/while(--uscnt);}/*******1602显示*******************************************/ /**********写命令**********/void lcd_write_com(uchar c){delay_1ms(5);//操作前短暂延时,保证信号稳定E=0;RS=0;RW=0;_nop_();E=1;Data=c;E=0;}/**********写数据*************/void lcd_write_dat(uchar c){delay_1ms(5); //操作前短暂延时,保证信号稳定E=0;RS=1;RW=0;_nop_();E=1;Data=c;E=0;RS=0;}/**********LCD初始化********/void lcd_init(){delay_1ms(15);lcd_write_com(0x38); //display modelcd_write_com(0x38); //display modelcd_write_com(0x38); //display modelcd_write_com(0x06); //显示光标移动位置lcd_write_com(0x0c); //显示开及光标设置lcd_write_com(0x01); //显示清屏}/*********显示单个字符**********/void ShowChar(uchar pos,uchar c){unsigned char p;if (pos>=0x10)p=pos+0xb0; //是第二行则命令代码高4位为0xc elsep=pos+0x80; //是第二行则命令代码高4位为0x8 lcd_write_com(p);//写命令lcd_write_dat(c); //写数据}/*********显示字符串**********/void ShowString (uchar line,char *ptr) {unsigned char l,*p;p=ptr;l=line<<4;while((*p)!='\0'){ShowChar(l++,*(p));p++;}}/*********温度显示函数***********/void WENdisp(void){ShowString(0,WEN1);_nop_();ShowString(1,WEN2);}/*********湿度显示函数***********/void SHIdisp(void){ShowString(0,SHI1);_nop_();ShowString(1,SHI2);}/*********VOC调用的显示函数***********/void VOCdisp(void){ShowString(0,VOC1);_nop_();ShowString(1,VOC2);}/***********报警用函数************/void Beep(unsigned char i,j)//i用于确定亮灯方式,j用于确定蜂鸣器是否报警{unsigned char m;led1=led2=1;for(m=0; m<250; m++){switch(i){case 0:break;case 1:led1=led2=0;break;//低电平点亮case 2:led1=0;break;case 3:led2=0;break;}beep = j;delay_1ms(2);led1=led2=1;beep = 0;delay_1ms(2);}}void voc_warning(){unsigned char voc_t;unsigned char voc_h;voc_t=('0'+VOC2[6])*10+('0'+VOC2[8]);voc_h=('0'+VOC1[9])*10+('0'+VOC1[11]);if(voc_t>voc_h){Beep(1,1);}else Beep(0,0);}void wen_warning(){unsigned char wen_t;unsigned char wen_h;unsigned char wen_l;wen_t=('0'+WEN2[6])*10+('0'+WEN2[7]); wen_l=('0'+WEN1[4])*10+('0'+WEN1[5]); wen_h=('0'+WEN1[10])*10+('0'+WEN1[11]); if(wen_t>wen_h||wen_t<wen_l){Beep(2,1);}else Beep(0,0);}void shi_warning(){unsigned char shi_t;unsigned char shi_h;unsigned char shi_l;shi_t=('0'+SHI2[6])*10+('0'+SHI2[7]);shi_l=('0'+SHI1[4])*10+('0'+SHI1[5]);shi_h=('0'+SHI1[10])*10+('0'+SHI1[11]);if(shi_t>shi_h||shi_t<shi_l){Beep(3,1);}else Beep(0,0);}/*******************按键***************************/ /*************进入设定功能***************/unsigned char key_set(void){if(key_S==0){delay_1ms(10);if(key_S==0){while(!key_S);num++;k_flag=num%4;}else k_flag=num%4;}else k_flag=num%4;return k_flag;}/********************调整数据******************/ unsigned char key_adddec(unsigned char dat){if(key_U==0){delay_1ms(10);if(key_U==0){while(!key_U);if(dat<'9')dat++;elsedat='9';}}if(key_D==0){delay_1ms(10);if(key_D==0){while(!key_D);if(dat>'0')dat--;elsedat='0';}}return dat;}/***************左右移位*******************/ unsigned char key_LR(){if(key_L==0){delay_1ms(10);if(key_L==0){while(!key_L);if(wei==0)wei=3;else wei--;}}if(key_R==0){delay_1ms(10);if(key_R==0){while(!key_R);if(wei==3)wei=0;else wei++;}}return wei;}/*********主函数调用的按键函数*********/void set_updn_dat(void){while(key_set()){unsigned j=key_LR();if(key_set()==1){switch(j>0){case 1:j=2;break;case 0:j=0;break;}VOCdisp();VOC1[j+9]=key_adddec(VOC1[j+9]);lcd_write_com(0x80+j+9);lcd_write_dat(VOC1[j+9]);}elseif(key_set()==2){switch(j){case 2:j=6;break;case 3:j=7;break;}WENdisp();WEN1[j+4]=key_adddec(WEN1[j+4]);lcd_write_com(0x80+j+4);lcd_write_dat(WEN1[j+4]);}elseif(key_set()==3){switch(j){case 2:j=6;break;case 3:j=7;break;}SHIdisp();SHI1[j+4]=key_adddec(SHI1[j+4]);lcd_write_com(0x80+j+4);lcd_write_dat(SHI1[j+4]);}}}/*************手动自动切换功能**************/ unsigned char key_change(void){if(key_U==0){delay_1ms(10);if(key_U==0){while(!key_U);c_num++;c_flag=c_num%4;}else c_flag=c_num%4;}else c_flag=c_num%4;return c_flag;}/*************************传感器函数************************/ /**************DHT测试**************//******温湿度读取函数*******/char DHTread_data(){unsigned char i,num,temp;num=0;for(i=0;i<8;i++){flag=2;while((!DHT)&&flag++);delay_10us();delay_10us();delay_10us();if(DHT==1){temp=1;flag=2;while(DHT&&flag++);}elsetemp=0;num<<=1;num|=temp;}return(num);}/********初始化及采集程序*********/void DHTread_init(){DHT=0;//主机使DHT11低电平并延时至少18msdelay_1ms(21);DHT=1;//主机置DHT11高电平20~40us,并等待从机相应delay_10us();delay_10us();delay_10us();DHT=1;if(!DHT) //从机发出相应信号{flag=2;while((!DHT)&&flag++);flag=2;while(DHT&&flag++);//开始采集数据tr_shiZ=DHTread_data();//采集湿度整数部分tr_shiX=DHTread_data();//采集湿度小数部分tr_wenZ=DHTread_data();//采集温度整数部分tr_wenX=DHTread_data();//采集温度小数部分check=DHTread_data();//采集校验位DHT=1;}}/*********显示测试结果*********/void DHT11(){unsigned char temp;{DHTread_init();temp=tr_shiZ+tr_shiX+tr_wenZ+tr_wenX;if(check==temp){shiZ=tr_shiZ;shiX=tr_shiX;wenZ=tr_wenZ;wenX=tr_wenX;}WEN2[6]='0'+wenZ/10;WEN2[7]='0'+wenZ%10;WEN2[9]='0'+wenX/10;WEN2[10]='0'+wenX%10;SHI2[6]='0'+shiZ/10;SHI2[7]='0'+shiZ%10;SHI2[9]='0'+shiX/10;SHI2[10]='0'+shiX%10;}}/****************气体浓度检测************/ /*********系统初始化***********/void init(){TMOD = 0x01; //设定定时器T0工作方式TH0=(65536-2)%256;TL0=(65536-2)/256;ET0=1; //允许T0中断EA=1; //开总中断TR0=1; //启动定时器T0}/**********T0中断服务程序***********/ void t0(void) interrupt 1 //using 1{TH0=(65536-2)%256;TL0=(65536-2)/256;CLK=~CLK;}/**********AD转换函数**********/void AD(){STA=0;OE=0;STA=1; //启动AD转换_nop_();STA=0;while(EOC==1);OE=1;voc_ad=P1;}/*******数据处理********/void VOC(){AD();VOC2[6]='0'+voc_ad/51;VOC2[8]='0'+voc_ad%51*10/51;VOC2[9]='0'+voc_ad%51*10%51*10/51; }/************切换程序*************/void change(void){while(!key_set() && key_change()){unsigned k=key_change();switch(k){case 1:VOC();VOCdisp();voc_warning();break;case 2:DHT11();WENdisp();wen_warning();break;case 3:DHT11();SHIdisp();shi_warning();break;}}}/**********************主函数**************************/ void main(){lcd_init();delay_1ms(50);init();num=0;while(1){DHT11();VOC();VOCdisp();voc_warning();WENdisp();wen_warning();SHIdisp();shi_warning();set_updn_dat();//调整范围值change();//手自动切换}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
把以下代码复制到CPP文件中,就可以在编译运行了(最好用VS运行):
//仪器仪表管理系统.cpp :定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<fstream>
if(w==1) w1=1;
else w1=0;
}
}
while(w1==1);
menu();
}
void C_machine::borrow_time()
{
int j,k=0,w0,w;
char c[9];
n=load();
do
{
cout<<"\n请输入时间(如19880512):[ ]";
cin>>c;
{
}
C_machine::~C_machine()
{
}
void C_machine::input(int i)
{
cout<<"\n请输入仪器或仪表名:[ ]\b";
cin>>mac[i].name;
cout<<"\n请输入仪器或仪表编号:[ ]\b";
cin>>mac[i].num;
cout<<"\n请输入仪器或仪表购买时间:[ ]\b";
{
int j,k=0,w0,w;
char c[9];
n=load();
do
{
cout<<"\n请输入时间(如19880512):[ ]";
cin>>c;
for(i=0; i<n; i++)
for(j=0; j<100; j++)
if(strlen(mac[i].lend_time[j]))
if(strcmp(mac[i].lend_time[j],c)==0)
using namespace std;
#define N 100
struct machine
{
char name[10];
char num[10];
char buy_time[9];
char borrow_time[100][9];
char lend_time[100][9];
char return_time[100][9];
void input(int i);
void save(int n);
int load();
void printf_one(int i);
int modify_data(int i);
void basic_search();
void search_by_time();
void search_by_line();
for(i=0; i<n; i++)
outfile.write((char *)&mac[i],sizeof(struct machine));
outfile.close();
}
int C_machine::load()
{
i=0;
fstream infile("machine.txt",ios::in);
{
cout<<"\n您要修改:\n\n\t1.名称2.编号3.购买时间\n\n\t"<<endl;
cout<<"4.借入时间5.借出时间6.归还时间7.维修时间\t[]\b";
cin>>c;
if(c<1||c>7)
{
cout<<"\n输入错误!!!请重新选择:[ ]"<<endl;
w=1;
getchar();
for(j=0; j<100; j++)
if(strlen(mac[i].return_time[j]))
if(strcmp(mac[i].return_time[j],c)==0)
{
printf_one(i);
k++;
break;
}
cout<<"\n统计结果: 1.是2.否、\t[ ]\b";
cin>>w0;
if(mac[i].condition==1) cout<<"已借";
if(mac[i].condition==2) cout<<"在修";
cout<<"\n"<<endl;
}
int C_machine::modify_data(int i)
{
int c,w,w1,j;
char m[9];
do
{
do
cout<<mac[i].return_time[j]<<"\t";
cout<<"\n维修时间:";
for(j=0; strlen(mac[i].mend_time[j])!=0; j++)
cout<<mac[i].mend_time[j]<<"\t";
cout<<"\n状态信息:";
if(mac[i].condition==0) cout<<"可借";
cin>>w0;
if(w0==1) cout<<"\n该天共借入"<<k<<"个仪器或仪表";
cout<<"\n继续查询?\t1.是2.退出\t[ ]\b";
cin>>w0;
if(w0==1) w=1;
else w=0;
}
while(w==1);
menu();
}
void C_machine::lend_time()
cout<<"\n借出时间:";
for(j=0; strlen(mac[i].lend_time[j])!=0; j++)
cout<<mac[i].lend_time[j]<<"\t";
cout<<"\n归还时间:";
for(j=0; strlen(mac[i].return_time[j])!=0; j++)
{
printf_one(i);
k++;
break;
}
cout<<"\n统计结果: 1.是2.否、\t[ ]\b";
cin>>w0;
if(w0==1) cout<<"\n该天共借出"<<k<<"个仪器或仪表";
cout<<"\n继续查询?\t1.是2.退出\t[ ]\b";
cin>>w0;
if(w0==1) w=1;
}
void C_machine::basic_search()
{
int k,w,w1;
char c[10];
n=load();
do
{
k=-1;
cout<<"\n请输入要查询的仪器或仪表的名称或编号;[ ]";
cin>>+)
if(strcmp(c,mac[i].num)==0||strcmp(c,mac[i].name)==0)
char mend_time[100][9];
int condition;
};
class C_machine
{
public:
C_machine();
~C_machine();
void menu();
void enter();
void add();
void modify();
void del();
void search_statics();
break;
case 4:
cout<<"\n输入时间:";
cin>>m;
for(j=0; j<100; j++)
if(!strlen(mac[i].borrow_time[j]))
{
strcpy_s(mac[i].borrow_time[j],m);
break;
};
break;
case 5:
cout<<"\n输入时间:";
if(w0==1) cout<<"\n该天共归还"<<k<<"个仪器或仪表";
cout<<"\n继续查询?\t1.是2.退出\t[ ]\b";
cin>>w0;
if(w0==1) w=1;
else w=0;
}
while(w==1);
menu();
}
void C_machine::buy_line()