當前位置:首頁 » 編程語言 » c語言商品信息管理系統

c語言商品信息管理系統

發布時間: 2022-07-18 07:24:24

『壹』 用c語言製作商店商品管理系統

#include <stdio.h>
#include <conio.h>
#include <bios.h>
#include <dos.h>
#include <malloc.h>
#define NULL 0
#define LEN sizeof(struct mcd)
struct data /*聲明一個日期的結構體類型*/
{
int year;
int month;
int day;
};
struct mcd /*聲明有關商品信息的結構體類型*/
{
int code; /*編 號*/
char name[12]; /*品 名*/
long price; /*單 價*/
int num; /*數 量*/
char place[20]; /*產 地*/
struct data putdate; /*入庫時間*/
struct data selldate; /*銷售時間*/
struct mcd * next; /*運用指針處理鏈表*/
};
int n; /*記錄鏈表有幾條數據*/
struct mcd *head; /*聲明鏈表頭的指針*/

creat() /*輸入商品信息的函數*/
{
struct mcd *p1,*p2;
n=0;
p1=p2=(struct mcd *)malloc(LEN); /*開辟一個新單元存放信息*/
head=p1;
loop: {
clrscr();
printf("商品錄入系統\n");
printf("錄入號:%d\n",n+1);
printf("編 碼:");
scanf("%d",&p1->code);
printf("品 名:");
scanf("%s",&p1->name);
printf("單 價:");
scanf("%ld",&p1->price);
printf("數 量:");
scanf("%d",&p1->num);
printf("產 地:");
scanf("%s",&p1->place);
printf("入庫時間:");
scanf("%d-%d-%d",&p1->putdate.year,&p1->putdate.month,&p1->putdate.day);
}
while(p1->num!=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct mcd *)malloc(LEN);
goto loop;
}
p2->next=NULL;
main();
}

print() /*輸出數據列表的函數*/
{
int m=0;
struct mcd *p;
clrscr();
printf("編 號||品 名||單 價||數 量|| 產 地 ||入 庫 時 間\n");
p=head;
if(head!=NULL)
do
{
printf("%-10d%-14s%-12ld%-10d%-22s%-4d-%-2d-%-2d\n",p->code,p->name,p->price,p->num,p->place,p->putdate.year,p->putdate.month,p->putdate.day);
p=p->next;
m=m+1;
if(m%23==0){gotoxy(10,25);printf("按任意鍵繼續.");getch();}
}while(p!=NULL);
getch();
main();
}

sell()
{
int code,m=3,ch;
long sum=0;
struct mcd *p1;
struct date today;
getdate(&today);
clrscr();
printf("商品銷售系統\n");
printf("編 號||||品 名|||| 產 地 ||||單 價(元)||||出 售 時 間\n");
loop:
do{
gotoxy(23,25);
printf("按任意鍵繼續,F2結帳,ESC鍵退出");
ch=bioskey(0);
}while(0);
switch(ch)
{
case 15360:{
if(sum==0)
{
gotoxy(1,m);printf("還沒有購買商品!");
getch();
sell();
break;
}
else {
gotoxy(1,m);
printf("------------------------------------------------------------------------------");
gotoxy(47,m+1);
printf("總價: %-12ld元",sum);
getch();
main();
break;
}
}
case 283:{main();break;}
default:
{
gotoxy(23,25);
printf("請輸入商品編碼,會顯示商品信息");
gotoxy(1,m);
scanf("%d",&code);
if(head==NULL)
{
printf("你還沒有進貨.");
getch();
main();
break;
}
p1=head;
while(code!=p1->code&&p1->next!=NULL)
{p1=p1->next;}
if(code==p1->code)
{
gotoxy(13,m);
printf("%-16s%-24s%-16ld%4d-%2d-%2d",p1->name,p1->place,p1->price,today.da_year,today.da_mon,today.da_day);
m=m+1;
p1->num=p1->num-1;
sum=sum+p1->price;
}
}
goto loop;
}
}

go()
{
int ch;
clrscr();
printf("請問你要進行什麼操作?\n1,插入;2,刪除;3,什麼也不做;\n");
loop:
do{
ch=bioskey(0);
}while(0);
switch(ch)
{
case 561:insert();break;
case 818:del();break;
case 1075:main();break;
case 283:break;
default:{gotoxy(1,3);printf("請按數字鍵選擇!");goto loop;}
}
getch();
main();
}

insert()
{
struct mcd *p0,*p1,*p2;
p0=p1=p2=(struct mcd*)malloc(LEN);
p1=head;
clrscr();
printf("請輸入要插入的商品的信息:\n");
printf("編 碼:");
scanf("%d",&p0->code);
printf("品 名:");
scanf("%s",&p0->name);
printf("單 價:");
scanf("%ld",&p0->price);
printf("數 量:");
scanf("%d",&p0->num);
printf("產 地:");
scanf("%s",&p0->place);
printf("入庫時間:");
scanf("%d-%d-%d",&p0->putdate.year,&p0->putdate.month,&p0->putdate.day);
if(head==NULL)
{
head=p0;
p0->next=NULL;
}
else
{
while((p0->code>p1->code)&&(p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p0->code<=p1->code)
{
if(head==p1)head=p0;
else p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;p0->next=NULL;
}
}
n=n+1;
print();
}

del()
{
int code;
struct mcd *p1,*p2;
clrscr();
printf("請輸入要刪除商品的編號:");
scanf("%d",&code);
if(head==NULL)
{
printf("你還沒有進貨.");
getch();
main();
}
p1=head;
while(code!=p1->code&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(code==p1->code)
{
if(code==head)head=p1->next;
else p2->next=p1->next;
n=n-1;
print();
}
else
{
printf("找不到這條商品信息.");
getch();
print();
}
}

main()
{
do{
clrscr();
printf(" . : : \n");
printf(" '. :'''''''': : : :'''':'''':\n");
printf(" '. : : :'''''' :'''''' : : :\n");
printf(" ................ : : :', :', ''''':''''': : :\n");
printf(" '. .' : : : ', : ', : :....:....:\n");
printf(" '. .' : : ,' ,' : : : :\n");
printf(" '.' : : ', : : : :\n");
printf(".........:........... :........: : ', : :....:....:\n");
printf(" ............... :''''''''''''''': '''':'''' : \n");
printf(" : , , : :'''''': :'''''': ,' : : \n");
printf(" : , , : : : : : :''''''''': : ,' : \n");
printf(" : , , : : : : : : : : ,' ....:.... \n");
printf(" :, :''''''': : : : : : : : :,' : \n");
printf(" : : : : : : : : :'''''''''' ,' : \n");
printf(" : : : : : : : : :.......... ,' : \n");
printf(" : :.......: : : : : : : : ' : \n");
printf(" : : : : : : : : ......:.....\n");
printf(" : ..: :......: :......: :.........: \n");
gotoxy(60,19);
printf("趙飛宇製造 V1.0");
gotoxy(10,21);
printf("1,銷售系統;2,進貨系統;3,查看列表;4,插入刪除;5,銷售盈虧;6,幫助文檔");
gotoxy(32,24);
printf("按ESC鍵退出");
key();
}while(0);
}

key()
{
int ch;
loop:
do{
ch=bioskey(0);
}while(0);
switch(ch)
{
case 561:sell();break;
case 818:creat();break;
case 1075:print();break;
case 1332:go();break;
case 283:break;
default:
{
gotoxy(30,22);
printf("請按數字鍵選擇!");
goto loop;
}
}

}

『貳』 C語言做個小型商品銷售管理系統

我這里有一個!
具體的,稍微改一下就可以了!

#include "stdio.h" /*I/O函數*/
#include "stdlib.h" /*其它說明*/
#include "string.h" /*字元串函數*/
#include "conio.h" /*屏幕操作函數*/
#include "mem.h" /*內存操作函數*/
#include "ctype.h" /*字元操作函數*/
#include "alloc.h" /*動態地址分配函數*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;

void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}

void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];

} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}

fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{

printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移動游標*/
textcolor(YELLOW); /*設置文本顯示顏色為黃色*/
textbackground(BLUE); /*設置背景顏色為藍色*/
window(1,1,99,99); /* 製作顯示菜單的窗口,大小根據菜單條數設計*/
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}
}

『叄』 c語言商品管理系統

假設某超市經營各種商品,每種商品包括以下信息:商品編號、商品名稱、商品品牌、庫存數量、售價、已售數量。系統的主要功能包括:1. 創建商品信息文件:根據提示輸入若干商品的信息,並將信息保存至一個文件中。2. 商品進貨管理:每次購入新商品,需按要求輸入商品所含各項信息並存入商品信息文件中。如果已經存在該商品(以商品編號為准),則修改相應的庫存數量信息,否則生成新的商品信息記錄。3. 商品銷售管理:每次有商品銷售出去,則按要求輸入商品編號和商品名稱信息,並修改相應的商品信息文件。注意:商品銷售時要檢查庫存數量的合法性(即銷售出去的數量必須小於庫存數量)。4. 按不同條件進行查詢操作,輸出滿足條件的商品信息。(1) 輸入商品名稱,在商品信息文件中查找相應的商品信息並輸出。(2) 輸入商品品牌,在商品信息文件中查找該品牌的所有信息並輸出。5. 按不同條件對商品信息進行統計工作。(1) 輸入商品名稱,在商品信息文件中統計該商品的銷售總額。(2) 設置一個庫存數量警戒值,輸出庫存數量小於該警戒值的所有庫存商品的信息。(3) 輸入商品品牌,在商品信息文件中統計其不同商品名稱的庫存量,並輸出庫存量最高的那個商品的信息。
滿意請採納。

『肆』 c語言商品管理系統源代碼,加註釋

#include <stdio.h>
#include <conio.h>
#include <string.h>
#define SIZE 300

typedef struct
{
char name[30];
int num;
char shang[10];
float price;
}record;

void DataInput(record *com, int *nptr);
int DataRead(record *com,int *nptr) ;
void DataStorage(record *com, int n); /*信息保存到文件*/
void DataFind( );
void DataDisPlay( );
void DataAdd( );
void DataDel( );
void DataStatistic( );

int main( )
{
record shangpin[SIZE];
int number=20; /*設商品數*/
char fn;
printf("\t~~~~~~商品管理系統~~~~~~");
while(1)
{
printf("\n\t\t1.商品信息錄入\n"); /*顯示主菜單*/
printf("\t\t2.商品信息顯示\n");
printf("\t\t3.商品信息查找\n");
printf("\t\t4.商品信息添加\n");
printf("\t\t5.商品信息刪除\n");
printf("\t\t6.商品信息統計\n");
printf("\t\t0.退出系統");

printf("\n\t~~~~~~~~~~~~~~~~\n");

printf("\t請輸入你的一個選項(數字0-6): ");
fflush(stdin);
scanf("%c",&fn);
puts("\n");

switch(fn) /*切換到不同功能*/
{
case '1':
DataInput(shangpin, &number );
break; /*錄入信息*/
case '2':DataDisPlay();
break; /*信息顯示*/
case '3':
DataFind();
break; /*信息查找*/
case '4':
DataAdd( );
break; /*增加*/
case '5':
DataDel( );
break; /*刪除*/
case '6':
DataStatistic();
break; /*信息統計*/
case '0':
return 0;

default:puts("\t\t沒有這個項!返回主菜單!");
break;
}

printf("\n\t\t完畢!按任意鍵繼續");
getch( );

puts("\n");
}
}

void DataInput(record *com, int *nptr) /*商品信息錄入*/
{
int i = 0;
int n ; /*錄入的總數*/
char YesOrNo; /*判斷是否保存*/
char shangming[30]; /*商名*/
int haoma; /*商品號*/
char shangjia[10]; /*單價*/
float danjia;
printf("\t\t請輸入商品個數:");
scanf("%d",&n);
*nptr = n; /*nptr返回商品個數*/
printf("\t\t現在開始錄入這%d個商品信息:\n\n",n);
while(i<n)
{
printf("請輸入商品的商品名:",i+1);
scanf("%s",&shangming);
printf("請輸入商品的商品號:",i+1);
scanf("%d",&haoma);
printf("請輸入商品的生產商:",i+1);
scanf("%s",&shangjia);
printf("請輸入商品的單價 :",i+1);
scanf("%f",&danjia);
if(danjia>=0&&danjia<=1000) /*有效的單價才錄入*/
{
strcpy(com[i].name,shangming);
com[i].num = haoma;
strcpy(com[i].shang,shangjia);
com[i].price = danjia;
i =i+1;
}
else
printf("輸入的單價是一個無效的值!!!\n\n");
} /*結束while*/

printf("要保存您剛才錄入的數據嗎(Y/N)?"); /*選擇保存*/
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo=='y'||YesOrNo=='Y')
DataStorage(com,n);
else if(YesOrNo=='n'||YesOrNo=='N')
return;
else
printf("輸入了不正確的選項\n");
return;

} /*結束函數*/

void DataFind( ) /*查找*/
{

void OnNumber(record *com,int n ); /*按商品號排序*/
int key; /*key為要查找的關鍵值*/
int low = 0; /*下限*/
int high ; /*上限*/
int mid ; /*中間值*/
char ans; /*選項*/
record com[SIZE];
int n;

if(DataRead(com,&n)==1) /*從文件中讀取信息*/
{
OnNumber(com,n); /*先按商品號排序*/
high = n;
do
{
printf("\n\n\t\t請輸入你要查找的商品號:");
scanf("%d",&key);

low = 0;high = n;
while (low <=high)
{
mid = (high + low)/2; /*折半查找法*/

if (key == com[mid].num )
{
printf("\n\t\t你要找的是第%d個商品\n",mid + 1);
printf("\t\t結果如下:\n\n");

printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
printf("%3d%17s%12d%12s%8.1f\n",mid+1,com[mid].name,com[mid].num,com[mid].shang,
com[mid].price);

break; /*如果找到則退出循環*/
}

if (key > com[mid].num ) low = mid + 1;
else high = mid - 1;
}

if (low > high)
printf("\t\t,沒有找到這個價格!\n");
printf("\n\t\t還要繼續查詢嗎(Y/N)?");
ans = getch( );
}
while (ans =='Y'||ans == 'y'); /*結束do....while*/
}
}

void DataStorage(record *com, int n) /*錄入保存文件*/
{
int i;
FILE *comPtr;
char FileName[20];
printf("請輸入您要保存的文件名:");
scanf("%s",FileName);
printf("正在將商品信息保存到文件,請稍候……\n");
if((comPtr=fopen(FileName,"w"))==NULL)
printf("沒有該文件\n");
else
for(i=0 ; i<n ; i++)
fprintf(comPtr,"\n%17s%12d%12s%8.1f",com[i].name,com[i].num,com[i].shang,com[i].price);
fclose(comPtr);
}

int DataRead(record *com,int *nptr) /*讀取文件*/
{
int i=0;
char datafile[20];
FILE *comPtr;

*nptr = 0;
printf("請輸入文件名:");
scanf("%s",datafile);
if((comPtr = fopen(datafile,"r")) == NULL) /*打開文件*/
{
printf("沒有該文件,請重新輸入!\n");
return 0;
}
else
{
printf("正在讀取商品單價,請稍候……\n");
while (!feof(comPtr))
{
fscanf(comPtr,"%s%d%s%f",&com[i].name,&com[i].num,&com[i].shang,&com[i].price);
i++;
}
*nptr = i;
printf("\n");

fclose(comPtr);

return 1;
}

}

void DataDisPlay()
{
void OnPrice(record *com,int n ); /*按單價*/
void OnNumber(record *com,int n ); /*按商品號*/
int N;
int i;
record com[300];
char YesNo; /*是否按順序顯示*/
char tp;

if(DataRead(com,&N)==1) /*從文件讀取數據*/
{

printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
for(i=0;i<N;i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,com[i].price);

printf("要按順序顯示嗎?(Y/N)?");
fflush(stdin);
scanf("%c",&YesNo);
if(YesNo=='y'||YesNo=='Y')
{
printf("\t請輸入排序方式:\n");
printf("\t(1.按價格排序從低到高;2.按商品號排序從低到高.)");
fflush(stdin);
scanf("%c",&tp);
if(tp=='1')
OnPrice(com,N);
else if(tp =='2')
OnNumber(com,N);
else
printf("\t輸入了不正確項!\n");
}
}
} /*結束顯示成績*/

void OnPrice(record *com,int n ) /*按單價順序*/
{ int i,j;
record temp;
printf("\t\t按單價排序---\n\n");

printf("商品總數為%d:\n",n);

for(j=0 ; j<n-1 ; j++) /*冒泡排序*/
for(i=0 ; i<n-j-1 ; i++)
if(com[i].price>com[i+1].price)
{
temp=com[i];
com[i]=com[i+1];
com[i+1]=temp;
}

printf("\n\t\t按成績排序的結果如下(按分數從低到高):\n\n");

printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

}

void OnNumber(record *com,int n ) /*按序號順序*/
{
int i,j;
record temp;

printf("\t\t按商品號排序---\n\n");

printf("商品總數為%d:\n",n);

for(j=0 ; j<n-1 ; j++)
for(i=0 ; i<n-j-1 ; i++)
if(com[i].num>com[i+1].num)
{
temp=com[i];
com[i]=com[i+1];
com[i+1]=temp;
}

printf("\n\t按商品號排序的結果如下(按商品號從小到大):\n\n");

printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

}

void DataAdd( ) /*增加*/
{
int i=0,n,m; /*商品名稱*/
char shangming[30];
int haoma; /*生產商*/
char shangjia[10];
float danjia;
char YesOrNo;
record com[SIZE];

printf("\t\t讀取原有數據信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t信息讀取完畢!\n\n");

printf("\t\t請輸入要添加的商品總數:");
scanf("%d",&m);

printf("\t\t現在開始錄入這%d個商品信息:\n\n",m);

while(i<m)
{

printf("第%d個商品的商品名:",i+1);
scanf("%s",&shangming);
printf("第%d個商品的商品號:",i+1);
scanf("%d",&haoma);
printf("第%d個商品的生產商:",i+1);
scanf("%s",&shangjia);
printf("第%d個商品的單價:",i+1);
scanf("%f",&danjia);
if(danjia>=0&&danjia<=1000) /*有效的單價才錄入*/
{
strcpy(com[i+n].name,shangming);
com[i+n].num = haoma;
strcpy(com[i+n].shang,shangjia);
com[i+n].price = danjia;
i =i+1;
}
else
printf("輸入的單價是一個無效的值,請重新輸入!\n\n");

}

printf("要保存您剛才錄入的數據嗎(Y/N)?");
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo=='y'||YesOrNo=='Y')
DataStorage(com,n+m);
else if(YesOrNo=='n'||YesOrNo=='N')
return;
else
printf("輸入了不正確項,返回上一級\n");
return;
}
}

void DataDel( )//刪除
{
void OnNumber(record *com,int n );
record com[SIZE];
int i; /*總記錄數*/
int n; /*要刪除的記錄號*/
int m;

printf("\t\t讀取原有數據信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t原始數據如下:\n\n");
OnNumber(com,n );

printf("請輸入你要刪除的記錄的序號");
scanf("%d",&m);
if(m>=1 && m<=n)
{
for(i=m-1;i<n-1;i++)
com [i] = com[i+1];
DataStorage(com,n-1);
}
}
}

void DataStatistic( ) /*統計信息*/
{
int high=0,low=200,ave=0;
int n,i,sum=0;
int g,l;
record com[SIZE];
printf("讀取數據信息---\n");
if(DataRead(com,&n)==1)
{
printf("商品總數為%d\n\n",n);
for(i=0;i<n;i++)
{
if(com[i].price>high)
{
high = com[i].price;
g=i;
}
if(com[i].price<low)
{
low = com[i].price;
l=i;
}
sum += com[i].price;
}
ave=sum/n;
printf("\t\t最高\t最低\t平均\n"); /*計算值*/
printf("商品單價統計:\t%d\t%d\t%d\n\n",high,low,ave);
printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);

printf("\t\t 序號\t\t 商品名\t 商品號\t 生產商 單價\n");

printf("單價最高的商品是:%3d%17s%12d%12s%8.1f\n\n",g+1,com[g].name,com[g].num,com[g].shang,com[g].price);
printf("單價最低的商品是:%3d%17s%12d%12s%8.1f\n",l+1,com[l].name,com[l].num,com[l].shang,com[l].price);

} /*結束統計*/
}

『伍』 用c語言實現超市商品管理系統,用指針實現商品的插入、刪除操作。

可以用鏈表,大致就是,你創建一個結構體,結構體里有商品的一些信息,然後關鍵的是有個該結構體的指針,這個指針是指向下一個商品的結構體地址的,依次類推,直到最後一個商品的指針是指向null的,然後開始插入商品的思路:①創建新商品的信息②先讓你要插入的結構體的指針指向要插入的那個位置後邊的地址,③然後插入位置的前面的結構體指向要插入商品④如果是插在末尾,或者開頭,你就注意是誰指向誰的問題。刪除商品思路:直接修改要刪除的商品之前的指針,繞過要刪除的商品,指向下一個不擅長的商品就ok。

structbook
{
longbook_number;//記錄書的編號
charbook_name[N];//儲存書的名字
doublebook_price;//記錄書的價格
charbook_author[N];//記錄書的作者
charbook_state[N];//記錄書的借還狀態
intbook_num;//記錄書的數量
charborrower_name[N];//記錄借書人姓名
charborrower_sex[M];//記錄借書人性別
longborrower_number;//記錄借書人學號
structbook*book_next;//指向下一個結構體
};//以前寫的圖書管理系統作為鏈表元素的結構體,只要關注最後一個指針就好了

BOOK*DelBook(BOOK*book_head)/*此函數負責刪除圖書*//*思路為連續讀取文件內容,找到要刪除的文件內容的位置,寫入一份新的文件,再替換掉舊文件*/
{
longnum;//記錄書籍號
intflag=0;//控制開關
charch;//記錄用戶的選擇
BOOK*p=book_head;
BOOK*pr=NULL;

printf(" 功能:刪除一本圖書的所有信息 ");
printf("輸入你要刪除的書籍號");
scanf("%ld",&num);
read_book_file(book_head);//將圖書信息寫入節點
while(num!=p->book_number&&p->book_next!=NULL)//查找節點並顯示節點內容並且記錄節點的地址
{
pr=p;
p=p->book_next;
}
if(book_head==NULL)/*數據不能正常獲取*/
{
exit(0);
}
elseif(num=p->book_num)/*找到了對應的*/
{
PrintBook(p);
printf("你確定要刪除么?");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
{

while(!flag)
{
if(book_head==NULL)
{
printf("鏈表為空 ");
returnbook_head;
}
if(p==book_head)//如果是頭節點要刪除
{
book_head=p->book_next;
free(p);//釋放刪除節點
flag=1;
}
elseif(p->book_next==NULL)//如果是末節點
{
free(p);//釋放刪除的節點
p=pr;//改變p的指向
p->book_next==NULL;
flag=1;
}
else
{
pr->book_next=p->book_next;//刪除中間節點
free(p);//釋放刪除的節點
flag=1;
}
/*節點刪除結束*//*接下來將新的內容寫入文件,之前那些內容被覆蓋*/
save_book_file(book_head);//調用文件寫入函數重新寫入
//這樣直接就實現了內容的覆蓋,相當於刪除文本內容
returnbook_head;//最後返回頭節點
}
}
else/*未找到*/
{
fflush(stdin);
returnbook_head;
}
}
returnbook_head;
}

以前寫的令一個管理系統的一部分,將就著看吧,插入商品和這個差不多

『陸』 c語言設計商品信息管理系統

如果你不是為了學慣用途,直接用藍點產品管理系統好了,這些需求基本直接就實現了的。

『柒』 用C語言編寫一簡單的商品銷售管理系統

第一個功能商品入庫其實就是輸入數據 不要想得太復雜 直接用scanf輸入就可以了
第二個商品銷售 就是改一下商品的數量
查詢用折半查找順序查找都可以 查到之後printf
排序可以用選擇法

『捌』 C語言程序設計 超市商品信息管理系統

假設某超市經營各種商品,每種商品包括以下信息:商品編號、商品名稱、商品品牌、庫存數量、售價、已售數量。系統的主要功能包括:1. 創建商品信息文件:根據提示輸入若干商品的信息,並將信息保存至一個文件中。2. 商品進貨管理:每次購入新商品,需按要求輸入商品所含各項信息並存入商品信息文件中。如果已經存在該商品(以商品編號為准),則修改相應的庫存數量信息,否則生成新的商品信息記錄。3. 商品銷售管理:每次有商品銷售出去,則按要求輸入商品編號和商品名稱信息,並修改相應的商品信息文件。注意:商品銷售時要檢查庫存數量的合法性(即銷售出去的數量必須小於庫存數量)。4. 按不同條件進行查詢操作,輸出滿足條件的商品信息。(1) 輸入商品名稱,在商品信息文件中查找相應的商品信息並輸出。(2) 輸入商品品牌,在商品信息文件中查找該品牌的所有信息並輸出。5. 按不同條件對商品信息進行統計工作。(1) 輸入商品名稱,在商品信息文件中統計該商品的銷售總額。(2) 設置一個庫存數量警戒值,輸出庫存數量小於該警戒值的所有庫存商品的信息。(3) 輸入商品品牌,在商品信息文件中統計其不同商品名稱的庫存量,並輸出庫存量最高的那個商品的信息。

『玖』 c語言 商品管理系統

#include"stdio.h"
#include <conio.h>
#include <stdlib.h>
//#include"FILE.h"
typedef struct shangpin
{
char name[20];
int biaohao;
int shuliang;
double jiage;
}Node;
typedef struct list
{
Node data;
struct list *next;
}List ,*Slist;
void charu(Slist &s,Node x);

int caidan()
{
int i;
while(1)
{
system("cls");
printf("\n\t\t\t 商店銷售管理系統\n\n");
printf("\t\t **********************************************\n\n");
printf("\t\t 1--添加商品 2--出售商品\n\n");
printf("\t\t 3--刪除商品 4--顯示商品\n\n");
printf("\t\t 5--查找商品 0--退出系統\n\n");
printf("\t\t **********************************************\n\n");
printf("請選擇(0-5): ");
scanf("%d",&i);
if(i<6&&i>=0)break;
}
return i;
}

void chushihua(Slist &s)
{
Slist head=new List;
head->next=NULL;
s=head;
}
void tianjia(Slist &s)
{
Node x;
Slist r,p,q;
int i=0;
r=new List;
r->next=NULL;
q=p=s->next;
while(q)
{
i++;
q=q->next;
}
printf("請輸入商品名稱、數量以及價格: ");
scanf("%s%d%lf",x.name,&x.shuliang,&x.jiage);
x.biaohao=i+1;
r->data=x;
s->next=r;
r->next=p;
}
void chu(Slist &s)
{
FILE *cp;//定義文件指針
int i=0;
Node x;

if((cp=fopen("shangpin.txt","a+"))==NULL)//打開文件
{printf("文件打開失敗!");return ;}
fseek(cp,0L,SEEK_SET);//將文件指針移動到文件開頭
while(!feof(cp))
{
fscanf(cp,"%s%d%lf",x.name,&x.shuliang,&x.jiage);//讀取文件的內容
x.biaohao=++i;
charu(s,x);//把讀到的數據插入到鏈表上
}
fclose(cp);//關閉文件
}
void charu(Slist &s,Node x)
{
Slist r,p=s->next;
r=new List;
r->next=NULL;
r->data=x;
s->next=r;
r->next=p;
}
void xieru(Slist s)
{
FILE *cp;//同上
Slist p=s->next;
if((cp=fopen("shangpin.txt","w+"))==NULL)
{printf("文件打開失敗!");return ;}//同上
while(p)
{
fprintf(cp,"%s %d %.2lf ",p->data.name,p->data.shuliang,p->data.jiage);//寫入文件中,並且以空格隔開
p=p->next;
}
fclose(cp);//關閉文件
}
Slist chazhao(Slist s,int m)
{
Slist p=s->next;
if(p==0)return 0;
if(p->next==0)return p;
if(p->data.biaohao==m)return p;
while(p->next)
{
if(p->next->data.biaohao==m)return p;
p=p->next;
}
return 0;
}
void xianshi(Slist s)
{
Slist p;
p=s->next;
printf("%10s%20s%10s%10s\n","商品編號","商品名稱","商品數量","商品價格");
while(p)
{
printf("%10d%20s%10d%10.2f\n",p->data.biaohao,p->data.name,p->data.shuliang,p->data.jiage);
p=p->next;
}

}
void shanchu(Slist &s)
{

}
void chushou(Slist &s)
{

}
void main()
{
int num;
Slist s;
chushihua(s);
chu(s);
num=caidan();
while(1)
{

switch(num)
{
case 0:exit(0);break;
case 1:tianjia(s);break;
case 2:chushou(s);break;
case 3:shanchu(s);break;
case 4:xianshi(s);break;
case 5:chazhao(s,1);break;
}
printf("按任意鍵繼續!");
getch();
num=caidan();
}
xieru(s);
}

//有些函數我在沒寫啊,你自己寫寫吧,文件的讀取和寫入,還有鏈表的創建我都給你寫好了,也就是上面的1,4我都寫好了,
//包括了文件,剩下的2,3,5,你自己試試,並且我也給你寫了一個查找函數,你看看能用不!

熱點內容
家庭影院配置什麼樣的音響 發布:2025-02-01 14:04:33 瀏覽:543
蘋果手機存儲空間不能用怎麼回事 發布:2025-02-01 14:03:04 瀏覽:256
qq易語言盜號源碼 發布:2025-02-01 14:01:25 瀏覽:810
源神比較好的雲伺服器 發布:2025-02-01 13:55:27 瀏覽:206
黑蘋果idea編譯慢 發布:2025-02-01 13:45:30 瀏覽:548
c和linux 發布:2025-02-01 13:39:38 瀏覽:175
android實現列表 發布:2025-02-01 13:38:06 瀏覽:102
安卓手機為什麼會出現橫條 發布:2025-02-01 13:33:38 瀏覽:625
jqueryajax提交文件上傳 發布:2025-02-01 13:32:03 瀏覽:689
沒連上wifi如何修改wifi密碼 發布:2025-02-01 13:20:42 瀏覽:758