C语言-仪器仪表管理系统
- 格式:doc
- 大小:315.50 KB
- 文档页数:25
c语言仪器仪表课程设计一、课程目标知识目标:1. 学生能理解并掌握C语言在仪器仪表编程中的应用;2. 学生能运用C语言编写基本的仪器仪表控制程序;3. 学生了解仪器仪表的基本工作原理及其与C语言的接口技术;4. 学生掌握至少三种常用的仪器仪表数据采集和处理方法。
技能目标:1. 学生能独立设计简单的仪器仪表控制系统方案;2. 学生具备使用C语言进行仪器仪表编程的能力;3. 学生能对仪器仪表控制程序进行调试和优化;4. 学生通过实践操作,提高解决实际问题的能力。
情感态度价值观目标:1. 学生培养对编程和仪器仪表控制技术的兴趣,激发学习积极性;2. 学生通过团队协作,培养沟通与协作能力,增强团队精神;3. 学生在课程学习过程中,培养严谨、求实的科学态度;4. 学生关注仪器仪表技术在现实生活中的应用,认识到其在社会发展中的重要性。
二、教学内容1. C语言基础回顾:数据类型、运算符、控制结构、函数、数组等基本概念及其在仪器仪表编程中的应用。
2. 仪器仪表基本原理:介绍传感器原理、信号转换、数据采集、执行器控制等基本知识,结合教材相关章节深入讲解。
3. 仪器仪表与C语言接口技术:学习并实践如何通过C语言调用API、驱动程序等与仪器仪表进行交互。
- 接口函数编写与调用;- 数据读取与写入;- 中断处理和错误处理。
4. 编程实践案例:- 温度传感器数据采集与显示;- 模拟量信号输出控制;- 数字量输入/输出编程控制。
5. 仪器仪表控制程序调试与优化:教授学生如何使用调试工具,分析程序运行过程中的问题,并进行性能优化。
6. 综合项目设计:以小组形式,运用所学知识设计一个简单的仪器仪表控制系统,完成需求分析、方案设计、程序编写和调试等过程。
教学内容按照教材章节逐步展开,确保学生能够循序渐进地掌握知识,并结合实践案例和综合项目,提高学生的实际操作能力。
三、教学方法本课程采用以下多样化的教学方法,以充分激发学生的学习兴趣和主动性:1. 讲授法:通过系统的讲解,使学生掌握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();getch();}/* 追加模块 */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();case 4:{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);}下面是程序运行的流程图。
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代表正在维修)等。
Ⅱ.需求分析根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。
系统功能模块图1.主函数主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。
其各功能模块用菜单方式选择。
本题将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。
【程序】main(){menu();}菜单部分设计如下:【流程图】N【程序】main(){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)添加模块【数据结构】【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。
二○一五~二○一六学年第一学期电子与信息工程系课程设计报告书课程名称:程序设计基础实践班级:学号:姓名:指导教师:二○一五年十二月1..实验室设备信息管理系统功能(1). 每一条记录包括实验室的设备编号、设备名称、设备型号、设备价格、设备购买日期信息。
(2). 实验设备信息录入:可以一次完成诸多条记录的录入。
(3). 实验设备信息更改:可实现对实验设备信息更改的信息进行适当的修改。
(4). 报废设备信息删除:对实验损毁设备信息予以删除。
(5). 实验设备信息查询:本系统提供两种查询实验设备的方法:1.按器材名称查询.2.按器材编号查询.从而完成按实验设备的查找查找功能,并显示。
(6). 实验设备信息排序:根据实验设备的编号进行排序,以实现实验设备的有序全局查看。
实验设备信息显示功能:完成全部学生记录的显示。
(7). 简单帮助:提供实验室负责人简单的信息。
(8). 保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。
(9). 读取功能:将保存在文件中的学生记录读取出来。
(10). 有一个清晰美观界面来调用各个功能2.设计内容2.1 程序的总体设计整个系统除了主函数外,另外还有11个函数,实现以下功能:实验室设备录入功能、显示功能、查找功能、排序功能、读出与写入取功能。
各个函数的详细设计说明分别如下:2.2 数据结构使用C语言创建的结构体如下:typedef Equipment /*定义数据结构*/{char bianhao; //编号char name[20]; //名称char model[20]; //型号bnmchar price[20]; //价格char buy_date[20]; //购买日期};3 详细设计3.1实验设备管理系统主程序模块设计控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程如图1所示。
通过switch进入分支结构从而调用执行不同的函数,以实现菜单选择的功能。
C 语言课程实习与报告——《仪器仪表管理》制作人:庞明 制作时间:2010年7月13日一. 题目要求仪器仪表管理【要求】系统功能的基本要求:(1) 新的仪器仪表信息的录入;(2) 在借出、归还、维修时对仪器仪表信息的修改;(3)对报废仪器仪表信息的删除;(4)按照一定的条件查询符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间点(借入时间、借出时间、归还时间)查询等,统计功能至少包括按时间段统计,按仪器仪表的基本信息统计等。
(5)对查询,统计结果的打印输出。
【提示】数据结构采用结构体。
仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。
二.分析需求根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。
系统功能图如下:系统功能模块图三.详细设计需调用的函数名:void save(int n,int m);int load_equ();void menu();void add_new_message();void input(int i); 仪器仪表管理系统添加 显示 修改 统计 退出查询 删除void load_record();void printf_one(int i);void printf_n(int n);void modify();void delete();void search();void sb_buy_tq();void sb_gb_tq();void sb_par_number();void sb_name();void statistic();void tb_par_number();void tb_name();void tb_buy_tq();void tb_gb_tq();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循环的循环条件,一举两得。
C语言程序设计报告1 课程设计题目:实验室设备管理里系统实验设备信息包括:设备编号、设备种类(如:微机打印机扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询2 需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。
3总体设计与模块的划分整个系统可设计为实验设备信息输入模块实验设备信息添加模块实验设备信息修改模块实验设备分类统计模块和实验设备查询模块。
4 建立实验设备信息结构体结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。
5应用程序功能详细说明程序运行后进入管理系统,显示目录:添加记录、修改记录、显示记录、分类统计、查询记录(1)添加记录系统提示用户在原有的基础上录入新的设备信息。
流程图如下:(2)修改记录系统要求用户输入要修改的设备ID号,这时系统会显示设备的具体信息,用户只需该设备新的信息按要求输入即可对信息进行修改。
流程图如下:(3)显示记录无记录退出,有记录者按要求输出。
流程图如下:(4)统计分类若有资料可以统计,则按要求分类统计输出。
流程图如下:(5)查询记录若信息为空,则不能查询。
流程图如下:(6)结束语通过本次c语言的程序设计,我不仅提高巩固了c语言的基础,也初学习了编写一个实用程序的流程,提高了动手操作能力,也提高了对编程的兴趣。
我相信经过努力后,我的编程能力一定会得到提高。
源程序代码清单:void main(){Node *equip;FILE *fp;int flag;Node *p,*q;printf("\t\t\t\t设备管理系统\n");equip=(Node*)malloc(sizeof(Node));equip->next=NULL;p=equip;fp=fopen("设备管理系统","wb+");q=(Node*)malloc(sizeof(Node));if(fread(q,sizeof(Node),1,fp)) /*将文件的内容放入接点中* /{q->next=NULL;p->next=q;p=q; /*将该接点挂入链表中*/}fclose(fp); /*关闭文件*/while(1){printf("********************目录***********************");printf("\n1添加记录\n");printf("\n2修改记录\n");printf("\n3显示记录\n");printf("\n4统计分类\n");printf(“\n5 查询记录\n”);printf("\n0*-EXIT-*\n");printf("请输入你要操作的序号:");scanf("%d",&flag);switch(flag){case 0: printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;case 1: Add(equip); break; /*增加记录*/case 2: Modify(equip); break;/*修改记录*/case 3: Disp(equip); break;/*显示记录信息*/case 4: Tongji(equip); break;/*统计记录*/case 5:chaxun(equip);break;/*查询记录*/default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break;}}}Struct shebei{ char ID[10]; char name[15]; char kind[15]; char over[15]; char yesno[10]; char time[10]; char price[10];}void Add(Node *equip) /*添加记录*/{Node *p,*r,*s;char id[10]; /*先用于输入ID,也用于判断是否跳出循环*/r=equip;s=equip->next; /*使s为第一个有用的结点*/while(r->next!=NULL) /*这个循环的作用是使r为最后一个有用的结点*/r=r->next; /*将指针置于最末尾*/while(1){printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break;p=(Node *)malloc(sizeof(Node)); /*申请空间*/strcpy(p->data.ID,id);printf("\n请输入设备名称:");scanf("%s",p->);printf("\n请输入设备种类:");scanf("%s",p->data.kind);printf("\n请输入报废日期:");scanf("%s",&p->data.over);printf("\n请输入设备是否报废:");scanf("%s",&p->data.yesno);printf("\n请输入设备购买时间:");scanf("%s",&p->data.time);printf("\n请输入设备价格:");scanf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。
实验设备管理系统设计1.题目与要求:1.1问题提出与要求:题目:实验设备管理系统设计要求:实验设备信息包括:设备编号,设备种类(如微机,打印机,扫描仪等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改。
(2)对设备进行分类统计。
(3)设备的查询2.功能实现设计:2.1总体设计:图1:系统功能模块图2.2详细设计:1:主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2:主函数流程图void main(){Node *equip;FILE *fp;int flag;Node *p,*q;printf("\t\t\t\t设备管理系统\n");equip=(Node*)malloc(sizeof(Node));equip->next=NULL;p=equip;fp=fopen("设备管理系统","wb+");q=(Node*)malloc(sizeof(Node));if(fread(q,sizeof(Node),1,fp)) //将文件的内容放入接点中{q->next=NULL;p->next=q;p=q; //将该接点挂入链表中}fclose(fp); //关闭文件while(1){printf("**************************************目录**************************************");printf("\n1添加记录\n");printf("\n2修改记录\n");printf("\n3显示记录\n");printf("\n4统计分类记录\n");printf("\n0*-EXIT-*\n");printf("请输入你要操作的序号:");scanf("%d",&flag);switch(flag){case 0: printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;case 1: Add(equip); break; //增加记录case 2: Modify(equip); break;//修改记录case 3: Disp(equip); break;//显示记录信息case 4: Tongji(equip); break;//统计记录default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break;}}}一:以下为添加记录的程序:while(1){printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break;p=(Node *)malloc(sizeof(Node)); //申请空间strcpy(p->data.ID,id);printf("\n请输入设备名称:");scanf("%s",p->);printf("\n请输入设备种类:");scanf("%s",p->data.kind);printf("\n请输入报废日期:");scanf("%s",&p->data.over);printf("\n请输入设备是否报废:");scanf("%s",&p->data.yesno);printf("\n请输入设备购买时间:");scanf("%s",&p->data.time);printf("\n请输入设备价格:");scanf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。
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语言程序设计相关的教材,为学生提供理论知识的学习。
仪器仪表管理系统一.题目要求1.新的仪器仪表信息的录入。
2.在借出,归还,维修时对仪器仪表的信息的修改。
3.对报废仪器仪表信息的删除。
4.按照一定的条件查询统计符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息的查询按时间段(如在2004年1月1日到2004年10月10日购买,借出,维修的仪器仪表等)查询按时间点(借入时间,借出时间,归还时间)查询等,统计功能至少包括按时间段统计按仪器仪表的基本信息统计等。
5.对查询统计的结果打印输出。
二.需求分析根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需要文件具有查找,替换,修改数据的功能三.总体设计根据上面的需求分析,可以将这个系统的设计分为如下七大模块:输入,显示,修改,删除,查询,统计,退出。
仪器仪表管理四. 详细设计1.主函数为了各模块的独立性,主函数一般设计得比较简单,本系统主要用主函数打开上次保存的数据和进入主菜单函数 流程图 程序/*********************************主函数**************************************/main() (main 函数) {menu(); (主菜单函数) }主菜单流程图void menu(){int w,n;do{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 equipment\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:Delete 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);(do…while..对不是1到7的数字进行屏蔽)/****************选择功能****************/switch(n) (switch函数进行菜单选择){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();break;/*退出模块*/}}这是本程序的菜单功能,主要包括输入,显示,修改,删除,查询,统计,退出7个功能,下面是各个功能模块的具体程序部分。
2.各功能模块设计一.添加模块程序/*****************************添加*************************************/void add_new_message(){int t,i,m;t=load_equ();printf("How many groups datas do you want to add?\n");printf("input the number:[ ]\b\b\b");scanf("%d",&m);for(i=0;i<m;i++){printf("\nInput %dth equipment record.\n",i+1);input(t+i);/*调用输入函数*/ (对新的数据的输入)}save(t+m,0);/*调用保存函数保存t+m组数据*/menu();/*返回登陆界面*/}/****************输入函数****************/void input(int i){printf("Please input:\nnumber name b_time b_in_time b_out_time g_back_time repair_time state\n");scanf("%s%s%s%s%s%s%s%d",&equ[i].number,&equ[i].name,&equ[i].b_time,&equ[i].bin_time,&equ[i].bout_time,&equ[i].giveb_time,&equ[i].repair_time,&equ[i].state);}[b time 购买时间 b in time 借进时间 b out time 借出时间 g back time 归还时间repair time 维修时间 state 状态]二.加载程序程序/******************************加载****************************************//*显示记录模块*/void load_record(){int t;t=load_equ();printf_n(t);printf("\n\n\nPress any key to go back...\n\n");getch();menu();}/*显示一个仪器记录的函数*/void printf_one(int i){printf("%-3s %-10s %-10s %-10s %-10s %-10s %-10s %d.\n\n",equ[i].number ,equ[i].name,equ[i].b_time,equ[i].bin_time,equ[i].bout_time,equ[i].giveb_time, equ[i].repair_time,equ[i].state);}/**显示n个仪器记录的函数*/void printf_n(int n){int j;printf("number name b_time b_in_time b_out_time g_back_time repair_time s\n");for(j=0;j<n;j++){if((j+1)%10==0)/*控制显示,每屏显示10行*/{printf("\n\nPass any key to continue ...");getch();puts("\n\n");}printf_one(j);/*调用显示一个仪器记录的函数*/}}三.修改模块程序/*******************************修改***************************************/ void modify(){struct equip mod;int t,i,m,w,addr=-1;char number[4]={' '}, name[11]={' '};t=load_equ();do{printf("\nInput the equipment'number or name ( 1:the number 2:the name ):\n\n"); printf("What is your choice:[ ]\b\b");scanf("%d",&m);if(m==1||m==2) w=0;else w=1;}while(w==1);switch(m){case 1:printf("\n\nPlease input the equipment's number:[___]\b\b\b\b");scanf("%s",number);break;case 2:printf("Please input the equipment's name:[__________]\b\b\b\b\b\b\b\b\b\b\b");scanf("%s",name);break;}for(i=0;i<t;i++)/*查找要修改的仪器*/{if(strcmp(equ[i].name,name)==0||strcmp(equ[i].number,number)==0){addr=i;printf("\n\nPlease input the new information:\n\n");printf("number name b_time b_in_time b_out_time g_back_time repair_time s\n");scanf("%s%s%s%s%s%s%s%d",mod.number,,mod.b_time,mod.bin_time,mod.bout_time,mod.giveb_time,mod.repair_time,&mod.state); strcpy(equ[i].number,mod.number); strcpy(equ[i].name,);strcpy(equ[i].b_time,mod.b_time);strcpy(equ[i].bin_time,mod.bin_time);strcpy(equ[i].bout_time,mod.bout_time);strcpy(equ[i].giveb_time,mod.giveb_time);strcpy(equ[i].repair_time,mod.repair_time); equ[i].state=mod.state;printf("%-3s %-10s %-10s %-10s %-10s %-10s %-10s %d.\n\n",equ[i].number ,equ[i].name,equ[i].b_time,equ[i].bin_time,equ[i].bout_time,equ[i].giveb_time,equ[i].repair_time,equ[i].s tate);break;}}if(addr==-1){printf(" Cannot find the equipment which you want to modify!\n\n");printf(" Press any key to go back...\n\n");getch();menu();}save(t,0);/*修改后的信息保存*/printf(" Press any key to go back...\n\n");getch();menu();}四.删除模块程序/**************************删除****************************************/void delete(){FILE *fp1;struct equip mod;int t,i,m,w,addr=-1,u;char number[4]={' '}, name[11]={' '};char a1[2],a2[2];t=load_equ();if((fp1=fopen("c:\\record.txt","w"))==NULL)/*以只写方式打开*/{printf("\nCannot open file\n");exit(0);}do{printf("\nPlease Input the equipment'number or name to find it( 1:the number 2:the name ):\n\n");printf("What is your choice:[ ]\b\b");scanf("%d",&m);if(m==1||m==2) w=0;else w=1;}while(w==1);switch(m){case 1:printf("\n\nPlease input the equipment's number:(___)\b\b\b\b");scanf("%s",number);break;case 2:printf("Please input the equipment's name:(__________)\b\b\b\b\b\b\b\b\b\b\b");scanf("%s",name);break;}for(i=0;i<t;i++)/*查找要删除的仪器*/{if(strcmp(equ[i].name,name)==0||strcmp(equ[i].number,number)==0){addr=i;printf("%-3s %-10s %-10s %-10s %-10s %-10s %-10s %d.\n\n",equ[i].number ,equ[i].name,equ[i].b_time,equ[i].bin_time,equ[i].bout_time,equ[i].giveb_time,equ[i].repair_time,equ[i].s tate);rintf("Congratunations ! You have been successful to delete it's information. ^_^\n");continue;}fwrite(&equ[i],sizeof(struct equip),1,fp1);/*把不想删除的保存在记事本里,想删除的不保存即为删除*/}fclose(fp1);/*关闭文件*/if(addr==-1){printf(" Cannot find the equipment which you want to delete!\n\n");}printf(" \n\n\nPress any key to go back...\n\n");getch();menu();}五.查询模块程序/******************************查询**********************************/void search(){int w,n;do{printf("\n\t\t*********************************************\n\n");printf("\t\tby b_time quantum to search? Input[1]\n");printf("\t\tby give_back_time quantum to search? Input[2]\n");printf("\t\tby number to search? Input[3]\n");printf("\t\tby name to search? Input[4]\n");printf("\t\t*********************************************\n\n");printf(" Choice your number(1-4):[ ]\b\b\b");scanf("%d",&n);if(n<1||n>4) w=1;else w=0;}while (w==1);/*选择功能*/switch(n){case 1:sb_buy_tq();break;/*按购买时间段查询函数*/case 2:sb_gb_tq();break;/*按归还时间段查询*/case 3:sb_par_number();break;/*按指定编号查询*/case 4:sb_name();break;/*按仪器名称查询*/}}void sb_buy_tq()/*按购买时间段查询函数*/{char year1[11],year2[11];int t,i,sum=0;t=load_equ();printf("Please input the start time:[____.__.__]\b\b\b\b\b\b\b\b\b\b"); scanf("%s",year1);printf("\n");printf("Please input the finish time:[____.__.__]\b\b\b\b\b\b\b\b\b\b"); scanf("%s",year2);printf("\n");for(i=0;i<t;i++){if((strcmp(equ[i].b_time,year1)>=0)&&(strcmp(equ[i].b_time,year2)<=0)) {printf_one(i);/*把符合条件的记录显示出来*/sum++;save(1,1);/*把符合条件的记录保存在查询记事本里*/}}if(sum==0){printf("Sorry! Cannot find the equipment which you want to.\n\n");}printf("Press any key to go back the former step...\n");getch();menu();}void sb_gb_tq()/*按购买时间段查询函数*/{char year1[11],year2[11];int t,i,sum=0;t=load_equ();printf("Please input the start time:[____.__.__]\b\b\b\b\b\b\b\b\b\b"); scanf("%s",year1);printf("\n");printf("Please input the finish time:[____.__.__]\b\b\b\b\b\b\b\b\b\b"); scanf("%s",year2);printf("\n");for(i=0;i<t;i++){if((strcmp(equ[i].giveb_time,year1)>=0)&&(strcmp(equ[i].b_time,year2)<=0)) {printf_one(i);/*把符合条件的记录显示出来*/sum++;save(1,1);/*把符合条件的记录保存在查询记事本里*/}}if(sum==0){printf("***************************************************\n\n");printf("Sorry! Cannot find the equipment which you want to.\n\n");printf("***************************************************\n\n");}printf("Press any key to go back the former step...\n");getch();menu();}void sb_par_number()/*按指定编号查询*/{char number[4];int t,i,sum=0;t=load_equ();printf("Please input the equipment number(000~999):[___]\b\b\b\b");scanf("%s",number);printf("\n");for(i=0;i<t;i++){if(strcmp(equ[i].number,number)==0){printf_one(i);/*把符合条件的记录显示出来*/sum++;save(1,1);/*把符合条件的记录保存在查询记事本里*/}}if(sum==0){printf("Sorry! Cannot find the equipment which you want to.\n\n");}printf("Press any key to go back the former step...\n");getch();menu();}void sb_name()/*按仪器名称查询*/{char name[11];int t,i,sum=0;t=load_equ();printf("Please input the equipment name:[__________]\b\b\b\b\b\b\b\b\b\b\b"); scanf("%s",name);printf("\n");for(i=0;i<t;i++){if(strcmp(equ[i].name,name)==0){printf_one(i);/*把符合条件的记录显示出来*/sum++;save(1,1);/*把符合条件的记录保存在查询记事本里*/}}if(sum==0){printf("Sorry! Cannot find the equipment which you want to.\n\n");}printf("Press any key to go back the former step...\n");getch();menu();}六.统计模块程序/****************统计模块****************/void statistic(){int w,n;do{printf("\n\t\t*********************************************\n\n");printf("\t\tby b_time quantum to statistic? Input[1]\n");printf("\t\tby give_back_time quantum to statistic? Input[2]\n");printf("\t\tby number to statistic? Input[3]\n");printf("\t\tby name to statistic? Input[4]\n");printf("\t\t*********************************************\n\n");printf(" Choice your number(1-4):[ ]\b\b\b");scanf("%d",&n);if(n<1||n>4) w=1;else w=0;}while (w==1);/****************选择功能****************/switch(n){case 3:tb_par_number();break;case 4:tb_name();break;case 1:tb_buy_tq();break;case 2:tb_gb_tq();break;}}void tb_par_number(){char number[4];int t,i,sum=0;t=load_equ();printf("Please input the equipment number(000~999):[___]\b\b\b\b");scanf("%s",number);printf("\n");for(i=0;i<t;i++){if(strcmp(equ[i].number,number)==0)(如果号码对应就进行计数){sum++;save(1,2);}}if(sum==0){printf(" Sorry! Cannot find the equipment which you want to!\n\n");}else{printf(" There are[%-2d]equipment(s) which you want to statistic in the record!\n\n",sum);}printf("Press any key to go back the former step...\n");getch();menu();}void tb_name(){char name[11];int t,i,sum=0;t=load_equ();printf("Please input the equipment name:[__________]\b\b\b\b\b\b\b\b\b\b\b");scanf("%s",name);printf("\n");for(i=0;i<t;i++){if(strcmp(equ[i].name,name)==0){sum++;save(1,2);/*把符合条件的记录保存在查询记事本里*/}}if(sum==0){printf(" Sorry! Cannot find the equipment which you want to!\n\n");}else{printf(" There are[%-2d]equipment(s) which you want to statistic in the record!\n\n",sum);}printf("Press any key to go back the former step...\n");getch();menu();}void tb_buy_tq(){char year1[11],year2[11];int t,i,sum=0;t=load_equ();printf("Please input the start time:[____.__.__]\b\b\b\b\b\b\b\b\b\b\b"); scanf("%s",year1);printf("\n");printf("Please input the finish time:[____.__.__]\b\b\b\b\b\b\b\b\b\b\b"); scanf("%s",year2);printf("\n");for(i=0;i<t;i++){if((strcmp(equ[i].b_time,year1)>=0)&&(strcmp(equ[i].b_time,year2)<=0)){sum++;save(1,2);/*把符合条件的记录保存在查询记事本里*/}}if(sum==0){printf("**************************************************************\n\ n");printf(" Sorry! Cannot find the equipment which you want to!\n\n");printf("**************************************************************\n\ n");}else{printf("***************************************************************** ********\n\n");printf(" There are[%-2d]equipment(s) which you want to statistic in the record!\n\n",sum);printf("***************************************************************** ********\n\n\n\n");}printf("Press any key to go back the former step...\n");getch();menu();}void tb_gb_tq(){char year1[11],year2[11];int t,i,sum=0;t=load_equ();printf("Please input the start time:[____.__.__]\b\b\b\b\b\b\b\b\b\b\b"); scanf("%s",year1);printf("\n");printf("Please input the finish time:[____.__.__]\b\b\b\b\b\b\b\b\b\b\b");scanf("%s",year2);printf("\n");for(i=0;i<t;i++){if((strcmp(equ[i].giveb_time,year1)>=0)&&(strcmp(equ[i].giveb_time,year2) <=0)){sum++;save(1,2);/*把符合条件的记录保存在查询记事本里*/}}if(sum==0){printf("**************************************************************\n\n"); printf(" Sorry! Cannot find the equipment which you want to!\n\n");printf("**************************************************************\n\n"); }else{printf("********************************************************************** ***\n\n");printf(" There are[%-2d]equipment(s) which you want to statistic in the record!\n\n",sum);printf("********************************************************************** ***\n\n\n\n");}printf("Press any key to go back the former step...\n");getch();menu();}七.退出模块(此模块隐藏在其他模块中,就不一一举出了。