日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

C语言设备管理系统

發(fā)布時(shí)間:2023/12/31 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言设备管理系统 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 需求分析

1.1 系統(tǒng)功能簡(jiǎn)述

設(shè)備管理系統(tǒng)包含各種設(shè)備的全部信息,每臺(tái)設(shè)備為一種記錄,包括設(shè)備編號(hào),設(shè)備名稱,設(shè)備型號(hào),設(shè)備廠家,設(shè)備購(gòu)買(mǎi)日期等。能夠顯示和統(tǒng)計(jì)各種設(shè)備信息。

1.2 需求規(guī)格

1.2.1 功能需求

系統(tǒng)功能列表如表1.1所示。

表1.1 系統(tǒng)功能列表

功能編號(hào)

功能名稱

功能描述

1

?????系統(tǒng)登陸

根據(jù)驗(yàn)證碼輸入用戶名和密碼

2

功能選擇

為用戶提供進(jìn)行功能選擇的界面。功能選擇包括設(shè)備信息錄入、設(shè)備信息查詢、設(shè)備信息修改、設(shè)備信息刪除、維修記錄管理、設(shè)備信息管理系統(tǒng)制作人信息、推出

3

設(shè)備信息錄入

設(shè)備編號(hào)錄入、設(shè)備名稱錄入、設(shè)備型號(hào)錄入、設(shè)備廠家錄入、設(shè)備購(gòu)買(mǎi)日期錄入

4

設(shè)備信息更改

設(shè)備編號(hào)更改、設(shè)備名稱更改、設(shè)備型號(hào)更改、設(shè)備廠家更改、設(shè)備購(gòu)買(mǎi)日期更改

5

設(shè)備信息刪除

選擇編號(hào)進(jìn)行設(shè)備信息刪除

6

設(shè)備查找

根據(jù)編號(hào)信息進(jìn)行設(shè)備查找

7

維修記錄管理

進(jìn)行維修操作的記錄或查找

8

顯示所有設(shè)備

顯示系統(tǒng)所錄入的所有設(shè)備信息

9

關(guān)于

顯示管理系統(tǒng)制作人的各種信息

10

退出

按任意鍵退出系統(tǒng)

2.2 總體設(shè)計(jì)

2.1.1 系統(tǒng)結(jié)構(gòu)

說(shuō)明系統(tǒng)模塊劃分情況。如圖。

2.1.2 處理流程

說(shuō)明系統(tǒng)處理流程。如圖2.2所示。

圖2.2 系統(tǒng)處理流程圖

2.2 接口設(shè)計(jì)?

2.2.1 用戶接口

說(shuō)明將向用戶提供的命令和它們的語(yǔ)法結(jié)構(gòu),以及軟件的回答信息,一般為用戶界面設(shè)計(jì),可用圖表示。

1.用戶登錄界面如圖2.3所示

圖2.3 系統(tǒng)登錄界面

?2.?用戶登入界面如圖2.4所示

圖2.4 用戶登入界面

3.設(shè)備信息錄入如圖2.5所示

?圖2.5 設(shè)備信息錄入界面

4.設(shè)備信息更改如圖2.6所示

?圖2.6 設(shè)備信息更改界面

5.設(shè)備查找如圖2.7所示

?圖2.7 設(shè)備查找界面

6.維修記錄管理如圖2.8和2.9和3.0所示

圖2.8

圖2.9?維修記錄頁(yè)面

圖3.0?維修查找頁(yè)面

?7.設(shè)備顯示如圖3.1所示

圖3.2?所有設(shè)備信息顯示頁(yè)面

?8.相關(guān)信息

?9.信心刪除界面如圖3.4所示

圖3.4?信息刪除頁(yè)面

2.2.2 外部接口

說(shuō)明本系統(tǒng)同外界的所有接口,包括軟件與硬件之間的接口、本系統(tǒng)與各支持軟件之間的接口關(guān)系。

myfile.txt中建立或更改增加刪除信息。

2.2.3 內(nèi)部接口

說(shuō)明本系統(tǒng)之內(nèi)的各個(gè)系統(tǒng)元素之間的接口的安排,如函數(shù)接口。如表2.1所示。

表2.1 內(nèi)部接口

函數(shù)編號(hào)

函數(shù)定義

函數(shù)說(shuō)明

1

void RandomCode (char Rcode[])

隨機(jī)碼產(chǎn)生函數(shù)

2

int LandedApp (char *password[], char Rcode[])

登陸函數(shù)

3

void fprintE(Equipment *head)?

輸出到文件

4

void addEquipment(Equipment *head)?

添加設(shè)備

5

void deleteEquipment(Equipment *head,int num)?

刪除設(shè)備信息

6

void changeEquipment(Equipment *head,int num)?

更新設(shè)備信息

7

void findEquipment()

設(shè)備信息查找

8

Equipment* fscanE()

讀取設(shè)備信息

9

void repairEquipment() ???

維修信息管理

10

void printList(Equipment *head)?

輸出設(shè)備信息列表

11

int checkNum(Equipment *head, int num)

檢查設(shè)備信息

3.1 系統(tǒng)主控模塊設(shè)計(jì)

本模塊的主要功能是為用戶顯示選項(xiàng)功能。

具體算法如下:

puts ("\n成功登陸!\n\n");system("cls");Equipment *head = (Equipment*)malloc(sizeof(Equipment));head->next = NULL;int num = -1;while(num!=0){printf("\n\n\t◢█◣◢█◣\t~~~~~~~~歡迎進(jìn)入實(shí)驗(yàn)室設(shè)備管理系統(tǒng)!~~~~~~~\n");printf("\t██████\n");printf("\t◥████◤\n");printf("\t ◥██◤\n");printf("\t ◥◤\n");printf("\n\t\t~~~~~~~~~~請(qǐng)輸入您選擇的操作(0~7):~~~~~~~~~~~~~~\n");printf("\t\t1.設(shè)備信息錄入\t2.設(shè)備信息更改\t");printf("\t3.設(shè)備信息刪除\n\t\t4.設(shè)備查找\t5.維修記錄管理\t\t6.顯示所有設(shè)備\n\t\t7.關(guān)于\t\t0.退出\n");printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");system("color E9"); Sleep(5000);

3.2 用戶注冊(cè)模塊設(shè)計(jì)

本模塊的主要功能是:?讓用戶輸入用戶名以及密碼,并為了安全起見(jiàn),需要輸入隨機(jī)碼進(jìn)行驗(yàn)證。若用戶名密碼以及隨機(jī)碼輸入正確,則進(jìn)行下一步,若輸入錯(cuò)誤三次之后自動(dòng)退出程序。

具體算法如下:

void RandomCode (char Rcode[]) /*隨機(jī)碼產(chǎn)生函數(shù)*/ { int i; srand ((unsigned int)time(NULL)); for (i = 0; i < 3; ++i) Rcode[i] = rand()%10 + '0'; Rcode[i] = '\0'; } /*登陸函數(shù),判斷信息是否匹配,若匹配返回bai1,否則返回0*/ int LandedApp (char *password[], char Rcode[]) { char name[10] = {0}; char pword[10] = {0}; char rcode[4] = {0}; printf ("用戶名 : "); gets (name); printf ("密碼 : "); gets (pword); printf ("隨機(jī)碼 : "); gets (rcode); if (strcmp (name, password[0]) != 0 || strcmp (pword, password[1]) != 0 || strcmp (rcode, Rcode) != 0) return 0; else return 1; } char * password[2] = {"admin", "admin123"}; //用戶名和密碼char rc[4] = {0}; //隨機(jī)碼int count = 3; //可輸入次數(shù)system("color E9"); puts("\t\t\t\t\t▼▼▼▼▼▼▼▼▼▼▼▼▼");puts ("\n\t\t\t\t\t請(qǐng)輸入用戶名,密碼和隨機(jī)碼:");while (count){RandomCode (rc);printf ("\t\t\t\t\t隨機(jī)碼 : %s\n\n", rc);puts("\t\t\t\t\t▲▲▲▲▲▲▲▲▲▲▲▲▲");if (LandedApp(password, rc) != 0)break;--count;if (count != 0)puts ("\n\t\t\t\t錯(cuò)誤的用戶名或密碼或隨機(jī)碼,請(qǐng)重新輸入: ");}

輸入隨機(jī)驗(yàn)證碼進(jìn)行驗(yàn)證,若三次驗(yàn)證失敗則退出系統(tǒng)

void RandomCode (char Rcode[]) ???/*隨機(jī)碼產(chǎn)生函數(shù)*/

int LandedApp (char *password[], char Rcode[])???//登錄函數(shù)

3.3 輸出模塊設(shè)計(jì)

本模塊的主要功能是:文件的輸入輸出,錄入設(shè)備各種信息

具體算法如下:

//輸出到文件 void addEquipment(Equipment *head){Equipment *tail = head;while(tail->next!=NULL) tail = tail->next;Equipment *newnode = (Equipment*)malloc(sizeof(Equipment));printf("請(qǐng)輸入設(shè)備編號(hào):");scanf("%d",&newnode->num);if(checkNum(head,newnode->num)){printf("輸入編號(hào)已有,輸入失敗!\n");return;}printf("請(qǐng)輸入設(shè)備名稱:");scanf("%s",&newnode->name);printf("\n請(qǐng)輸入設(shè)備型號(hào):");scanf("%s",&newnode->model);printf("\n請(qǐng)輸入設(shè)備廠家:");scanf("%s",&newnode->factory);printf("\n請(qǐng)輸入設(shè)備購(gòu)買(mǎi)日期:");scanf("%s",&newnode->buy_date);tail->next = newnode;newnode->next = NULL;fprintE(head);printf("錄入成功!\n"); }

3.4 輸入模塊設(shè)計(jì)

本模塊的主要功能是:設(shè)備信息的輸入

具體算法如下:

//輸入 void fprintE(Equipment *head){FILE *fp=fopen("data.txt","w");Equipment *current = head->next;while(current){fprintf(fp,"%d\n",current->num);fprintf(fp,"%s\n",current->name);fprintf(fp,"%s\n",current->model);fprintf(fp,"%s\n",current->factory);fprintf(fp,"%s\n",current->buy_date);current = current->next;}fclose(fp); }

3.5 刪除模塊設(shè)計(jì)

本模塊的主要功能是:設(shè)備信息的確認(rèn)和刪除,先確認(rèn)查找的設(shè)備信息是否存在,若存在則根據(jù)需求進(jìn)行信息刪除,若不存在則進(jìn)行錯(cuò)誤提示。

具體算法如下:

//刪除 void deleteEquipment(Equipment *head,int num){if(head->next==NULL){printf("沒(méi)有設(shè)備!請(qǐng)先錄入設(shè)備! \n");return;}Equipment *current = head;Equipment *current_next = current->next;while(current_next){if(current_next->num==num){current->next = current_next->next;printf("刪除成功! \n");fprintE(head);return;}current = current->next;current_next = current_next->next;}printf("刪除失敗,沒(méi)有找到設(shè)備編號(hào)! \n"); }

3.6 更新模塊設(shè)計(jì)

本模塊的主要功能是:設(shè)備信息的更新,先進(jìn)行設(shè)備信息的查找確認(rèn)是否存在,若存在則修改曾經(jīng)信息;若查找信息不存在則進(jìn)行錯(cuò)誤提示。

具體算法如下:

//更新 void changeEquipment(Equipment *head,int num){if(head->next==NULL){printf("沒(méi)有設(shè)備!請(qǐng)先錄入設(shè)備! \n");return;}Equipment *current = head->next;while(current && (current->num!=num)){current = current->next;}if(current!=NULL){printf("請(qǐng)輸入更新后的數(shù)據(jù):");printf("\n請(qǐng)輸入設(shè)備編號(hào):");scanf("%d",&current->num);printf("\n請(qǐng)輸入設(shè)備名稱:");scanf("%s",&current->name);printf("\n請(qǐng)輸入設(shè)備型號(hào):");scanf("%s",&current->model);printf("\n請(qǐng)輸入設(shè)備廠家:");scanf("%s",&current->factory);printf("\n請(qǐng)輸入設(shè)備購(gòu)買(mǎi)日期:");scanf("%s",&current->buy_date);fprintE(head);}else{printf("操作失敗,沒(méi)有找到設(shè)備編號(hào)! \n");} }

3.7 查找模塊設(shè)計(jì)

本模塊的主要功能是:設(shè)備信息的查找,輸入相關(guān)信息的編號(hào)進(jìn)行設(shè)備信息全顯示。

具體算法如下:

//查找 void findEquipment(){Equipment *head = fscanE();if(head->next==NULL){printf("沒(méi)有設(shè)備!請(qǐng)先錄入設(shè)備! \n");return;}int num;printf("請(qǐng)輸入查找設(shè)備的編號(hào):");scanf("%d",&num);while(head){if(head->num==num){printf("編號(hào)為%d的信息為:\n",num);printf("編號(hào):%d\n",head->num);printf("名稱:%s\n",head->name);printf("型號(hào):%s\n",head->model);printf("廠家:%s\n",head->factory);printf("生產(chǎn)日期:%s\n",head->buy_date);return;}head = head->next;}printf("查找失敗,沒(méi)有找到設(shè)備編號(hào)! \n");}

3.8 文件讀取模塊設(shè)計(jì)

本模塊的主要功能是:從文件中讀取所儲(chǔ)存的設(shè)備信息。

具體算法如下:

//從文件讀取設(shè)備信息 Equipment* fscanE(){Equipment *head1 = (Equipment*)malloc(sizeof(Equipment));head1->next = NULL;Equipment *current = head1;FILE *fp = fopen("data.txt","r");while(!feof(fp)){Equipment *newnode = (Equipment*)malloc(sizeof(Equipment));fscanf(fp,"%d\n",&newnode->num);fscanf(fp,"%s\n",newnode->name);fscanf(fp,"%s\n",newnode->model);fscanf(fp,"%s\n",newnode->factory);fscanf(fp,"%s\n",newnode->buy_date);current->next = newnode;newnode->next = NULL;current = current->next;}fclose(fp);return head1; }

3.9 信息全輸出模塊設(shè)計(jì)

本模塊的主要功能是:設(shè)備信息全輸出,先輸入編號(hào)進(jìn)行查找,若存在此信息,則輸出全信息,若不存在,則進(jìn)行錯(cuò)誤提示。?

具體算法如下:

//輸出 void printList(Equipment *head){if(head->next==NULL){printf("沒(méi)有設(shè)備,請(qǐng)先錄入設(shè)備! ");return;}Equipment *current = head->next;printf("--☆-★--☆-★--☆-☆--★-☆--★-☆--★---☆-★--☆-★--☆-☆\n\n");printf(" 編號(hào) 名稱 型號(hào) 廠家 生產(chǎn)日期 \n");while(current){printf("\t%d\t%s\t%s\t%s\t%s\n",current->num,current->name,current->model,current->factory,current->buy_date);current = current->next;}printf("--☆-★--☆-★--☆-☆--★-☆--★-☆--★---☆-★--☆-★--☆-☆\n\n"); }

設(shè)備管理系統(tǒng)正確地實(shí)現(xiàn)了所要求的功能:用戶界面友好;程序運(yùn)行速度快,具有較高的可靠性;程序易讀,結(jié)構(gòu)清晰,具有良好的可擴(kuò)展性。

當(dāng)然系統(tǒng)仍然存在一些不足之處:檢索功能不夠完善,整體界面不夠美觀,背景只有單調(diào)的顏色,沒(méi)有動(dòng)畫(huà)效果這些都有待進(jìn)一步地開(kāi)放和實(shí)現(xiàn)。

通過(guò)本次項(xiàng)目實(shí)習(xí),不僅鞏固和掌握了C語(yǔ)言的知識(shí),數(shù)據(jù)結(jié)構(gòu)的知識(shí),結(jié)構(gòu)化程序設(shè)計(jì)的思想,而且對(duì)軟件開(kāi)發(fā)的過(guò)程有了一定的感性認(rèn)識(shí)。

代碼我放進(jìn)文件,需要可以自取

基于C語(yǔ)言的設(shè)備管理系統(tǒng).zip-C/C++文檔類(lèi)資源-CSDN下載

總結(jié)

以上是生活随笔為你收集整理的C语言设备管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。