C语言商品管理系统-实训报告

上传人:痛*** 文档编号:95654985 上传时间:2022-05-24 格式:DOC 页数:38 大小:78KB
收藏 版权申诉 举报 下载
C语言商品管理系统-实训报告_第1页
第1页 / 共38页
C语言商品管理系统-实训报告_第2页
第2页 / 共38页
C语言商品管理系统-实训报告_第3页
第3页 / 共38页
资源描述:

《C语言商品管理系统-实训报告》由会员分享,可在线阅读,更多相关《C语言商品管理系统-实训报告(38页珍藏版)》请在装配图网上搜索。

1、-*理工学院Nanchang Institute of Technology课程实训报告系 部: 计算机信息工程 专 业: 计算机科学与技术班 级: 16级计科3班实训课程: 高级语言程序设计实训工程名称:商品销售管理指导教师: 吴玲红分组成员: *灯、何柳倩、黄日建、虎延文、晋美旺久实训地点: 实验楼308实训日期: 2017年02月28日2016年3月03日 计算机信息工程学院教务科2017年02月目录一、设计目的:1二、实验设计仪器设备和材料清单:1三、设计内容:1四、设计要求:2五、设计步骤:21、设计思想:22、函数流程图设计:33、主要源程序代码5六、运行结果分析说明15七、设计心

2、得17. z.-一、设计目的:1、进一步掌握和利用C语言进展程序设计的能力;2、进一步理解和运用构造化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的根本方法;4、学会调试一个较长程序的根本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程序设计开发文档的能力书写课程设计报告。二、实验设计仪器设备和材料清单:1、硬件:PC机2、软件:visual c+ 6.0 或者visual studio 2012三、设计内容:1、每一条记录包括每一个商品的编号、商品名称、商品价格、商品产地等内容。2、输入功能:可以一次完成假设干条记录的输入。3、显示功能:完成全部商品记录的显示。4、查找功

3、能:能查找库里商品的详细信息。5、删除功能:能按照功能删除商品信息。6、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。四、设计要求:1、用C语言实现系统;2、利用构造体数组或链表实现商品销售信息的数据构造设计;3、系统具有添加,查询,插入,删除等根本功能;4、系统的各个功能模块要求用函数的形式实现;5、完成设计任务并书写课程设计报告。6、将商品销售信息存在文件中。五、设计步骤:1、设计思想:1为存储商品销售信息,需定义一个构造体类型,成员包括编号、名称、产地、价格等,并建立链表,定义该构造体类型的指针,用于指向各结点;2分别建立具有添加、删除、修改、查询等功能的子

4、函数,完成相应功能,对程序实现模块化。这其中要用到对链表的删除、插入等知识。删除时用一构造体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的*,假设相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。查询功能要设置商品输入时的信息等多种方式。3为实现存储功能,需用到文件的相关函数,翻开文件,将添加、修改或删除的信息存入磁盘中。4为以表格的形式输出文件,宏定义格式化输出语句,用横线和竖线构成表格。5主要函数算法如下:添加信息函数void DataAdd( )定义指向构造体变量的指针;移动指针,找到插入结点;在要插入的结点输入信息;调用保存函数,保存输入信息。录

5、入信息函数void DataInput()根据商品编号商品价格商品产地商品名称添加商品到文件中,并且提示保存到文件中,输入错误也会提示输入错误。删除信息函数void DataDel( )定义指向构造体变量的指针;用指针检验链表中是否有记录,假设没记录,返回主函数;根据要修改的编号查找要删除的结点;修改链表,删除对应结点。显示记录函数void DataDisPlay( )翻开文件;用指针检验是否有记录;假设无记录,输出提示信息,返回主函数;假设有记录,移动指针,依次输出记录;关闭文件。查询商品销售信息void DataFind( )选择查询方式按最高价差、编号或卖出额;输入查询关键字:在链表中寻

6、找相应结点;调用输出函数,输出结点信息。6从主函数开场执行,调用各个子函数,并运用文件相关知识将信息存入磁盘中。2、 函数流程图设计:完毕 退出统计删除添加录入查找显示fn!=0输入fn显示主菜单开场Void DateInput (商品录入) 商品个数输入商品信息判断输入是否错误是否保存输入文件名输入数据有错,从新输入重新输入保存完毕Void Datefind (商品查找) 查找商品完毕显示商品信息通过商品号查找通过价格查找商品号?输入查找信息Void Dateadd(添加商品) 添加商品输入添加商品总数商品信息保存?商品文件完毕Void Datedel删除商品删除商品通过商品号查找商品号?显

7、示原有信息输入删除的商品号完毕删除信息成功Void Datestatistic (商品统计) 统计商品商品号?完毕显示商品信息按照序号大小统计按照价格上下统计输入选项统计显示商品信息3、主要源程序代码#include #include #include #define SIZE 300typedef struct char name30;int num;char shang10;float price;record;void DataInput(record *, int *nptr); int DataRead(record *,int *nptr) ; void DataStorage(r

8、ecord *, int n); /*信息保存到文件*/void DataFind( ); void DataDisPlay( ); void DataAdd( ); void DataDel( ); void DataStatistic( );int main( )record shangpinSIZE;int number=10; /*设商品数*/char fn; printf(tt*欢送使用*n);printf(tt商品管理系统n);while(1)printf(tt* 1.商品信息录入 *n); /*显示主菜单*/ printf(tt* 2.商品信息显示 *n);printf(tt*

9、3.商品信息查找 *n);printf(tt* 4.商品信息添加 *n);printf(tt* 5.商品信息删除 *n);printf(tt* 6.商品信息统计 *n);printf(tt* 0.退出管理系统 *n);printf(ttn);printf(tt请输入你的一个选项数字0-6: );fflush(stdin);scanf(%c,&fn);puts(n);switch(fn) /*切换到不同功能*/ case 1:DataInput(shangpin, &number );break; /*录入信息*/case 2:DataDisPlay();break; /*信息显示*/case

10、3:DataFind();break;case 4:DataAdd( );break; /*增加*/case 5:DataDel( );break; /*删除*/case 6:DataStatistic();break; /*信息统计*/case 0:return 0;default:puts(tt没有这个项!返回主菜单!);break; printf(ntt完毕!按任意键继续);getch( );puts(n); void DataInput(record *, int *nptr) /*商品信息录入*/int i = 0; int n ; /*录入的总数*/ char YesOrNo; /

11、*判断是否保存*/ char shangming30; /*商名*/ int haoma; /*商品号*/ char shangjia10; /*单价*/ float danjia; printf(tt请输入商品个数:); scanf(%d,&n); *nptr = n; /*nptr返回商品个数*/ printf(tt现在开场录入这%d个商品信息:nn,n); while(i=0&danjia=1000) /*有效的单价才录入*/strcpy(i.name,shangming);i.num = haoma;strcpy(i.shang,shangjia);i.price = danjia;i

12、 =i+1; else printf(输入的单价是一个无效的值!nn); /*完毕while*/printf(要保存您刚刚录入的数据吗(Y/N); /*选择保存*/fflush(stdin);scanf(%c,&YesOrNo);if(YesOrNo=y|YesOrNo=Y)DataStorage(,n);else if(YesOrNo=n|YesOrNo=N)return;else printf(输入了不正确的选项n);return; /*完毕函数*/void DataFind( ) /*查找*/void OnNumber(record *,int n ); /*按商品号排序*/ int k

13、ey; /*key为要查找的关键值*/ int low = 0; /*下限*/ int high ; /*上限*/ int mid ; /*中间值*/ char ans; /*选项*/ record SIZE; int n; if(DataRead(,&n)=1) /*从文件中读取信息*/OnNumber(,n); /*先按商品号排序*/high = n;do printf(nntt请输入你要查找的商品号:);scanf(%d,&key);low = 0;high = n; while (low mid.num ) low = mid + 1; else high = mid - 1; if

14、(low high)printf(tt,没有找到这个价格!n);printf(ntt还要继续查询吗(Y/N)?);ans = getch( ); while (ans =Y|ans = y); /*完毕do.while*/ void DataStorage(record *, int n) /*录入保存文件*/int i; FILE *Ptr; char FileName20; printf(请输入您要保存的文件名:); scanf(%s,FileName); printf(正在将商品信息保存到文件,请稍候n); if(Ptr=fopen(FileName,w)=NULL)printf(没有该

15、文件n);elsefor(i=0 ; in ; i+)fprintf(Ptr,n%17s%12d%12s%8.1f,i.name,i.num,i.shang,i.price);fclose(Ptr); int DataRead(record *,int *nptr) /*读取文件*/int i=0; char datafile20; FILE *Ptr; *nptr = 0; printf(请输入文件名:); scanf(%s,datafile); if(Ptr = fopen(datafile,r) = NULL) /*翻开文件*/printf(没有该文件,请重新输入!n);return 0

16、; elseprintf(正在读取商品单价,请稍候n);while (!feof(Ptr)fscanf(Ptr,%s%d%s%f,&i.name,&i.num,&i.shang,&i.price);i+;*nptr = i;printf(n);fclose(Ptr);return 1; void DataDisPlay()void OnPrice(record *,int n ); /*按单价*/ void OnNumber(record *,int n ); /*按商品号*/ int N; int i; record 300; char YesNo; /*是否按顺序显示*/ char tp;

17、 if(DataRead(,&N)=1) /*从文件读取数据*/printf(序号tt商品名t 商品号t生产商t单价n);for(i=0;iN;i+)printf(%3d%17s%12d%12s%8.1fn,i+1,i.name,i.num,i.shang,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

18、) OnPrice(,N);else if(tp =2) OnNumber(,N);else printf(t输入了不正确项!n); /*完毕显示成绩*/void OnPrice(record *,int n ) /*按单价顺序*/ int i,j; record temp; printf(tt按单价排序-nn); printf(商品总数为%d:n,n); for(j=0 ; jn-1 ; j+) /*冒泡排序*/for(i=0 ; ii+1.price)temp=i; i=i+1; i+1=temp; printf(ntt按成绩排序的结果如下(按分数从低到高):nn);printf(序号tt

19、商品名t 商品号t生产商t单价n); for(i=0 ; in ; i+) printf(%3d%17s%12d%12s%8.1fn,i+1,i.name,i.num,i.shang,i.price);void OnNumber(record *,int n ) /*按序号顺序*/int i,j; record temp; printf(tt按商品号排序-nn); printf(商品总数为%d:n,n); for(j=0 ; jn-1 ; j+) for(i=0 ; ii+1.num)temp=i; i=i+1; i+1=temp; printf(nt按商品号排序的结果如下(按商品号从小到大)

20、:nn);printf(序号tt商品名t 商品号t生产商t单价n); for(i=0 ; in ; i+) printf(%3d%17s%12d%12s%8.1fn,i+1,i.name,i.num,i.shang,i.price); void DataAdd( ) /*增加*/ int i=0,n,m; /*商品名称*/ char shangming30; int haoma; /*生产商*/ char shangjia10; float danjia; char YesOrNo; record SIZE; printf(tt读取原有数据信息-n); if(DataRead(,&n)=1)

21、printf(tt信息读取完毕!nn);printf(tt请输入要添加的商品总数:);scanf(%d,&m);printf(tt现在开场录入这%d个商品信息:nn,m);while(i=0&danjia=1 & m=n)for(i=m-1;in-1;i+) i = i+1;DataStorage(,n-1); void DataStatistic( ) /*统计信息*/int high=0,low=200,ave=0; int n,i,sum=0; int g,l; record SIZE; printf(读取数据信息-n); if(DataRead(,&n)=1)printf(商品总数为%

22、dnn,n);for(i=0;ihigh)high = i.price;g=i;if(i.pricelow)low = i.price; l=i;sum += i.price;ave=sum/n;printf(tt最高t最低t平均n); /*计算值*/printf(商品单价统计:t%dt%dt%dnn,high,low,ave);printf(序号tt商品名t 商品号t生产商t单价n); for(i=0 ; in ; i+) printf(%3d%17s%12d%12s%8.1fn,i+1,i.name,i.num,i.shang,i.price);printf(tt 序号tt 商品名t 商品

23、号t 生产商 单价n); printf(单价最高的商品是:%3d%17s%12d%12s%8.1fnn,g+1,g.name,g.num,g.shang,g.price);printf(单价最低的商品是:%3d%17s%12d%12s%8.1fn,l+1,l.name,l.num,l.shang,l.price); /*完毕统计*/六、运行结果分析说明运行情况如下:说明:1、运行程序;2、添加信息;3、查询记录;4、显示记录。录入信息与查看调试过程中的主要问题及解决方法:1、执行添加函数时出错,不能翻开文件。文件的翻开方式错误,修改为以读写的方式翻开文件。2、编译时无出错警告,连接时出现错误。

24、上次执行时的窗口为关闭。3、表格输出时,格式不能对齐。未运用格式控制字符。七、设计心得1、在开场选到这个程序时,我们蒙了一阵,因为这是我们的第一次设计程序,通过看通讯录的设计,我们渐渐的明白了,这个程序主要是针对我们上个学期所学的内容。2、经过这次课程设计,我们体会到了调试程序的辛苦及乐趣。一个小小的逻辑错误,你可能要花半天甚至一个晚上才能调试出来;但是当发现了错误并把它排除后,那种成就感是不可言喻的,而且通过这次程序设计,我们也明白了团队的力量。当一个人遇到困难时,百思不得其解时,团队的力量就表达出来了。3、在编写函数时,我们也曾因为那些变量的符号烦恼万分。怎么使用,在什么地方使用,有时就是因为一个符号的错误使用,足足让我们纠结了半天。特别是一开场在使用链表时,由于搞不懂怎样去怎样把结点窜成一条链表,经常出现一些令人啼笑皆非的错误。所以我们在最后改用了数据构造的方法来完成课题,虽然也出现了错误,但通过一边看书一边调试,还是把它设计好了。4、通过这次学习,我们发现了c语言的学习不仅要学的好,还要练的好。. z.

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