仪器仪表管理系统C++程序代码
- 格式:docx
- 大小:24.76 KB
- 文档页数:16
中文摘要实验室仪器管理系统为试验室仪器管理者管理日常试验所需要的仪器的编号,出库,入库,使用登记等日常工作提供充足方便和快捷的管理手段,其开发内容主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
利用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语言进行简单的仪器管理程序设计。
具体目标如下: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.实验设备:提供计算机实验室,供学生进行实验操作和程序设计实践。
仪器仪表管理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)添加模块【数据结构】【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。
源代码#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;}。
仪器仪表管理系统【要求】系统功能的基本要求:(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)输入模块【数据结构】【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。
一、设计目的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循环的循环条件,一举两得。
实验设备信息管理系统题目要求:实验设备信息包括:设备编号,设备种类(如微机,打印机,扫描仪等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能: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语言进行简单的仪器控制程序设计。
具体分为以下三个部分:1.知识目标:使学生了解常见的仪器类型及其在计算机系统中的应用,理解仪器控制的基本原理,掌握C语言中与仪器管理相关的API函数。
2.技能目标:培养学生能够运用C语言编写简单的仪器控制程序,能够阅读和分析仪器控制程序代码,提高学生的编程能力和问题解决能力。
3.情感态度价值观目标:培养学生对计算机科学和程序设计的兴趣,激发学生积极探索和创新的精神,培养学生的团队协作意识和沟通能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.仪器的基本概念:介绍常见的仪器类型,如输入输出设备、存储设备等,以及它们在计算机系统中的作用和功能。
2.仪器控制的基本原理:讲解仪器控制程序的设计方法,包括仪器的初始化、数据读写、中断处理等。
3.C语言中的仪器管理API:介绍C语言中与仪器管理相关的API函数,如文件操作函数、设备控制函数等,并通过实例演示如何使用这些函数。
4.仪器控制程序的编写与调试:讲解如何运用C语言编写简单的仪器控制程序,并进行调试和运行,使学生能够掌握仪器控制程序的设计与实现过程。
三、教学方法为了提高教学效果,本节课将采用以下几种教学方法:1.讲授法:教师讲解仪器的基本概念、仪器控制的基本原理以及C语言中的仪器管理API,使学生掌握相关知识。
2.案例分析法:通过分析具体的仪器控制程序案例,使学生了解仪器控制程序的设计方法和技巧。
3.实验法:安排实验室实践环节,让学生亲自动手编写和调试仪器控制程序,提高学生的实际操作能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,培养学生团队合作精神和沟通能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用与C语言程序设计相关的教材,为学生提供理论知识的学习。