资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言课程设计报告设计题目销售管理系统设计设计人员:指导教师:所在院系:年级班级:目录C语言课程设计一销售管理系统3销售管理系统的设计目的4总体设计 5详细设计 7一、课题的功能模块的划分。 71. 主菜单及头文件设计:722. 编辑系统菜单运行: 83. 输入信息: 84. 保存信息,参数为结构体数组和记录数: 95. 读入取函数,参数为结构体数组: 106. 清单输出: 11二、主要功能的实现 12程序调试与测试 20执行结果 21总结 28C语言课程设计-销售管理系统题目:销售管理系统 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。 每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条 包含内容:1)销售员的代号2)产品的代号3)这种产品的当天的销售额3每位销售员每天可能上缴0-5 张便条。假设,收集到了上个月的所有 便条,编写一个处理系统,读取上个月的销售情况(自己设定),进 行如下处理。1)计算上个月每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出 排序结果(需输出产品的代号和销售额)(可选项)4)输出统计报表销售管理系统的设计目的1、通过本课程设计,培养上机动手能力,使学生巩固C语言程序设计课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关;2、为后续各门计算机课程的学习打下坚实基础;3、学会用 c 语言程序设计来设计销售管理系统设计。数据结构图如下:总体设计f (X (、菜单清单保存 函数输入文件如图为程序设计流程图;详细设计一、课题的功能模块的划分。1. 主菜单及头文件设计:我们按照老师所给的示例我们首先编译了一个头文件,在头文件 里,编译了主函数需要用到的一些函数,如#include s tdio.h等, 因为需要录入便条的所有信息,所有用一个数据结构来实现信息的储 存方式,用数组方式,把每条信息都编译成一个数组,如销售员代号 用n ame4记录。头文件还包括了定义常数记录数ty pedef st rue t, 主函数原型int menu_selee t( );/* 声明函数*/int ent er(REC0DE t );/* 声明函数*/void salor(RECODE t,in t n);/* 声明函数*/int sum(RECODE t ,int n,in t m);/* 声明函数*/void lis tl(REC0DE t,in t n);/* 声明函数*/void lis t2(REC0DE t,in t n);/* 声明函数*/void lis t3(REC0DE t,in t n);/* 声明函数*/void save(RECODE t,in t n);/* 声明函数*/int load(RECODE t );/* 声明函数*/这些的都是主函数需要用到的数据,因此放入头文件当中,在主 程序开始之前直接引用#include pro.h。2. 编辑系统菜单运行:题目要求我们系统以菜单方式工作,所以我们现要定义一个系统 的结构体数组RECODE rec600,用for (;)循环让菜单实现无限循 环,让switch(menu_select()调用主菜单函数,返回值整数作开关 语句的条件,之后分别定义菜单的信息,如:case 1:length=enter(rec);就是输入信息的定义编辑,当然最后需要用到 break 来实现返8 回。菜单定义完成之后,开始编译菜单的输出,这部分,用了 printf 就把需要显示的菜单显示出来,然后由用户选择菜单的选项,因为菜 单只有07的选项,为了防止用户输入选项超值,所以用do while 语句来控制,(c0|c7)限定了用户输入的数据只有07才有效, 超值则返回开始菜单,重新选择(return)。3. 输入信息:输入信息一般都是使用scanf来实现,但在用户输入之前需要解 决一个问题,程序必须限制用户的输入序数(记录条数),所以在输 入数据之前,必须先限定序数,方法则是用一个for循环来实现,有 用户输入一个数字,成为循环的上限,而用户输入的便条信息则在此 限定下,不能超出,当超出时则返回到开始菜单。用户输入的便条信 息分别存入对应的数组当中,如便条条数则存入t i.num当中。4. 保存信息,参数为结构体数组和记录数:用户输入的信息需要保存时,用 save 选项进行保存。保存的时 候,实现应该建立一个指向文件的指针,从而固定保存文件时的位置, 之 后 用 if 语 句 来 判 断 打 开 文 件 是 否 正 常 , if(fp二fopen(record. txt,wb)二二NULL),如果没打开(打开不 正常),则程序执行退出;当判断文件打开正常时,系统显示“保存9 文件”(用printf(n保存文件n)来完成),保存信息是用到的 fprintf函数,将制定记录数输入文件fprintf(fp,%d,n),因为源 文件中采用了换行,保存文件是系统默认不会进行保存,所有必须加 如换行符号保存,防止文件丢失,保证文件以用户输入的信息一致, 保存换行符号依然采用 fprintf 函数来实现, 具体源文件为 fprintf(fp,rn);当确立了保存的可以性之后,系统开始录入需 要保存的信息,用for循环语句,不断把用户输入的信息保存,因为 之前在编写输入,输出程序时,都用到了一定的格式,保证信息的一 一对应,所以在保存文件时,也需要确定和输入是相同的格式,这里 依 然 使 用 fprintf 函 数 来 进 行 保 存 , 如 fprintf(fp,%-10d%-7d%-7d%-7d%-7d-7d,ti.name,ti.a1,ti .a2, ti.a3, ti.a4, ti.a5)就是把销售员代号,产品代号,销 售额按照间隔7个字符格式进行保存,在保存格式确立后,需要把换 行符号再次写入文件,程序结束后fclose结束保存,并用printf输 出“文件保存成功”,让用户知道已经保存文件。5. 读入取函数,参数为结构体数组:前面已经做了文件的保存,当保存文件成功后,系统会以 record.txt 文件保存在与程序同级的文件夹下,而读入函数,就是 为了让用户再次打开运行程序时,可以直接读取之前已经输入并保存 过的信息,和储存信息一样,读入函数也采用了参数为结构体数组, 10 同样应该确定文件指向指针FILE *fp,读入函数之前,应该确定是 否有已经保存的文件,用保存文件一样,用 if 语句来进行判断 if(fp=fopen(record. txt,rb)二二NULL),如果判断失败,系统 不能读入文件,则会显示“不能打开文件”用printf(不能打开文 件n)来实现,同时系统要结束读入文件的执行,用exit(l)实现; 如果判断成功,则系统会自动读入用户已经保存的数据 (fscanf(fp,%d, &n)读入记录数),用for循环把已经保存的数据 一一对应的读入到正在执行的程序中,这里需要注意的是,读取的数 据格式应该同保存时的一致,如储存时的格式是 fprintf(fp,%-10d%-7d%-7d%-7d%-7d-7d,ti.name,ti.a1,ti.a2,ti.a3,ti.a4,ti.a5) ,则读入的时的格式就为 fscanf(fp,%d%d%d%d%d%d,&(ti.name),&(ti.a1),&(ti.a2) ,&(ti.a3),&(ti.a4),&(ti.a5) ,读取成功后关闭文件 fclose(fp),并显示“成功地从文件读入数据”(用printf实现)。6. 清单输出:读取销售情况有3个,分别是每个人每种产品的销售额,按销售 额对销售员进行排序和每种产品的总销售额三个函数:1) .每个人每种产品的销售额(由周锐完成):首先,要定义每个人,每种产品,销售额数组如 int i,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;int c4,bl4 = 0,b24 = 0,b34 = 0,b44 = 0,b54 = 0, 用for循环来求每个人的总销售额:for(i=0;i4;i+);用for循环 来求每个人每种产品的总销售额:for(i=0;in;i+), for(j=0;j4;j+);在用for循环每种产品的总销售额: for(i=0;i4;i+),之后则在系统界面输入销售员代号,产品代号, 产品代号用printf即可实现,用sum对每个销售员的销售额求和, 用system(cls)来录入信息,然后输出头标(如销售员代号,产品 代号,销售额等,用printf实现),之后开始查询,用for语句来。2) .按销售额对销售员进行排序(由赵弘完成):此部分要分两部分其一是,每位销售员销售额;其二是,按销售 额对销售员排序。在求每个销售员销售额时也是要先定义销售员代 号,产品代号,销售额。接着是则是用输入要查询的销售员的代号, 用scanf(%d, &s)来记录输入销售员代号的信息,然后输出头标(如 销售员代号,产品代号,销售额等,用printf实现),之后开始查询, 查询信息首先需要一个 for 语句来,实现对已存入数据的所有查询 for(i=0;in;i+), 关 键 内 容 是 查 询 销 售 员 代 号 时 用 if(strcmp(name, ti.name)=0),找出与输入的销售员相同的储存 信息,查找完成后则把该销售员的所有信息全部输出。上面是求每个 销售员销售额,接着是要在上面的基础上排序。首先要定义两个数组 如:int c4,m4,接着用 for 循环(for(i=0;i4;i+); for(j二i+l;j4;j+)对销售员的销售额进行排序,再用if语句来 求,最后是输出用printf (%dn,mi)实现。3) .每种产品的总销售额(由李鸿完成):也一样首先要定义数组,接着用 ci=sum(t,n,i+1) 求每个人 的总销售额,再用for循环,再用sum0+=ci对所有产品的销售额求 总,用for循环对每个人每种产品的销售额求总销售额,再用for循 环实现每种产品的总销售额,然后输出 头标(如销售员代号,产品代号,总销售额等,用 printf 实现)即 可。二、主要功能的实现头文件:#include st dio.h/*输入输出函数*/#include st dlib.h/*通 用应用程序函 数*/ #include st ring.h/*字符串函数*/#include ct ype.h/* 字符操作函数*/typedef struct /*定义结构体变量*/i
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号