




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数学与计算科学学院C语言程序设计课程设计题 目: 商品销售管理系统 专 业: 信息与计算科学 学 号: 1409301-41 姓 名: 徐艺 指导教师: 李又良 成 绩: 二零一五年 六月 二十二日课程设计报告商品销售管理系统1、研究目的与意义由于现今经济飞速发展,人们购买商品量越来越大。因此为提高工作效率,方便商店管理人员对商品信息进行登记,查找,等繁杂的工作,进而设计出一个功能更完善,合理,先进的商品销售管理系统来管理。开发此商品销售管理系统软件,以供商店管理人员进行商品管理,方便管理人员随时查询、修改商品信息。进一步巩固所学的C语言的数据结构,流程结构,输入输出,以及各种调试测试技能,
2、并培养利用C语言分析实际问题,用计算机解决简单问题的能力。2、问题描述和功能要求问题描叙对商品销售信息进行管理,主要包含的商品信息为:商品名称、商品编号、库存数量、销售数量、单价、产地。此主要系统包含下列功能:对商品信息的输入、显示、排序、查找、删除、修改、及对文件的读写。系统功能1)、每一条记录包括一个商品的名称、编号、库存数量、销售数量、单价、产地。2)、录入商品:可以一次完成无数条商品信息记录的输入。3)、显示库存:完成全部商品记录的显示。4)、插入商品:插入一件新商品的所有信息。5)、查找商品:按商品名称查找商品。6)、商品排序:按商品销售量把商品信息排序。7)、商品选购:包括商品信息
3、查询,商品修改,显示结账。8)、修改库存数量:按商品销售量修改商品库存数量及销售数量。9)、录入商品信息文件:能将商品信息保存在任何自定义的文件中。9)、读取商品信息文件:将保存在文件中的商品信息读取出来。10)、有一个清晰美观界面来调用各个功能功能模块分工:组长:徐艺徐艺负责:商品信息的保存和读取。张薇负责:商品查询和商品插入。李康负责:商品选购。谭小芬:商品排序和修改。易杨婷负责:录入商品,显示库存。3、课程设计报告内容3.1学生信息管理系统的理论依据1、建立一个结构体数组对象sp,用于存储商品信息struct spchar spmc20;/商品名称 int spbh;/商品编号 int
4、kcsl;/库存数量 int xssl;/销售数量 int spdj;/单价 char spcd20;/产地。2、建立相应的系统操作函数如下:输入k条商品信息存放到数组struct sp t的函数:int shuru(sp s,int n);显示数组struct sp t中n个商品的信息函数:void xs(sp s,int n);n个商品数组struct sp t根据商品名称(spmc)查找商品函数:int find(sp s,int n);n个商品数组struct sp t中修改商品(从键盘输入商品编号)的信息函数:void change(sp s,int i);n个商品数组struct
5、sp t按销售数量排降序函数:void sort_xssl(sp s,int n);从文件filename中读入数据到数组struct sp t中的函数:void read(sp s,int i);将所有记录struct sp写入文件filename函数:void save(sp s,int i);将新的商品插入sp s中函数:int Insert(sp s,int n);退出管理系统函数:exit(0);3、写main()函数,由用户输入一个参数a,根据a的值来选择要进行的操作。 3.2算法流程图商品信息管理系统的main()函数显示所有商品信息按商品名称查找插入新商品商品选购按商品销售量排
6、序修改库存数量保存商品信息功能从文件中读入商品信息输入商品信息系统运行结束退出管理系统a=0a!=0请输入一个要操作的菜单项a并根据a值判断执行的操作输出相应的运行结果3.3 源程序如下: #include"stdio.h"#include"string.h"#include"stdlib.h"typedef struct char spmc20; int spbh; int xssl; int kcsl; int spdj; char spcd20;sp;int n=0;sp s20;int menu() int select; p
7、rintf("*n"); printf("tttt商品销售管理系统n");printf("tttt【1】录入商品n");printf("tttt【2】显示库存n");printf("tttt【3】插入商品n"); printf("tttt【4】查找商品n"); printf("tttt【5】商品排序n"); printf("tttt【6】商品选购n");printf("tttt【7】修改库存数量n");printf(
8、"tttt【8】录入文件n");printf("tttt【9】读取文件n"); printf("tttt【0】退出程序n"); printf("n*n");printf("t请输入你的选择(输入0-9中的一个数字):n"); scanf("%d",&select);for(;select<0|select>9;)printf("n输入错误!请重新输入你的选择(输入0-9中的一个数字):");scanf("%d",&a
9、mp;select);return select;int shuru(sp s,int n) char flag='Y'while(flag='y' | flag='Y')/判断 printf("n请输入商品名称:"); scanf("%s",&sn.spmc); printf("n请输入商品编号:"); scanf("%d",&sn.spbh); printf("n请输入销售数量:"); scanf("%d",
10、&sn.xssl); printf("n请输入库存数量:"); scanf("%d",&sn.kcsl); printf("n请输入商品单价:"); scanf("%d",&sn.spdj); printf("n请输入商品产地:"); scanf("%s",&sn.spcd); getchar(); n+; printf("继续输入商品信息请按:Y or y,退出请按:N or n.n"); scanf("%c&q
11、uot;,&flag);/判断是否继续输入getchar();printf("按任意键回主菜单n");getchar();return(n);void xs(sp s,int n) /显示商品信息 int i; printf("商品名称 商品编号 销售数量 库存数量 单价 产地n"); for(i=0;i<n;i+) printf("%6s %8d %9d %8d %8d %6sn" ,si.spmc,si.spbh,si.xssl,si.kcsl,si.spdj,si.spcd);int Insert(sp s,int
12、 n)/插入商品的信息printf("请输入要插入的商品名称:");/输入商品信息scanf("%s",sn.spmc);printf("请输入要插入的商品编号:");scanf("%d",&sn.spbh);printf("请输入要插入的销售数量:");scanf("%d",&sn.xssl);printf("请输入要插入的库存数量:");scanf("%d",&sn.kcsl);printf("请输
13、入要插入的商品单价:");scanf("%d",&sn.spdj);printf("请输入要插入的商品产地:");scanf("%s",sn.spcd); return (n);int find(sp s,int n)/查找并显示一个记录 int k,va=-1;/k为要查找的商品名称,t为循环节,s用来判断循环是否结束 char flag='y' while(flag='y' | flag='Y') printf("请输入您所选的商品名称:");
14、scanf("%s",&k); getchar(); for(k=0;k!=0 && k<n;k+);if(k=n)printf("该商品不存在!n"); else printf("该商品的信息为:n"); printf(" 商品名称 商品编号 销售数量 库存数量 商品单价 商品产地n"); printf("%9s",sk.spmc); printf("%9d",sk.spbh); printf("%11d",sk.xssl)
15、; printf("%9d",sk.kcsl); printf("%13.2d",sk.spdj); printf("%9s",sk.spcd); va=k; printf("n继续查找商品信息请输入:Y or y,n退出输入:N or nn"); scanf("%c",&flag);/判断是否继续输入return k; void sort_xssl(sp s,int n) int m,k; sp p; for(k=1;k<=n-1;k+) for(m=0;m<n-k;m+)
16、 if( sm.xssl>sm+1.xssl) p=sm+1; sm+1=sm;sm=p; for(m=0;m<n;m+) printf("%s %d %d %d %d %sn",sm.spmc,sm.spbh,sm.xssl,sm.kcsl,sm.spdj,sm.spcd); void spxg(sp s,int k) /查找并显示一个记录char p20; /p为要查找的商品名称int sum; /商品的总额int h; /商品的选购数量printf("请输入您所选的商品名称:");scanf("%s",&p)
17、;getchar();for(k=0;strcmp(p,sk.spmc)!=0 && k<n;k+);if(k=-1)printf("该商品不存在!n");else printf("该商品的信息为:n"); printf("商品名称 商品编号 销售数量 库存数量 商品单价 商品产地n"); printf("%7s",sk.spmc); printf("%7d",sk.spbh); printf("%10d",sk.xssl); printf("
18、%12d",sk.kcsl); printf("%11d",sk.spdj); printf("%10s",sk.spcd); printf("n");/printf("继续您所需要的商品请输入:Y or y,退出输入:N or nn");/scanf("%c",&flag);/判断是否继续输入 printf("请输入所购买商品的数量:"); scanf("%d",&h); sum=sk.spdj*h; /计算商品总额printf
19、("您所购买商品的总额为: ");printf("%dn",sum);void change(sp s,int i)/修改商品的信息 long p;/p用来表示要删除商品的编号int k;printf("请输入商品编号:n");scanf("%ld",&p);for(k=0;p!=sk.spbh && k<i;k+);if(k=i)printf("无法找到该商品的信息n");elseprintf("t该商品的信息为:n");printf(&quo
20、t;商品名称 商品编号 销售数量 库存数量 单价 产地 n");printf("%9s",sk.spmc);printf("%8d",sk.spbh);printf("%9d",sk.xssl);printf("%9d",sk.kcsl);printf("%8d",sk.spdj);printf("%9s",sk.spcd);printf("t请输入该商品的新信息:n");printf("请输入商品的名称:");/交互输入商品
21、的信息scanf("%s",&sk.spmc );printf("请输入该商品的编号:");scanf("%d",&sk.spbh);printf("请输入该销售数量:");scanf("%d",&sk.xssl );printf("请输入该库存数量:");scanf("%d",&sk.kcsl );printf("请输入该商品的单价:");scanf("%d",&sk.spd
22、j );printf("请输入该商品的产地:");scanf("%s",&sk.spcd ); getchar();printf("修改成功!n");/记录void save(sp s,int i)/将所有记录写入文件int k=0;FILE *fp;/定义文件指针char filename20;/定义文件名printf("请输入你要存储商品信息文件名:");/输入文件名scanf("%s",&filename);if(fp=fopen(filename,"wb&quo
23、t;)=NULL)/打开文件printf("无法打开该文件!n");/打开失败信息return;printf("保存到文件%s里的信息为:n",filename); while(k<i)fprintf(fp,"%6s",sk.spmc);fprintf(fp,"%8d",sk.spbh);fprintf(fp,"%9d",sk.kcsl);fprintf(fp,"%8d",sk.xssl);fprintf(fp,"%8d",sk.spdj);fpri
24、ntf(fp,"%6s",sk.spcd);printf("%6s",sk.spmc);printf("%8d",sk.spbh);printf("%9d",sk.kcsl);printf("%8d",sk.xssl);printf("%8d",sk.spdj);printf("%6s",sk.spcd);printf("n");k+;fclose(fp);printf("信息保存成功n");/读取void read
25、(sp s,int i)/从文件中读入学生信息FILE *fp;/定义一个文件类型的指针char filename20;/定义文件名printf("请输入文件名:n");scanf("%s",&filename);/输入文件名if(fp=fopen(filename,"rb")=NULL)/打开文件printf("无法打开该文件!n");/打开失败信息return;printf("从文件%s中读入的数据为:n",filename);printf("商品名称 商品编号 销售数量
26、库存数量 单价 产地n");int k=0;while(k<n)printf("%6s",sk.spmc);printf("%8d",sk.spbh);printf("%9d",sk.kcsl);printf("%8d",sk.xssl);printf("%8d",sk.spdj);printf("%6s",sk.spcd);k+;fclose(fp);printf("读入成功!n"); void main() int n=0; while
27、(1) switch(menu()case 1:printf("n*录入商品*n");n=shuru(s,n);break; case 2:printf("n*显示库存*n"); xs(s,n);break; case 3:printf("n*插入商品*n");n=Insert(s,n);break; case 4:printf("n*查找商品*n");n=find(s,n);break; case 5:printf("n*商品排序*n"); sort_xssl(s,n);break; case
28、 6: printf("n*商品选购*n");spxg(s,n);break; case 7:printf("n*修改库存数量*n");change(s,n);break; case 8:printf("n*录入文件*n");save(s,n);break; case 9:printf("n*读取文件*n");read(s,n);break; case 0:printf("n*退出程序*n");exit(0); 3.4 算法调试过程中出现的问题及解决方法整个的调试过程中,我遇到的问题可以分为两大
29、类,一类是粗心大意犯的错误,第二类则是代码整合在一起前后不对应的问题。我在整合所有的模块时,因为粗心忘掉了一个,结果导致了系统出项大面积的报错,这样的报错并非是算法的出错,而是因为粗心,下次必须认真对待。只要找到错误提示处,加上了,问题便迎刃而解。这里,在我加入了后,又出现了新的错误。insert定义和调用时大小写不一样,我翻上去把insert统一好后,错误解决。spxg这个函数在定义时是写的char n但是调用时是int n,我将前者改成int n就行了。read函数定义时没有定义int n,但是调用时又出现了int n,我在定义函数read里加入了int n,错误解决。3.5运行结果1,软
30、件主菜单2,商品信息录入和显示3、按商品名称查找结果4、插入新商品信息5、按商品销售数量排序6、商品选购8、修改商品库存数量9、 将所有记录写入文件10、 读入文件3.6 心得体会经过一个多星期的C语言课程设计,我们小组都感觉收获不少!张薇:通过这次的课程设计,我对于课本上的知识有了更好的理解和学习,碰到问题不在是通过百度一下,而是自己查找课本解决问题,或者询问老师和同学,这也明显提高了自己的动手能力和思考能力,同时我也知道了自己对于程序的编写还有很多不足的地方,对课本知识也还有很多不熟练,所以这也提醒我要好好理解课本知识,多练习多巩固。总之,通过本次锻炼,我对知识有了更好的掌握,也感谢老师耐
31、心的指导,让我更快更好地完成了课程设计,让我获益匪浅。徐艺:这次课程设计对基础不扎实的我来说是个挑战,我们组又偏偏选择了一个难的题目。但是我们小组团结友爱,我们互帮互助,做完各自的模块,会帮助其他有困难的组员。我们不懂得会查阅课本,会积极向老师请教。老师和同学都给了很多帮助。在做课程设计的这几周中,我不断学会了很多平时没注意到知识点,感觉这六周的课程设计,自己的短板被一一补上。课程设计使我受益匪浅。易杨婷:完成程序的编写,决不意味着万事大吉。通过我们小组几个星期的艰苦奋斗,我们的编程终于接近尾声。小组间互帮互助,不懂得就问,让我意识到了团队的重要性。在我编写的模块中,也遇到了很多问题,以为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果明显是错误的。开发环境所提供的编译系统没法发现这类程序逻辑错误,只能靠自己的上机经验分析判定错误所在。程序的调试是一个技能性很强的工作,尽快把握程序调试方法是非常重要的。有时候一个消耗我几个小时时间的小小错误,调试高手一眼就看出错误所在。谭小芬;这一次课程设计,我主要做了按销售数量排序和修改库存数量,从这次设计中我学到了很多,如定义结构体,冒泡法对数组进行排序,函数的调用,对print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脓毒血症个案护理模板
- 英语通识阅读教程 文学篇 课件 Unit 4 Imagination and Future
- 血液透析的中心静脉的护理
- 福建省福州市台江区2025年小升初全真模拟数学检测卷含解析
- 江苏省南京市鼓楼区2025年初三下学期考前最后一次模拟化学试题含解析
- 广东文理职业学院《计算方法概论》2023-2024学年第一学期期末试卷
- 5G知识介绍课件模板
- 昆明城市学院《工程力学A(2)》2023-2024学年第一学期期末试卷
- 2025年山东省邹平双语学校二区高三英语试题第三次质量检测试题试卷含解析
- 良好班风建设课件
- 湖南省常德市石门一中2025届高三第二次模拟考试(B卷)数学试题试卷含解析
- 2025年湖南省各市州湘能农电服务有限公司招聘笔试参考题库附带答案详解
- 浙江省杭州市萧山区萧山城区八校期中考试联考2023-2024学年八年级下学期4月期中英语试题(含答案)
- 手术工作流程课件
- 危险性较大的分部分项工程专项施工方案严重缺陷清单(试行)
- 2025年辽宁省建筑安全员《B证》考试题库
- 2023-2024学年华东师大版八年级数学上册期末复习综合练习题
- 慢性肾病5期护理查房
- 常务副总经理职责
- 2024年云南省中考物理真题含解析
- 后勤岗位招聘面试题及回答建议
评论
0/150
提交评论