C語言實現(xiàn)實驗設(shè)備管理系統(tǒng)
本文實例為大家分享了C語言實現(xiàn)實驗設(shè)備管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、任務(wù)概述
實驗設(shè)備信息包括:設(shè)備編號,設(shè)備種類(如:微機、打印機、掃描儀等等),設(shè) 備名稱,設(shè)備價格,設(shè)備購入日期,是否報廢,報廢日期等。
二、模塊劃分
功能1:打開一個設(shè)備信息文件,并讀取
功能2:添加新的設(shè)備內(nèi)容并保存
功能3: 統(tǒng)計設(shè)備數(shù)量
功能4:查找符合條件的設(shè)備及其數(shù)量并將其顯示出來
功能5:對設(shè)備信息按條件進行分類排序
功能6:修改設(shè)備信息
功能7:刪除某條設(shè)備記錄
功能8:顯示內(nèi)容
三、功能展示
四、思維導(dǎo)圖
五、程序源碼
#include "stdio.h" #include "stdlib.h" #define COUNT 30 void start(); ?//函數(shù)聲明 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() ? //主函數(shù) { ? ? while(1) ?? ?start();? ? } void start() ?//啟動菜單 { ?int chi; ? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ?實驗設(shè)備管理系統(tǒng)\n"); ? printf(" ? ? ? ? ? ?|-----------------------------------------------|\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(" ? ? ? ? ? ?|-----------------------------------------------|\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("你已經(jīng)退出設(shè)備管理系統(tǒng)!\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("設(shè)備種類(1 代表微機 ?2代表打印機 ?3代表掃描機):"); ? ?scanf("%d",&dev[count].devsort); ? ?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è)備報廢日期:"); ? ?scanf("%s",dev[count].devdonedate); ? ?? ? ?count++; ? ?printf("是否繼續(xù)輸入數(shù)據(jù) y是 ?n否 : "); ? ?scanf("%s",flag); ? ?}while(strcmp(flag,"y")==0||strcmp(flag,"Y")==0); ? ?output(); } 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 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() ?//數(shù)據(jù)分類顯示 {? ?? ?int i,chi,sum=0,wei=0,da=0,sao=0; ? printf("輸入你想要統(tǒng)計的信息: 1(報廢的機器總數(shù)) 2(機器的總類數(shù)目)"); ? scanf("%d",&chi); ? if(chi==1) { ?? ? ?for(i=0;i<count;i++) { ?? ? ? ?if(dev[i].devstate==0) sum++; ?? ? ?} ? ? printf("報廢的機器數(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("微機數(shù)目為 %d ?打印機數(shù)目為 %d 掃描機數(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 %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() ?//數(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 %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); }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言內(nèi)存函數(shù)的使用及其模擬實現(xiàn)
這篇文章主要介紹了C語言內(nèi)存函數(shù)的使用及其模擬實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10C++實現(xiàn)LeetCode(110.平衡二叉樹)
這篇文章主要介紹了C++實現(xiàn)LeetCode(110.平衡二叉樹),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07淺析內(nèi)存對齊與ANSI C中struct型數(shù)據(jù)的內(nèi)存布局
當在C中定義了一個結(jié)構(gòu)類型時,它的大小是否等于各字段(field)大小之和?編譯器將如何在內(nèi)存中放置這些字段?ANSI C對結(jié)構(gòu)體的內(nèi)存布局有什么要求?而我們的程序又能否依賴這種布局2013-09-09