c语言课题设计——实验室设备管理系统

小编:优质农业网   人气:0℃   发布时间:2025-03-11 23:59:21
字号:

#include"stdio.h"

c语言课题设计——实验室设备管理系统

#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("nttt 商店销售管理系统nn");

printf("tt **********************************************nn");

printf("tt 1--添加商品 2--出售商品nn");

printf("tt 3--删除商品 4--显示商品nn");

printf("tt 5--查找商品 0--退出系统nn");

printf("tt **********************************************nn");

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 duchu(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%10sn","商品编号","商品名称","商品数量","商品价格");

while(p)

{

printf("%10d%20s%10d%10.2fn",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);

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);

}

这是我以前给别人的一个商品管理的,用文件存储,用的由头结点的链表存储数据的(不理解可以不管),你是拿这个自己改改不会问我呢?还是我直接给你改了?

版权声明:本站文章来源互联网,如有侵犯您的权益,请及时联系我们处理;

原文链接:https://baike.tt44.com/bk/6_1932472.html