课程设计--商品销售管理系统.doc_第1页
课程设计--商品销售管理系统.doc_第2页
课程设计--商品销售管理系统.doc_第3页
课程设计--商品销售管理系统.doc_第4页
课程设计--商品销售管理系统.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆科技学院C语言程序设计课程设计报告 院(系):_电气与信息工程学院_班 级: 电自专2010-02班 学生姓名: 王玮鸿 学 号: 2010630144 设计地点:_ _计算机基础自主学习中心 _ 设计题目:_ 商品销售管理系统_ 完成日期: 2011年 12 月 23日 指导教师评语: _ _成绩(五级记分制):_ _ 教师签名:_课程设计任务书设计题目五:商品销售管理系统学生姓名王玮鸿学号2010630144课程名称C语言程序设计课程设计专业班级电自专2010级地 点计算机自主学习中心起止时间2011年12月12日12月23日设计内容及要求在计算机中建立相应的结构体数组,利用程序实现商品销售信息的导入、查询、增、删、改、统计、浏览、保存等操作。理解和运用结构化程序设计的思想和方法,提高利用C语言进行程序设计的能力,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的基本方法;学会利用流程图表示算法。根据题目要求,运用所学知识,完成课程设计所要求的任务。程序书写风格:锯齿型(缩进式)书写格式,各功能模块、函数、主要语句块,以及变量等必须有文字注释说明,并按照科技论文的书写规范,撰写课程设计报告。设计参数该程序主要分为以下8个模块组成:(1). 数据导入导入已存在的文本文件中记录数据;(2). 数据输入新建文件和追加记录(3). 浏览能按分类中的数据进行多种条件的浏览(4). 汇总按多种指定的条件汇总(5). 修改一个或多个字段(6). 删除一条或全部记录(7). 保存保存和另存为(8). 退出退出通讯录管理系统商品销售信息包括:商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、总金额、销售部门、销售日期。注:总金额单价数量;汇总模块要求能够分别按商品名称、生产厂商、销售部门、销售日期等字段对销售数量、总金额进行汇总。进度要求第16周周一布置任务,学生分组,领会设计内容第16周周二查阅相关资料,实现总体设计第16周周三详细设计,编写程序代码第16周周四 程序调试第16周周五程序调试第17周周一程序调试第17周周二程序调试第17周周三程序调试第17周周四 撰写课程设计报告第17周周五系统验收,学生答辩,收取报告参考资料1 谭浩强.C程序设计(第三版).清华大学出版社.2010.52 何钦铭 颜晖.语言程序设计.高等教育出版社.2008年3 崔武子.C程序设计教程.清华大学出版社,2009.8其它成绩评定:平时表现成绩20、程序质量40、答辩20、课程设计报告20。其中平时考勤缺勤次数达到1/4者,或者抄袭别人成果者直接判定为不及格。说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:周力 王成敏 摘要本程序设计是针对商品销售管理系统,主要包括了九个模块,有载入记录、新建记录、浏览记录、排序记录、添加记录、修改记录、查询记录、删除记录、保存和退出。主要运用了结构体和一维数组来实现。每种商品的信息包括商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、销售部门、销售日期、销售总金额。通过本次课程设计,综合运用所学过的C语言基础知识,掌握结构化程序设计的基本思路、方法和技能,提高自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题的能力,加深对所学知识的理解与掌握。基本设计步骤包括:1、 根据课题题目描述,设计数据结构类型和存储方式; 2、 分析系统功能,划分功能模块,确定各模块函数名称;3、 主程序算法设计和各模块算法设计,绘制程序流程图;4、 编程实现;5、 调试和测试;6、 完成课程设计报告。 关键字:结构体、数组、商品销售管理系统目录第 1 章 软件需求分析5第 2 章 系统分析与设计62.1 软件界面设计62.2 软件的数据结构设计72.2.1 结构体72.2.2一维数组82.3软件的算法设计82.3.1主函数:main()82.3.2数据导入:Load()82.3.3新建记录92.3.4浏览记录112.3.5排序记录122.3.6添加记录132.3.7查询记录152.3.8 删除记录172.3.9 修改记录172.3.10 保存记录19第3章 软件测试213.1 初始界面测试213.2 载入功能测试213.3 新建功能测试223.4 浏览功能测试223.5 排序功能测试233.6 添加功能测试243.7 删除功能测试253.8 修改功能测试263.9 查询功能测试263.10 保存功能测试27致谢284第 1 章 软件需求分析 本商品销售管理系统主要实现九个功能,分别为载入记录、新建记录、浏览记录、排序记录、添加记录、修改记录、查询记录、删除记录、保存和退出。每种商品的基本信息包括商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、销售部门、销售日期、销售总金额。导入的数据必须运用文本形式先列下来并保存,数据使用结构体数据处理、利用数据文件保存数据。同时可以对其进行新建、浏览、排序、添加、修改、查询、删除、保存等基本操作。新建信息时按商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、销售部门、销售日期等顺序新建。浏览数据时,数据中应包含每种商品的基本信息。排序信息时可以按照商品单价、销售数量和销售总金额等三种方法。添加新信息时按商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、销售部门、销售日期等顺序进行添加。在修改模块中,数据应该逐个修改并且数据间互不影响。查询信息时可以按照商品编号、商品类别、商品名称和生产厂商等四种方法进行。在删除模块中,数据可以进行两种删除,即可以逐个删除又可以全部删除,且互不影响。保存时应注明保存路径。第 2 章 系统分析与设计2.1 软件界面设计商品销售管理系统的总体流程图如图2.1所示。开 始菜 单根据菜单选择功能新建记录浏览记录排序记录添加记录查询记录删除记录修改记录逐个删除全部删除是否继续结 束保存记录载入记录否是图2.1总体流程图2.2 软件的数据结构设计2.2.1 结构体定义一个商品信息的结构体struct goodsstruct goodschar no10; /商品编号 int model; /商品型号 int amount; /销售数量char sort10; /商品类别char name10; /商品名称 char address10; /生产厂商 char department10; /销售部门 double price; /商品单价double sum; /总金额structdate D;/销售日期;定义了一个日期的结构体struct date struct dateint year; int month;int day;其次,在主函数中应用switch语句实现多分枝选择机构,在后面的程序中,运用了多个循环语句。2.2.2一维数组要定义数组时必须在程序中先定义数组,即由哪些数据组成数组,数组中有多少元素,属于哪个数据类型。一般形式为:类型符 数组名【常量表达式】2.3软件的算法设计2.3.1主函数:main()显示系统工作菜单,罗列该系统所有功能。先声明所有将会调用到的函数名。再运用选择函数switch即可根据使用者所输入的功能代号进入对应的功能程序。2.3.2数据导入:Load()首先判断fopen只读打开“wor.txt”是否成功,若其返回值不为零,继续下面操作。用for循环通过fscanf语句将文件中的商品信息取出放到结构数组里面,最后关闭文件。可以用伪代码来实现。void Load() /读入文件中的数据FILE *fp;int i;char filepath20;printf(输入要读入的文件路径:);fflush(stdin);gets(filepath);if(fp=fopen(filepath,r)=NULL)printf(找不到%s文件!n,filepath);system(pause);exit(0); now_no=0;for(i=0;i MAX & !feof(fp);i+)fscanf(fp,t%st%st%st%dt%st%lft%dt%st%d,%d,%dttn,&godi.no,&godi.sort,&,&godi.model,&godi.address,&godi.price,&godi.amount,&godi.department,&godi.D.year,&godi.D.month,&godi.D.day);godi.sum=godi.price*godi.amount;now_no+;fclose(fp);printf(保存的在文件%s中的所有信息已经读入!n,filepath);system(pause);system(cls);return;2.3.3新建记录输入一些数据,其中包括了每种商品的各项基本信息。此部分可用伪代码来实现。void Input()/原始数据录入模块int i=0;char ch;doprintf(tttt1.录入商品信息n输入第%d个商品的信息n,i+1);printf(n输入商品编号:);fflush(stdin); gets(godi.no);printf(n输入商品类别:);fflush(stdin);gets(godi.sort);printf(n输入商品名称:);fflush(stdin);gets();printf(n输入商品型号:);fflush(stdin);scanf(%d,&godi.model);printf(n输入生产厂商:);fflush(stdin);gets(godi.address);printf(n输入商品单价:);fflush(stdin);scanf(%lf,&godi.price); printf(n输入销售数量:);fflush(stdin);scanf(%d,&godi.amount); printf(n输入销售部门:);fflush(stdin);gets(godi.department); printf(n输入销售日期:);fflush(stdin);scanf(%d,%d,%d,&godi.D.year,&godi.D.month,&godi.D.day);printf(nn);i+;now_no=i;while(1)printf(是否继续输入记录?(Y/N);fflush(stdin);ch=toupper(getchar();if(ch=N| ch=Y)break;system(cls); while(ch!=n&ch!=N);system(cls);return;2.3.4浏览记录不管是导入的数据或者是原始的输入数据,我们都要通过浏览来检验程序是否正确。通过调用load函数后,用for循环输出每个职工的各种信息。这一部分用伪代码实现。void Browse()/显示数据模块int i;char as;Sumrage();doprintf(ttt商品销售信息列表tttn);printf(t编号t类别t名称t型号t厂商t单价t销量t销部t日期tt总金额n);for(i=0;inow_no & 0;i+)printf(t%st%st%st%dt%st%.2ft%dt%st%d,%d,%dt%.2fn,godi.no,godi.sort,,godi.model,godi.address,godi.price,godi.amount,godi.department,godi.D.year,godi.D.month,godi.D.day,godi.sum);printf(nt按任意键返回主菜单.);fflush(stdin);as=getch(); while(!as);system(cls);return;2.3.5排序记录对导入的商品信息和输入的商品信息进行排序时,就要用到排序这一模块,在此用流程图来表示,如图排 序 模 块按总金额按销售数量按销售单价是否继续是否返 回 主 菜 单图2.3.5 排序流程图2.3.6添加记录 在已有商品的基础上进行添加,这一部分用伪代码实现。void Add() /添加数据模块char ch;doprintf(ntt当前已有%d个商品的信息n,now_no);printf(ntt请输入新商品的信息n);printf(n输入商品编号:);fflush(stdin);gets(godnow_no.no); printf(n输入商品类别:);fflush(stdin);gets(godnow_no.sort);printf(n输入商品名称:);fflush(stdin);gets(godnow_);printf(n输入商品型号:);fflush(stdin); scanf(%d,&godnow_no.model); printf(n输入生产厂商:);fflush(stdin);gets(godnow_no.address); printf(n输入商品单价:);fflush(stdin);scanf(%lf,&godnow_no.price);printf(n输入销售数量:);fflush(stdin);scanf(%d,&godnow_no.amount);printf(n输入销售部门:);fflush(stdin);gets(godnow_no.department);printf(n输入销售日期:);fflush(stdin);scanf(%d,%d,%d,&godnow_no.D.year,&godnow_no.D.month,&godnow_no.D.day);printf(nn);now_no=now_no+1;Sort();while(1)printf(是否继续添加记录?(Y/N);fflush(stdin);ch=toupper(getchar();if(ch=N| ch=Y)break;system(cls);while(ch!=n&ch!=N);return;2.3.7查询记录开始按名称查询按生产厂商查询按编号查询输入要查询的名称输入要查询的生产厂商输入要查询的编号显示所查询的商品信息是否继续?退出系统是否按类别查询输入要查询的类别类别图2.3.7 查询记录2.3.8 删除记录对商品的信息进行删除,此处用流程图表示。如图删除模块逐条删除全部删除是否继续是返回主菜单否图2.3.8 删除记录2.3.9 修改记录 在这一板块中主要实现的是商品基本信息的修改,用伪代码实现。void Modify() /修改数据模块int i;char str20;printf(输入要修改的商品名称:);fflush(stdin);gets(str);for(i=0;inow_no;i+)if(!strcmp(,str)system(cls);printf(ntt输入新插入商品的信息n);printf(n输入商品编号:);fflush(stdin);gets(godi.no);printf(n输入商品类别:);fflush(stdin);gets(godi.sort);printf(n输入商品名称:);fflush(stdin);gets();printf(n输入商品型号:);fflush(stdin);scanf(%d,&godi.model);printf(n输入生产厂商:);fflush(stdin);gets(godi.address);printf(n输入商品单价:);fflush(stdin);scanf(%lf,&godi.price);printf(n输入商品销售数量:);fflush(stdin);scanf(%d,&godi.amount);printf(n输入商品销售部门:);fflush(stdin);gets(godi.department);printf(n输入商品销售日期:);fflush(stdin);scanf(%d,%d,%d,&godi.D.year,&godi.D.month,&godi.D.day);printf(nn);break;system(cls);return;2.3.10 保存记录void Save() /保存数据模块FILE *fp;int i;char filepath20;printf(输入要保存的文件路径:);fflush(stdin);gets(filepath);if(fp=fopen(filepath,w)=NULL)printf(n保存失败!);exit(0);for(i=0;inow_no;i+)fprintf(fp,t%st%st%st%dt%st%.2ft%dt%st%d,%d,%dn,godi.no,godi.sort,,godi.model,godi.address,godi.price,godi.amount,godi.department,godi.D.year,godi.D.month,godi.D.day);fclose(fp);printf(商品信息已保存在%s中!n,filepath);system(pause);system(cls);return;第3章 软件测试3.1 初始界面测试1运行程序,显示商品信息管理系统主菜单 在这一部分遇到的问题是,当定义主函数里数据为整型时,选择功能时,选择1-9进入各个模块,但是选择字符时也可进入。修正方法是把整型改为字符型,如图3.1所示。 图3.1 主菜单2用fscanf语句时,漏写地址符。调试和链接都没问题,但点击运行后,总出现一个提示出错的蓝色小窗口。经老师提时候发现了错误所在。解决:在等之前加上地址符。3.浏览函数display()遇到的问题虽然不大,但解决起来很麻烦。理想的运行结果是美观整齐。即下面的职工信息分别与第一个printf输出的中文项目提示对齐。解决方法:不断修改空格个数,不断运行察看效果。3.2 载入功能测试载入新数据时,输入保存在文件中的路径,如图3.2所示图3.1 载入模块3.3 新建功能测试 新建时输入商品的基本信息如图3.3所示如图3.3 新建模块3.4 浏览功能测试商品信息录入后如图3.4所示 图3.4 浏览模块3.5 排序功能测试商品信息录入后,可按如下功能排序,如图3.5所示图3.5 排序模块3.6 添加功能测试在原有商品的基础上,可以继续添加商品信息,如图3.6所示 图3.6 添加模块3.7 删除功能测试删除时可按逐条删除和全部删除两种方法,如图3.7.1所示图3.7.1 删除模块商品信息删除后可按3种功能进行排序,如图3.7.2所示 图3.7.2删除模块3.8 修改功能测试在已录入的商品信息的的基础上,可对其进行修改,如图3.8所示 图3.8 修改模块3.9

温馨提示

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

评论

0/150

提交评论