C語言實(shí)現(xiàn)設(shè)備管理系統(tǒng)
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)設(shè)備管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、任務(wù)概述
設(shè)備管理系統(tǒng)應(yīng)包含各種設(shè)備的全部信息,每臺(tái)設(shè)備為一條記錄(同一時(shí)間統(tǒng)一部門購買的若干相同設(shè)備可作為1條記錄),包括設(shè)備號(hào),設(shè)備名稱,領(lǐng)用人,所屬部門,數(shù)量,購買時(shí)間,價(jià)格等。能夠顯示和統(tǒng)計(jì)各種設(shè)備的信息。
二、設(shè)計(jì)目的
建立一個(gè)文件,包含一個(gè)部門10太設(shè)備的信息,能對文件進(jìn)行補(bǔ)充,修訂,刪除,能統(tǒng)計(jì)所有設(shè)備的總價(jià)值
三、功能展示
四、思維導(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]; ? ? ? ? ? ? //編號(hào)? ? ? int devsort; ? ? ? ? ? ? ? ?//所屬部門? ?? ?char devmaster[30]; ? ? ? ? // 領(lǐng)用人? ?? ?char devname[30]; ? ? ? ? ? //設(shè)備名字? ?? ?int devprice; ? ? ? ? ? ? ? //設(shè)備價(jià)格? ?? ?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() ?//啟動(dòng)菜單 { ?int chi; ?printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ?設(shè)備管理系統(tǒng)\n"); ?printf(" ? ? ? ? ? ? ?********************************************\n"); ?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 1.設(shè)備信息的錄入: ? ? ? ? ? ? ?*\n"); ? ? ? ? ? ?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 2.設(shè)備信息的修改: ? ? ? ? ? ? ?*\n"); ?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 3.設(shè)備信息的分類統(tǒng)計(jì): ? ? ? ? ?*\n"); ?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 4.刪除某個(gè)設(shè)備: ? ? ? ? ? ? ? ?*\n"); ?printf(" ? ? ? ? ? ? ?* ? ? ? ? ? 5.查找某個(gè)設(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è)備編號(hào):"); ? ?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è)備價(jià)格:"); ? ?scanf("%d",&dev[count].devprice); ? ?printf("設(shè)備購買日期:"); ? ?scanf("%s",dev[count].devbuydate); ? ?printf("設(shè)備狀態(tài)(1未報(bào)廢 0報(bào)廢):"); ? ?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)計(jì)的信息: 1(報(bào)廢的設(shè)備數(shù)目) 2(設(shè)備所屬部門分類)"); ? scanf("%d",&chi); ? if(chi==1) { ?? ? ?for(i=0;i<count;i++) { ?? ? ? ?if(dev[i].devstate==0) sum++; ?? ? ?} ? ? printf("報(bào)廢的設(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("你輸入的選項(xiàng)不符合要求!\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ù)組進(jìn)行排序
這篇文章主要介紹了C語言中使用qsort函數(shù)對自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11C語言調(diào)用go生成的動(dòng)態(tài)庫的踩坑過程解析
這篇文章主要為大家介紹了C語言調(diào)用go生成的動(dòng)態(tài)庫的踩坑過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09剖析C++中的常量表達(dá)式與省略號(hào)的相關(guān)作用
這篇文章主要介紹了C++中的常量表達(dá)式與省略號(hào)的相關(guān)作用,以及表達(dá)式中的可變參數(shù)模板示例,需要的朋友可以參考下2016-01-01C/C++實(shí)現(xiàn)磁盤相關(guān)操作的示例代碼
這篇文章主要為大家詳細(xì)介紹了C/C++如何實(shí)現(xiàn)磁盤相關(guān)操作,例如遍歷磁盤容量、實(shí)現(xiàn)磁盤格式化、移除指定磁盤等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù))
cJSON是一個(gè)超輕巧的JSON解析器,本文主要介紹了C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù)),具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09Visual?Studio?2022?安裝低版本?.Net?Framework的圖文教程
這篇文章主要介紹了Visual?Studio?2022?如何安裝低版本的?.Net?Framework,首先打開?Visual?Studio?Installer?可以看到vs2022?只支持安裝4.6及以上的版本,那么該如何安裝4.6以下的版本,下面將詳細(xì)介紹,需要的朋友可以參考下2022-09-09QT網(wǎng)絡(luò)通信TCP客戶端實(shí)現(xiàn)詳解
這篇文章主要為大家詳細(xì)介紹了QT網(wǎng)絡(luò)通信TCP客戶端實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08