c語言自動寄存櫃
① 如何用c語言實現快遞櫃管理
這個快遞櫃的管理系統的題目我見過
我有這個C語言的大作業完整實現版本
我大體的講述我自己對這個題目的思路
可以用鏈表或者數組對快遞員、快遞櫃格口、快遞包裹進行分類存儲
然後根據條件的操作進行身份上的分類劃分具體的功能操作
具體的功能就是對應著相關數組或者鏈表裡的數據進行增改查,細節進行細化
② c語言中存儲類型自動,靜態,外部,寄存都是什麼意思
在函數體內聲明的變數在默認情況下都是auto[自動]存儲類型
在代碼塊之間傳遞信息的一種方法就是使用外部變數。當一個變數在函數的外部被聲明時,它的存儲空間是永久分配的,它的存儲類型是extren.外部變數的聲明看上去和函數或代碼塊內部所聲明的變數一樣。外部變數對於它之後的所有函數都有效。在代碼塊或函數後,外部變數仍然存在。
static[靜態]的基本用途是允許一個局部變數在重新進入代碼塊時能夠保持原來的值。這和自動變數形成了鮮明的對比,自動變數在代碼塊時會被銷毀,再次進入這個代碼塊時,它必須重新進行初始化。
register[寄存器]存儲類型告訴編譯器相關的變數應該改量存儲在高速度的寄存器中。使用register存儲類型的目的一般是為了提高執行速度,但是,register聲明只是向編譯器所提出的「建議」,並非強制要求。
③ C語言如何寫一個快遞櫃系統
這種題目是屬於課程設計大作業的類型吧
可以把數據簡單的分成3類:1、快遞櫃,2、快遞員,3、快遞存儲信息
可以用數組或者鏈表進行數據的保存
存放,取件對應的快遞存儲信息的數據的增加操作
我之前做過相關類型的,有完整的功能代碼我可以幫你
④ 用C語言設計並實現一個智能快遞櫃管理程序,要求快遞派送員可以查詢格口剩餘狀
這個可以實現的,但是您需要藉助第三方的軟體才可以完成。
⑤ 存包櫃問題(C語言的)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
typedef struct bag_infor
{
int id;
int pass[6];
int lock_stat;//0 為可用 1為不可用
struct bag_infor *next;
} bag_infor, *bag_link;
int get_length(bag_link *link)
{
bag_link temp_node;
int i = 0;
if(*link == NULL)
{
return i;
}
temp_node = (*link)->next;
while(temp_node)
{
i = i + 1;
temp_node = temp_node->next;
}
return i;
}
void enter_bag(bag_link *link)
{
int count = get_length(link);
int i;
int flag = 0;
int choice;
if(count == 0)
{
printf("\n\n超市存包系統沒有進行初始化,不能使用!\n\n");
}
else
{
while(1)
{
printf("\n請放入一枚一元硬幣:1->確定 2->取消\n");
printf("請操作:>");
scanf("%d", &choice);
if(choice == 1)
{
bag_link temp_node;
temp_node = (*link)->next;
while(temp_node)
{
if(temp_node->lock_stat == 0)//該櫃子是可用的
{
printf("\n存在可用的存包櫃,您的存包櫃是第%d個\n", temp_node->id);
printf("\n請記住您的密碼信息:\n");
srand( (unsigned)time( NULL ) );
for(i = 0; i < 6; i++)
{
//printf("%d", rand() % 10);
temp_node->pass[i] = (rand() % 10);
printf("%d",temp_node->pass[i]);
}
printf("\n\n");
flag = 1;
temp_node->lock_stat = 1;
break;
}
temp_node = temp_node->next;
}
if(flag == 0)
{
printf("\n!存包櫃已滿,不能進行存包!\n");
}
break;
}
else if(choice == 2)
{
printf("謝謝您的使用!再見");
break;
}
else
{
printf("輸入錯誤!!!");
}
}
}
}
void get_bag(bag_link *link)
{
char pass[6];
int temp[6];
int i;
int flag = 0;
bag_link temp_node;
printf("\n歡迎使用取包功能\n");
printf("請輸入你的密碼:>");
scanf("%s", pass);
for(i = 0; i < 6; i++)
{
temp[i] = (int)(pass[i] - '0');
}
temp_node = (*link)->next;
while(temp_node)
{
if(temp_node->lock_stat == 1)
{
for(i = 0; i < 6; i++)
{
if(temp_node->pass[i] != temp[i])
{
break;
}
else
{
if(i == 5)//最後的數據都是相等的
{
temp_node->lock_stat = 0;
flag = 1;
}
}
}
}
if(flag == 1)
{
break;
}
temp_node = temp_node->next;
}
if(flag == 1)
{
printf("\n\n成功打開存包箱\n");
printf("你的存包箱是第%d個\n", temp_node->id);
printf("請妥善保管你的財務,謝謝你的使用\n\n\n");
}
else
{
printf("\n\n密碼輸入不正確,不能完成取包操作!\n\n");
}
}
void init_bag(bag_link *link)
{
int num;
int i;
bag_link temp_link;
printf("\n\n/**程序將會初始化超市存包櫃系統信息**/\n");
printf("請輸入超市存包櫃個數:>");
scanf("%d", &num);
*link = (bag_link)malloc(sizeof(bag_infor));
(*link)->next = NULL;
for(i = 0; i < num; i++)
{
temp_link = (bag_link)malloc(sizeof(bag_infor));
if(temp_link == NULL)
{
printf("\nError:內存分配失敗,程序退出!");
return;
}
temp_link->id = i + 1;
temp_link->lock_stat = 0;
temp_link->next = (*link)->next;
(*link)->next = temp_link;
}
}
void destory_bag(bag_link *link)
{
bag_link temp_node;
temp_node = *link;
while(temp_node)
{
temp_node = (*link)->next;
free(link);
*link = temp_node;
}
}
int main()
{
bag_link bags = NULL;
int menu;
printf("******C存包櫃問題模擬程序******\n");
while(1)
{
printf("*******************MENU********************\n");
printf("* *\n");
printf("* 1,初始化存包系統 *\n");
printf("* 2,存包 *\n");
printf("* 3,取包 *\n");
printf("* 4,關閉系統 *\n");
printf("* *\n");
printf("* *\n");
printf("*******************************************\n");
printf("\n\n請選擇操作項目:>");
scanf("%d", &menu);
if(menu == 1)
{
init_bag(&bags);
printf("\n\n系統初始化成功.............\n\n");
}
else if(menu == 2)
{
enter_bag(&bags);
}
else if(menu == 3)
{
get_bag(&bags);
}
else if(menu == 4)
{
destory_bag(&bags);
printf("Bye-Bye");
return;
}
else
{
printf("\n選擇錯誤,請重新選擇!\n\n");
}
}
return 0;
}
經過我的測試,可以進行使用,使用的是鏈表的形式完成的,如果有需要加以家QQ:564777005希望對LZ所有幫助
⑥ 自動寄存櫃c語言編碼求助
(1):該程序的功能是:計算多個學生成績的平均值,並輸出小於平均分學生的成績;(2):自然語言描述:從鍵盤輸入多個(小於1000)學生的成績,並記錄在score數組中,直到輸入任意一個負數停止錄入成績,在錄入成績的同時,計算滿足條件(輸入大於等於0)的所有成績總和,之後計算平均成績,然後循環輸出所有學生中成績小於平均分的學生成績。(3):結果為:輸出平均成績:61輸出低於平均分的學生成績:56583445注釋:printf("ave=%5.0f\n",ave);因為是%5.0f,所以四捨五入取整(小數點後是幾就保留幾位小數,因為是「5」,所以要空5格);
⑦ C語言 自動寄存機程序
while(i!=0)
{
printf("存物請輸入1,取物請輸入2,退出請輸入0\n");
scanf("%d",&i);
if(i==1)
{
for(;k[y].flag==1;y++);
printf("寄存櫃%d已經打開,您的密碼為%d\n",y,rand());
}
}
改成:
do
{
printf("存物請輸入1,取物請輸入2,退出請輸入0\n");
scanf("%d",&i);
if(i==1)
{
for(;k[y].flag==1;y++);
printf("寄存櫃%d已經打開,您的密碼為%d\n",y,rand());
}
}while(i!=0)
⑧ c語言用鏈表存儲自動存儲櫃,每一句什麼意思
1、鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。 相比於線性表順序結構,鏈表比較方便插入和刪除操作。2、常式:
/**對鏈表的綜合操作*功能有建立,排序,插入,刪除,輸出*/#include<stdio.h>#include<malloc.h>typedef int ElemType;typedef struct NodeType{ElemType data;struct NodeType *next;} NodeType,*LinkType;LinkType create(){//建立鏈表,返回鏈表的首地址,頭結點沒有數據LinkType head,p1,p2;head=(LinkType)malloc(sizeof(NodeType));p1=head;while(p1->data!=0)//當data=0時鏈表結束{p2=p1;p1=(LinkType)malloc(sizeof(NodeType));printf("Enter student's information:\ndata=");scanf("%d",&p1->data);p2->next=p1;}p2->next=NULL;free(p1);return(head);}void output(LinkType head){//鏈表的輸出,接收鏈表的首地址head=head->next;while(head!=NULL){printf("data=%d\n",head->data);head=head->next;}}LinkType sort(LinkType head){//鏈表排序,接收鏈表首地址,返回鏈表首地址LinkType ph,p1;ElemType temp;ph=head->next;p1=head->next;while(p1->next!=NULL)//冒泡法{ph=head;while(ph->next!=NULL){if(ph->data>ph->next->data)//按data由小到大排序{temp=ph->data;ph->data=ph->next->data;ph->next->data=temp;}ph=ph->next;}p1=p1->next;}return(head);}LinkType del(LinkType head){//刪除結點,接收鏈表的首地址,返回鏈表的首地址ElemType DelData;LinkType ph,p;ph=head->next;printf("Enter the data you want to del:\nDelData=");scanf("%d",&DelData);while(ph!=NULL && ph->data!=DelData)//尋找要刪除的結點{p=ph;ph=ph->next;}if(ph==NULL)//沒有找到要刪除的結點{printf("Enter error!\n");return(head);}else{if(ph==head->next)//刪除頭結點{head->next=ph->next;}else//刪除其它結點{p->next=ph->next;}}free(ph);return(head);}LinkType insert(LinkType head){//插入結點,接收鏈表首地址,返回鏈表首地址LinkType ph,p,insert,temp;insert=(LinkType)malloc(sizeof(NodeType));printf("Enter the data you want to insert:\ndata=");scanf("%d",&insert->data);ph=head->next;while(ph!=NULL && ph->data < insert->data)//尋找插入的位置{p=ph;ph=ph->next;}if(head->next->data > insert->data)//插入頭部{temp=head->next;head->next=insert;insert->next=temp;}else//插入到其它地方{p->next=insert;insert->next=ph;}return(head);}void main(){LinkType head;head=create();output(head);printf("\n\n");head=sort(head);output(head);printf("\n\n");head=del(head);output(head);printf("\n\n");head=insert(head);output(head);}
⑨ C語言寫智能快遞櫃管理程序代碼
這個是GCU的數據結構大作業來的吧
我寫過這份題目,有完整實現的功能代碼
我是用單鏈表把這些快遞櫃,快遞,快遞員,取件碼,收件人的信息
分別存儲,然後相關的功能就是細節化後的增刪改查罷了