c语言销售管理系统

  • 格式:docx
  • 大小:35.04 KB
  • 文档页数:24

下载文档原格式

  / 24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书

学院、系:

专业:

学生姓名:设计题

目:

销售管理系统起迄日期:

指导教师:

日期:2017年5月12日

1 设计目的

1. 了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。

2. 握高级程序设计语言的知识。

3. 践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。

4. 程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,能对C语言

的文件操作有一个更深刻的了解。

5. 提高与程序设计和软件开发有关的各种综合能力。

6. 通过本课程设计,培养上机动手能力,巩固《C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关;

7. 为后续各门计算机课程的学习打下坚实基础;

8. 学会用c 语言程序设计来设计销售管理系统设计。

2 任务概述

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴 1 张便条。

试设计一个便条管理系统,使之能提供以下功能:

1 、系统以菜单方式工作

2、便条信息录入功能(便条信息用文件保存)--输入

3、收集到了上个月的所有便条后,读取销售情况

1)计算每个人每种产品的销售额。

2)按销售额对销售员进行排序,输出排序结果(销售员代号)

3 )统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果

4 )输出统计报表

3 模块划分

主菜单及头文件设计

编辑系统菜单运行

输入信息

保存信息,参数为结构体数组和记录数

读入取函数,参数为结构体数组

清单输出

主要功能的实现

4 主要函数说明及其N-S 图

主菜单及头文件设计:

我们按照老师所给的示例我们首先编译了一个头文件,在头文件里,编译了主函数需要用到的一些函数,如#include "stdio.h" 等,因为需要录入便条的所有信息,所有用一个数据结构来实现信息的储存方式,用数组方式,把每条信息都编译成一个数组,如销售员代号用name[4] 记录。头文件还包括了定义常数记录数typedef struct ,主函数原型

int menu_select();/* 声明函数*/

int enter(RECODE t[]);/* 声明函数*/

void salor(RECODE t[],int n);/* 声明函数*/

int sum(RECODE t[],int n,int m);/* 声明函数*/

void list1(RECODE t[],int n);/* 声明函数*/

void list2(RECODE t[],int n);/* 声明函数*/

void list3(RECODE t[],int n);/* 声明函数*/

void save(RECODE t[],int n);/* 声明函数*/

int load(RECODE t[]);/* 声明函数*/

这些的都是主函数需要用到的数据,因此放入头文件当中,在主程序开始之前直接引

用#include "pro.h" 。

2. 编辑系统菜单运行:

题目要求我们系统以菜单方式工作,所以我们现要定义一个系统的结构体数组RECODE

rec[600] ,用for (;;) 循环让菜单实现无限循环,让switch(menu_select()) 调用主菜单函数,返回值整数作开关语句的条件,之后分别定义菜单的信息,如:

case 1:

length=enter(rec);

就是输入信息的定义编辑,当然最后需要用到break 来实现返回。菜单定义完成之后,开

始编译菜单的输出,这部分,用了printf 就把需要显示的菜单显示出来,然后由用户选择菜单的选项,因为菜单只有0~7 的选项,为了防止用户输入选项超值,所以用do while 语句来控制,(c<0||c>7)限定了用户输入的数据只有0〜7才有效,超值则返回开始菜单,重新选择

(return )。

3. 输入信息:

输入信息一般都是使用scanf 来实现,但在用户输入之前需要解决一个问题,程序必须限制用户的输入序数(记录条数),所以在输入数据之前,必须先限定序数,方法则是用一个for 循环来实现,有用户输入一个数字,成为循环的上限,而用户输入的便条信息则在此限定下,不能超出,当超出时则返回到开始菜单。用户输入的便条信息分别存入对应的数组当中,如便条条数则存入t[i].num 当中。

4. 保存信息,参数为结构体数组和记录数:

用户输入的信息需要保存时,用save 选项进行保存。保存的时候,实现应该建立一个指向文件的指针,从而固定保存文件时的位置,之后用if 语句来判断打开文件是否正常,if

((fp=fopen("record.txt","wb"))==NULL),如果没打开(打开不正常),则程序执行退

出;当判断文件打开正常时,系统显示“保存文件”(用printf("\n 保存文件\n")来完成),保存信息是用到的fprintf 函数,将制定记录数输入文件fprintf(fp,"%d",n),因为源文件中采用了换行,保存文件是系统默认不会进行保存,所有必须加如换行符号保存,防止文件丢失,保证文件以用户输入的信息一致,保存换行符号依然采用fprintf 函数来实现,具体源文件为fprintf (fp,"\r\n");当确立了保存的可以性之后,系统开始录入需要保存的信息,用for 循环语句,不断把用户输入的信息保存,因为之前在编写输入,输出程序时,都用到了一定的格式,保证信息的一一对应,所以在保存文件时,也需要确定和输入是相同的格式,这里依然使用fprintf 函数来进行保存,如fprintf(fp,"%-10d%-7d%-7d%-7d%-7d-