超管理系统完整源代码

上传人:无*** 文档编号:137222466 上传时间:2022-08-18 格式:DOC 页数:23 大小:163.50KB
收藏 版权申诉 举报 下载
超管理系统完整源代码_第1页
第1页 / 共23页
超管理系统完整源代码_第2页
第2页 / 共23页
超管理系统完整源代码_第3页
第3页 / 共23页
资源描述:

《超管理系统完整源代码》由会员分享,可在线阅读,更多相关《超管理系统完整源代码(23页珍藏版)》请在装配图网上搜索。

1、有一个小型超市,出售 N (N = 10)种商品,设计并实现一个系统,完成下列1. 保存及输出。超市中的各种商品信息保存在指定文件中,可以把它们输出显 示。2. 计算并排序。计算每类商品的总价值(sum,单精度)及平均价(aver,单 精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。3. 统计。统计输出库存量低于100的货号及类别。统计输出有两种以上(含 两种)商品库存量低于100的商品类别。1.2总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模 块、计算模块、统计模块1、统计模块2、打印模块。1)主模块:通过调用各分模块实现功能;2)信息输出

2、修改模块:输出显示文件中商品信息内容,添加商品信息,删除商 品信息,修改商品信息;3)新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存 在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序, 放到链表里存储;5)计算模块:将所有商品的价格与库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块1:统计库存量低于100的货名及类别;8)统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别附录(程序清单)#i nclude stdio.h#i nclude stdlib.h#includ

3、e string.h#i nclude coni o.hFILE *fp;/*输入,输出头文件*/*申请空间头文件*/*对字符串加工头文件*/*清屏头文件*/int n=0;/*定义文件指针类型*/*定义整数类型*/float aver4,sum4,g4,h;/*定义浮点类型*/char c5=elec;char d5=comm;char e5=food;char f5=offi;/*定义字符数组类型*/*定义字符数组类型*/*定义字符数组类型*/*定义字符数组类型*/struct goodint num;char n ame20;char kin d40;float price;char u

4、n it10; int qua ntity;/*定义结构体*/*商品编号*/*商品名称*/*商品类型*/*商品价格*/*商品单位*/*商品数量*/struct good *n ext;/*定义结构体指针类型*/struct good *head1,*p1,*p2;/*定义结构体指针类型*/*创建链表函数*/*head,*p1,*p2;struct good *createlist()if(fp=fope n( goods message.txt,w)=NULL)prin tf(ca n not ope n the file);/*判断能否打开文件*/exit(0);/*结束程序*/head1=

5、(struct good *)malloc(sizeof(struct good);p1=head1;/*申请头结点空间*/p2=head1;prin tf(*n)printf(请输入信息:编号,名称,类型,价格,单位,数目n);printf((以输入-1”表示结束输入)n);prin tf(*n);.n);printf(scanf(%d %s %s %f %s %d,&p1-num,p1-name,p1-kind,&p1-price,p1- unit,&p1-quantity);/*输入商品信息 */printf(n);p1- next=NULL;fprin tf(fp,%d %s %s %

6、f %s %d,p1- nu m,p1- n ame,p1-ki nd,p1-price,p1- un it,p1-qua ntity);/*将商品信息写入文件*/while(1)p1=(struct good *)malloc(sizeof(struct good);/* 申请新空间 */prin tf(*n);printf(请输入信息:编号,名称,类型,价格,单位,数目n);printf((以输入-1 ”表示结束输入)n);prin tf(*n);printf(n);scan f(%d,&p1- nu m);if(p1- num=-1)printf(fprin tf(fp,%d,-1);

7、fclose(fp);retur n headl;/*申请空间结束条件*/nn);/*返回头指针*/scanf(%s %s %f %s %d,p1-name,p1-kind,&p1-price,p1-unit,&p1-quan tity); /*输入商品信息*/printf(n);- -fprin tf(fp,%d %s %s %f %s %d,p1- nu m,p1- n ame,p1-ki nd,p1-price,p1- un it,p1-qua ntity);/*将商品信息写入文件*/p1- next=NULL;p2-n ext=p1;p2=p1;/*链表排序函数*/struct goo

8、d *p6,*p7,*r,*s;for(i=0;in ext=head2;head2=p6;while(p6-next!=NULL)/*判断循环结束条件 */p7=p6-n ext;r=p6;while(p7-next!=NULL)/*判断循环结束条件 */if(p7-next-price)(r-next-price)/*判断是否调换 */r=p7;p7=p7-n ext;if(p6!=r)/*判断循环结束条件*/s=r- next;/* 指针调换 */r-n ext=s-n ext;s-n ext=p6-n ext;p6-n ext=s;p6=p6-n ext;p6=head2;head2=

9、head2-n ext;free(p6);/*释放第一个无效空间*/retur n head2;void jisua n()p仁head;doif(strcmp(p1-kind,c)=0)/*判断是否为电器类型 */sum0=sum0+(p1-price)*(p1-quantity);/*求电器总价 */a0=a0+p1-quantity;/*求电器总件数 */if(strcmp(p1-kind,d)=0)/*判断是否为日用品类型*/sum1=sum1+(p1-price)*(p1-quantity);/*求日用品总价 */a1=a1+p1-quantity;/*求日用品总件数 */if(st

10、rcmp(p1-kind,e)=0)/*判断是否为办公用品类型*/sum2=sum2+(p1-price)*(p1-quantity);/*求办公用品总价 */a2=a2+p1-quantity;/*求办公用品总件数 */if(strcmp(p1-kind,f)=0)/*判断是否为食品类型 */sum3=sum3+(p1-price)*(p1-quantity);/*求食品总价 */a3=a3+p1-quantity;/*求食品总件数 */p1=p1- n ext;while (p1!=NULL);/*遍历链表结束条件*/for(i=0;inu m,p3-n ame,p3-k ind,&p3-

11、price,p3- un it,&p3-qua ntity);/*从文件中写到链表*/while(1)p4=(struct good *)malloc(sizeof(struct good);/* 申请头结点空间 */fscanf(fp,%d ,&p4-num);if(p4-num!=-1)/*判断循环结束条件*/fscan f(fp,%s %s %f %s %d,p4-name,p4-kind,&p4-price,p4-unit,&p4-quantity); /*从文件中写到链表*/p4- next=NULL;p3-n ext=p4;p3=p4;elsep3- next=NULL;break

12、;fclose(fp);/*关闭文件 */p3=head;while(p3!=NULL)printf(”%d %s %s %0.1f %s%dnn,p3- num,p3- name,p3-kin d,p3-price,p3- uni t,p3-qua ntity);p3=p3-n ext;prin tf(*n);prin tf(/八 n);while( n!=4)p3=head;prin tf(*n);printf(1添加商品信息n);printf(2删除某商品信息n);printf(3修改某商品信息n);printf(4返回(当你完成了对某一商品的添加、删除或者修改后请按4返回)n);pri

13、n tf(*n);/*添加商品信息*/sea nf(%d,&n);if(n=1)printf(请输入商品编号名称类型价格单位数目n);/*申请空间*/prin tf(*n);p4=(struet good *)malloc(sizeof(struct good);sea nf(%d %s %s %f %s %d,&p4- num,p4- name,p4-ki nd,&p4-price,p4- unit,&p4-quantity);/*输入商品信息 */p4-n ext=NULL;/*判断循环结束条件*/while(p3- next!=NULL) p3=p3-n ext;p3-n ext=p4;

14、p3=head;/*判断能if(fp=fope n( goods message.txt,w)=NULL)否打开文件*/printf(can not open the file);exit(O);/*结束程序*/while(p3!=NULL)fprin tf(fp,%d %s %s %f %s %d,p3-nu m,p3-n ame,p3-ki nd,p3-price,p3- un it,p3-qua ntity)/*将商品信息写入文件*/p3=p3-n ext;fprin tf(fp,%d,-1);printf(can not open the file);fclose(fp);/*关闭文件

15、*/prin tf(*n);.n);printf(printf(请按4返回n);printf(.n);printf(i*n);if(n=2)/*删除商品*/prin tf(*n);printf(请输入需要删除的商品编号n);prin tf(*n);sca nf(%d,&p);prin tf(*n)printf(1确认删除n2取消删除n);sea nf(%d,&r);if(r=1)if(head-num )=p)head=head-n ext;free(p3);/*释放空间 */elsep4=head;p3=p4-n ext;while(p3!=NULL)/*判断循环结束条件*/if(p3-nu

16、m )=p)p5=p3-n ext;free(p3);/* 释放空间 */p4-n ext=p5;break;p3=p3-n ext;p4=p4-n ext;/*判断能否打开if(fp=fope n(goods message.txt,w)=NULL)文件*/exit(O);/*结束程序*/p3=head;while(p3!=NULL)/*判断循环结束条件*/fprin tf(fp,%d %s %s %f %s %d,p3-nu m,p3-n ame,p3-ki nd,p3-price,p3- un it,p3-qua ntity);/*将商品信息写入文件*/p3=p3-n ext;fprin

17、 tf(fp,%d,-1);fclose(fp);/* 关闭文件 */if(r=2)continue;/*继续循环 */printf( *n);printf(n);printf(”请按 4 返回n);printf(n);printf( *if(n=3)/*修改某商品信息*/printf(请输入需要修改的商品编号n);sca nf(%d,&q);while(p3!=NULL)/*判断循环结束条件*/if(p3-num)=q)/*判断是否为所需要修改的商品*/*输入商品价/*判断能printf(请输入商品单价与库存量(如果单价不变请输入原来的单价)n);sea nf(%f %d,&p3-price

18、,&p3-qua ntity);格与库存量*/p3=p3-n ext;if(fp=fope n( goods message.txt,w)=NULL)否打开文件*/prin tf(ca n not ope n the file);exit(0);/*结束程序*/p3=head;while(p3!=NULL)/*判断循环结束条件*/fprintf(fp,%d %s %s %f %s %d 耳,p3-nu m,p3-n ame,p3-ki nd,p3-price,p3- un it,p3-qua ntity); /*将商品信息写入文件*/p3=p3-n ext;fprin tf(fp,%d,-1)

19、;fclose(fp);/* 关闭文件 */printf( *printf(n);printf(”请按 4 返回n);printf(n);printf( */*退出*/ if(n=4)break;prin tf(*n)printf(1 继续修改 nn2 返回n);prin tf(*n)scan f(%d,&p);if(p=1)continue;/*继续循环 */if(p=2)break;/*跳出循环*/while( n!=2);fclose(fp);/* 关闭文件 */void prin tf0(struct good *p)/*遍历链表并打印电器类商品函数 */struct good *p3

20、;/*定义结构体指针类型*/P3=P;while (p3!=NULL)/*判断遍历链表循环结束条件*/if(strcmp(p3-kind,c)=0)/*判断商品类型是否为电器类型*/prin tf(%dt%st%st%0.1ft%st%dn,p3- num,p3- name,p3-ki nd,p3-price, p3-unit,p3-quantity);/*输出电器类商品信息*/.n);printf(p3=p3-n ext;return;void prin tf1(struct good *p)/*遍历链表并打印日用品类商品函数 */struct good *p3;/*定义结构体指针类型*/P

21、3=P;while (p3!=NULL)/*判断遍历链表循环结束条件*/if(strcmp(p3-ki nd,d)=0)/*判断商品类型是否为日用品类型*/prin tf(%dt%st%st%0.1ft%st%dn,p3- num,p3- name,p3-ki nd,p3-price,p3-unit,p3-quantity);/*输出日用品类商品信息*/printf(n);p3=p3-n ext;return;void prin tf2(struct good *p)/*遍历链表并打印办公用品类商品函数 */struct good *p3;/*定义结构体指针类型*/p3=p;while (p3

22、!=NULL)/*判断遍历链表循环结束条件*/if(strcmp(p3-k in d,e)=0)/*判断商品类型是否为办公用品类型*/prin tf(%dt%st%st%0.1ft%st%dn,p3- num,p3- name,p3-ki nd,p3-price,p3-unit,p3-quantity);/*输出办公用品类商品信息*/printf(n);p3=p3-n ext;return;void prin tf3(struct good *p)/*遍历链表并打印食品类商品函数 */struct good *p3;/*定义结构体指针类型*/p3=p;while (p3!=NULL)/*判断遍

23、历链表循环结束条件*/if(strcmp(p3-kind,f)=0)/*判断商品类型是否为食品类型*/prin tf(%dt%st%st%0.1ft%st%dn,p3- num,p3- name,p3-ki nd,p3-price,p3-unit,p3-quantity);/*输出食品类商品信息*/printf(n);p3=p3-n ext;return; void shu nxuday in()for(i=0;i4;i+)gi=averi;/*将平均价赋给新数组*/for(j=0;j3;j+)/*将新数组用冒泡排序法排序*/for(i=j+1;i4;i+)if(gjgi)h=gj;gj=gi

24、;gi=h;printf(n*n)n);printf(商品平均价格排序表(从高到低)printf( *n);.n);printf(printf(编号t名称t类别t单价t单位t数量n);printf(n);for(j=0;j4;j+)for(i=0;iqua ntityname,p1-kind); /*输出商品名称及类别 */printf(n);p1=p1- n ext;void ton gji2()prin tf(n*的商品类别:n);printf(商品库存量有2种以上(含2种)低于100printf(*n);printf(n);if(a0=2)量是否为2种以上(含2种)低于100*/prin

25、tf(电器 n);printf(n);if(a1=2)存量是否为2种以上(含2种)低于100*/printf(日用品 n);printf(n);if(a2=2)存量是否为2种以上(含2种)低于100*/printf(食品 n);printf(n);if(a3=2)库存量是否为2种以上(含2种)低于100*/*判断电器类库存/*判断日用品类库/*判断食品类库/*判断办公用品类printf(办公用品 n);printf(n);int main (i nt argc, char* argv)struct good *p1,*p2;/*定义结构体指针类型*/while(1)prin tf(*n);pr

26、intf(1输出查看或者修改已存信息n);printf(n);prin tf(2重新输入新信息(并且删除原有信息)n);printf(n);printf(3统计商品信息(如果您还没有查看过信息请先按1)n);printf(n);prin tf(4退出n);prin tf(*n);scan f(%d,&m);if(m=1)shuchu();/*调用输出信息函数*/if(m=2)/*调用建立链表函数*/system(cls);head=createlist();if(m=3)printf(统计结果如下n);head=paixu(head);/*调用链表排序函数*/jisua n();/*调用计算函数*/shun xuday in();/*调用顺序打印函数*/ton gji1();/*调用统计1函数*/ton gji2();/*调用统计2函数*/if(m=4)p仁head;while(p1!=NULL)/*判断遍历链表结束条件*/p2=p1- n ext;free(p1);/*释放空间*/P仁 p2;break;/*结束程序*/return 0;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!