c语言实验设备管理系统

合集下载

C语言编程中的智能城市与环境监测

C语言编程中的智能城市与环境监测

C语言编程中的智能城市与环境监测随着科技的不断发展,智能城市和环境监测成为了人们关注的焦点。

C语言作为一种广泛应用于嵌入式系统和底层开发的编程语言,在智能城市和环境监测领域也扮演着重要的角色。

本文将介绍C语言编程中智能城市与环境监测的相关技术和应用。

1. C语言在智能城市中的应用智能城市通过网络和信息技术的应用,实现了城市基础设施的智能化和高效管理。

而C语言在智能城市系统中发挥着重要的作用。

首先,C语言可以直接操作硬件,与底层设备进行交互,实现智能化设备的控制和管理。

其次,C语言具有高效性和可移植性,可以满足智能城市系统对实时性和稳定性的要求。

最后,C语言丰富的库和工具使得开发人员能够快速构建智能城市系统的功能模块。

2. C语言在环境监测中的应用环境监测是智能城市中的一个重要组成部分,它通过传感器和监测设备采集环境数据,并通过数据分析和处理实现对环境质量的监测和评估。

在环境监测中,C语言常常用于编写数据采集和处理的程序。

C语言的高效性和可嵌入性使得它成为了嵌入式环境监测设备的首选编程语言。

同时,C语言丰富的数据处理库和算法也可以用于环境数据的分析和模型建立,进一步提高环境监测的准确性和可靠性。

3. C语言编程中的智能城市与环境监测案例下面将介绍两个实际案例,展示C语言在智能城市和环境监测中的应用。

案例一:智能交通系统智能交通系统通过感知、处理和控制技术提高交通系统的效率和安全性。

C语言可以用于编写智能交通系统控制器的程序,与交通信号灯、摄像头等设备进行通信和协调。

通过C语言编程,可以实现车辆流量的监测与调度,交通信号的智能控制,从而优化城市交通拥堵问题。

案例二:空气质量监测系统空气质量监测系统通过传感器网络采集环境中的空气质量数据,并通过数据分析和处理实时评估空气质量。

C语言可以用于编写传感器数据采集程序,实现对空气质量传感器的控制和数据采集。

同时,C 语言也可以用于空气质量数据的实时处理和分析,提供准确的空气质量监测报告。

C语言嵌入式操作系统裸机和RTOS

C语言嵌入式操作系统裸机和RTOS

C语言嵌入式操作系统裸机和RTOS C语言嵌入式操作系统裸机与RTOS嵌入式操作系统(Embedded Operating System,简称EOS)是一种专为嵌入式设备设计的操作系统,它具有小巧、高效、实时等特点。

而裸机编程是指在嵌入式系统中,直接与硬件进行交互编程的方式,不依赖于任何操作系统。

RTOS(Real-time Operating System,实时操作系统)是一种提供实时响应的操作系统,针对嵌入式系统而设计。

本文将介绍C语言嵌入式操作系统裸机编程和RTOS编程的基础知识和技巧。

一、裸机编程入门在进行裸机编程之前,我们需要了解硬件平台的相关信息,包括处理器型号、寄存器、外设等。

然后,我们可以通过配置寄存器来初始化硬件设备,设置中断服务程序,并编写具体的功能代码。

在裸机编程中,我们需要注意时间分片、中断处理和资源管理等问题。

二、裸机编程与RTOS的区别1. 复杂性:裸机编程相对简单,因为我们可以直接访问硬件资源。

而RTOS编程需要考虑任务调度、资源互斥、消息传递等复杂的操作系统特性。

2. 实时性:RTOS可以提供更好的实时性能,可以用于要求较高实时响应的应用场景。

而裸机编程的实时性取决于程序的具体实现。

3. 可移植性:裸机编程通常与特定的硬件平台绑定,不具备通用的可移植性。

而RTOS提供了抽象层,可以将应用程序与底层硬件解耦,提高了可移植性。

三、RTOS编程基础1. 任务管理:RTOS允许将应用程序划分为多个任务,并通过任务调度器进行管理。

每个任务执行特定的功能,实现任务之间的并发执行。

2. 中断处理:RTOS提供了中断处理机制,可以对不同的中断进行响应和处理。

中断处理程序可以与任务同时运行,保证了系统的实时性。

3. 时间管理:RTOS提供了时间管理功能,可以进行时间片轮转调度、优先级调度等,确保任务按照预定的时间顺序执行。

4. 同步与互斥:RTOS提供了信号量、互斥锁等机制,用于管理共享资源的访问。

操作系统实验报告进程调度

操作系统实验报告进程调度

操作系统实验报告进程调度操作系统实验报告:进程调度引言在计算机科学领域中,操作系统是一个重要的概念,它负责管理和协调计算机系统中的各种资源,包括处理器、内存、输入/输出设备等。

其中,进程调度是操作系统中一个非常重要的组成部分,它负责决定哪个进程在何时获得处理器的使用权,以及如何有效地利用处理器资源。

实验目的本次实验的目的是通过对进程调度算法的实验,深入理解不同的进程调度算法对系统性能的影响,并掌握进程调度算法的实现方法。

实验环境本次实验使用了一台配备了Linux操作系统的计算机作为实验平台。

在该计算机上,我们使用了C语言编写了一些简单的进程调度算法,并通过模拟不同的进程调度场景进行了实验。

实验内容1. 先来先服务调度算法(FCFS)先来先服务调度算法是一种简单的进程调度算法,它按照进程到达的顺序进行调度。

在本次实验中,我们编写了一个简单的FCFS调度算法,并通过模拟多个进程同时到达的情况,观察其对系统性能的影响。

2. 短作业优先调度算法(SJF)短作业优先调度算法是一种根据进程执行时间长度进行调度的算法。

在本次实验中,我们编写了一个简单的SJF调度算法,并通过模拟不同长度的进程,观察其对系统性能的影响。

3. 时间片轮转调度算法(RR)时间片轮转调度算法是一种按照时间片大小进行调度的算法。

在本次实验中,我们编写了一个简单的RR调度算法,并通过模拟不同时间片大小的情况,观察其对系统性能的影响。

实验结果通过实验,我们发现不同的进程调度算法对系统性能有着不同的影响。

在FCFS 算法下,长作业会导致短作业等待时间过长;在SJF算法下,长作业会导致短作业饥饿现象;而RR算法则能够较好地平衡不同进程的执行。

因此,在实际应用中,需要根据具体情况选择合适的进程调度算法。

结论本次实验通过对进程调度算法的实验,深入理解了不同的进程调度算法对系统性能的影响,并掌握了进程调度算法的实现方法。

同时,也加深了对操作系统的理解,为今后的学习和研究打下了良好的基础。

基于C语言的RTOS实时嵌入式系统设计与优化

基于C语言的RTOS实时嵌入式系统设计与优化

基于C语言的RTOS实时嵌入式系统设计与优化在当今数字化时代,嵌入式系统已经成为各种电子设备中不可或缺的一部分。

而实时操作系统(RTOS)作为一种专门用于处理实时任务的操作系统,在嵌入式系统中扮演着至关重要的角色。

本文将重点讨论基于C语言的RTOS实时嵌入式系统设计与优化,旨在帮助开发人员更好地理解和应用RTOS技术,提升嵌入式系统的性能和稳定性。

什么是RTOSRTOS全称Real-Time Operating System,即实时操作系统。

与通用操作系统相比,RTOS更加注重对任务响应时间的保证,能够在严格的时间限制下完成任务。

在嵌入式系统中,时间敏感性是至关重要的,因此RTOS在这种场景下得到了广泛的应用。

C语言在RTOS中的地位C语言作为一种通用且高效的编程语言,在嵌入式系统开发中扮演着举足轻重的角色。

大多数RTOS都是使用C语言编写的,因此熟练掌握C语言对于RTOS开发人员来说至关重要。

C语言具有良好的可移植性和灵活性,能够很好地适应不同硬件平台和系统架构,为RTOS的设计与优化提供了坚实的基础。

RTOS设计原则在设计基于C语言的RTOS实时嵌入式系统时,需要遵循一些重要的原则,以确保系统具有良好的性能和稳定性:任务调度策略:合理设计任务调度策略是RTOS设计的核心。

根据任务的优先级和时间要求,采用合适的调度算法(如优先级调度、时间片轮转等),确保高优先级任务能够及时响应。

资源管理:RTOS需要有效管理系统资源,包括内存、处理器时间、外设等。

合理分配和释放资源,避免资源冲突和浪费,提高系统利用率。

中断处理:嵌入式系统经常面临各种中断事件,RTOS需要具备良好的中断处理能力。

及时响应中断请求,并确保中断服务程序尽快完成,减少对实时任务的影响。

任务通信与同步:不同任务之间需要进行通信和同步操作。

RTOS提供了多种机制(如消息队列、信号量、邮箱等)来实现任务之间的数据交换和协作。

RTOS优化技巧除了设计原则外,优化也是提升基于C语言的RTOS实时嵌入式系统性能的关键。

c语言程序设计课程设计选题 (1)

c语言程序设计课程设计选题 (1)

《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。

20.2、图书基本信息的查询。

21.3、对撤消图书信息的删除。

22.4、为借书人办理注册。

23.5、办理借书手续。

24.6、办理还书手续25.要求:使用文件方式存储数据。

26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。

28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。

34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。

C语言设备驱动编程入门

C语言设备驱动编程入门

C语言设备驱动编程入门C语言设备驱动编程是一项常见的技术,用于编写操作系统的设备驱动程序。

设备驱动程序是操作系统与硬件设备之间的桥梁,它负责将用户操作转化为硬件设备能够理解和执行的指令。

本文将介绍C语言设备驱动编程的基本概念和入门知识,帮助读者了解并入门这一重要的编程技术。

一、设备驱动程序概述设备驱动程序是操作系统的一部分,它与操作系统内核紧密结合,用于实现对硬件设备的控制和管理。

设备驱动程序通常由硬件设备制造商提供,或者由操作系统开发者开发。

它负责处理硬件设备与操作系统之间的通信,使得用户能够方便地操作硬件设备。

设备驱动程序可以分为字符设备驱动和块设备驱动两种类型。

字符设备驱动用于处理流式数据的设备,如键盘、鼠标等;块设备驱动用于处理以块为单位的数据的设备,如硬盘、U盘等。

不同类型的设备驱动程序在实现上有所不同,但都需要用C语言编写。

二、设备驱动程序的基本结构设备驱动程序的基本结构包括设备初始化、设备打开、设备关闭和设备读写等函数。

下面我们逐步介绍这些函数的作用和实现方法。

1. 设备初始化函数设备初始化函数负责对设备进行初始化,包括设备的寄存器配置、中断设置等。

在这个函数中,我们需要了解硬件设备的相关规格和特性,并根据需要进行适当的配置。

2. 设备打开函数设备打开函数在设备被用户程序打开时被调用,它负责向操作系统申请资源,并进行相应的设置,例如打开文件、分配内存等。

3. 设备关闭函数设备关闭函数在设备被用户程序关闭时被调用,它负责释放设备所占用的资源,如释放文件占用的内存、关闭文件等。

4. 设备读写函数设备读写函数是设备驱动程序的核心部分,它负责设备与用户程序之间的数据交换。

设备读函数用于从设备中读取数据,设备写函数用于向设备中写入数据。

三、设备驱动程序的编写步骤编写设备驱动程序需要经过以下几个步骤:1. 了解硬件设备在编写设备驱动程序之前,我们需要详细了解硬件设备的规格和特性,包括硬件寄存器的地址、中断向量等。

基于C的智能交通监控系统开发

基于C的智能交通监控系统开发

基于C的智能交通监控系统开发智能交通监控系统是利用先进的技术手段对道路交通进行实时监控和管理的系统,旨在提高交通效率、减少交通事故、改善交通环境。

本文将介绍基于C语言开发智能交通监控系统的相关内容。

1. 智能交通监控系统概述智能交通监控系统是一种集成了计算机视觉、图像处理、数据分析等技术的智能化系统,通过摄像头、传感器等设备采集道路信息,实现对车辆、行人等交通参与者的监测和识别,从而实现对交通流量、拥堵情况等的实时监控和分析。

2. C语言在智能交通监控系统中的应用C语言作为一种高效、灵活的编程语言,在智能交通监控系统的开发中具有重要作用。

通过C语言编程,可以实现对硬件设备的底层控制和数据处理,保证系统的稳定性和高效性。

同时,C语言具有良好的跨平台性,适用于不同操作系统下的开发。

3. 智能交通监控系统的功能需求实时视频监控:通过摄像头采集道路信息,实现对车辆、行人等的实时监测。

车辆识别:利用图像处理技术对车辆进行识别和分类。

交通流量统计:统计车辆通过道路的数量和速度,分析道路拥堵情况。

事件检测:检测交通事故、违章行为等异常事件,并及时报警。

数据存储与分析:将采集到的数据进行存储和分析,生成报表和统计图表。

4. 智能交通监控系统的技术实现4.1 硬件设备智能交通监控系统需要配备摄像头、传感器、服务器等硬件设备,用于数据采集、处理和存储。

4.2 软件模块4.2.1 数据采集模块利用C语言编程实现数据采集模块,包括对摄像头、传感器等设备的控制和数据获取。

4.2.2 图像处理模块通过C语言编程实现图像处理算法,包括车辆识别、行人检测等功能。

4.2.3 数据分析模块利用C语言编程实现数据分析算法,对采集到的数据进行统计分析,并生成报表和统计图表。

5. 智能交通监控系统的优势实时性强:可以及时监测道路情况,减少交通拥堵。

自动化程度高:通过算法自动识别车辆、行人等信息。

数据准确性高:通过数据分析模块对采集到的数据进行准确分析。

《C语言程序设计课设》课程设计指导书

《C语言程序设计课设》课程设计指导书

《C语言程序设计课设》课程设计指导书一、课程设计的目的(1)加深对讲授内容的理解,尤其是一些语法规则。

(2)熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用。

(3)能够综合运用所学知识,编程解决实际问题。

(4)培养团队分工合作的意识,最终使学生提高编程技能和解决实际问题的能力。

二、课程设计基本要求2.1.组织管理1.由院、系指派经验丰富的专业教师担任指导教师。

2.课程设计实行课程负责人与指导教师共同负责制。

3.课程负责人主要进行课设的命题、指导教师的考核、技术把关和全面管理。

4.指导教师全面负责所承担班级的课程设计指导、管理和考核评定工作。

2.2设计要求1.自选题目、小组管理、团队合作、小组评测。

2.模块化程序设计。

3.锯齿型书写格式。

4.必须上机调试通过。

三、选题要求:每个题目限定1-2人,每人必须负责一部分功能,并独立完成,推举出一个组长,负责任务分工,汇总到班长处,然后交给指导教师。

四、设计报告格式及要求:1、题目2、设计目的3、总体设计(程序设计组成框图、流程图)4、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)5、运行结果及分析6、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施7、课程设计心得及体会8、源程序清单和执行结果:清单中应有足够的注释五、课程设计成绩评定5.1基本要求:(1)每个人必须有程序运行结果;(2)每个人必须交《C语言课程设计》报告5.2、成绩评定和打分标准由指导教师对学生在课程设计期间的表现,所完成的设计报告的质量、设计结果的验收和答辩情况进行综合考核。

具体评定标准如下:(1)上机考勤:注重平时上机考勤与遵守纪律情况20%(2)结果验收:学生能运行、讲述或调试自己的程序,回答教师提问,每个人必须有程序运行结果40%(3)小组自评成绩结果10%(4)设计报告:每个人必须交《C语言课程设计》报告和《C语言课程设计》日志30%以上四项缺一不可,否则不能到得相应学分依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(<60分)五级记分制评定学生课程设计成绩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书学院、系:专业:学生姓名:学号:设计题目:实验设备管理系统起迄日期:指导教师:日期: 2017年5月12日1.设计目的练习与巩固《C语言程序设计》理论知识,通过实践检验和提高实际能力,进一步培养自己综合分析问题和解决问题的能力。

掌握运用C语言独立地编写调试应用程序和进行其它相关设计的技能。

2.任务概述要求实验设备管理系统实现对实验设备基本信息(设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期等)的管理。

系统应给用户提供一个操作简便的人机界面,使用户可以通过菜单的方式来方便的调用提供的功能。

主要功能(1)完成对设备信息的录入函数(2)完成修改某个设备信息的函数(3)根据给定信息对设备进行分类统计(4)设备的破损耗费和遗损处理(5)设备的查询3 模块划分功能[1]:添加新的设备信息功能[2]: 统计设备数量功能[3]:查找符合条件的设备及其数量功能[4]:对设备信息按条件进行分类排序功能[5]:修改设备信息功能[6]:删除某条设备记录图3.1功能图图3.2 菜单图4 主要函数说明及其N-S录入设备信息的N-S 图,如下图所示 实验设备管理系统添加设备信息修改设备信息 查询设备信息 删除设备信息 显示设备信息 统计设备信息退出系统(1)查找search()图4.4 查找操作N-S图(2)分类sort()按某种条目进行分类也是需要通过查找相同,但不同的是条目的具体内容是不确定的,只是把条目内容相同的部分进行排序使其归类在一起,使用了冒泡排序法。

由于是使用字符串,所以排序的依据是根据ASCII码顺序。

图4.5 分类N-S图图4.5 分类N-S图(3)删除delect()读取文件内容,但读写时跳过需要删除的行不读,然后把读取出的内容重新写入文件图4.6 删除N-S图5 程序运行数据及其结果(1) 录入input()图5.1 显示内容界面图(2) 修改change()int i,j; char c[20];printf("\nenter you want delete name :\n");for(i=0;i<count;i++)if(strcmp(c,dev[i].devname)==0)Y Nfor(j=i;j<count-1;j++)dev[j]=dev[j+1];printf("\t\t\tyou had delete %s\n",c);count--;output();图5.2 修改界面图修改后显示图5.3 修改结果(3)删除delect()图5.4 删除界面删除后图5.5 删除结果(4)添加图5.6 添加前图5.7 添加后(5)查找check()图5.8 界面图5.9 查找结果(6)分类sort()图5.10 分类界面图5.11 分类结果6 课程设计心得这次课程设计遇到了很多问题,有的是文档格式的设置不符合要求,有的是编译的代码运行不出来,于是又翻出了上学期的C语言书籍温习有关知识。

划分功能模块时,对于实验设备方面的知识欠缺,于是在网上查找了相关知识,结合网上热心网友提供的资源。

完成了这一步。

一个功能对应一个函数,有些函数比较复杂,请教了其他同学并结合网上的例子完成了编写。

第一次修改说明书之前,对于N-S图的画法不是太熟悉,于是用了流程图,后来班长多次强调才改成了N-S图,看了看班长在群里发的例子,又结合书上的说明,完成了N-S图。

文档格式的设置主要通过网上的教程来完成。

对于一名新手来说,网上做图并不是一件容易的事,刚开始不是错位就是字体太大,有时候修改了文本图又飞到了下一页。

一次次的修改后总算积攒了一些经验,后来画多了总算能够比较快而准确的画出来。

C语言是一门实践性较强的课程,只学会书本上的知识是远远不够的,还需要实训来巩固知识并让我们学会运用。

C语言也是软件工程后期学习的基础语言,因此必须学好C语言。

一名优秀的程序员,不仅要掌握编程方面的知识,还应该学会怎样使用办公软件。

附录:#include "stdio.h"#include "stdlib.h"#include "cstring"#define COUNT 30void start(); //函数声明void input();void change();void sort();void dele();void output();void search();struct deviceInfor{char devno[30];int devsort; //1 代表微机 2代表打印机 3代表扫描机char devname[30];int devprice;char devbuydate[30];int devstate;char devdonedate[30];}dev[COUNT];int count=0;main() //主函数{while(1)start();}void start() //启动菜单{int chi;printf(" 实验设备管理系统\n"); printf("|-----------------------------------------------|\n");printf(" | ********************************************|\n");printf(" | 1.设备信息的录入: |\n");printf(" | 2.设备信息的修改: |\n");printf(" | 3.设备信息的分类统计: |\n");printf(" | 4.删除某个设备: |\n");printf(" | 5.查找某个设备: |\n");printf(" | 6.退出系统: |\n");printf(" | ********************************************|\n");printf("|-----------------------------------------------|\n");printf(" 输入你的选择: ");scanf("%d",&chi);//printf("\n");if(chi==1) input();else if(chi==2) change();else if(chi==3) sort();else if(chi==4) dele();else if(chi==5) search();else if(chi==6) { printf("你已经退出设备管理系统!\n"); exit(0);}else { printf(" You Enter The Choice Is Not valid ! \n"); }}void input() //数据录入{char flag[20];do{printf("请输入你的设备信息:\n");printf("设备编号:");scanf("%s",dev[count].devno);printf("设备种类(1 代表微机 2代表打印机 3代表扫描机):"); scanf("%d",&dev[count].devsort);printf("设备名字:");scanf("%s",dev[count].devname);printf("设备价格:");scanf("%d",&dev[count].devprice);printf("设备购买日期:");scanf("%s",dev[count].devbuydate);printf("设备状态(1未报废 0报废):");scanf("%d",&dev[count].devstate);printf("设备报废日期:");scanf("%s",dev[count].devdonedate);count++;printf("是否继续输入数据 y是 n否 : ");scanf("%s",flag);}while(strcmp(flag,"y")==0||strcmp(flag,"Y")==0);output();}void change() //数据修改{char ch[20],a[20];int i;printf("\nyou sure want change devInfor y/n): "); scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nenter you want change devName:");scanf("%s",a);for(i=0;i<count;i++){if(strcmp(dev[i].devname,a)==0){ printf("\nyou sure want change dev name(y/n): "); scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nname:"); scanf("%s",dev[i].devname);}printf("\nyou sure want change dev no(y/n): "); scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nno"); scanf("%s",dev[i].devno);}printf("\nyou sure want change dev sort(y/n): "); scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nsort"); scanf("%d",&dev[i].devsort);}printf("\nyou sure want dev price(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\nprice"); scanf("%d",&dev[i].devprice);}printf("\nyou sure want dev done date(y/n): ");scanf("%s",ch);if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0){ printf("\ndone date"); scanf("%s",dev[i].devdonedate);}}}}output();}void sort() //数据分类显示{int i,chi,sum=0,wei=0,da=0,sao=0;printf("输入你想要统计的信息: 1(报废的机器总数) 2(机器的总类数目)"); scanf("%d",&chi);if(chi==1) {for(i=0;i<count;i++) {if(dev[i].devstate==0) sum++;}printf("报废的机器数目为 %d \n",sum);}else if(chi==2){for(i=0;i<count;i++) {if(dev[i].devsort==1) wei++;else if(dev[i].devsort==2) da++;else if(dev[i].devsort==3) sao++;}printf("微机数目为%d 打印机数目为%d 扫描机数目为 %d",wei,da,sao);}else { printf("你输入的选项不符合要求!\n");}}void dele() //数据删除{int i,j;char c[20];printf("\nenter you want delete name :\n");printf("name:");scanf("%s",c);for(i=0;i<count;i++)if(strcmp(c,dev[i].devname)==0) break;for(j=i;j<count-1;j++)dev[j]=dev[j+1];printf("\t\t\tyou had delete %s\n",c);count--;output();}void output() //数据输出{int i;for(i=0;i<count;i++){printf("%s %d %s %d %s %d %s\n",dev[i].devno,dev[i].devsort,dev[i].devname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdon edate);}}void search() //数据查找{int i;char a[20],ch[10];printf("\nenter you want look name:");scanf("%s",a);for(i=0;i<count;i++)if(strcmp(dev[i].devname,a)==0)printf("%s %d %s %d %s %d %s\n",dev[i].devno,dev[i].devsort,dev[i].de vname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdon edate);}。

相关文档
最新文档