C语言实现实验设备管理系统

 更新时间:2022年06月02日 08:37:52   作者:普通学长  
这篇文章主要为大家详细介绍了C语言实现实验设备管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现实验设备管理系统的具体代码,供大家参考,具体内容如下

一、任务概述

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

二、模块划分

功能1:打开一个设备信息文件,并读取
功能2:添加新的设备内容并保存
功能3: 统计设备数量
功能4:查找符合条件的设备及其数量并将其显示出来
功能5:对设备信息按条件进行分类排序
功能6:修改设备信息
功能7:删除某条设备记录
功能8:显示内容

三、功能展示

四、思维导图

五、程序源码

#include "stdio.h"
#include "stdlib.h"


#define COUNT 30

void 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].devdonedate);
    
    }

}

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].devname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdonedate);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • C++ STL中常见的算法使用方式

    C++ STL中常见的算法使用方式

    这篇文章主要介绍了C++ STL中常见的算法使用方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 利用Matlab绘制一款专属进度条

    利用Matlab绘制一款专属进度条

    MATLAB自带的进度条是很简单的,这样的进度条显得冷冰冰的。因此,本文将用Matlab来DIY一款专属的进度条,感兴趣的小伙伴可以了解一下
    2022-02-02
  • C/C++根据年月日计算星期几(蔡勒公式篇)

    C/C++根据年月日计算星期几(蔡勒公式篇)

    这篇文章主要给大家介绍了关于C/C++根据年月日计算星期几(蔡勒公式篇)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • C语言内存函数的使用及其模拟实现

    C语言内存函数的使用及其模拟实现

    这篇文章主要介绍了C语言内存函数的使用及其模拟实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • C++实现LeetCode(110.平衡二叉树)

    C++实现LeetCode(110.平衡二叉树)

    这篇文章主要介绍了C++实现LeetCode(110.平衡二叉树),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言简单实现银行ATM存取款功能

    C语言简单实现银行ATM存取款功能

    这个是大一时期写的。大四的时候整理了一下(本人C语言学的也不太好)。肯定很多不足和存在漏洞的地方、仅供借鉴、仅供借鉴,代码中有大量注释,新手看起来也没有困难
    2021-11-11
  • 浅析内存对齐与ANSI C中struct型数据的内存布局

    浅析内存对齐与ANSI C中struct型数据的内存布局

    当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局
    2013-09-09
  • 用C语言实现单链表的各种操作(二)

    用C语言实现单链表的各种操作(二)

    本篇文章是对用C语言实现单链表的各种操作进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Matlab绘制酷炫坐标区域的方法详解

    Matlab绘制酷炫坐标区域的方法详解

    这篇文章主要为大家详细介绍了如何利用Matlab编写一个能让坐标区域变得很炫酷的修饰函数,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-05-05
  • C++实例输入多行数字到数组

    C++实例输入多行数字到数组

    这篇文章主要介绍了C++实例输入多行数字到数组的相关资料,这里提供实例代码帮助大家学习理解,需要的朋友可以参考下
    2016-12-12

最新评论