ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:178.31KB ,
资源ID:4413173      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4413173.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言商品管理系统1.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言商品管理系统1.docx

1、C语言商品管理系统11 问题定义 .12 系统设计 221 总体设计322 详细设计52.2.1 数据结构设计 62.2.2 主控流程 72.2.3 函数功能描述 .73 系统实现 83.1 编码 93.1.1 程序预处理 .103.1.2 主函数main() .123.1.3 主菜单界面 . 133.1.4输入商品信 .153.1.5查找商品信息.163.1.6录入商品信息 .173.1.7显示商品信息.183.1.8添加商品信息.183.2 测试与调试 203.2.1 概述 .203.2.2 程序测试 .214 系统维护 215 归纳总结 215.1 开发经验 225.2 实训中遇到的问题

2、及解决方法 225.3 设计中的不足之处235.4 感想和心得体会 236 参考资料 23前 言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高

3、编程技术,以及开发应用程序等。我们通过C语言程序设计这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。但是,对于程序设计而言,学习C 的步伐不应该停留于此。我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。本实训就

4、是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。编者桂林电子科技大学信息科技学院商品管理系统 本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用

5、文件保存实现对商品管理管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。1、问题定义制作一个商品管理系统,功能包括商品录入、商品排序、商品查找、商品存储与读入、按条件输出商品单价等。图1.1 商品管理系统功能需求在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。2、系统设计21 总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面

6、各层是其上一层模块的逐步细化描述。 图2.1本商品管理系统采用文件保存实现,如图2.1所示,它由如下五大功能模块组成:输入商品信息模块。完成将信息输入文件的工作。信息以二进制形式存储的数据文件中读入。商品信息由商品序号,商品生产商,商品单价构成。显示商品模块。完成商品信息的输入后,可以选择打开商品信息存入的文件,并按照商品号或者商品单价的排序形式输出商品信息。查找商品信息模块。查找要找的商品信息,打开商品存入的文件并输入商品号显示要查找的商品信息。添加商品模块。将新添的商品信息存储入指定的文件。退出系统模块。输入0按回车键退出商品管理系统。22 详细设计2.2.1数据结构设计商品信息结构体ty

7、pedef struct char name30; /*商品名称*/ int num; /*商品号*/ char shang10; /*商品生产厂家*/ float price; /*商品单价*/record;结构体struct student将用于存储商品信息,它将存储到指定的文件。2.2.2 主控main()函数执行流程 本成绩管理系统执行主流程如图2.2所示。它先创建文件,将商品信息输入文件,并按提示输入数字(0-4)打开文件,通过文件读写来实行商品的显示和添加等。在选择功能时,有效的输入为本0至4之间的任意数值,其他输入都被视为错误按键。若输入为0(即变量fn=0),它会显示退出系统,

8、并按任意键退出。若选择1,则调用void DataInput(record *com, int *nptr)函数,执行输入商品信息操作;若选择2,则调用void DataDisPlay( ) 函数,执行商品显示操作;若选择3,则调用void DataFind( ) ; 函数,执行商品查找操作;若选择4,则调用void DataAdd( )函数,执行商品信息添加操作;若选择5,则调用void DataStatistic( )函数,执行退出系统操作。2.2.3函数功能描述DataInput(record *st, int *q)函数原型:void DataInput(record *st, int

9、 *q)DataInput(record *st, int *q)函数用于输入商品信息,写入文件中。DataStorage(record *st, int n)函数原型:void DataStorage(record *st, int n)DataStorage(record *st, int n)函数用于将商品信息存储入文件中。DataFind( )函数原型:void DataFind( )DataFind( )函数用于商品信息的查找。DataDisPlay( )函数原型:void DataDisPlay( )DataDisPlay( )函数用于显示商品信息,按指定的顺序显示出来。void

10、DataAdd( )函数原型:void void DataAdd( )void DataAdd( )函数用于添加商品信息,写入并存储到指定的文件当中。主函数main()整个成绩管理系统控制部分,其详细说明可参考图二。完成在上述系统设计后,即可着手进行系统实现的工作,开始程序代码的编写。3、系统实现31 编码3.1.1 程序预处理包括加载头文件,定义结构体、常量和变量,并对它们进行初始化工作。#include #include #include #define S 50typedef struct char name30; int num; char shangjia10; float pric

11、e;record;void DataInput(record *st, int *q);int DataRead(record *st,int *q) ;void DataStorage(record *st, int n); /*信息保存到文件*/void DataFind( ); void DataDisPlay( ); void DataAdd( ); 3.1.2主函数main()main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。详细分析可参考图2。int main( ) record shangpinS; int number=20; /*设商品数*/ char

12、a; printf(t欢迎进入我的商品管理系统t);3.1.3主菜单界面用户进入商品管理系统时,需要显示主菜单,提示用户进行选择,完成相应任务。此代码被main()函数调用。 while(1) printf(ntt1.录入商品n); /*显示主菜单*/ printf(tt2.显示商品n); printf(tt3.查找商品n); printf(tt4.添加商品n); printf(tt0.退出); printf(ntn); printf(t请输入你的一个选项(数字0-4): ); fflush(stdin); scanf(%c,&a); puts(n); switch(a) /*切换到不同功能*

13、/ case 1: DataInput(shangpin, &number ); break; /*录入信息*/ case 2: DataDisPlay(shangpin,number); break; /*信息显示*/ case 3: DataFind(shangpin,number ); break; /*信息查找*/ case 4: DataAdd( ); break; /*增加*/ case 0: return 0; default:puts(tt没有这个项!返回主菜单!); break; printf(ntt完毕!按任意键继续); getch( ); puts(n); 3.1.4输入

14、商品信息用户进入商品管理系统时,通过输入商品数量,商品名称,商品号,商品生产厂家,商品单价来录入到文件中。void DataInput(record *st, int *q) /*商品信息录入*/ int i = 0; int n ; /*录入的总数*/ char YesOrNo; /*判断是否保存*/ char shangjiaming30; /*商名*/ int haoma; /*商品号*/ char shangjia10; /*单价*/ float danjia; printf(tt请输入商品个数:); scanf(%d,&n); *q = n; /*q返回商品个数*/ printf(t

15、t现在开始录入这%d个商品信息:nn,n); while(i=0&danjia=12345) /*有效的单价才录入*/ strcpy(sti.name,shangjiaming); sti.num = haoma; strcpy(sti.shangjia,shangjia); sti.price = danjia; i =i+1; else printf(输入的单价是一个无效的值nn); /*结束while*/ printf(要保存您刚才录入的数据吗(Y/N)?); /*选择保存*/ fflush(stdin); scanf(%c,&YesOrNo); if(YesOrNo=y|YesOrNo

16、=Y) DataStorage(st,n); else if(YesOrNo=n|YesOrNo=N) return; else printf(输入了不正确的选项n); return; /*结束函数*/3.1.5查找商品信息 以读出的形式打开文件,通过条件来查找文件中的商品信息,并且以按商品号或者按商品单价的形式由低到高排列出来。void DataFind( ) /*查找*/ void OnNumber(record *st,int n ); /*按商品号排序*/ int key; /*key为要查找的关键值*/ int low = 0; /*下限*/ int high ; /*上限*/ in

17、t mid ; /*中间值*/ char ans; /*选项*/ record stS; int n; if(DataRead(st,&n)=1) /*从文件中读取信息*/ OnNumber(st,n); /*先按商品号排序*/ high = n; do printf(nntt请输入你要查找的商品号:); scanf(%d,&key); low = 0;high = n; while (low stmid.num ) low = mid + 1; else high = mid - 1; if (low high) printf(tt,没有找到这个价格!n); printf(ntt还要继续查询

18、吗(Y/N)?); ans = getch( ); while (ans =Y|ans = y); /*结束do.while*/ 3.1.6录入商品信息 新建一个文件,将输入的商品信息录入文件并保存,成功后,可执行将商品信息添加到该文件中,或者从文件中读取商品信息等功能。void DataStorage(record *st, int n) /*录入保存文件*/ int i; FILE *fp; char FileName20; printf(请输入您要保存的文件名:); scanf(%s,FileName); printf(正在将商品信息保存到文件,请稍候n); if(fp=fopen(Fi

19、leName,w)=NULL) printf(没有该文件n); else for(i=0 ; in ; i+) fprintf(fp,n%17s%12d%12s%8.1f,sti.name,sti.num,sti.shangjia,sti.price); fclose(fp); int DataRead(record *st,int *q) /*读取文件*/ int i=0; char datafile20; FILE *fp; *q = 0; printf(请输入文件名:); scanf(%s,datafile); if(fp = fopen(datafile,r) = NULL) /*打开

20、文件*/ printf(没有该文件,请重新输入!n); return 0; else printf(正在读取商品单价,请稍候n); while (!feof(fp) fscanf(fp,%s%d%s%f,&sti.name,&sti.num,&sti.shangjia,&sti.price); i+; *q = i; printf(n); fclose(fp); return 1; 3.1.7显示商品信息 文件创建成功并且存入了商品信息后,可以通过指定的操作打开文件并将文件的商品信息显示出来。void DataDisPlay() void OnPrice(record *st,int n );

21、 /*按单价*/ void OnNumber(record *st,int n ); /*按商品号*/ int N; int i; record st300; char YesNo; /*是否按顺序显示*/ char tp; if(DataRead(st,&N)=1) /*从文件读取数据*/ printf(序号tt商品名t 商品号t生产商t单价n); for(i=0;iN;i+) printf(%3d%17s%12d%12s%8.1fn,i+1,sti.name,sti.num,sti.shangjia,sti.price); printf(要按顺序显示吗?(Y/N)?); fflush(st

22、din); scanf(%c,&YesNo); if(YesNo=y|YesNo=Y) printf(t请输入排序方式:n); printf(t(1.按价格排序从低到高;2.按商品号排序从低到高.); fflush(stdin); scanf(%c,&tp); if(tp=1) OnPrice(st,N); else if(tp =2) OnNumber(st,N); else printf(t输入了不正确项!n); /*结束显示成绩*/ 按单价排序商品信息查找商品信息时,按照商品单价的高低查看要查找的商品信息。void OnPrice(record *st,int n ) /*按单价顺序*/

23、 int i,j; record temp; printf(tt按单价排序-nn); printf(商品总数为%d:n,n); for(j=0 ; jn-1 ; j+) for(i=0 ; isti+1.price) temp=sti; sti=sti+1; sti+1=temp; printf(ntt按成绩排序的结果如下(按分数从低到高):nn); printf(序号tt商品名t 商品号t生产商t单价n); for(i=0 ; in ; i+) printf(%3d%17s%12d%12s%8.1fn,i+1,sti.name,sti.num,sti.shangjia, sti.price)

24、; 按商品序号查找商品信息查找商品信息时,按照商品序号来查看要查找的商品信息。void OnNumber(record *st,int n ) /*按序号顺序*/ int i,j; record temp; printf(tt按商品号排序-nn); printf(商品总数为%d:n,n); for(j=0 ; jn-1 ; j+) for(i=0 ; isti+1.num) temp=sti; sti=sti+1; sti+1=temp; printf(nt(按商品号从小到大):nn); printf(序号tt商品名t 商品号t生产商t单价n); for(i=0 ; in ; i+) printf(%3d%17s%12d%12s%8.1fn,i+1,sti.name,sti.num,sti.shangjia, sti.price); 3.1.8添加商品信息 打开建立的文件,将要添加的商品信息写入文件当中并且保存。void DataAdd( ) /*增加*/ int i=0,n,m; /*商品名

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2