仪器仪表管理系统—C语言课程设计
- 格式:doc
- 大小:618.00 KB
- 文档页数:27
管理系统c 课程设计一、课程目标知识目标:1. 理解管理系统C的基本原理和功能,掌握其操作流程;2. 学习管理系统C中数据录入、查询、修改和删除等基本操作;3. 了解管理系统C在现实生活中的应用场景,提高对信息管理系统的认识。
技能目标:1. 学会使用管理系统C进行信息处理,提高数据处理能力;2. 能够运用所学知识解决实际问题,培养解决实际问题的能力;3. 学会与团队协作完成信息管理任务,提升团队协作能力。
情感态度价值观目标:1. 培养学生对信息管理工作的兴趣,激发学习热情;2. 增强学生的信息素养,认识到信息管理在现代社会的重要性;3. 培养学生严谨、细致的工作态度,提高责任感和使命感。
分析课程性质、学生特点和教学要求,本课程旨在帮助学生在掌握管理系统C 基本操作的基础上,提高信息处理能力,培养学生解决实际问题的能力。
课程目标具体、可衡量,有助于学生和教师在教学过程中明确预期成果,并为后续的教学设计和评估提供依据。
二、教学内容1. 管理系统C概述- 了解管理系统C的发展背景与应用领域;- 掌握管理系统C的基本功能与操作界面。
2. 管理系统C基本操作- 数据录入:学习如何添加新数据;- 数据查询:掌握按条件查询数据的方法;- 数据修改:学习修改已录入数据的方法;- 数据删除:了解如何删除不需要的数据。
3. 管理系统C在实际应用中的案例分析- 分析管理系统C在不同场景下的应用案例;- 学习如何将管理系统C应用于解决实际问题。
4. 团队协作与信息管理- 学习在团队中如何高效地使用管理系统C进行信息共享与协作;- 掌握团队协作中沟通与协调的技巧。
5. 课程实践与总结- 完成课程实践项目,巩固所学知识;- 进行课程总结,分享学习心得与经验。
教学内容根据课程目标进行选择和组织,保证科学性和系统性。
教学大纲明确教学内容安排和进度,与教材章节紧密关联。
通过以上教学内容的学习,学生能够掌握管理系统C的相关知识和技能,为实际应用打下坚实基础。
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语言在仪器仪表编程中的应用及相关理论知识。
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)三.总体设计 (1)四.详细设计 (1)五.完整程序 (12)六.上机操作 (21)七.结束语 (24)一.题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期等。
试设计一实验设备信息管理系统,使之能提供以下功能: (1) 能够完成对设备的录入和修改 (2) 对设备进行分类统计 (3) 设备的查询二.需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。
三.总体设计根据上面的需求分析,可以将这个系统的设计分为以下模块四.详细设计1.主函数[流程图][程序]main() /*********************主函数***********************************/ {int n,w,t;for(t=0;t<1;t++) 1{do{puts("\t\t*******MENU*******\n\n");puts("\t\t 1.Enter new data");puts("\t\t 2.Addition data");puts("\t\t 3.Modify data");puts("\t\t 4.Statist ");puts("\t\t 5.Search");puts("\t\t 6.Exit");puts("\n\n\t\t*****************\n");printf("What do you want to do(1-6):");scanf("%d",&n);if(n<1||n>6) /*对选择的数字作出判断*/{ w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:t=enter();break; /*输入模块*/case 2:t=enter(); break; /*追加模块*/case 3:t=modifty();break; /*修改模块*/case 4:t=total();break; /*统计模块*/case 5:t=search();break; /*搜索模块*/case 6:exit(0); /*退出*/}}2.各功能模块设计(1)输入模块[流程图][程序]/*********************输入模块*****************************/ 2 int enter() /*输入模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要输入的设备个数*/for(j=0;j<i;j++){printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/ {printf("Can not open file!\n");} 3fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",newequ.equipCode,newequ.equipType ,newequ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDa y,newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(2)追加模块[流程图][程序]/*********************追加模块*****************************/int enter() /*追加模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要追加的设备个数*/for(j=0;j<i;j++) 4{printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/ {printf("Can not open file!\n");}fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",newequ.equipCode,newequ.equipType ,newequ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDa y,newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c); 5if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(3)修改模块[需求分析]此模块可以根据客户需要对以记录在文件中的信息进行修改[流程图][程序]/*******************************修改模块*********************/int modifty() /*修改模块*/{EQ equ[50];char code[10];int i,j,c;FILE *fp;printf("*************************************\n");printf("Modifty for the equiment\n");printf("*************************************\n");printf("Please input the equipcode for modiftying\n");scanf("%s",code); /*输入要修改的设备编号*/printf("------------------------------------\n");if((fp=fopen("test.txt","r"))==NULL){ 6 printf("\nCan not open test!\n");}for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ[i].equipCode,equ[i].equipType, equ[i].equipName,&equ[i].equipPrice,&equ[i].buyYear,&equ[i].buyMonth,&equ[i].bu yDay,&equ[i].scrap,&equ[i].scrapYear,&equ[i].scrapMonth,&equ[i].scrapDay);if(strcmp(equ[i].equipCode,code)==0){printf("------------------\n");printf("Input new equipcode\n");scanf("%s",equ[i].equipCode);printf("Input new equiptype\n");scanf("%s",equ[i].equipType);printf("Input new equipname\n");scanf("%s",equ[i].equipName);printf("Input equipPrice\n");scanf("%f",&equ[i].equipPrice);printf("Input new buyYear\n");scanf("%d",&equ[i].buyYear);printf("Input new buyMonth\n");scanf("%d",&equ[i].buyMonth);printf("Input new buyDay\n");scanf("%d",&equ[i].buyDay);printf("Input new scrap\n");scanf("%d",&equ[i].scrap);printf("Input new scrapYear\n");scanf("%d",&equ[i].scrapYear);printf("Input new scrapMonth\n");scanf("%d",&equ[i].scrapMonth);printf("Input new scrapDay\n");scanf("%d",&equ[i].scrapDay);}} /*将修改后的信息写如文件中*/fclose(fp);j=i;if((fp=fopen("test.txt","w"))==NULL){printf("\nCan not open test!\n");} 7 for(i=0;i<j;i++){printf("\nwrite!\n");fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ[i].equipCode,equ[i].equipType ,equ[i].equipName,equ[i].equipPrice,equ[i].buyYear,equ[i].buyMonth,equ[i].buyDa y,equ[i].scrap,equ[i].scrapYear,equ[i].scrapMonth,equ[i].scrapDay);}fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(4)统计模块[需求分析]将已经输入的设备信息进行统计,并显示设备总数、价格总额等信息[流程图][程序]int total(){int c;float sum=0;int count=0;float aver=0;char type[20];EQ equ;int i;FILE *fp;if((fp=fopen("test.txt","r"))==NULL){printf("\nWrong\n");} 8printf("please input equipType:\n");scanf("%s",type);for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %f %d % d %d %d %d %d %d",equ.equipCode,equ.equipType,equ.equipName,&equ.equi pPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYe ar,&equ.scrapMonth,&equ.scrapDay);printf("\nOK!\n");printf("%s,%s,%s,%f,%d,%d,% d,%d,%d,%d,%d\n",equ.equipCode,equ.equipType,equ.equipName,equ.equipP rice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ. scrapMonth,equ.scrapDay);if(strcmp(equ.equipType,typ e)==0){count++;sum+=equ.equipPrice;aver=sum/count;}}fclose(fp);printf("----------Statist--Result-----------");printf("\n\nthe number of this type is:%d",count);printf("\n\nthe total sum of price is:%f",sum);printf("\n\nthe aver of total price is:%f",aver);printf("\nPress any key to exit......");getch();printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(5)搜索模块9[需求分析]该模块的功能是查找用户需要的对应记录,可以分别根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询。
仪器仪表管理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语言课程设计院系:姓名:学号:班号:指导教师:日期:目录一.题目要求 (1)二.需求分析 (1)三.总体设计 (1)四.详细设计 (1)五.完整程序 (12)六.上机操作 (21)七.结束语 (24)一.题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询二.需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。
三.总体设计根据上面的需求分析,可以将这个系统的设计分为以下模块四.详细设计1.主函数[流程图][程序]main() /*********************主函数***********************************/ {int n,w,t;for(t=0;t<1;t++) 1 {do{puts("\t\t*******MENU*******\n\n");puts("\t\t 1.Enter new data");puts("\t\t 2.Addition data");puts("\t\t 3.Modify data");puts("\t\t 4.Statist ");puts("\t\t 5.Search");puts("\t\t 6.Exit");puts("\n\n\t\t*****************\n");printf("What do you want to do(1-6):");scanf("%d",&n);if(n<1||n>6) /*对选择的数字作出判断*/{ w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:t=enter();break; /*输入模块*/case 2:t=enter(); break; /*追加模块*/case 3:t=modifty();break; /*修改模块*/case 4:t=total();break; /*统计模块*/case 5:t=search();break; /*搜索模块*/case 6:exit(0); /*退出*/}}2.各功能模块设计(1)输入模块[流程图][程序]/*********************输入模块*****************************/ 2 int enter() /*输入模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要输入的设备个数*/for(j=0;j<i;j++){printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/{printf("Can not open file!\n");} 3fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",newequ.equipCode,newequ.equipType,new equ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ. scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(2)追加模块[流程图][程序]/*********************追加模块*****************************/int enter() /*追加模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要追加的设备个数*/for(j=0;j<i;j++) 4 {printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/{printf("Can not open file!\n");}fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",newequ.equipCode,newequ.equipType,new equ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ. scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c); 5if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(3)修改模块[需求分析]此模块可以根据客户需要对以记录在文件中的信息进行修改[流程图][程序]/*******************************修改模块*********************/int modifty() /*修改模块*/{EQ equ[50];char code[10];int i,j,c;FILE *fp;printf("*************************************\n");printf("Modifty for the equiment\n");printf("*************************************\n");printf("Please input the equipcode for modiftying\n");scanf("%s",code); /*输入要修改的设备编号*/printf("------------------------------------\n");if((fp=fopen("test.txt","r"))==NULL){ 6printf("\nCan not open test!\n");}for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ[i].equipCode,equ[i].equipType,equ[i].eq uipName,&equ[i].equipPrice,&equ[i].buyYear,&equ[i].buyMonth,&equ[i].buyDay,&equ[i].scrap, &equ[i].scrapYear,&equ[i].scrapMonth,&equ[i].scrapDay);if(strcmp(equ[i].equipCode,code)==0){printf("------------------\n");printf("Input new equipcode\n");scanf("%s",equ[i].equipCode);printf("Input new equiptype\n");scanf("%s",equ[i].equipType);printf("Input new equipname\n");scanf("%s",equ[i].equipName);printf("Input equipPrice\n");scanf("%f",&equ[i].equipPrice);printf("Input new buyYear\n");scanf("%d",&equ[i].buyYear);printf("Input new buyMonth\n");scanf("%d",&equ[i].buyMonth);printf("Input new buyDay\n");scanf("%d",&equ[i].buyDay);printf("Input new scrap\n");scanf("%d",&equ[i].scrap);printf("Input new scrapYear\n");scanf("%d",&equ[i].scrapYear);printf("Input new scrapMonth\n");scanf("%d",&equ[i].scrapMonth);printf("Input new scrapDay\n");scanf("%d",&equ[i].scrapDay);}} /*将修改后的信息写如文件中*/fclose(fp);j=i;if((fp=fopen("test.txt","w"))==NULL){printf("\nCan not open test!\n");} 7for(i=0;i<j;i++){printf("\nwrite!\n");fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ[i].equipCode,equ[i].equipType,equ[i].e quipName,equ[i].equipPrice,equ[i].buyYear,equ[i].buyMonth,equ[i].buyDay,equ[i].scrap,equ[i].sc rapYear,equ[i].scrapMonth,equ[i].scrapDay);}fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(4)统计模块[需求分析]将已经输入的设备信息进行统计,并显示设备总数、价格总额等信息[[程序]int total(){int c;float sum=0;int count=0;float aver=0;char type[20];EQ equ;int i;FILE *fp;if((fp=fopen("test.txt","r"))==NULL){printf("\nWrong\n");} 8 printf("please input equipType:\n");scanf("%s",type);for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice, &equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYear,&equ.scra pMonth,&equ.scrapDay);printf("\nOK!\n");printf("%s,%s,%s,%f,%d,%d,%d, %d,%d,%d,%d\n",equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ. buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ.scrapMonth,equ.scr apDay);if(strcmp(equ.equipType,type)== 0){count++;sum+=equ.equipPrice;aver=sum/count;}}fclose(fp);printf("----------Statist--Result-----------");printf("\n\nthe number of this type is:%d",count);printf("\n\nthe total sum of price is:%f",sum);printf("\n\nthe aver of total price is:%f",aver);printf("\nPress any key to exit......");getch();printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(5)搜索模块9[需求分析]该模块的功能是查找用户需要的对应记录,可以分别根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询。
C语言课程设计院系:姓名:学号:班号:指导教师:日期:目录一.题目要求 (1)二.需求分析 (1)三.总体设计 (1)四.详细设计 (1)五.完整程序 (12)六.上机操作 (21)七.结束语 (24)一.题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期等。
试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询二.需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。
三.总体设计根据上面的需求分析,可以将这个系统的设计分为以下模块四.详细设计1.主函数[流程图]显示一系列功能选项输入n,判断n是否是0-6 根据n的值调用各功能模块函数NY 实验设备管理系统信息输入信息添加信息修改信息统计信息搜索[程序]main() /*********************主函数***********************************/ {int n,w,t;for(t=0;t<1;t++)1{do{puts("\t\t*******MENU*******\n\n");puts("\t\t 1.Enter new data");puts("\t\t 2.Addition data");puts("\t\t 3.Modify data");puts("\t\t 4.Statist ");puts("\t\t 5.Search");puts("\t\t 6.Exit");puts("\n\n\t\t*****************\n");printf("What do you want to do(1-6):");scanf("%d",&n);if(n<1||n>6) /*对选择的数字作出判断*/{ w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:t=enter();break; /*输入模块*/case 2:t=enter(); break; /*追加模块*/case 3:t=modifty();break; /*修改模块*/case 4:t=total();break; /*统计模块*/case 5:t=search();break; /*搜索模块*/case 6:exit(0); /*退出*/}}2.各功能模块设计(1)输入模块[流程图]输入用户要输入设备的个数i输入设备的各项详细信息将输入的信息存储到文件中[程序]/*********************输入模块*****************************/ 2 int enter() /*输入模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要输入的设备个数*/for(j=0;j<i;j++){printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode);printf("Input equiptype\n");scanf("%s",newequ.equipType);printf("Input equipname\n");scanf("%s",newequ.equipName);printf("Input equipPrice\n");scanf("%f",&newequ.equipPrice);printf("Input buyYear\n");scanf("%d",&newequ.buyYear);printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth);printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap);printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/{printf("Can not open file!\n");} 3fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",newequ.equipCode,newequ.equipType,newequ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(2)追加模块[流程图][程序]/*********************追加模块*****************************/ int enter() /*追加模块*/{FILE *fp;EQ newequ;int i,j;int c;printf("**************************************\n");printf("Add new equiment\n");printf("**************************************\n");printf("How many equiments do you want to add?\n");scanf("%d",&i); /*输入要追加的设备个数*/for(j=0;j<i;j++)4{printf("------------------\n");printf("Input equipcode\n");scanf("%s",newequ.equipCode); printf("Input equiptype\n");scanf("%s",newequ.equipType); printf("Input equipname\n"); scanf("%s",newequ.equipName);printf("Input equipPrice\n"); scanf("%f",&newequ.equipPrice); printf("Input buyYear\n");scanf("%d",&newequ.buyYear); printf("Input buyMonth\n");scanf("%d",&newequ.buyMonth); printf("Input buyDay\n");scanf("%d",&newequ.buyDay);printf("Input scrap\n");scanf("%d",&newequ.scrap); printf("Input scrapYear\n");scanf("%d",&newequ.scrapYear);printf("Input scrapMonth\n");scanf("%d",&newequ.scrapMonth);printf("Input scrapDay\n");scanf("%d",&newequ.scrapDay);if((fp=fopen("test.txt","w"))==NULL) /*打开文件,输入保存*/{printf("Can not open file!\n");}fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",newequ.equipCode,newequ.equipType,newequ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c); 5 if(c==1)return(-1);if(c==2)return(0); /*任务结束选择是返回主菜单还是跳出*/}}(3)修改模块[需求分析]此模块可以根据客户需要对以记录在文件中的信息进行修改[流程图][程序]/*******************************修改模块*********************/ int modifty()/*修改模块*/{EQ equ[50];char code[10];int i,j,c;输入要修改的设备编号是否找到该设备资料显示找到的记录,调用修改函数显示没有找到对该设备的信息进行修改返回主菜单返回主菜单ynFILE *fp;printf("*************************************\n");printf("Modifty for the equiment\n");printf("*************************************\n");printf("Please input the equipcode for modiftying\n");scanf("%s",code); /*输入要修改的设备编号*/printf("------------------------------------\n");if((fp=fopen("test.txt","r"))==NULL){ 6 printf("\nCan not open test!\n");}for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ[i].equipCode,equ[i].equipType,equ[i].equipName,&equ[i].equipPrice,&equ[i].buyYear,&equ[i].buyMonth,&equ[i].buyDay,&equ[i].scrap,&equ[i].scrapYear,&equ[i].scrapMonth,&equ[i].scrapDay);if(strcmp(equ[i].equipCode,code)==0){printf("------------------\n");printf("Input new equipcode\n"); scanf("%s",equ[i].equipCode); printf("Input new equiptype\n"); scanf("%s",equ[i].equipType); printf("Input new equipname\n"); scanf("%s",equ[i].equipName); printf("Input equipPrice\n"); scanf("%f",&equ[i].equipPrice);printf("Input new buyYear\n"); scanf("%d",&equ[i].buyYear); printf("Input new buyMonth\n"); scanf("%d",&equ[i].buyMonth); printf("Input new buyDay\n"); scanf("%d",&equ[i].buyDay);printf("Input new scrap\n"); scanf("%d",&equ[i].scrap);printf("Input new scrapYear\n"); scanf("%d",&equ[i].scrapYear); printf("Input new scrapMonth\n");scanf("%d",&equ[i].scrapMonth);printf("Input new scrapDay\n");scanf("%d",&equ[i].scrapDay);}} /*将修改后的信息写如文件中*/fclose(fp);j=i;if((fp=fopen("test.txt","w"))==NULL){printf("\nCan not open test!\n");} 7 for(i=0;i<j;i++){printf("\nwrite!\n");fprintf(fp,"%s %s %s %f %d %d %d %d %d %d %d",equ[i].equipCode,equ[i].equipType,equ[i].equipName,equ[i].equipPrice,equ[i].buyYear,equ[i].buyMonth,equ[i].buyDay,equ[i].scrap,equ[i].scrapYear,equ[i].scrapMonth,equ[i].scrapDay);}fclose(fp);printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(4)统计模块[需求分析]将已经输入的设备信息进行统计,并显示设备总数、价格总额等信息[流程图][程序] int total() { 打开文件,并对文件中的设备信息进行统计计算输出统计结果返回主菜单int c;float sum=0;int count=0;float aver=0;char type[20];EQ equ;int i;FILE *fp;if((fp=fopen("test.txt","r"))==NULL){printf("\nWrong\n");} 8printf("please input equipType:\n");scanf("%s",type);for(i=0;!feof(fp);i++){fscanf(fp,"%s %s %s %f %d % d %d %d %d %d %d",equ.equipCode,equ.equipType,equ.equipName,&equ. equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYear,&equ.scrapMonth,&equ.scrapDay);printf("\nOK!\n");printf("%s,%s,%s,%f,%d,%d,% d,%d,%d,%d,%d\n",equ.equipCode,equ.equipType,equ.equipName,equ.equi pPrice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ.s crapMonth,equ.scrapDay);if(strcmp(equ.equipType,type) ==0){count++;sum+=equ.equipPrice;aver=sum/count;}}fclose(fp);printf("----------Statist--Result-----------");printf("\n\nthe number of this type is:%d",count);printf("\n\nthe total sum of price is:%f",sum);printf("\n\nthe aver of total price is:%f",aver);printf("\nPress any key to exit......");getch();printf("\n-----------------------\n");printf("Return to main menu? \n");printf("1.YES \n");printf("2.NO,I want to quit now\n");scanf("%d",&c);if(c==1)return(-1);if(c==2)return(0);}(5)搜索模块9 [需求分析]该模块的功能是查找用户需要的对应记录,可以分别根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询。
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)新的仪器仪表信息的录入;(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语言中关于仪器管理的知识,包括了解仪器的结构、功能和操作方法,能够运用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语言仪器管理课程设计一、课程目标知识目标:1. 学生能够掌握C语言基础,包括数据类型、变量、运算符、控制结构等。
2. 学生能够理解仪器管理系统的基本需求,运用C语言实现数据输入、处理、存储和输出。
3. 学生能运用结构体、文件操作等C语言知识,构建简单的仪器信息管理系统。
技能目标:1. 学生能够运用C语言编写程序,实现仪器的基本管理功能,如增加、删除、修改和查询。
2. 学生能够使用调试工具进行程序调试,解决程序中出现的常见错误。
3. 学生能够通过课程学习,培养编程思维,提高问题解决能力。
情感态度价值观目标:1. 学生通过C语言编程,体验编程的乐趣,激发对计算机科学的兴趣。
2. 学生在团队协作中,学会沟通与分享,培养合作意识和团队精神。
3. 学生在课程学习中,认识到编程在现实生活中的应用,提高对信息技术的认识和价值判断。
本课程针对高年级学生,课程性质为实践性较强的学科。
结合学生特点,课程目标注重培养编程技能和实际应用能力,将知识目标、技能目标和情感态度价值观目标相结合,使学生在掌握C语言知识的同时,能够应用于实际问题解决。
教学要求以学生为主体,注重实践操作,培养学生自主学习和团队协作能力,以提高课程学习成果。
二、教学内容本课程教学内容围绕C语言仪器管理系统的设计与实现,依据课程目标,教学内容分为以下三个部分:1. C语言基础知识:- 数据类型、变量、常量的定义与使用。
- 运算符、表达式和语句。
- 控制结构:顺序、选择、循环。
- 数组、字符串、函数的基本概念及应用。
2. C语言进阶知识:- 结构体、共用体和枚举。
- 指针与动态内存管理。
- 文件操作。
- 预处理器指令。
3. 仪器管理系统设计与实现:- 分析仪器管理系统的功能需求,设计系统框架。
- 编写C程序实现仪器信息录入、查询、修改、删除等操作。
- 课程项目:小组合作完成一个简单的仪器管理系统。
教学内容参考教材相关章节,教学进度安排如下:1. C语言基础知识(第1-4章):4课时。
课程设计报告课程名称C语言程序设计课题名称实验设备管理系统专业电子信息班级1102班学号XXX姓名XXX指导教师XXXX2012年6 月23 日湖南工程学院课程设计任务书课程名称C语言程序设计课题实验设备管理系统专业班级电子信息1102班学生姓名XXX学号XXX指导老师XXXX审批任务书下达日期XXX 年 6 月18 日任务完成日期XXX年 6 月28 日一、设计内容与设计要求1.设计内容:实验设备管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:1)用C语言实现系统;利用结构体数组实现实验设备信息的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。
2) 建立一个实验设备信息数据库,文件名为s bxxk.txt,并从该文件中读取数据;3) 实验设备管理系统应能提供以下功能:①系统以菜单方式工作②实验设备信息显示功能;显示时按表格的形式,且应有表头。
③设备信息追加功能;追加一条(或多条)新记录,要求在追加过程中有相应的提示信息,完成追加后能重新排序和显示;④设备信息查询功能;a.. 按设备编号查询;b. 按设备名称查询;c. 按单价查询;d. 按购置日期查询;要求系统在上述查询方式中至少应有两种以上的查询方式,且能显示符合条件的所的记录。
课程设计报告课程名称:通讯录管理系统专 业 : 计算机科学与技术 班 级 : 11级计算机科学与技术<3>班 学生姓名 : 李 孝 东 学 号 : 2011404010337 指导教师 : 任 正 云 提交日期 : 2012.06.15JINGCHU UNIVERSITY OF TECHNOLOGY摘要:纸质的通讯录已经不能满足我们的要求,更新麻烦,查询困难等缺点是纸质通讯录所不能克服的。
在此情况下,迫切需要一个电子版的通讯录来满足我们的需求。
这次课程设计的通讯录采用了二叉搜索树这一数据结构,并完成了添加、查找、删除、保存等功能。
在TC2.0平台下实现了人机交互界面上的图形化设计,其中菜单的显示为逐桢动画,在等待用户按键输入时设计了友好的系统。
关键字:数组,结构体,指针,函数,文件summary:paper's address book can't meet our requirements, update the trouble, inquires the difficulty is the disadvantages such as paper address book can't overcome. In this case, the urgent need to a version of the address book to meet our needs. The course design of the address book adopted binary search trees the data structure, and completed add, delete, save search, etc. Function. In TC2.0 the workbench realized on the man-machine interface graphical design, including the menu that by standard for animation, waiting for the user input buttons when the friendly system design.Key words:arrays, structures, pointer, function, file目录一、设计题目及要求 (3)二、概要设计 (3)三、详细设计 (4)3.1 通讯录: (4)3.2 工作流程图: (5)四、源程序代码 (9)五、用户手册 (16)六、课程设计总结和心得体会 (17)七、参考文献 (17)一、设计题目及要求:建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;能够提供添加、删除和修改通讯录信息的功能;能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;将通讯录保存在文件中;能够按表格方式输出通讯录信息。
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语言在仪器仪表领域的应用,包括基本语法、数据结构、算法和编程实践。
通过本课程的学习,学生将能够熟练使用C语言进行仪器仪表软件的开发和维护。
知识目标:学生将掌握C语言的基本语法、数据类型、运算符、控制结构、函数、指针、数组、结构体等核心概念。
技能目标:学生将能够运用C语言进行程序设计,解决实际问题,具备仪器仪表软件开发的基本能力。
情感态度价值观目标:培养学生对编程事业的热爱,提高学生解决实际问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程实践。
教学大纲如下:1.C语言基础知识:介绍C语言的基本语法、数据类型、运算符、控制结构等。
2.函数和模块化编程:讲解函数的定义、调用、参数传递、返回值等,以及模块化编程的原理和方法。
3.数据结构和算法:学习线性表、栈、队列、链表等数据结构,以及常用的排序和查找算法。
4.文件操作和内存管理:掌握文件的基本操作、内存分配和回收机制。
5.仪器仪表应用案例:学习C语言在仪器仪表领域的应用实例,如数据采集、信号处理等。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
1.讲授法:通过讲解C语言的基本概念、语法和编程技巧,使学生掌握知识要点。
2.讨论法:学生就编程实践中遇到的问题进行讨论,培养学生的思考和解决问题的能力。
3.案例分析法:分析仪器仪表领域的实际案例,使学生了解C语言在实际应用中的重要作用。
4.实验法:安排实验课程,让学生动手编写程序,提高学生的实际操作能力。
四、教学资源1.教材:选用权威、实用的C语言教材,如《C程序设计原理与应用》。
2.参考书:提供相关的C语言编程参考书籍,如《C语言编程思想》。
3.多媒体资料:制作精美的PPT课件,便于学生理解和记忆。
4.实验设备:提供计算机实验室,让学生进行实际操作。
五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面反映学生的学习成果。
c语言课程设计设备管理一、教学目标本节课的教学目标是让学生掌握C语言中设备管理的基本概念和编程方法。
具体包括:1.知识目标:使学生了解设备管理的基本概念,理解设备管理在操作系统中的重要性,掌握C语言中设备管理的常用函数和编程方法。
2.技能目标:培养学生运用C语言进行设备管理的编程能力,能够独立完成简单的设备管理程序设计,并具备一定的调试和优化能力。
3.情感态度价值观目标:培养学生对计算机科学和编程的兴趣,激发学生主动学习和探索的热情,培养学生的团队协作意识和沟通能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.设备管理的基本概念:介绍设备管理的定义、作用和分类,使学生了解设备管理在操作系统中的重要性。
2.C语言设备管理编程方法:讲解C语言中设备管理的常用函数,如文件操作函数、设备控制函数等,并通过实例展示如何运用这些函数进行设备管理程序的设计。
3.设备管理程序设计实践:安排学生进行设备管理程序的设计和调试,培养学生的编程能力和问题解决能力。
三、教学方法为了达到本节课的教学目标,将采用以下教学方法:1.讲授法:讲解设备管理的基本概念和C语言设备管理编程方法,使学生掌握基本知识。
2.案例分析法:通过分析典型设备管理程序案例,使学生更好地理解和运用所学知识。
3.实验法:安排学生进行设备管理程序的设计和调试,培养学生动手实践能力和问题解决能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,培养学生的团队协作意识和沟通能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供理论知识的学习参考。
2.参考书:提供一些设备管理相关的参考书籍,丰富学生的知识储备。
3.多媒体资料:制作课件和教学视频,为学生提供直观的学习资料。
4.实验设备:准备计算机和相关设备,为学生提供实践操作的机会。
五、教学评估为了全面、客观地评估学生在设备管理课程中的学习成果,将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答和小组讨论的表现,评估学生的学习态度和理解能力。
实验设备管理系统设计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(">>>>>>>>>>提示:已经完成一条记录的添加。
仪器仪表管理1.题目要求Ⅰ.【要求】系统功能的基本要求:(1)新的仪器仪表信息的录入;(2)在借出、归还、维修时对仪器仪表信息的修改;(3)对报废仪器仪表信息的删除;(4)按照一定的条件查询符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间点(借入时间、借出时间、归还时间)查询等(5)对查询结果的输出。
【提示】数据结构采用结构体。
仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。
Ⅱ.需求分析根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。
2.功能实现设计2.1总体设计系统功能模块图2.2详细设计1.主函数主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。
其各功能模块用菜单方式选择。
本题将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。
【程序】main(){menu();}菜单部分设计如下:【流程图】N【程序】main(){menu();}void menu(){int w,n;do{system("cls");printf("\t\t WELCOME TO THE EQUIPMENT MANAGEMENTSYSTEM\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)添加模块【数据结构】【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。
实际上操作时发现只有字符型的数据可以在文件中成功被保存,所以本题所有数据一律采用字符型。
struct equip{char number[4];char name[11];char b_time[11];char bin_time[11];char bout_time[11];char giveb_time[11];char repair_time[11]; /*time为下面程序中按时间查找和修改时记录输入的时间*/int state;}equ[M];【注意】equ[M]中的M是仪表仪器个数,程序中采用宏定义的方式,可以随时在源程序宏定义中改,本程序宏定义#define M 50。
【流程图】输入模块流程图【程序】/****************添加模块****************/void add_new_message(){int t,i,m;system("cls");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组数据*/system("cls");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);}/*显示记录模块*/void load_record(){int t;t=load_equ();printf_n(t);printf("\n\n\nPress any key to go back...\n\n");getchar();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;system("cls");/*清屏*/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 ...");getchar();puts("\n\n");}printf_one(j);/*调用显示一个仪器记录的函数*/}}(2)修改模块[需求分析]该模块的功能是显示所有仪器仪表信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,用户输入要修改的仪器仪表编号,根据编号查找仪器仪表记录,并提示用户修改该记录的哪部分信息,是仪器仪表的借出时间、归还时间、修理时间还是状态,根据用户选择修改相应信息。
[流程图][程序]/*************************修改模块***********************/void modify(){struct equip mod;int t,i,m,w,addr=-1;char number[4]={' '}, name[11]={' '};system("cls");/*清屏*/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,e qu[i].name,equ[i].b_time,equ[i].bin_time,equ[i].bout_time,equ[i].giveb_time,equ[i].repair_time,eq u[i].state);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");getchar();menu();}save(t,0);/*修改后的信息保存*/printf(" Press any key to go back...\n\n");getchar();menu();}(3)查询模块[流程图]N查询模块流程图[程序]/****************查询模块****************/void search(){int w,n;do{system("cls");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();system("cls");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");system("cls");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_search_record(i);/*把符合条件的记录保存在查询记事本里*/}}getch();if(sum==0){system("cls");printf("Sorry! Cannot find the equipment which you want to.\n\n");getch();}printf("Press any key to go back the former step...\n");getchar();menu();}void sb_gb_tq()/*按购买时间段查询函数*/{char year1[11],year2[11];int t,i,sum=0;t=load_equ();system("cls");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");system("cls");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_search_record(i);/*把符合条件的记录保存在查询记事本里*/}}getch();if(sum==0){system("cls");printf("***************************************************\n\n");printf("Sorry! Cannot find the equipment which you want to.\n\n");printf("***************************************************\n\n");getch();}printf("Press any key to go back the former step...\n");getchar();menu();}void sb_par_number()/*按指定编号查询*/{char number[4];int t,i,sum=0;t=load_equ();system("cls");printf("Please input the equipment number(000~999):[___]\b\b\b\b");scanf("%s",number);printf("\n");system("cls");for(i=0;i<t;i++){if(strcmp(equ[i].number,number)==0){printf_one(i);/*把符合条件的记录显示出来*/sum++;save_search_record(i);/*把符合条件的记录保存在查询记事本里*/}}getch();if(sum==0){system("cls");printf("Sorry! Cannot find the equipment which you want to.\n\n");getch();}printf("Press any key to go back the former step...\n");getchar();menu();}void sb_name()/*按仪器名称查询*/{char name[11];int t,i,sum=0;t=load_equ();system("cls");printf("Please input the equipment name:[__________]\b\b\b\b\b\b\b\b\b\b\b");scanf("%s",name);printf("\n");system("cls");for(i=0;i<t;i++){if(strcmp(equ[i].name,name)==0){printf_one(i);/*把符合条件的记录显示出来*/sum++;save_search_record(i);/*把符合条件的记录保存在查询记事本里*/}}getch();if(sum==0){system("cls");printf("Sorry! Cannot find the equipment which you want to.\n\n");getch();}printf("Press any key to go back the former step...\n");getchar();menu();}(4)删除模块[需求分析]该模块的功能与修改模块一样先显示所有仪器仪表信息,同样考虑到记录较多,建议采用分屏显示。