C语言超市购物管理系统报告

上传人:沈*** 文档编号:40953668 上传时间:2021-11-18 格式:DOC 页数:14 大小:178.35KB
返回 下载 相关 举报
C语言超市购物管理系统报告_第1页
第1页 / 共14页
C语言超市购物管理系统报告_第2页
第2页 / 共14页
C语言超市购物管理系统报告_第3页
第3页 / 共14页
点击查看更多>>
资源描述
常州大学怀德学院课程设计 学号:11463308 姓名:吴瑶1题目描述12 系统分析12.1 题目要求12.2 输入/输出要求12.3 分析要处理的数据12.4 分析功能及其具体含义13 系统设计23.1 数据定义23.2 系统功能设计23.3 函数调用关系23.4 文件组织结构23.5设计过程的重点和难点设计过程的重点和难点24详细设计34.1流程图35 系统实现45.1源程序清单45.1.1 头文件45.1.2 主函数45.1.3 菜单105.2遇到的问题及解决115.3重点难点技术分析116 调试运行116.1测试和结果117 系统使用说明138 结论138.1课题完成情况说明138.2系统的亮点138.3系统的不足138.4系统可能的改进和扩展131题目描述 假设某超市购物信息主要包括:会员编号,会员名,商品编号,商品名,商品价格,商品数量,商品日期等,本系统应能对这些基本信息进行管理,具有会员信息录入、查看、保存至文件、从文件中读出、增加购买信息,修改购买信息,删除购买信息,按商品项查询。2 系统分析2.1 题目要求(1) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;(2) 会员购买信息按记录完整地录入、查看、保存至文件、从文件中读出、查看各会员购买信息、增加购买信息,修改购买信息,删除购买信息,按商品项查询。(3) 要求以上功能分别用函数实现。并要求用C语言的文件操作语句将以上所有结果保存在文件wuyao.c中。2.2 输入/输出要求(1) 应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息;(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。2.3 分析要处理的数据程序中所用到的数据:会员编号;会员名;商品编号;商品名;商品价格;商品数;日期; 2.4 分析功能及其具体含义 本函数所包含的功能和含义如下:(1) 数据录入:输入所有会员购买数据(包括会员编号,会员名,商品编号,商品名,商品价格,商品数,日期);(2) 数据显示:显示所有学生信息(包括会员编号,会员名,商品编号,商品名,商品价格,商品数,日期);(3) 数据保存:保存所有学生所有信息(包括会员编号,会员名,商品编号,商品名,商品价格,商品数,日期)到文件wuyao.c中;(4) 从文件中读取:从文件中读取学生各项信息;(5) 查看文件:1、商品信息的修改 2、商品信息的删除 3、商品信息的查找 4、商品信息的增加 (6)退出程序。3 系统设计3.1 数据定义定义 MarketGoods结构体,包括如下成员:会员名vip_name30(字符型); 会员编号vip_id(字符型);商品编号goods_id(字符型); 商品名goods_name(字符型);商品价格goods_price(浮点型); 商品数goods_amount(整型);日期date(字符型)。3.2 系统功能设计设计菜单,通过选择菜单调用各函数,再将调用函数的计算结果返回给主函数,并显示结果。3.3 函数调用关系main调用了void star()函数进行开始启动菜单存储文件调用void save()进行保存文件查看文件调用了void display进行打开查看增加商品信息 void add()进行添加商品信息修改商品信息 void change()进行修改删除商品信息 void del()进行删除查询商品信息 void search()进行查询输出商品信息 void ouput()进行输出3.4 文件组织结构程序由一个文件组成:wuyao.c该文件中有8个函数3.5设计过程的重点和难点设计过程的重点和难点 由于对知识点掌握的并不牢固,操作也不熟练,所以在运用指针和结构体的方面不是很轻松,使之成为本次程序设计时遇到的很大的困难。4详细设计4.1流程图删除修改查找增加会员信息录入会员编号商品名商品价格商品编号商品数主菜单会员信息查看会员信息保存至文件main函数退出程序会员购买信息处理从文件中读取会员信息输出5 系统实现5.1源程序清单5.1.1 头文件#include stdio.h /需要的一些头文件#include stdlib.h#include cstring5.1.2 主函数#define COUNT 30 /声明商品的种类为30中,你也可以修改/函数声明void start(); /启动界面void input(); /商品数据信息输入函数void change(); /商品数据信息修改函数void dele(); /给定指定商品名称,删除商品信息void output(); /商品信息输出void search(); /商品信息查找struct MarketGoods /存数商品信息的结构体char vip_name30;char vip_id30; char goods_id30; /商品编号 char goods_name30; /商品名称double goods_price; /商品价格int goods_amount;/商品数目char date30;goodsCOUNT;保存文件void save(int m) FILE *fp; int i; if (fp=fopen(huiyuangoumaixinxi.txt,wb)=NULL) printf(cannot open filen); exit(0); for(i=0;im;i+) if(fwrite(&goodsi,sizeof(struct MarketGoods),1,fp)!=1) printf(file write errorn); fclose(fp); int load() FILE*fp;int i=0;if(fp=fopen(huiyuangoumaixinxi.txt,rb)=NULL)printf(cannot open filen);exit(0);elsedofread(&goodsi,sizeof(struct MarketGoods),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1);打开文件void display()int i;int m=load();printf(会员编号 会员名t商品编号 商品名t商品价格t 商品数目t 日期t n );for(i=0;im;i+)printf(%s t%st%s %st%lft%dt%stt,goodsi.vip_id,goodsi.vip_name,goodsi.goods_id,goodsi.goods_name,goodsi.goods_price,goodsi.goods_amount,goodsi.date);int count=0; /全局变量,用于保存实际上有多少个商品添加商品信息void add() FILE *fp; int n; int count=0; int i; int m=load(); printf(n); fp=fopen(kaoshenxingxi.txt,a); printf(请输入想要 添加的购买信息数:n); scanf(%d,&n); for(i=m;i(m+n);i+) printf(n请输入新增购买信息:n); printf(请输入会员编号:n); scanf(%s,goodsi.vip_id); printf(会员名字:); scanf(%s,goodsi.vip_name); printf(商品编号:); scanf(%s,goodsi.goods_id); printf(商品名字:); scanf(%s,goodsi.goods_name); printf(商品价格:); scanf(%lf,&goodsi.goods_price); printf(商品总数目:); scanf(%d,&goodsi.goods_amount); printf(日期:); scanf(%s,goodsi.date); count=count+1; printf(已增加的人数:n); printf(%dn,count); printf(n添加完毕!n); m=m+count; printf(n浏览添加的商品信息:n); printf(n); save(m); display(); fclose(fp); void main() /主函数 while(1)start(); /数据录入void input() int m; char flag20; do /录入商品的信息 printf(请输入会员编号:n); scanf(%s,goodscount.vip_id); printf(会员名字:); scanf(%s,goodscount.vip_name); printf(商品编号:); scanf(%s,goodscount.goods_id); printf(商品名字:); scanf(%s,goodscount.goods_name); printf(商品价格:); scanf(%lf,&goodscount.goods_price); printf(商品总数目:); scanf(%d,&goodscount.goods_amount); printf(日期:); scanf(%s,goodscount.date); save(m); count+; /存数的商品数加一 printf(是否继续输入数据 y是 n否 : ); /是否还想继续输入数据 scanf(%s,flag); while(strcmp(flag,y)=0|strcmp(flag,Y)=0); output(); /调用显示商品数据/数据修改void change() char ch20,a20; int i; printf(nyou sure want change goodsInfor y/n): ); /根据商品的id来修改数据 scanf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch,Y)=0) printf(nenter you want change goods_id:); scanf(%s,a); for(i=0;icount;i+) if(strcmp(goodsi.goods_id,a)=0) printf(nyou sure want change goods name(y/n): ); scanf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch,Y)=0) printf(nname:); scanf(%s,goodsi.goods_name); printf(nyou sure want change goods price(y/n): ); scanf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch,Y)=0) printf(nprice); scanf(%lf,&goodsi.goods_price); printf(nyou sure want goods discount(y/n): ); scanf(%s,ch); output();/数据删除void dele() int i,j;char c20; printf(nenter you want delete name :n); /根据商品的名称来删除数据 scanf(%s,c); for(i=0;icount;i+) if(strcmp(c,goodsi.goods_name)=0) break; /找到,即跳出循环 for(j=i;jcount-1;j+) goodsj=goodsj+1; printf(tttyou had delete %sn,c); count-; output();/数据输出void output() int i;for(i=0;icount;i+)printf(%s t%st%s %st%lft%dt%stt,goodsi.vip_id,goodsi.vip_name,goodsi.goods_id,goodsi.goods_name,goodsi.goods_price,goodsi.goods_amount,goodsi.date);/数据查找void search() int i;char a20,ch10; printf(nenter you want look name:); /根据商品的名称来查找数据 scanf(%s,a); for(i=0;icount;i+) if(strcmp(goodsi.goods_name,a)=0) printf(%s %s %s %s %lf %d %s n,goodsi.vip_id,goodsi.vip_name,goodsi.goods_id,goodsi.goods_name,goodsi.goods_price,goodsi.goods_amount,goodsi.date);5.1.3 菜单void start() /启动菜单 int chi; printf( 超市商品管理系统n); printf( *n); printf( 1.商品信息的录入:n); printf( 2.商品信息的修改:n); printf( 3.删除某个商品信息:n); printf( 4.查找商品信息:n); printf( 6.增加商品信息:n); printf( 5.退出系统:n); printf( *n); printf( 输入你的选择: ); scanf(%d,&chi); /根据你的选择执行相应的函数if(chi=1) input(); else if(chi=2) change(); else if(chi=3) dele(); else if(chi=4) search();else if(chi=6) add(); else if(chi=5) printf(你已经退出超市商品管理系统!n); exit(0); else printf( You Enter The Choice Is Not valid ! n); 5.2遇到的问题及解决5.3重点难点技术分析 文件的打开:文件的保存需要用到fopen文件的保存:文件的保存需要用到fwrite,例:fwrite(pt,size,count,fp)该函数的意思是从fp指向的存储空间中提取count个字节数为size大小的数据块写入fp所指向的文件中。6 调试运行6.1测试和结果第一步:进入主菜单第二步:选择1,进行录入,并输出第三步:选择2,进行修改第第四步:选择3,进行删除第五步:选择4,进行查找第六步:选择6,进行增加第七步:选择5:退出6.2结果分析 7 系统使用说明从主菜单进行选择,分别为16,进行不同的功能,最后退出8 结论8.1课题完成情况说明 程序以能完成任务书中所要求达到的功能(会员编号,会员名,商品编号,商品名,购买数量,单价,日期),并添加了删除,增加,查找,修改的功能。8.2系统的亮点 系统可以进行多次录入,不断循环进行对数据的处理,还能进行保存8.3系统的不足 系统不能处理商品的分类等8.4系统可能的改进和扩展将系统有可能的处理商品分类 参考文献1 谭浩强.C程序设计(第二版)(M) .北京:清华大学出版社.2000.1.2 C语言大学实用教程(第2版)(M) . 北京:电子工业出版社.2008.7.致 谢第 13 页 共 15 页
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


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

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


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