课程设计商品销售管理系统文档格式.docx

上传人:b****5 文档编号:21418128 上传时间:2023-01-30 格式:DOCX 页数:25 大小:297.91KB
下载 相关 举报
课程设计商品销售管理系统文档格式.docx_第1页
第1页 / 共25页
课程设计商品销售管理系统文档格式.docx_第2页
第2页 / 共25页
课程设计商品销售管理系统文档格式.docx_第3页
第3页 / 共25页
课程设计商品销售管理系统文档格式.docx_第4页
第4页 / 共25页
课程设计商品销售管理系统文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

课程设计商品销售管理系统文档格式.docx

《课程设计商品销售管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计商品销售管理系统文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

课程设计商品销售管理系统文档格式.docx

设计内容及要求

在计算机中建立相应的结构体数组,利用程序实现商品销售信息的导入、查询、增、删、改、统计、浏览、保存等操作。

理解和运用结构化程序设计的思想和方法,提高利用C语言进行程序设计的能力,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的基本方法;

学会利用流程图表示算法。

根据题目要求,运用所学知识,完成课程设计所要求的任务。

程序书写风格:

锯齿型(缩进式)书写格式,各功能模块、函数、主要语句块,以及变量等必须有文字注释说明,并按照科技论文的书写规范,撰写课程设计报告。

设计参数

该程序主要分为以下8个模块组成:

(1).数据导入…………导入已存在的文本文件中记录数据;

(2).数据输入…………新建文件和追加记录

(3).浏览………………能按分类中的数据进行多种条件的浏览

(4).汇总………………按多种指定的条件汇总

(5).修改………………一个或多个字段

(6).删除………………一条或全部记录

(7).保存………………保存和另存为

(8).退出………………退出通讯录管理系统

商品销售信息包括:

商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、总金额、销售部门、销售日期。

注:

总金额=单价×

数量;

汇总模块要求能够分别按商品名称、生产厂商、销售部门、销售日期等字段对销售数量、总金额进行汇总。

进度

要求

第16周周一

布置任务,学生分组,领会设计内容

第16周周二

查阅相关资料,实现总体设计

第16周周三

详细设计,编写程序代码

第16周周四

程序调试

第16周周五

第17周周一

第17周周二

第17周周三

第17周周四

撰写课程设计报告

第17周周五

系统验收,学生答辩,收取报告

参考资料

[1]谭浩强.《C程序设计》(第三版).清华大学出版社.2010.5

[2]何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年

[3]崔武子.《C程序设计教程》.清华大学出版社,2009.8

其它

成绩评定:

平时表现成绩20%、程序质量40%、答辩20%、课程设计报告20%。

其中平时考勤缺勤次数达到1/4者,或者抄袭别人成果者直接判定为不及格。

说明

1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。

2.若填写内容较多可另纸附后。

3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。

教研室主任:

指导教师:

周力王成敏

摘要

本程序设计是针对商品销售管理系统,主要包括了九个模块,有载入记录、新建记录、浏览记录、排序记录、添加记录、修改记录、查询记录、删除记录、保存和退出。

主要运用了结构体和一维数组来实现。

每种商品的信息包括商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、销售部门、销售日期、销售总金额。

通过本次课程设计,综合运用所学过的C语言基础知识,掌握结构化程序设计的基本思路、方法和技能,提高自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题的能力,加深对所学知识的理解与掌握。

基本设计步骤包括:

1、根据课题题目描述,设计数据结构类型和存储方式;

2、分析系统功能,划分功能模块,确定各模块函数名称;

3、主程序算法设计和各模块算法设计,绘制程序流程图;

4、编程实现;

5、调试和测试;

6、完成课程设计报告。

关键字:

结构体、数组、商品销售管理系统

第1章软件需求分析

本商品销售管理系统主要实现九个功能,分别为载入记录、新建记录、浏览记录、排序记录、添加记录、修改记录、查询记录、删除记录、保存和退出。

每种商品的基本信息包括商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、销售部门、销售日期、销售总金额。

导入的数据必须运用文本形式先列下来并保存,数据使用结构体数据处理、利用数据文件保存数据。

同时可以对其进行新建、浏览、排序、添加、修改、查询、删除、保存等基本操作。

新建信息时按商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、销售部门、销售日期等顺序新建。

浏览数据时,数据中应包含每种商品的基本信息。

排序信息时可以按照商品单价、销售数量和销售总金额等三种方法。

添加新信息时按商品编号、商品类别、商品名称、商品型号、生产厂商、商品单价、销售数量、销售部门、销售日期等顺序进行添加。

在修改模块中,数据应该逐个修改并且数据间互不影响。

查询信息时可以按照商品编号、商品类别、商品名称和生产厂商等四种方法进行。

在删除模块中,数据可以进行两种删除,即可以逐个删除又可以全部删除,且互不影响。

保存时应注明保存路径。

第2章系统分析与设计

2.1软件界面设计

商品销售管理系统的总体流程图如图2.1所示。

图2.1总体流程图

2.2软件的数据结构设计

2.2.1结构体

定义一个商品信息的结构体structgoods

structgoods

{

charno[10];

//商品编号

intmodel;

//商品型号

intamount;

//销售数量

charsort[10];

//商品类别

charname[10];

//商品名称

charaddress[10];

//生产厂商

chardepartment[10];

//销售部门

doubleprice;

//商品单价

doublesum;

//总金额

structdateD;

//销售日期

};

定义了一个日期的结构体structdate

structdate

intyear;

intmonth;

intday;

其次,在主函数中应用switch语句实现多分枝选择机构,在后面的程序中,运用了多个循环语句。

2.2.2一维数组

要定义数组时必须在程序中先定义数组,即由哪些数据组成数组,数组中有多少元素,属于哪个数据类型。

一般形式为:

类型符数组名【常量表达式】

2.3软件的算法设计

2.3.1主函数:

main()

显示系统工作菜单,罗列该系统所有功能。

先声明所有将会调用到的函数名。

再运用选择函数switch即可根据使用者所输入的功能代号进入对应的功能程序。

2.3.2数据导入:

Load()

首先判断fopen"

只读"

打开“wor.txt”是否成功,若其返回值不为零,继续下面操作。

用for循环通过fscanf语句将文件中的商品信息取出放到结构数组里面,最后关闭文件。

可以用伪代码来实现。

voidLoad()//读入文件中的数据

FILE*fp;

inti;

charfilepath[20];

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%s\t%s\t%s\t%d\t%s\t%lf\t%d\t%s\t%d,%d,%d\t\t\n"

&

god[i].no,&

god[i].sort,&

god[i].name,&

god[i].model,&

god[i].address

god[i].price,&

god[i].amount,&

god[i].department,&

god[i].D.year,&

god[i].D.month,&

god[i].D.day);

god[i].sum=god[i].price*god[i].amount;

now_no++;

fclose(fp);

保存的在文件%s中的所有信息已经读入!

system("

cls"

return;

}

2.3.3新建记录

输入一些数据,其中包括了每种商品的各项基本信息。

此部分可用伪代码来实现。

voidInput()//原始数据录入模块

inti=0;

charch;

do

\t\t\t\t1.录入商品信息\n输入第%d个商品的信息\n"

i+1);

\n输入商品编号:

fflush(stdin);

gets(god[i].no);

\n输入商品类别:

gets(god[i].sort);

\n输入商品名称:

gets(god[i].name);

\n输入商品型号:

scanf("

%d"

&

god[i].model);

\n输入生产厂商:

gets(god[i].address);

\n输入商品单价:

%lf"

god[i].price);

\n输入销售数量:

god[i].amount);

\n输入销售部门:

gets(god[i].department);

\n输入销售日期:

%d,%d,%d"

\n\n"

i++;

now_no=i;

while

(1)

{

printf("

是否继续输入记录?

(Y/N)"

fflush(stdin);

ch=toupper(getchar());

if(ch=='

N'

||ch=='

Y'

break;

}

}while(ch!

='

n'

ch!

2.3.4浏览记录

不管是导入的数据或者是原始的输入数据,我们都要通过浏览来检验程序是否正确。

通过调用load函数后,用for循环输出每个职工的各种信息。

这一部分用伪代码实现。

voidBrowse()//显示数据模块

charas;

Sumrage();

\t\t\t商品销售信息列表\t\t\t\n"

\t编号\t类别\t名称\t型号\t厂商\t单价\t销量\t销部\t日期\t\t总金额\n"

for(i=0;

i<

now_no&

god[i].name[0];

\t%s\t%s\t%s\t%d\t%s\t%.2f\t%d\t%s\t%d,%d,%d\t%.2f\n"

god[i].no,god[i].sort,god[i].name,god[i].model,god[i].address,god[i].price,god[i].amount,god[i].department,god[i].D.year,god[i].D.month,god[i].D.day,god[i].sum);

\n\t按任意键返回主菜单."

as=getch();

}while(!

as);

2.3.5排序记录

对导入的商品信息和输入的商品信息进行排序时,就要用到排序这一模块,在此用流程图来表示,如图

图2.3.5排序流程图

2.3.6添加记录

在已有商品的基础上进行添加,这一部分用伪代码实现。

voidAdd()//添加数据模块

printf("

\n\t\t当前已有%d个商品的信息\n"

now_no);

\n\t\t请输入新商品的信息\n"

gets(god[now_no].no);

gets(god[now_no].sort);

gets(god[now_no].name);

scanf("

god[now_no].model);

gets(god[now_no].address);

god[now_no].price);

god[now_no].amount);

gets(god[now_no].department);

god[now_no].D.year,&

god[now_no].D.month,&

god[now_no].D.day);

now_no=now_no+1;

Sort();

是否继续添加记录?

}while(ch!

2.3.7查询记录

图2.3.7查询记录

2.3.8删除记录

对商品的信息进行删除,此处用流程图表示。

如图

图2.3.8删除记录

2.3.9修改记录

在这一板块中主要实现的是商品基本信息的修改,用伪代码实现。

voidModify()//修改数据模块

charstr[20];

输入要修改的商品名称:

gets(str);

now_no;

if(!

strcmp(god[i].name,str))

system("

\n\t\t输入新插入商品的信息\n"

gets(god[i].no);

gets(god[i].sort);

gets(god[i].name);

scanf("

gets(god[i].address);

\n输入商品销售数量:

\n输入商品销售部门:

gets(god[i].department);

\n输入商品销售日期:

break;

return;

2.3.10保存记录

voidSave()//保存数据模块

输入要保存的文件路径:

w"

\n保存失败!

fprintf(fp,"

\t%s\t%s\t%s\t%d\t%s\t%.2f\t%d\t%s\t%d,%d,%d\n"

god[i].no,god[i].sort,god[i].name,god[i].model,god[i].address

god[i].price,god[i].amount,god[i].department,god[i].D.year,god[i].D.month,god[i].D.day);

商品信息已保存在%s中!

第3章软件测试

3.1初始界面测试

1.运行程序,显示商品信息管理系统主菜单

在这一部分遇到的问题是,当定义主函数里数据为整型时,选择功能时,选择1-9进入各个模块,但是选择字符时也可进入。

修正方法是把整型改为字符型,如图3.1所示。

图3.1主菜单

2.用fscanf语句时,漏写地址符。

调试和链接都没问题,但点击运行后,总出现一个提示出错的蓝色小窗口。

经老师提时候发现了错误所在。

解决:

在wor[i].name等之前加上地址符。

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查询功能测试

按照已经录入的商品信息,可按以下四种方法进行查询,如图3.9所示

图3.9查询模块

3.10保存功能测试

商品信息录入后,输入要保存的文件路径,如图3.10所示

图3.10保存模块

小结

经过一学期的C语言学习,我们掌握了C语言的基础知识,大致能够读懂别人用C语言设计的程序。

平时的程序设计大多是以填空的形式出现,虽然有所接触,但都不完全。

而这两周的课程设计,却让我们完完全全用自己学到的知识编写一个完整的体统程序。

这是一个新的挑战,也是一种新的学习。

我设计的是备选题目中的第五个—商品销售管理系统。

这需要我们自己设计一个系统,用来实现数据的导入、新建、浏览、添加、排序、查询、修改、删除、保存和退出九种功能。

初看到这个题目觉得很简单,但当我做到电脑前准备开始编写代码的时候才发现无从下手。

通过去图书馆查找程序设计相关的书籍,和上网参考前人编写的类似程序,我脑中才有了一个大概方向。

在本程序中主要是运用结构体以

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1