C語言實現(xiàn)設(shè)備管理系統(tǒng)
本文實例為大家分享了C語言實現(xiàn)設(shè)備管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、任務(wù)概述
設(shè)備管理系統(tǒng)應(yīng)包含各種設(shè)備的全部信息,每臺設(shè)備為一條記錄(同一時間統(tǒng)一部門購買的若干相同設(shè)備可作為1條記錄),包括設(shè)備號,設(shè)備名稱,領(lǐng)用人,所屬部門,數(shù)量,購買時間,價格等。能夠顯示和統(tǒng)計各種設(shè)備的信息。
二、設(shè)計目的
建立一個文件,包含一個部門10太設(shè)備的信息,能對文件進行補充,修訂,刪除,能統(tǒng)計所有設(shè)備的總價值
三、功能展示




四、思維導(dǎo)圖

五、程序源碼
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define COUNT 30
void start(); ?//函數(shù)聲明
void input();
void save();
void change();
void sort();
void dele();
void output();
void search();
struct ?information{ ? //定義結(jié)構(gòu)體?
?? ?char devno[30]; ? ? ? ? ? ? //編號?
? ? int devsort; ? ? ? ? ? ? ? ?//所屬部門?
?? ?char devmaster[30]; ? ? ? ? // 領(lǐng)用人?
?? ?char devname[30]; ? ? ? ? ? //設(shè)備名字?
?? ?int devprice; ? ? ? ? ? ? ? //設(shè)備價格?
?? ?char devbuydate[30]; ? ? ? ?//購買日期?
?? ?int devstate; ? ? ? ? ? ? ? // 設(shè)備狀態(tài)?
?? ?char devdonenumber[30]; ? ? //設(shè)備數(shù)量?
}dev[COUNT]; ? ? ? ? ? ? ? ? ? ?//結(jié)構(gòu)體變量?
int count=0;
FILE *fp; ? ? ? ? ? ? ? ? ? ? ?//文件指針?
main() ? //主函數(shù)
{
? ? while(1)
?? ?start();?
?
}
void start() ?//啟動菜單
{
?int chi;
?printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ?設(shè)備管理系統(tǒng)\n");
?printf(" ? ? ? ? ? ? ?********************************************\n");
?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 1.設(shè)備信息的錄入: ? ? ? ? ? ? ?*\n"); ? ? ? ? ?
?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 2.設(shè)備信息的修改: ? ? ? ? ? ? ?*\n");
?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 3.設(shè)備信息的分類統(tǒng)計: ? ? ? ? ?*\n");
?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 4.刪除某個設(shè)備: ? ? ? ? ? ? ? ?*\n");
?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 5.查找某個設(shè)備: ? ? ? ? ? ? ? ?*\n");
?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 6.退出系統(tǒng): ? ? ? ? ? ? ? ? ? ?*\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() //數(shù)據(jù)錄入
{
? ?
? ?char flag[20];
? ?do{
? ?printf("*^_^*請輸入你的設(shè)備信息:\n");
? ?printf("設(shè)備編號:");
? ?scanf("%s",dev[count].devno);
? ?printf("所屬部門(1,A部門 ?2,B部門 ?3,C部門):");
? ?scanf("%d",&dev[count].devsort);
? ?printf("領(lǐng)用人;");
? ?scanf("%s",dev[count].devmaster);?
? ?printf("設(shè)備名字:");
? ?scanf("%s",dev[count].devname);
? ?printf("設(shè)備價格:");
? ?scanf("%d",&dev[count].devprice);
? ?printf("設(shè)備購買日期:");
? ?scanf("%s",dev[count].devbuydate);
? ?printf("設(shè)備狀態(tài)(1未報廢 0報廢):");
? ?scanf("%d",&dev[count].devstate);
? ?printf("設(shè)備數(shù)量:");
? ?scanf("%s",dev[count].devdonenumber);
? ?count++;
? ?printf("是否繼續(xù)輸入數(shù)據(jù) y是 ?n否 : ");
? ?scanf("%s",flag);
? ?}while(strcmp(flag,"y")==0||strcmp(flag,"Y")==0);
? ?output();
? ?save();
}
void save() ? ? ? ? ? ? ? ? ? ? ? ? ? //數(shù)據(jù)保存 ? ? ?
{
?? ?int i;
?? ?FILE *fp;
?? ?if((fp=fopen("shebei.txt","wb"))==NULL)
?? ?{
?? ??? ?printf("cannot open file\n");
?? ??? ?return;
?? ?}
?? ?for(i=0;i<2;i++)
?? ??? ?if(fwrite(&dev[i],sizeof(struct information),1,fp)!=1)
?? ??? ??? ?printf("file write error\n");
?? ??? ?fclose(fp);
?? ??? ?printf("已保存設(shè)備信息到文件中*^_^*\n");
}
void change() ?//數(shù)據(jù)修改
{
? ? ?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 master(y/n): ");
? ? ? ?scanf("%s",ch);
? ? ? ?if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) ? { printf("\nmaster:"); scanf("%s",dev[i].devmaster);}
?? ? ? 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].devdonenumber);}
? ?
?}
? ? }?
?? ?save();
?? ? }
output();
}
void sort() ?//數(shù)據(jù)分類顯示
{?
?? ?int i,chi,sum=0,wei=0,da=0,sao=0;
? printf("輸入你想要統(tǒng)計的信息: 1(報廢的設(shè)備數(shù)目) 2(設(shè)備所屬部門分類)");
? scanf("%d",&chi);
? if(chi==1) {
?? ? ?for(i=0;i<count;i++) {
?? ? ? ?if(dev[i].devstate==0) sum++;
?? ? ?}
? ? printf("報廢的設(shè)備數(shù)目為 %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("A部門數(shù)量為 %d ?B部門數(shù)量為 %d C部門數(shù)量和為 %d",wei,da,sao);
? }else { printf("你輸入的選項不符合要求!\n");}
}
void dele() ?//數(shù)據(jù)刪除
{
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() ?//數(shù)據(jù)輸出
{
? ?int i;
?? ?for(i=0;i<count;i++)
?? ?{
?? ? printf("%s %d %s %s %d %s %d %s\n",dev[i].devno,dev[i].devsort,dev[i].devmaster,dev[i].devname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdonenumber);
?? ?
?? ?}
}
void search() ?//數(shù)據(jù)查找
{
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 %s %d %s %d %s\n",dev[i].devno,dev[i].devsort,dev[i].devmaster,dev[i].devname,dev[i].devprice,dev[i].devbuydate,dev[i].devstate,dev[i].devdonenumber);
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言中使用qsort函數(shù)對自定義結(jié)構(gòu)體數(shù)組進行排序
這篇文章主要介紹了C語言中使用qsort函數(shù)對自定義結(jié)構(gòu)體數(shù)組進行排序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
C語言調(diào)用go生成的動態(tài)庫的踩坑過程解析
這篇文章主要為大家介紹了C語言調(diào)用go生成的動態(tài)庫的踩坑過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
C/C++實現(xiàn)磁盤相關(guān)操作的示例代碼
這篇文章主要為大家詳細介紹了C/C++如何實現(xiàn)磁盤相關(guān)操作,例如遍歷磁盤容量、實現(xiàn)磁盤格式化、移除指定磁盤等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù))
cJSON是一個超輕巧的JSON解析器,本文主要介紹了C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù)),具有一定的參考價值,感興趣的可以了解一下2021-09-09
Visual?Studio?2022?安裝低版本?.Net?Framework的圖文教程
這篇文章主要介紹了Visual?Studio?2022?如何安裝低版本的?.Net?Framework,首先打開?Visual?Studio?Installer?可以看到vs2022?只支持安裝4.6及以上的版本,那么該如何安裝4.6以下的版本,下面將詳細介紹,需要的朋友可以參考下2022-09-09
QT網(wǎng)絡(luò)通信TCP客戶端實現(xiàn)詳解
這篇文章主要為大家詳細介紹了QT網(wǎng)絡(luò)通信TCP客戶端實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08

