c语言 商品管理系统

c语言 商品管理系统,第1张

#include"stdioh"

#include <conioh>

#include <stdlibh>

//#include"FILEh"

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",xname,&xshuliang,&xjiage);

xbiaohao=i+1;

r->data=x;

s->next=r;

r->next=p;

}

void duchu(Slist &s)

{

FILE cp;//定义文件指针

int i=0;

Node x;

if((cp=fopen("shangpintxt","a+"))==NULL)//打开文件

{printf("文件打开失败!");return ;}

fseek(cp,0L,SEEK_SET);//将文件指针移动到文件开头

while(!feof(cp))

{

fscanf(cp,"%s%d%lf",xname,&xshuliang,&xjiage);//读取文件的内容

xbiaohao=++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("shangpintxt","w+"))==NULL)

{printf("文件打开失败!");return ;}//同上

while(p)

{

fprintf(cp,"%s %d %2lf ",p->dataname,p->datashuliang,p->datajiage);//写入文件中,并且以空格隔开

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->databiaohao==m)return p;

while(p->next)

{

if(p->next->databiaohao==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%102f\n",p->databiaohao,p->dataname,p->datashuliang,p->datajiage);

p=p->next;

}

}

void shanchu(Slist &s)

{

}

void chushou(Slist &s)

{

}

void main()

{

int num;

Slist s;

chushihua(s);

duchu(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,你自己试试,并且我也给你写了一个查找函数,你看看能用不!

#include <stdioh>

#include <malloch>

#include <stringh>

typedef struct

{

char num[10];

char name[20];

float price;

int amount;

}Product;

typedef struct node

{

Product p;

struct node pre;

struct node next;

}node,linklist;

linklist head,last;

void setData(linklist p)

{

printf("产品编号:");

scanf("%s",&p->pnum);

printf("产品名称:");

scanf("%s",&p->pname);

printf("产品单价:");

scanf("%f",&p->pprice);

printf("产品数量:");

scanf("%d",&p->pamount);

}

void Insert(linklist p)

{

setData(p);

p->next=last;

last->pre->next=p;

p->pre=last->pre;

last->pre=p;

}

void Add()

{

char ch;

do

{

linklist p=(linklist)malloc(sizeof(node));

system("cls");

Insert(p);

printf("是否继续");

scanf(" %c",&ch);

}while(ch=='y'||ch=='Y');

}

linklist Qur()

{

char num[10];

linklist p=head->next;

printf("输入产品编号:");

scanf("%s",num);

while(p!=last)

{

if(strcmp(num,p->pnum)==0) break;

p=p->next;

}

if(p==last) {printf("未找到\n");system("pause");}

return p;

}

void Del()

{

linklist p=Qur();

if(p==last) return;

p->pre->next=p->next;

p->next->pre=p->pre;

free(p);

printf("删除成功\n");

system("pause");

}

void Modify()

{

linklist p=Qur();

if(p==last) return ;

setData(p);

}

void printTitle()

{

printf("编号\t名称\t单价\t数量\n");

}

void show(linklist p)

{

printf("%s\t%s\t%2f\t%d\n",p->pnum,p->pname,p->pprice,p->pamount);

}

void Tongji()

{

linklist p=head->next;

int i=0;

printTitle();

while(p!=last)

{

show(p);

p=p->next;

i++;

}

printf("共%d项商品\n",i);

system("pause");

}

void Sort()

{

linklist p,q;

for (p=head->next;p!=last;p=p->next)

{

for (q=p->next;q!=last;q=q->next)

{

if(strcmp(p->pnum,q->pnum)<0)

{

Product temp=p->p;

p->p=q->p;

q->p=temp;

}

}

}

printf("完成\n");

system("pause");

}

void Save()

{

linklist p=head->next;

FILE fp=fopen("d:\\recordtxt","w");

if(fp==NULL)

{

printf("保存失败\n");

return;

}

fprintf(fp,"编号\t名称\t单价\t数量\n");

while(p!=last)

{

fprintf(fp,"%s\t%s\t%2f\t%d\n",p->pnum,p->pname,p->pprice,p->pamount);

p=p->next;

}

fclose(fp);

printf("完成\n");

system("pause");

}

void Disp()

{

linklist p=head->next;

printTitle();

while(p!=last)

{

show(p);

p=p->next;

}

system("pause");

}

void Wrong()

{

printf("输入错误!\n");

system("pause");

}

void menu(void)

{

system("cls");

printf("商品销售管理系统\n");

printf(" \n");

printf(" 1:添加 \n");

printf(" 2:删除 \n");

printf(" 3:查询 \n");

printf(" 4:修改 \n");

printf(" 5:插入 \n");

printf(" 6:统计 \n");

printf(" 7:降序排列 \n");

printf(" 8:存储 \n");

printf(" 9:显示数据 \n");

printf(" 0:退出 \n");

printf(" \n");

printf("\n");

}

int select()

{

int choose;

scanf("%d",&choose);

switch(choose)

{

case 1:Add();break;

case 2:Del();break;

case 3:

{

linklist p=Qur();

if(p!=last) {show(p);system("pause");}break;

}

case 4:Modify();break;

case 5:

{

linklist p=(linklist)malloc(sizeof(node));

Insert(p);break;

}

case 6:Tongji();break;

case 7:Sort();break;

case 8:Save();break;

case 9:Disp();break;

case 0:break;

default:Wrong();break;

}

return choose;

}

void destroy()

{

linklist p=head->next;

while(p!=last)

{

head->next=p->next;

free(p);

p=head->next;

}

free(head);

free(last);

}

int main(void)

{

head=(linklist)malloc(sizeof(node));

last=(linklist)malloc(sizeof(node));

head->next=last;

last->next=NULL;

last->pre=head;

head->pre=NULL;

do

{

menu();

} while (select()!=0);

destroy();

return 0;

}

#include<iostreamh>

const int N=5;

struct PRODUCT

{

int code;//商品代码

char name[20];//商品名称

double price;//单价

int amount;//商品数量

int sales;//销售量

int stock;//商品的库存量

}pro[N];

void input(struct PRODUCT p);

void sort1(int stock,int sales);//冒泡法按商品的库存量排序

void sort2(int code);//选择法按商品代码排序

void search1();//选择法按商品库存量查询

void search2(int code);//折半法按商品代码查询

void out();

void main()

{

int code;

struct PRODUCT p;

input(p);

int ch;

do

{

cout<<"按库存量排序, 请选择: 1 "<<endl;

cout<<"按商品代码排序,请选择: 2 "<<endl;

cout<<"按商品代码查询,请选择: 3 "<<endl;

cout<<"按库存量查询, 请选择: 4 "<<endl;

cout<<"显示商品信息, 请选择: 5 "<<endl;

cout<<"结束程序, 请选择: 6 "<<endl;

cin>>ch;

switch (ch)

{

case 1:sort1(pro[N]stock,pro[N]sales);

break;

case 2:sort2(pro[N]code);break;

case 3:

{

cout<<"请输入商品代码";

cin>>code;

search2(code);

}break;

case 4:search1();break;

case 5:out();break;

case 6:0;break;

default:cout<<"您的输入有错"<<endl;

}

}while(ch!=6);

}

void input(struct PRODUCT P)

{

cout<<"输入英文的时候,请以?为结束标志"<<endl<<endl;

for(int i=0;i<N;i++)

{

cout<<"请输入商品信息 :";

cin>>pro[i]code;cingetline(pro[i]name,10,'\');cin>>pro[i]price>>pro[i]amount>>pro[i]sales;

pro[i]stock=pro[i]amount-pro[i]sales;

}

}

void sort1(int stock,int sales)//冒泡法按商品的库存量排序

{

struct PRODUCT t;

for(int i=0;i<N-1;i++)

for(int j=0;j<N-i-1;j++)

if(pro[j]stock>pro[j+1]stock)

{

t=pro[j];

pro[j]=pro[j+1];

pro[j+1]=t;

}

for(i=0;i<N-1;i++)

for(int j=0;j<N-i-1;j++)

if(pro[j]stock==pro[j+1]stock&&pro[j]sales>pro[j+1]sales)

{

t=pro[j];

pro[j]=pro[j+1];

pro[j+1]=t;

}

cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"<<endl;

for(i=0;i<N;i++)

cout<<pro[i]code<<'\t'<<pro[i]name<<'\t'<<pro[i]price<<'\t'<<pro[i]amount<<'\t'<<pro[i]sales<<'\t'<<pro[i]stock<<endl;

}

void sort2(int code)//选择法按商品代码排序

{

struct PRODUCT t;

for(int i=0;i<N-1;i++)

for(int j=i+1;j<N;j++)

if(pro[i]code>pro[j]code)

{

t=pro[i];

pro[i]=pro[j];

pro[j]=t;

}

cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"<<endl;

for(i=0;i<N;i++)

cout<<pro[i]code<<'\t'<<pro[i]name<<'\t'<<pro[i]price<<'\t'<<pro[i]amount<<'\t'<<pro[i]sales<<'\t'<<pro[i]stock<<endl;

}

void search1()//选择法按商品库存量查询

{

int stock1,stock2;

cout<<"请从小到大输入您要查找商品库存量的范围 ";

cin>>stock1>>stock2;

cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"<<endl;

for(int i=stock1;i<=stock2;i++)

{

for(int j=0;j<N;j++)

if(i==pro[j]stock)break;

if(j==N)

cout<<"";

else

cout<<pro[j]code<<'\t'<<pro[j]name<<'\t'<<pro[j]price<<'\t'<<pro[j]amount<<'\t'<<pro[j]sales<<'\t'<<pro[j]stock<<endl;

}

cout<<"如果没有显示则无此商品信息"<<endl;

}

void search2(int code)//折半法按商品代码查询

{

struct PRODUCT t;

for(int i=0;i<N-1;i++)

for(int j=0;j<N-i-1;j++)

if(pro[j]code>pro[j+1]code)

{

t=pro[j];

pro[j]=pro[j+1];

pro[j+1]=t;

}

int top=0,bottom=N-1,middle=(top+bottom)/2;//折半法查找商品代码

while(top<=middle)

{

if(code==pro[middle]code)

break;

else if(code>pro[middle]code)

top=middle+1;

else

bottom=middle-1;

middle=(top+bottom)/2;

}

if(code==pro[middle]code)

{

cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"<<endl;

cout<<pro[middle]code<<'\t'<<pro[middle]name<<'\t'<<pro[middle]price<<'\t'<<pro[middle]amount<<'\t'<<pro[middle]sales<<'\t'<<pro[middle]stock<<endl;

}

else

cout<<"没有您要找的商品"<<endl;

}

void out()

{

cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"<<endl;

for(int i=0;i<N;i++)

cout<<pro[i]code<<'\t'<<pro[i]name<<'\t'<<pro[i]price<<'\t'<<pro[i]amount<<'\t'<<pro[i]sales<<'\t'<<pro[i]stock<<endl;

}

以上就是关于c语言 商品管理系统全部的内容,包括:c语言 商品管理系统、高分求 C语言 商品销售管理系统 代码~ 简单的~、一个简单的商品管理系统程序清单 c++ 请25号前交给我 malchike@live.cn等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9762504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存