C语言课程设计商品信息管理系统_第1页
C语言课程设计商品信息管理系统_第2页
C语言课程设计商品信息管理系统_第3页
C语言课程设计商品信息管理系统_第4页
C语言课程设计商品信息管理系统_第5页
已阅读5页,还剩52页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、* 实践教学 * 00 软件学院(本科) 2014年秋季学期 计算机应用基础课程设计i说明书 题题趣题题题题题题题 题题题题题2014题题题4题 题题题题题题 题题题417700221 题题题题题题题 题 题题 1系统分析 1.1课程设计内容 1.2系统功能需求分析 1.3数据结构设计 2系统设计 2.1总体设计 2.2详细设计 2.2.1界面设 2.2.2各功能模块的设 3系统编码设计 11 3.1 main函数 11 3.2 load函数 12 3.3 creat创建链表函数 13 3.4 search函数 16 3.5 add数 20 3.6 ame nd函数 22 3.7 del函数

2、25 3.8 pu rchase 函数 26 C语言课程设计一商场商品管理信息系统 3.9 sales函数 3.10 print 函数 29 3.11 save 函数 33 3.12me nu 函数 34 4系统运行 36 5总结 41 1.1课程设计内容 1系统分析 1设计一商场商品信息管理系统,功能包括: 1. 文件操作:可建立、打开、保存、关闭数据文件。 广东工业大学 管理学院 08信息管理与信息系统5班林跃3108006358 2. 输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、 商品价格等。 3. 编辑数据:可添加、删除、修改数据。 4. 输入进货、销售信息:输入商

3、品编号、数量完成进货或销售操作。 5. 计算:应在输入进货及销售信息时,自动更改商品数量。 6. 查询:可按商品编号、商品名或类别查询;还可查询需进货的商品。 7. 排序:可按编号、名称或类型排序。 8. 浏览:可浏览输入、查询或排序后的数据。 1.2系统功能需求分析 本系统应具有以下功能: 文件操作功能:可建立、打开、保存、关闭数据文件。 数据输入功能:数据包括商品编号、商品名、商品类别、商品数量、 商品价格等。以及输入商品编号、数量完成进货或销售操作。 数据添加、 修改、删除功能 计算功能: 在输入进货及销售信息时,自动更改商品数量。 查询功能: 可按商品编号、商品名或类别查询;还可查询需

4、进货的商品。 排序功能: 可按编号、名称或类型排序。 数据显示功能: 可浏览输入、查询或排序后的数据。 1.3数据结构设计 struct sha ngpingxinxi /* 结构体,用于存放主要数据*/ long nu mber; /* 商品编号*/ char name100; /* 商品名*/ char leibie100; /* 商品类别 */ int kucun; /* 库存量 */ float jiage; /* 商品价格 */ struct shangpingxinxi *next; /* 指向下一个结构体 的指针*/ int n,k; /*全局变量*/ struct sha ng

5、pingxinxi *head; /* 局部变量*/ struct sha ngpingxinxi *p 1,* p2,* p3;/* 局部变量*/ char temp 20; /*局部变量*/ int/long/char/float a,b,c,d,e,f,i,j; /* 局部变量 */ FILE *fp; /* 局部变量,用于指向文件*/ 2系统设计 2.1总体设计 3按系统分析的功能要求将系统划分为以下几个主要功能模块: 2.2详细设计 2.2.1界面设计 菜单设计 读取文件 按编号查询 创建数据 按名称查询 4删除信息, f1 添加信息” t f1 1进货信息 j销售信息丿 4按编号顺

6、序浏览 0浏览信息V 彳按名称顺序浏览 1保存文件 按类别顺序浏览 按类别查询 修改信息 查询须进货商品 主菜单 输入界面的设计 输入商品编号:提示输入7位商品编号。 编号应为首位不为 0的数字编号,当输 入字符和非7位数字时提示错误;添加商品时,还应检查是否有重复编号,如有 重新输入。 ? 输入商品名称:提示输入商品名称。可输入任意字符串,但为了对齐最好不超过 八个字符,以回车为输入结束。 ? 输入商品类型:提示输入商品类型。可输入任意字符串,但为了对齐最好不超过 八个字符,以回车为输入结束。 输入商品库存:提示输入大于零的商品库存(大于 0 )。可输入032767的任 意数字,当输入为字符

7、和小于0的数字时提示错误,重新输入。 输入商品价格:提示输入大于零的商品价格(大于 0 )。可输入03.4 X 1038的任意浮点数,当输入为字符和小于 0的数字时提示错误,重新输入。3、信息- 显示界面的设计 菜单信息显示: 商品信息显示: 在页面中央以阶梯状加半框形式显示,页面底部显示提示信息。 价格五种信息, 并以表格形式显示。 应显示商品编号、商品名称、商品类别、库存数量、商品 222各功能模块的设计 根据划分的功能模块,定义以下函数实现各功能:(这部分应介绍各函数的原型,各 功能模块实现所用的算法,可用流程图描述) 1、主函数main() 定义变量 进入欢迎界面 输入密码 Y N 进

8、入主菜单 switch(k) k=1 读取文件 k=2 创建信息 k=3 查询信息 k=4 修改信息 k=5 删除信息 k=6 添加信息 k=7 进货信息 k=8 销售信息 k=9 浏览信息 k=10 保存文件 返回主菜单 返回重新输入密码 退出程序 c语言课程设计一商场商品管理信息系统 2、读取文件函数 struct sha ngpingxinxi *load(struct sha ngpingxinxi *head) 3、创建链表函数(输入数据函数)struct sha ngpin gxi nxi *creat(void) 定义变量 开辟一个内存空间开辟内存空间 输入商品编号并判断是否有效

9、和重复 输入商品名称并判断是否有效 输入商品类别并判断是否有效 输入商品库存并判断是否有效 输入商品价格并判断是否有效 广东工业大学 管理学院 08信息管理与信息系统5班林跃3108006358 退出函数 判断是否输入结束 4、查询函数 struct sha ngpingxinxi * *search(struct sha ngpingxinxi *head) 定义变量 N 数 进入选择菜单 switch(a) a=1 按商口.编号查询 a=2 按商品少编号查询 按商品名查询 a=3 按商品类别杳询 a=4 查询需讲货商品 返回选择菜单 退出此函数 c语言课程设计一商场商品管理信息系统 定义变

10、量 开辟一个新内存空间 输入需添加商品的编号并判断是否合法和重g 输入需添加商品的名称 输入需添加商品的类别 输入需添加商品的库存判断是否合法 输入需添加商品的价格判断是否合法 否保存 N 将所开辟空间链接到已有链表末尾 返回重输 退出此函数 6、修改函数 struct sha ngpingxinxi *ame nd(struct sha ngpingxinxi *head) 7、删除函数 struct sha ngpingxinxi *del(struct sha ngpingxinxi *head) 定义变量 Y 内存中是否有数据- 输入需删除的商品编号 退出此函数 显示该商品信息 返回重

11、输 删除该商品信息 返回重输 退出此函数 8、进货函数 struct sha ngpingxinxi *p urchase(struct sha ngpingxinxi *head) 定义变量 Y 内存中是否有数据N 输入所进货商品的编号 退出此函数 显示该商品信息返回重输 输入进货量 显示该商品信息 退出此函数 9、销售函数 struct sha ngpingxinxi *sales(struct sha ngpingxinxi *head) 定义变量 =内中是否有数据厂 输入所销售商品的编号 退出此函数 二-否存在? 显示该商品信息 返回重输 输入销售量 Y库存销售量? 显示该商品信息 返

12、回重输 退出此函数 广东工业大学 管理学院 08信息管理与信息系统5班林跃3108006358 c语言课程设计一商场商品管理信息系统 广东工业大学 管理学院 08信息管理与信息系统5班林跃3108006358 10、排序函数(输出函数) void prin t(struct sha ngpingxinxi *head) 定义变量 N 进入选择菜单 10 11、 switch(a) a=1 按商品编号顺帀序浏览 a=2 按商品编号丿映丿Jv浏览 按商品名顺序浏览 a=3 按商品类别顺序浏览 a=0 返回诜择菜单 退出此函数 退出此函数 保存函数 void save(struct sha ngpi

13、ngxinxi *p1) 3系统代码设计 3.1 mai n 函数 #in elude #i nclude #i nclude #i nclude #defi ne LEN sizeof(struct sha ngpingxin xi) struct sha ngpingxinxi long number;/*7位商品编号 */ char name100;/* 商品名 */ char leibie100;/* 商品类别 */ int kucun;/* 库存量 */ float jiage;/* 商 品价格 */ struct sha ngpingxinxi *n ext; ; typ edef

14、 struct sha ngpingxinxi in formati on; int n,k;/* n,k为全局变量,本程序中的函数均可以使用它*/ void mai n()/*主函数ma in,功能:通过调用各函数,实现商品信息管理系统 的功能*/ in formati on *head=0,* newgoods=0; int k=0; char a10; int j; char ch; pp:system(cls);/* 清屏*/printf(请输入密码: );j=0; while(ch=getch()!=13) putcharC*); aj=ch; j+; aj=0; if(strc m

15、p (a,zeus880825)!=0) printf(nn密码错误!); getch(); goto pp; system(cls);/* 清屏 */ Ip: k=me nu (k); 12 switch(k)/*用switch语句实现功能选择*/ case 1: head=load(head);break;/*从文件调入记录函数 */ case 2: head=creat();break;/* 调用创建链表函数 */ case 3: head=search(head);break;/*调用信息查询函数 */ case 4: head=amend(head);break;/*调用修改信息的函

16、数 */ case 5: head=del(head); break;/*调用删除信息函数 */ case 6: head=add(head,newgoods);break;/*调用追加信息资料函数 */ case 7: head=purchase(head);break;/*调用输入进货信息的函数 */ case 8: head=sales(head);break;/*调用输入销售信息的函数*/ case 9: print(head); break;/*调用显示信息资料函数*/ case 10:save(head);break;/* 调用保存函数 */ case 0: exit(0);/*退

17、出系统,返 回主界面*/ default: printf(输入错误,请重试!n); goto lp; 3.2 load 函数 in formatio n *load(i nformatio n *head)/* 信息*/ 函数load,功能:从文件读入商品 in formatio n *p 1,* p2; char file pn 10;FILE *fp; system(cls);/* 清屏 */ printf(请输入文件路径及文件名:); scan f(%s,file pn );/*输入文件路径及名称 */ if(fp=fo pen (file pn ,r+)=NULL) printf(不能

18、打开文件!n); getch(); system(cls);/* 清屏 */ return 0; fp=fo pen (file pn, r+); fsca nf(fp,n 量t商品价格 商品编号t商品名称t商品类别t库存数 n);n=0; p1= p2=(i nformation *)malloc(LEN); /* 开辟一个新单元*/ fsca nf(fp,%ldtt%stt%stt%dtt%fn, head=p1;13II:n=n+1; p2=p1; p1=(i nformation *)malloc(LEN); /* 开辟一个新单元*/ fsca nf(fp,%ldtt%stt%stt%

19、dtt%fn, p2- next=p1;if(p1- nu mber!=0) goto ll; p 2- next=NULL; fclose(fp);/*结束读入,关闭文件*/ printf(n总有%d种商品的信息:n,n); printf(n 商品编号t商品名称t商品类别t库存数量t商品价格 n); p2=p仁head; do prin tf(%ldtt%stt%stt%dtt%.2fn, p1- nu mber, p1- name, p1-lei bie, p 1-kuc un,p 1-jiage); p仁p1- n ext; while( p1!=NULL); getch(); syst

20、em(cls);/* 清屏 */ retur n (head); 3.3 creat创建链表函数 */ in formation *creat(void)/*函数creat功能:创建链表,此函数带回一个指向链表头的指针 in formati on *head; in formation *p 1,* p2,* p3; int i; system(cls);/* 清屏 */ n=0; p1=p2=p 3=(i nformatio n *)malloc(LEN); head=p3; /* 开辟一个新单元*/ repeat1: printf(请输入7位商品编号(退出请按“ 0”): );/*输入编号

21、,编号应大于 0*/ scan f(%d, if(p1 -nu mber=0) goto end; 14 else while( p1-nu mberv1000000| p1nu mber=10000000) printf(输入错 goto rep eat1; p3=head; 误!); if(n 0) for(i=0;i vn ;i+) if(p1 -nu mber!=p3-nu mber) p3=p3n ext; else printf(编号重复,请重输!n); */ goto rep eat1; /*当输入的编号已经存在,程序报错,返回前面重新输入 printf(请输入商品名:); sc

22、anf(%s,/*输入商品商品名 */ printf(请输入商品类别:);/*输入商品类别*/ scan f(%s, printf(请输入商品库存(大于 0): );/*输入商品库存*/ scan f(%d,while( p1-kuc unv0) printf(输入错误,请重新输入商品数量 scan f(%d, printf(请输入商品价格(大于0): scan f(%f, while( p1-jiagev0) printf(输入错误,请重新输入商品价格 scan f(%f, /*输入错误,重新输入商品价格直到正确为止*/ head=NULL; while( p1- nu mber!=0) n

23、=n+1; if(n=1) head=p1; else );/*输入错误,重新输入商品库存直到正确为止*/ );/*输入商品价格*/ ); p2-n ext=p1;p2=p1; p 1=(i nformati on *)malloc(LEN); repeat2:printf(请输入7位商品编号(退出请按“ 0”):); sca nf(%d,/* 输入编号,编号应大于 0*/ if(p1- nu mber=0) goto end; else while( p1-nu mberv1000000| p1nu mber=10000000) printf(输入错误!); goto rep eat2; p

24、3=head; if(n 0) for(i=0;i vn ;i+) if(p1-nu mber!=p3-nu mber) p3=p3n ext; else printf(编号重复,请重输!n); */ goto rep eat2; /*当输入的编号已经存在,程序报错,返回前面重新输入 printf(请输入商品名:);scanf(%s,/*输入商品商品名*/ printf(请输入商品类别:);/* 输入商品类别 */scanf(%s, printf(请输入商品库存(大于 0): );/*输入商品库存*/ scan f(%d,while( p1-kuc unv0) printf(输入错误,请重新输

25、入商品数量);/*输入错误,重新输入商品库存直到正 确为止 */16 sca nf(%d, printf(请输入商品价格(大于0): );/*输入商品价格*/ scan f(%f, while( p1-jiagev0) printf(输入错误,请重新输入商品价格); scan f(%f, /*输入错误,重新输入商品价格直到正确为止*/ end: p 仁head;p3=p1; p2-next=NULL;/* 链表结尾 */ printf(nn输入的商品数为:%d个!n,n); getch();system(cls);/* 清屏 */ return(head); 3.4 search 函数 inf

26、ormation *search(information *head)/* 函数 search功能:查询商品信息 */ in formatio n *p 1,* p2;int a,b; long c; char t100; system(cls);/* 清屏 */ if(head=NULL) prin tf(nnn没有任何商品资料,请先建立商品资料!n); getch(); system(cls); return(head); p2=p1=head; lp2: system(cls);/* 清屏 */ prin tf(nnnn); $n); printf( printf( $n); $1 *按

27、商品编号查询n); $n); printf($t2 *按商品名称查询n); prin tf($n); printf( $tt3 * 按商品类别查询 ttt $n); printf( $ttttttt $n); printf( ttt 4 * 查询需进货商品(库存小于 50) $n);printf(tttttttt $); printf( 17 printf( printf( tttttt 0 * 退出 tt $n); prin tf(tttttttt $); prin tf(ntttt $); prin tf(nnnnnn); printf(请选择您所要的查询方式:);scanf(%d,/*选

28、择操作*/ switch(a)/*用switch语句实现功能选择*/ */ case /*= 1: system(cls);/* 清屏 */ Ip3:printf(请输入所要查询商品的7位编号(按 0返回选择界面):); lp 10:sca nf(%ld, b=0; if(c=0) goto lp2; while(c=10000000) printf(输入错误 n); goto lp3; while(c!=0) p 仁head; while(c!=p1- number p仁p1-n ext; if(c=p1-nu mber) printf(n商品编号t商品名称t商品类别t库存数量t商品价格n)

29、; prin tf(%ldtt%stt%stt%dtt%.2fnn, p1 -n umber, p1-n ame ,p 1-leibie, p1-kucu n, p1- jiage); b=1; 18 if(b=0) printf(不存在%d该商品!n,c); printf(请输入要查询的商品的编号(按0返回选择界面):);goto lp 10; break; */ case /*= 2: system(cls);/* 清屏 */ Ip7:printf(输入所要查询商品的名称(按0返回选择界面):); sea nf(%s, b=0; if(strc mp (t,0)=0) goto Ip2;

30、while(strcm p( t,0)!=0) p 仁head; if(strc mp (t, p1- name)!=0 if(strc mp (t ,p 1- name)=0) printf(n商品名称t商品编号t商品类别t库存数量t商品价格n); prin tf(%stt%ldtt%stt%dtt%.2fn, p1 -n ame, p1-n umber, p1-leibie ,p 1-kucu n,p 1-jiage); b=1; if(b=0) printf(n 不存在 %s 该商品!n,t); printf(n请输入要查询的商品的名称(按0返回选择界面):);scanf(%s, els

31、e goto lp7; break; */ /* 19 case 3: system(cls);/* 清屏 */ lp8:printf(输入所要查询商品的类别(按0返回选择界面):); sca nf(%s, b=0; if(strc mp (t,0)=0) goto Ip2;p 1=head; printf(n商品类别t商品编号t商品名称t库存数量t商品价格n); do if(strcm p(t ,p 1-leibie)=0) prin tf(%stt%ldtt%stt%dtt%.2fn, p1 -leibie, p1- number, p1-n ame, p1-kucu n,p 1-jiag

32、e); b+; p仁p1-n ext; while( p1!=NULL); if(b=0) printf(n不存在%s该类型商品!n,t); goto Ip8; goto Ip8; */ break; /*= case 4: system(cls);/* 清屏 */ b=0; printf(商品编号t商品名称t商品类别t库存数量t商品价格n); P仁head;if(head!=NULL) do if(p 1 -kucu * 50) prin tf(%ldtt%stt%stt%dtt%.2fn, p1 -nu mber, p1-n ame, p1-leibie ,p 1-kucu n,p 1-j

33、iage); 20 b+; p仁p1-n ext; while( p1!=NULL);prin tf(n 需要进货的 商品有以上%d种!,b); getch(); system(cls);/* 清屏 */ ; break; case 0: system(cls); return(head); default: printf(输入错误,请重试!n); goto lp2; 3.5 add 数 in formatio n *add(i nformation *head, in formation *n ewgoods)/* 函数 add,功 能:追加商品信息 */ in formation *p 0

34、,* p1,* p2; int i,a; p1=newgoods=(information *)malloc(LEN);/* 开辟一个新单元 */system(cls);/*清 rep eat: printf(请输入你想添加的商品的7位商品编号(退出请按 “0”):); scanf(%ld, if(newgoods-number=0) goto en d2; else while( p1-nu mberv1000000| p1nu mber=10000000) printf(输入错误,请重新输入7位商品编号:); scan f(%d, p1=head; if(n 0) for(i=0;i vn

35、 ;i+) 21if(n ewgoods- nu mber!=p1-nu mber)p仁p1-n ext;else printf(编号重复,请重输!n); goto rep eat; printf(请输入商品名:); scan f(%s, printf(请输入商品类别: ); scan f(%s, printf(请输入商品库存(大于 0): );/*输入商品库存*/ sca nf(%d, while( newgood/*输入错误,重新输入商品库存直到正确为止*/ sca nf(%d, printf(请输入商品价格(大于 0): );/*输入商品价格*/scanf(%f, while( newg

36、ood scan f(%f, printf(n商品编号t商品名称t商品类别t库存数量t商品价格n); printf(%ldtt%stt%stt%dtt%.2fn,newgoods -number,newgoodsname,newgood s leibie, n ewgood printf(你确定要新增这个商品吗?n); printf(是请按(1),否请按(0) !n); scan f(%d, if(a=1) p0=head; p2=n ewgoods; if(head=NULL) 22 head=p2;p2n ext=NULL; /*当原来链表为空时,从首结点开始存放资料 */ else/*原

37、来链表不为空*/ if(p0-next=NULL)/*找到原来链表的末尾*/ P0- n ext=p2; p0_next=NULL;/*将它与新开单元相连接*/ else while(p0-next!=NULL)/*还没找到末尾,继续找*/ p2=p0;p0=pC-n ext; p0-n ext=p2; p 2- next=NULL; n=n+1; printf(n输入的商品数为:%d个!n,n); else goto rep eat; getch(); en d2: system(cls);/* 清屏 */ return(head); 3.6 ame nd 函数 in formation *

38、ame nd(i nformation *head)/*定义一个修改商品信息信息的函数。此函数带回一 个指向链表头的指针*/ int t; l ong num; in formati on *p 1,* p2; system(cls);/* 清屏 */ if(head=NULL) prin tf(nnn没有任何商品资料,请先建立商品资料!n); getch(); system(cls); return(head); 23 printf(输入要修改的7位商品的编号(按 0退出):); PP:sea nf(%ld, if(num=0) system(cls); goto end; else whi

39、le( numv1000000| nu m=10000000) prin tf(输入错误,请重新输入商品编号:); sca nf(%d, while( nu m!=0) p1=head; while( nu m!=p1-nu mber p仁p1-n ext; if(num=p1-nu mber) printf(n商品编号t商品名称t商品类别t库存数量t商品价格n); prin tf(%ldtt%stt%stt%dtt%.2fn, p1 -n umber, p1-n ame, p1-leibie, p1-kuc un,p1- jiage); printf(修改请按(1)!退出请按(0) !);

40、scan f(%d, if(t=1) sea nf(%ld, nu mber); while( p1-nu mberv1000000| p1nu mber=10000000) printf(输入错误,请重新输入7位商品编号:); scan f(%d, printf(请输入修改后的商品名:); scan f(%s, printf(请输入修改后的商品类别:); scan f(%s, printf(请输入修改后的库存数量(大于0):); scan f(%d, 24 */ while( p1-kucu *0) printf(输入错误,请重新输入商品数量);/*输入错误,重新输入商品库存直到正确为止 s

41、can f(%d, printf(请输入修改后的商品价格(大于 0):); scan f(%f, while( p1-jiagev0) printf(输入错误,请重新输入商品价格); scan f(%f, printf(修改后的商品信息为:); prin tf(n商品编号t商品名称 t商品类别t进货数量t商品价格n); prin tf(%ldtt%stt%stt%dtt%.2fn, p1 -n umber, p1-n ame, p1-leibie, p1-kuc un,p 1-jiage); printf(确认请按(1)!重新请按(2)!n); scan f(%d, if(t=1) syste

42、m(cls); return(head); else goto rt; else system(cls); return(head); else printf(%d不存在此商品!n,num);printf(请输入要查 询的商品的编号(按0退出):); goto PP; en d:retu m( head); 3.7 del函数 information *del(information *head)/* 函数 del,功能: 25 in formation *p 1,* p2; 删除商品信息*/ int a; long num; system(cls);/* 清屏 */ if(head=NULL

43、) prin tf(nnn没有任何商品资料,请先建立商品资料 getch(); system(cls); return(head); lp:printf(请输入你需要删除的商品的编号(7位) if(num=0) system(cls); return (head); while( numv1000000| nu m=10000000) !n); (按 0 退出):);seanf(%ld, printf(已经删除了该商品 !n); printf(输入错误,请重新输入商品编号:); sca nf(%d, p 仁head; while( nu m!=p1-nu mber /*p1后移一个结点*/ i

44、f(num=p1-number)/*找到了 */ printf(n商品编号t商品名称t商品类别t库存数量t商品价格n); prin tf(%ldtt%stt%stt%dtt%.2fn, p1 -nu mber, p1-n ame, p1-leibie ,p 1-kucu n,p 1-jiage); printf(你确定要删除这个商品的信息吗?n); printf(是请按(1),否请按(0) !n); scan f(%d, if(a=1) if(p 1=head) head=ptn ext; 把地二个结点地址赋予head*/ 26 else /*若p1指向的是首结点, p2-n ext=p1-n

45、 ext; 赋给前一结点地址*/ /*否则将下一个结点地址 n=n- 1; else goto lp; else printf(没有找到%l这件商品!,num); /*找不到该商品*/ goto lp; printf(n现在的商品数为:%d个!n,n); getch(); system(cls); return(head); 3.8 pu rchase 函数 in formation *p urchase(i nformation *head)/*定义输入进货信息的函数。此函数带回一个指向 链表头的指针*/ int t; long num; in formati on *p 1,* p2; s

46、ystem(cls);/* 清屏 */ if(head=NULL) prin tf(nnn没有任何商品资料,请先建立商品资料!n); getch(); system(cls); return(head); printf(请输入所进商品的商品7位编号(按 0退出):); lp 3:sca nf(%ld, if(num=0) system(cls); goto end; 27 while( numv1000000| nu m=10000000) prin tf(输入错误,请重新输入商品编号:); goto lp3; while( num!=0) p1=head; while( nu m!=p1-n

47、u mber p仁p1-n ext; if(num=p1-nu mber) prin tf(n该商品的信息是:n);prin tf(n商品编号t商品名称 t商品类别t库存数量t商品价格n); prin tf(%ldtt%stt%stt%dtt%.2fn, p1 -nu mber, p1-n ame, p1-leibie ,p 1-kucu n,p 1-jiage); prin tf(n请输入该商品的进货量:); scan f(%d, p1-kucu n=p1- kuc un+t; prin tf(n该商品现在的信息是:);prin tf(n商品编号t商品名称 t商品类别t库存数量t商品价格n)

48、; prin tf(%ldtt%stt%stt%dtt%.2fn, p1 -nu mber, p1-n ame, p1-leibie ,p 1-kucu n,p 1-jiage); break; else printf(不存在 %d 号商品!n,num); printf(请重新输入商品的编号(按0退出):); goto lp3; getch(); system(cls); en d:retu rn( head); 3.9 sales 函数 in formation *sales(i nformation *head) /*定义输入销售信息的函数。此函数带回一个 指向链表头的指针*/ 28i n

49、t t; long num; in formati on *p 1,* p2; system(cls);/* 清屏 */ if(head=NULL) prin tf(nnn没有任何商品资料,请先建立商品资料!n); getch(); system(cls); return(head); printf(请输入所售商品的商品7位编号(按 0退出):); lp 4:sca nf(%ld, if(num=0) system(cls); goto end; else while( numv1000000| nu m=10000000) prin tf(输入错误,请重新输入商品编号:); goto lp4

50、; while( nu m!=0) p1=head; while( nu m!=p1-nu mber p仁p1-n ext; if(num=p1-nu mber) prin tf(n该商品的信息是:n); printf(n商品编号t商品名称t商品类别t库存数量t商品价格n); prin tf(%ldtt%stt%stt%dtt%.2fn, p1 -nu mber, p1-n ame, p1-leibie ,p 1-kucu n,p 1-jiage); Ip5:printf(n请输入该商品的售货量:); scan f(%d, if(p 1 -kuc unvt) printf(售货量大于库存!n请

51、重输!n); 29 goto lp5; p 1-kuc un=p 1-kuc un -t; prin tf(n该商品现在的信息是:);prin tf(n商品编号t商品名称 t商品类别t库存数量t商品价格n); prin tf(%ldtt%stt%stt%dtt%.2fn, p1 -n umber, p1-n ame, p1-leibie, p1-kuc un,p 1-jiage); break; else printf(不存在 %d 号商品!n,num); printf(请重新输入商品的编号(按0退出):); goto Ip4; getchO; system(cls); en d:retu m

52、( head); 3.10 print 函数 void print(information *head)/* 函数 print,功能:显示商品信息 */ in formati on *p 1,* p2; int a,i,j,e,b=0; long c; float d; char t100; system(cls);/* 清屏 */ if(head=NULL) prin tf(nnn没有任何商品资料,请先建立商品资料!n); getch(); system(cls); return ; Ip2: prin tf(nnnnnn); $n); printf(t prin tf(t $n); $1

53、*按商品编号顺序浏览n); $n); printf( t $t2 *按商品名称顺序浏览n); prin tf(t $tttttt$n); printf( t $tt prin tf(ttttttt * 退出 t $n); prin tf(ttttttt prin tf(t 30 prin tf(t 3 *按商品类别顺序浏览t $n); $); $n);prin tf(ttttt0 prin tf(nttt$); prin tf(nnnnnnn); printf(请选择您所要的浏览方式:);scanf(%d,/*选择操作*/ switch(a)/*用switch语句实现功能选择*/ /*= ca

54、se 1: /*按商品编号顺序浏览*/ printf(商品编号t商品名称t商品类别t库存数量t商品价格 n);p2=p 仁head;for(i=1;i vn ;i+) for(j=i+1;jn ext; if(p2-nu mber p1-nu mber) c=p2-nu mber; p2-nu mber =p1-nu mber; */ 31 p1-nu mber=c;/*交换前后结点中的编号值,使得编号大者移到后面的结点中 strc py(t, p2n ame);strc py( p2n ame ,ptn ame); */ strc py( p1- name,t); /*交换前后结点中的商品名

55、,使之与编号相匹配 strc py(t, p2-leibie); strc py( p2-leibie, p1- leibie); strcpy(p1-leibie,t);/* 交换前后结 点中的商品类别,使之与编号相匹配*/ e=p 2-kuc un;p 2-kuc un=p 1-kuc un; */ p1-kuc un=e;/*交换前后结点中的商品数量,使之与编号相匹配 d=p 2-jiage;p 2-jiage=p 1-jiage; */ p1-jiage=d;/*交换前后结点中的商品价格,使之与编号相匹配 P2=head; P仁head;/*重新使p2,p1指向链表头*/ do pri

56、n tf(%ldtt%stt%stt%dtt%.2fn, p1 -nu mber, p1-n ame, p1-leibie ,p 1-kucu n,p 1-jiage); p1=p1-n ext; while( p1!=NULL); getch(); system(cls); break; /*= case 2: /*按商品名称顺序浏览*/ printf(商品名称t商品编号t商品类别t库存数量t商品价格 n);p2=p 仁head;for(i=1;i vn ;i+) for(j=i+1;jn ext; if(strcm p(p2-n ame ,ptn ame)0) c=p2-nu mber;

57、p2-nu mber =p1-nu mber; */ d=p2- p1-nu mber=c;/*交换前后结点中的编号值,使得编号大者移到后面的结点中 strc py(t, p2-n ame); strc py( p2n ame ,p1-n ame); strcpy( p1-n ame,t); /*交换前后结点中的商品 名,使之与编号相匹配*/strcpy(t,p2- leibie);strcp y(p 2-leibie, p1-leibie); strepy(p1-leibie,t);/*交换前后结点中的商品类别,使之与编号相匹配 */ e=p 2-kuc un;p 2-kuc un=p 1-

58、kuc un; p 1-kucu n=e;/*交换前后结点中的商品数量,使之与编号相匹配*/32 */ jiage;P 2-jiage=p1-jiage; p1-jiage=d;/*交换前后结点中的商品价格,使之与编号相匹配 P 仁head; p2=head;/*重新使p2,p1指向链表头*/ do prin tf(%stt%ldtt%stt%dtt%.2fn, p1 -n ame, p1-n umber, p1-leibie ,p 1-kucu n,p 1-jiage); p仁p1-n ext; while( p1!=NULL); getch(); system(cls); break; /

59、*= case 3: /*按商品类别顺序浏览*/ */ system(cls);/* 清屏 */ printf(总有%d种商品的信息:n,n); printf(商品类别t商品编号t商品名称t库存数量t商品价格 n);p2=p 仁head;for(i=1;i vn ;i+) for(j=i+1;jn ext; if(strc mp(p 2-leibie, p1-leibie)0) c=p2-nu mber; p2 nu mber =p1-nu mber; p1-nu mber=c;/*交换前后结点中的编号值,使得编号大者移到后面的结 点中*/ strc py(t, p2n ame);strc p

60、y( p2n ame ,ptn ame); strc py( p1-n ame,t); /*交换前后结点中的商品名,使之与编号相匹配*/ e=p2 strcpy(t, p2-leibie);strcpy( p2-leibie, p1-leibie); strcpy(p1-leibie,t);/*交换前后结点中的商品类别,使之与编号相匹配*/ 33 kuc un;p 2-kuc un=p 1-kuc un; p1-kuc un=e;/*交换前后结点中的商品数量,使之与编号相匹配*/ */ d=p 2-jiage;p 2-jiage=p 1-jiage; p1-jiage=d;/*交换前后结点中的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论