當前位置:首頁 » 編程語言 » C語言中的貨

C語言中的貨

發布時間: 2023-09-05 11:26:33

A. 用c語言編寫一個倉庫貨物管理系統的程序

個人覺得,題主的題的難度不亞於一個C語言的課程設計哈,在這提問不太合適。
就提供給你思路吧。
職工信息可以存入一個結構體數組中,此結構體元素包含有貨物編號(unsigned int cargo_number;);貨物名稱(char cargo_name[10];);貨物價格(unsigned int cargo_price;);貨物數量(unsigned int cargo_price;)。。。其他元素,題主根據要求添加元素。
然後,構建函數用來添加貨物名稱:void add_cargo_info(...)(形參元素為結構體數組名),即手動添加貨物信息,完事後記得要將信息寫入磁碟文件中;
然後,構建函數顯示信息,這個簡單,void display_cargo_info(...)(形參為結構體數組名),用一個while循環輸出即可;
然後,查詢函數,void cargo_info_search(...)(形參可為多種,名字,編號。。。),同樣用while循環搞定;
然後,修改信息,void cargo_info_update(...)(形參同為結構體數組),調用查找函數,找到要修改的貨物,然後在此信息中修改即可;
然後,刪除信息,void cargo_info_delete(...)(形參同為結構體數組),也是首先找到要刪除的信息,然後要調用保存函數。
這個就是我的思路,題主可以參考,希望解決了題主的問題。

B. c語言程序設計 用鏈表編寫商品庫存管理。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct node{
char no[20];//存放編號
char name[40];//存放名稱
int reserve;//庫存
struct node *next;
}NODE;

typedef struct link{
NODE *front;//頭指針
NODE *rear;//尾指針
}LINK;

NODE *create_node(void){
NODE *node = (NODE *)malloc(sizeof(NODE));
printf("請輸入貨物編號:");
gets(node->no);
printf("請輸入貨物名稱:");
gets(node->name);
printf("請輸入貨物名稱:");
char ch;
while( (ch= getchar()) != '\n');//rewind(stdin);
scanf("%d",&node->reserve);
node->next = NULL;
return node;
}

void init_link(LINK *link){
link->rear = NULL;
link->front = NULL;
}

int link_empty(LINK *link){
return link->front == NULL ? 1: 0;
}

int node_num(LINK *link){
int num = 0;
if( link_empty(link)){
return num;
}
num = 1;
NODE *node = link->front;
while(node != link->rear){
node = node->next;
++num;
}
return num;
}

/*NODE *node_find(LINK *link,const int n){
int num = node_num(link);
if(num < n){
printf("公有節點%d個,無法找到第%d個節點\n",num,n);

}
else{

}
}
*/
void node_push(LINK *link){
NODE *node = create_node();
if(link->front == NULL){
link->front = node;
link->rear = node;
node->next = NULL;
}
else{
link->rear->next = node;
link->rear = node;
node->next = NULL;
}
}

void node_insert(LINK *link,const int n){
int num = 0,i = 1;
NODE *node = link->front;
NODE *new_node = NULL;
if ( link_empty(link) ){
printf("鏈表為空,將建立鏈表!\n");
node_push(link);
}
else{
if( n <= 1){
printf("在鏈表頭插入數據\n");
new_node = create_node();
new_node->next = link->front;
link->front = new_node;
}
else if( n>= num = node_num(link) ){
printf("節點數少於%d,將在末尾插入節點.\n",n);
node_push(link);
}
else{
printf("在第n個節點後插入數據\n");
if(num >= n){
while( i != n){
node = node->next;
++i;
}
new_node = create_node();
new_node-next = node->next;
node->next = new_node;
}
}
}

void find_node_insert(LIKNK *link,const char *name){
NODE *node = link->front;
if( link_empty(link) )
node_push(link);
else {
while(strcmp(node->name,name) != 0){
if(node != link->rear)
node = node->next;
else break;

}
if(node != NULL){

NODE *new_node = create_node();
new_node-next = node->next;
node->next = new_node;
}
else {
printf("沒有找到相關貨物,將在頭節點插入數據\n");
intsert(link,0);
}
}

/*由於我不知到你對貨物統計具體實現的要求,關於貨物數量統計就你自己寫了,應該比較簡單。*/
/* 代碼沒有具體運行過,如果你學過C結構體與指針,就這個代碼思路應該看得明白,真正的實現你自己實現吧
這樣對你會更好寫。可能會有錯誤的地方,請謹慎。 */

C. C語言編程:貨物管理系統

可以提供一個很類似的:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineN100
structhardware
{
intID;
charname[35];
intnum;
floatprice;
}output={0,"empty",0,0};
intmain()
{
voidinit(hardware*output);
voiddelect(void);
voidfoutput(void);
voidrenew(void);

inti=0,select;//記錄靜態鏈表的長度

do
{
printf("************************** ");
printf("*請輸入您要執行的操作:* ");
printf("*0------>創建商品文件* ");
printf("*1------>更新商品信息* ");
printf("*2------>列印商品文件* ");
printf("*3------>刪除商品信息* ");
printf("*4------>確定退出程序* ");
printf("************************** ");

printf("請輸入您的選擇:");
scanf("%d",&select);

if(select==4)
{
return0;
}
elseif(i==0&&select!=0)
{
printf("商品文件尚未建立,不能進行該操作! ");
select=5;
}

switch(select)
{
case0:init(&output);printf("文件commodity.dat已創建完成! ");i++;break;
case1:renew();printf("指定的信息已經更新完成. ");break;
case2:foutput();printf("指定的文件commodity.dat已經列印完成. ");break;
case3:delect();printf("庫存為零的商品已經刪除完成. ");break;
case4:break;
default:printf("輸入有誤!請重新輸入. ");
}

}while(select!=4);

return0;
}
voidrenew(void)
{
FILE*pf;
hardware*tem;
inti=0,j,num,ID;

if((tem=(hardware*)malloc(sizeof(hardware)))==NULL)
{
printf("memoryerror! ");
exit(0);
}

printf("請輸入您要您要更新的商品條數: ");
scanf("%d",&num);

while(i<num)
{
z:printf("請輸入需要更新的商品號: ");
scanf("%d",&ID);

if(ID>N||ID<1)
{
printf("輸入的商品號有誤,請重新輸入! ");
gotoz;
}

if((pf=fopen("D:\commodity.dat","rb+"))==NULL)
{
printf("openfileerror! ");
exit(0);
}

for(j=0;j<N;j++)//讀出數據
{
if(!fread(tem,sizeof(hardware),1,pf))
{
printf("outputerror! ");
}

if(tem->ID==ID)
{
printf("記錄號:%d 工具名%s 數量%d 價格%.3f ",tem->ID,tem->name,tem->num,tem->price);
printf(" 請輸入新的商品信息: ");

printf("請輸入需要更新的第%d件的工具名: ",i+1);
scanf("%s",tem->name);
printf("請輸入需要更新的第%d件商品數量和價格(以空格隔開): ",i+1);
scanf("%d%f",&tem->num,&tem->price);

fseek(pf,-1L*sizeof(hardware),1);

if(!fwrite(tem,sizeof(hardware),1,pf))
{
printf("inputerror! ");
}

printf("第%d個商品數據更新成功! ",i+1);

break;
}//if
}//for

fclose(pf);
i++;

}//while
free(tem);
}
voidfoutput(void)
{
FILE*pf;
hardwaretem;
inti;

if((pf=fopen("D:\commodity.dat","rb"))==NULL)
{
printf("openfileerror! ");
exit(0);
}

printf(" *********列印列表如下:********* ");

for(i=0;i<N;i++)//讀出數據
{

if(!fread(&tem,sizeof(hardware),1,pf))
{
printf("outputerror! ");
}

if(strcmp(tem.name,"empty"))//
{
printf("記錄號:%d 工具名%s 數量%d 價格%.3f ",tem.ID,tem.name,tem.num,tem.price);
}
}

fclose(pf);
}
voiddelect(void)
{
FILE*pf;
hardware*tem;
inti;

if((tem=(hardware*)malloc(sizeof(hardware)))==NULL)
{
printf("memoryerror! ");
exit(0);
}

if((pf=fopen("D:\commodity.dat","rb+"))==NULL)
{
printf("openfileerror! ");
exit(0);
}

for(i=0;i<N;i++)//讀出數據
{
fseek(pf,0,1);

if(!fread(tem,sizeof(hardware),1,pf))
{
printf("outputerror! ");
}

if(tem->num==0)
{
strcpy(tem->name,"empty");//
tem->price=0;

fseek(pf,-1L*sizeof(hardware),1);

if(!fwrite(tem,sizeof(hardware),1,pf))
{
printf("inputerror! ");
}
}//if
}//for

fclose(pf);
free(tem);
}
voidinit(hardware*output)
{
FILE*pf;
inti;

if((pf=fopen("D:\commodity.dat","wb"))==NULL)
{
printf("openfileerror! ");
exit(0);
}

for(i=0;i<N;i++)//初始化100個元素
{
output->ID=i+1;

if(!fwrite(output,sizeof(hardware),1,pf))
{
printf("inputerror! ");
}
}

fclose(pf);//關閉文件,完成初始化的所有操作
}
熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726