久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2568|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語言元器件信息管理系統(tǒng)源程序設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:606867 發(fā)表于 2019-9-3 14:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
元器件信息管理系統(tǒng)



單片機源程序如下:
  1. #include<stdio.h>
  2. #include<stdlib.h>  
  3. #include<string.h>
  4. struct component
  5. {
  6.     char identifier[15];       // 1、編號
  7.     char type[15];             // 2、類型
  8.     char model[15];            // 3、型號
  9.     char number[15];           // 4、數(shù)目
  10.     char enclosure[15];        // 5、封裝
  11.     char factory[15];          // 6、廠家
  12.     char money[15];            // 7、價格
  13.     char date[15];             // 8、生產(chǎn)日期
  14. };
  15. //類型定義語句  
  16. typedef struct node
  17. {
  18.     struct component data;
  19.     struct node *next;
  20. }Node;
  21. //添加信息函數(shù)
  22. void Add(Node *worker)
  23. {
  24.     Node *p, *q;
  25.     char n[10];
  26.     q = worker;
  27.     while (q->next != NULL)
  28.     {
  29.         q = q->next;     
  30.     }
  31.     while (1)
  32.     {
  33.         printf("提示:輸入0返回主菜單!\n");
  34.         printf("請輸入編號:");
  35.         scanf("%s", n);
  36.         if (strcmp(n, "0") == 0)
  37.         {
  38.             break;
  39.         }
  40.         p = (Node *)malloc(sizeof(Node));
  41.         strcpy(p->data.identifier, n);
  42.         
  43.         printf("請輸入類型:");
  44.         scanf("%s", p->data.type);
  45.         printf("請輸入型號:");
  46.         scanf("%s", p->data.model);
  47.         printf("請輸入數(shù)目:");
  48.         scanf("%s", p->data.number);
  49.         printf("請輸入封裝:");
  50.         scanf("%s", p->data.enclosure);
  51.         printf("請輸入廠家:");
  52.         scanf("%s", p->data.factory);
  53.         printf("請輸入價格:");
  54.         scanf("%s", p->data.money);
  55.         printf("請輸入生產(chǎn)日期:");
  56.         scanf("%s", p->data.date);
  57.         printf("提示:已經(jīng)完成一條記錄的添加!");
  58.         p->next = NULL;
  59.         q->next = p;      
  60.         q = p;        
  61.     }
  62. }
  63. //修改元件信息函數(shù)
  64. int  change(Node *worker)
  65. {
  66.     Node *p;
  67.     char find[20];   
  68.     p = worker->next;   
  69.     if (p == NULL)
  70.     {
  71.         printf("\n提示:沒有元件可以修改!\n");
  72.         return 0;
  73.     }   
  74.     printf("請輸入要修改的編號");
  75.     scanf("%s", find);
  76.     while (p != NULL)
  77.     {
  78.         if (strcmp(p->data.identifier, find) == 0)
  79.         {
  80.             break;
  81.         }
  82.         p = p->next;
  83.     }
  84.     if(p!=NULL)
  85.     {
  86.         int x;
  87.         while (1)
  88.         {
  89.             printf("完成修改請輸入0,否則輸入非0數(shù)字進(jìn)行修改!");
  90.             scanf("%d", &x);
  91.             if (x == 0)
  92.             {
  93.                 break;
  94.             }
  95.             printf(" 請輸入新的編號: ");
  96.             scanf("%s", p->data.identifier);
  97.             printf(" 請輸入新的元件類型: ");
  98.             scanf("%s", p->data.type);
  99.             printf(" 請輸入新的元件型號: ");
  100.             scanf("%s", p->data.model);
  101.             printf(" 請輸入新的元件數(shù)目: ");
  102.             scanf("%s", p->data.number);
  103.             printf(" 請輸入新的元件封裝: ");
  104.             scanf("%s", p->data.enclosure);
  105.             printf(" 請輸入新的元件廠家: ");
  106.             scanf("%s", p->data.factory);
  107.             printf(" 請輸入新的元件價格: ");
  108.             scanf("%s", p->data.money);
  109.             printf(" 請輸入新的元件生產(chǎn)日期: ");
  110.             scanf("%s", p->data.date);
  111.             printf(" \n提示:該元器件資料已經(jīng)修改!\n ");
  112.         }
  113.     }
  114.     else
  115.         printf("\n提示:沒有你要修改的資料!\n ");
  116. }
  117. //顯示元件信息函數(shù)
  118. int  Disp(Node *worker)
  119. {
  120.     Node *p;
  121.     p = worker->next;
  122.     if (p == NULL)
  123.     {
  124.         printf(" \n提示:沒有信息可以顯示!\n ");
  125.         return 0;
  126.     }
  127.     printf("\t\t\t\t顯示結(jié)果\n");
  128.     printf(" \n編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  129.     while (p!=NULL)  
  130.     {
  131.         printf("\n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n ", p->data.identifier, p->data.type,
  132.             p->data.model, p->data.number, p->data.enclosure, p->data.factory,
  133.             p->data.money, p->data.date);
  134.         p = p->next;
  135.     }
  136. }
  137. //查詢元件信息函數(shù): 按職元件編號查詢或按元件類型查詢
  138. int  Cha_xun(Node *worker)
  139. {
  140.     Node *p;
  141.     int sel,i=0;
  142.     char find[20];   
  143.     p = worker->next;   
  144.     if (p==NULL)
  145.     {
  146.         printf(" \n提示:沒有資料可以查詢!\n ");
  147.         return 0;
  148.     }
  149.     printf("\n提示:\n  0 退出\n1 按編號查詢\n2 按元件類型 \n3 元件型號\n4 元件數(shù)目\n5 元件封裝\n6 元件廠家\n7 元件價格\n8 元件生廠日期\n  ");
  150.     printf("請選擇:");
  151.     scanf("%d", &sel);
  152.     if (sel == 1)
  153.     {
  154.         printf("\n請輸入你要查詢分類的編號:");
  155.         scanf("%s", find);
  156.         while (p!=NULL)  
  157.         {
  158.             if (strcmp(p->data.identifier, find) == 0)
  159.             {
  160.                 printf(" 編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  161.                 printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.identifier, p->data.type,
  162.                     p->data.model, p->data.number, p->data.enclosure, p->data.factory,
  163.                     p->data.money, p->data.date);
  164.                 i++;
  165.             }
  166.             p = p->next;   
  167.             
  168.         }
  169.         if(i==0)
  170.             printf("查找的信息有誤\n");
  171.     }
  172.     else if (sel == 2)
  173.     {
  174.         printf(" \n輸入你要查詢分類的元件編號:");
  175.         scanf("%s", find);
  176.         while (p!=NULL)
  177.         {
  178.             if (strcmp(p->data.type, find) == 0)
  179.             {
  180.                 printf(" 編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  181.                 printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.identifier, p->data.type,p->data.model,
  182.                     p->data.number, p->data.enclosure, p->data.factory,    p->data.money, p->data.date);
  183.             i++;
  184.             }
  185.             p = p->next;
  186.             
  187.         }
  188.             if(i==0)
  189.             printf("查找的信息有誤\n");
  190.     }
  191.     else if (sel == 3)
  192.     {
  193.         printf(" \n輸入你要查詢型號編號:");
  194.         scanf("%s", find);
  195.         while (p!=NULL)
  196.         {
  197.             if (strcmp(p->data.model, find) == 0)
  198.             {
  199.                 printf(" 編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  200.                 printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.identifier, p->data.type,p->data.model,
  201.                     p->data.number, p->data.enclosure, p->data.factory,    p->data.money, p->data.date);
  202.             i++;
  203.             }
  204.             p = p->next;
  205.             
  206.         }
  207.         if(i==0)
  208.             printf("查找的信息有誤\n");
  209.     }
  210.     else if (sel == 4)
  211.     {
  212.         printf(" \n輸入你要查詢的數(shù)目:");
  213.         scanf("%s", find);
  214.         while (p!=NULL)
  215.         {
  216.             if (strcmp(p->data. number, find) == 0)
  217.             {
  218.                 printf(" 編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  219.                 printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.identifier, p->data.type,p->data.model,
  220.                     p->data.number, p->data.enclosure, p->data.factory,    p->data.money, p->data.date);
  221.             i++;
  222.             }
  223.             p = p->next;
  224.             
  225.         }
  226.             if(i==0)
  227.             printf("查找的信息有誤\n");
  228.     }
  229.     else if (sel == 5)
  230.     {
  231.         printf(" \n輸入你要查詢的封裝:");
  232.         scanf("%s", find);
  233.         while (p!=NULL)
  234.         {
  235.             if (strcmp(p->data. enclosure, find) == 0)
  236.             {
  237.                 printf(" 編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  238.                 printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.identifier, p->data.type,p->data.model,
  239.                     p->data.number, p->data.enclosure, p->data.factory,    p->data.money, p->data.date);
  240.             i++;
  241.             }
  242.             p = p->next;
  243.             
  244.         }
  245.             if(i==0)
  246.             printf("查找的信息有誤\n");
  247.     }
  248.     else if (sel == 6)
  249.     {
  250.         printf(" \n輸入你要查詢的廠家:");
  251.         scanf("%s", find);
  252.         while (p!=NULL)
  253.         {
  254.             if (strcmp(p->data. factory, find) == 0)
  255.             {
  256.                 printf(" 編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  257.                 printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.identifier, p->data.type,p->data.model,
  258.                     p->data.number, p->data.enclosure, p->data.factory,    p->data.money, p->data.date);
  259.         i++;   
  260.             }
  261.             p = p->next;
  262.             
  263.         }
  264.             if(i==0)
  265.             printf("查找的信息有誤\n");
  266.     }
  267.     else if (sel == 7)
  268.     {
  269.         printf(" \n輸入你要查詢的價格:");
  270.         scanf("%s", find);
  271.         while (p!=NULL)
  272.         {
  273.             if (strcmp(p->data. money, find) == 0)
  274.             {
  275.                 printf(" 編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  276.                 printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.identifier, p->data.type,p->data.model,
  277.                     p->data.number, p->data.enclosure, p->data.factory,    p->data.money, p->data.date);
  278.             i++;
  279.             }
  280.             p = p->next;
  281.         
  282.         }
  283.             if(i==0)
  284.             printf("查找的信息有誤\n");
  285.     }
  286.     else if (sel == 8)
  287.     {
  288.         printf(" \n輸入你要查詢的生產(chǎn)日期:");
  289.         scanf("%s", find);
  290.         while (p!=NULL)
  291.         {
  292.             if (strcmp(p->data.date , find) == 0)
  293.             {
  294.                 printf(" 編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n ");
  295.                 printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.identifier, p->data.type,p->data.model,
  296.                     p->data.number, p->data.enclosure, p->data.factory,    p->data.money, p->data.date);
  297.                 i++;
  298.             }
  299.             p = p->next;
  300.         
  301.         }
  302.             if(i==0)
  303.             printf("查找的信息有誤\n");
  304.     }
  305.    
  306.     else if (sel == 0)
  307.         return 0;   
  308. }
  309. int Tong_ji(Node *worker)//統(tǒng)計元件信息
  310. {
  311.     Node *p;
  312.     int sel;
  313.     char find[20];   
  314.     p = worker->next;   
  315.     if (p==NULL)
  316.     {
  317.         printf(" \n提示:沒有資料可以查詢!\n ");
  318.         return 0;
  319.     }
  320.     printf("\n提示:\n輸入 0---- 退出\n輸入 1----按型號查詢\n輸入 2-----按元件類型 \n3 元件型號\n4 元件數(shù)目\n5 元件封裝\n6 元件廠家\n7 元件價格\n8 元件生廠日期");
  321.     printf("\n請選擇:");
  322.     scanf("%d", &sel);
  323.     if (sel == 1)
  324.     {
  325.         int i=1;
  326.         while (p->next!=NULL)  
  327.         {   
  328.             i++;
  329.             if(strcmp(p->data.identifier,p->next->data.identifier )==0)
  330.                 i--;
  331.             p = p->next;   
  332.         }
  333.         printf("共有%d種編號的元件\n",i);
  334.     }
  335.     else if (sel == 2)
  336.     {
  337.         int i=1;
  338.         while (p->next!=NULL)  
  339.         {   
  340.             i++;
  341.             if(strcmp(p->data.type,p->next->data.type )==0)
  342.                 i--;
  343.             p = p->next;   
  344.         }
  345.         printf("共有%d種類型的元件\n",i);
  346.     }
  347.     else if (sel == 3)
  348.     {
  349.         int i=1;
  350.         while (p->next!=NULL)  
  351.         {   
  352.             i++;
  353.             if(strcmp(p->data.model,p->next->data.model )==0)
  354.                 i--;
  355.             p = p->next;   
  356.         }
  357.         printf("共有%d種型號的元件\n",i);
  358.     }
  359.     else if (sel == 4)
  360.     {
  361.         int i=1;
  362.         while (p->next!=NULL)  
  363.         {   
  364.             i++;
  365.             if(strcmp(p->data.number,p->next->data.number )==0)
  366.                 i--;
  367.             p = p->next;   
  368.         }
  369.         printf("共有%d種數(shù)目的元件\n",i);
  370.     }
  371.     else if (sel == 5)
  372.     {
  373.         int i=1;
  374.         while (p->next!=NULL)  
  375.         {   
  376.             i++;
  377.             if(strcmp(p->data.enclosure,p->next->data.enclosure )==0)
  378.                 i--;
  379.             p = p->next;   
  380.         }
  381.         printf("共有%d種封裝的元件\n",i);
  382.     }
  383.     else if (sel == 6)
  384.     {
  385.         int i=1;
  386.         while (p->next!=NULL)  
  387.         {   
  388.             i++;
  389.             if(strcmp(p->data.factory,p->next->data.factory )==0)
  390.                 i--;
  391.             p = p->next;   
  392.         }
  393.         printf("共有%d種廠家的元件\n",i);
  394.     }
  395.     else if (sel == 7)
  396.     {
  397.         int i=1;
  398.         while (p->next!=NULL)  
  399.         {   
  400.             i++;
  401.             if(strcmp(p->data.money,p->next->data.money )==0)
  402.                 i--;
  403.             p = p->next;   
  404.         }
  405.         printf("共有%d種價格的元件\n",i);
  406.     }
  407.     else if (sel == 8)
  408.     {
  409.         int i=1;
  410.         while (p->next!=NULL)  
  411.         {   
  412.             i++;
  413.             if(strcmp(p->data.date,p->next->data.date)==0)
  414.                 i--;
  415.             p = p->next;   
  416.         }
  417.         printf("共有%d種生產(chǎn)日期的元件\n",i);
  418.     }
  419.     else if (sel == 0)
  420.         return 0;   
  421.    
  422. }

  423. //刪除元件信息函數(shù)
  424. int  Delete(Node *worker)
  425. {
  426.     Node *p, *r;
  427.     char find[10];
  428.     p = worker->next;
  429.     if (p == NULL)
  430.     {
  431.         printf("提示:沒有元件信息可以刪除!\n ");
  432.         return 0;
  433.     }
  434.     printf(" \n提示:請輸入你要刪除的元件編號!\n ");
  435.     scanf("%s", find);
  436.     while (p != NULL)
  437.     {
  438.         if (strcmp(p->data.identifier, find) == 0)
  439.         {
  440.             break;
  441.         }
  442.         p = p->next;
  443.     }
  444.     if (p!=NULL)
  445.     {
  446.         r = worker;
  447.         while (r->next != p)
  448.         {
  449.             r = r->next;
  450.         }
  451.         r->next = r->next->next;   
  452.         printf("已成功刪除\n");
  453.     } else
  454.         printf("系統(tǒng)中沒有該信息\n");

  455. }

  456. //將職工信息保存到文件中
  457. void save(Node *worker)
  458. {
  459.     int n;
  460.     Node *p = NULL;   
  461.     char filename[16];
  462.     FILE *fp;   
  463.     printf("是否保存到文件?( 1-----保存!,0-----不保存! )");
  464.     scanf("%d", &n);
  465.     if (n == 1)
  466.     {
  467.         if (worker->next == NULL)
  468.         {
  469.             printf(" 沒有記錄!");
  470.         }
  471.         else
  472.         {
  473.             p = worker->next;
  474.         }
  475.         
  476.         printf("請輸入要保存該信息的文件名:\n");      /*輸入要保存的文件的名字*/
  477.         scanf("%s",filename);
  478.         fp=fopen(filename,"w");
  479.         while (p != NULL)   
  480.         {
  481.             fprintf(fp, " %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t  ", p->data.identifier, p->data.type, p->data.model,
  482.                 p->data.number, p->data.enclosure, p->data.factory, p->data.money,p->data.date);        
  483.             p = p->next;
  484.         }
  485.         fclose(fp);  
  486.     }
  487. }

  488. //讀取元件信息
  489. void Du_qu(Node *worker)
  490. {
  491.     int a;
  492.     char filename[16];
  493.     Node *p;
  494.     FILE *fp;
  495.     char str[1000]={0};
  496.     printf("請輸入存有元件信息的文件名:\n");   
  497.     scanf("%s",filename);
  498.     if((fp=fopen(filename,"r"))==NULL)   
  499.     {
  500.         printf("文件名錯誤!\n ");
  501.     }
  502.     fgets(str,1000,fp);
  503.     printf("編號\t類型\t型號\t數(shù)目\t封裝\t廠家\t價格\t生產(chǎn)日期\n");
  504.     for(a=1;a<(strlen(str)+1);a++)
  505.     {
  506.         printf("%c",str[a-1]);
  507.         if(a%25==0)
  508.             printf("\n");
  509.     }
  510.     fclose(fp);    printf("\n");
  511.     return 0;

  512. }
  513. //主函數(shù)實現(xiàn)
  514. int main()
  515. {
  516.     Node *worker;
  517.     int flag=1;
  518.     worker = (Node*)malloc(sizeof(Node));
  519.     worker->next = NULL;
  520.     while(flag)
  521.     {
  522.         printf("\t元 件 信 息 管 理 系 統(tǒng)\n");
  523.         printf("=================菜 單==================\n ");
  524.         printf("|            1.添加元件信息             |\n ");
  525.         printf("|            2.修改元件信息             |\n ");
  526.         printf("|            3.顯示元件信息             |\n ");
  527.         printf("|            4.查找元件信息             |\n ");
  528.         printf("|            5.刪除元件信息             |\n ");
  529.         printf("|            6.讀取元件信息             |\n ");
  530.         printf("|            7.統(tǒng)計元件信息             |\n ");
  531.         printf("|            0.退出                     |\n ");
  532.         printf("========================================\n ");
  533.         printf("輸入你選擇的序號:");
  534.         scanf("%d", &flag);
  535.         switch (flag)
  536.         {
  537.         case 0:  printf(" \n提示:退出系統(tǒng)!\n ");  break;
  538.         case 1:     Add(worker); save(worker);  break;           //添加元件信息,保存到文件中
  539.         case 2:  change(worker);  break;                      //修改元件信息
  540.         case 3:  Disp(worker);  break;                        //顯示元件信息
  541.         case 4:  Cha_xun(worker);  break;                     //查詢元件信息
  542.         case 5:  Delete(worker);  break;                      //刪除元件信息
  543.         case 6:  Du_qu(worker);  break;                       //讀取元件信息
  544.         case 7:  Tong_ji(worker);  break;                     //統(tǒng)計元件信息        
  545. ……………………

  546. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
元器件信息管理系統(tǒng).zip (302.62 KB, 下載次數(shù): 18)




評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 综合国产 | 中文字幕亚洲视频 | 亚洲 欧美 日韩在线 | 国产一区精品在线 | 日韩精品一区二区三区久久 | 黄色亚洲 | 国产一区二区自拍 | 久久99国产精一区二区三区 | 久久久久久高潮国产精品视 | 日韩在线观看精品 | 96国产精品久久久久aⅴ四区 | 五月激情综合 | 中文字幕一区在线观看视频 | 中文字幕亚洲一区二区三区 | 亚洲久草 | 一级大黄| 国产99久久久国产精品 | 成人精品免费 | 九九九视频在线观看 | 欧美成人一区二区 | 亚洲精品自在在线观看 | 精品99爱视频在线观看 | 国产你懂的在线观看 | 国产精品国产三级国产aⅴ中文 | 亚洲精品大片 | 日韩免费高清视频 | 超碰成人免费 | 欧产日产国产精品国产 | 国产亚洲一区在线 | 精品久久一 | 亚洲美女天堂网 | 视频第一区 | 91社区在线观看播放 | 亚洲网站免费看 | 99re热这里只有精品视频 | 亚洲永久| 91精品久久久久久久久中文字幕 | www.中文字幕.com | 欧美成人激情 | 亚洲国产成人精品女人久久久 | 国产精品资源在线观看 |