高级语言课程设计-销售管理系统说明书.doc

上传人:韩长文 文档编号:5028366 上传时间:2020-01-29 格式:DOC 页数:24 大小:146.50KB
返回 下载 相关 举报
高级语言课程设计-销售管理系统说明书.doc_第1页
第1页 / 共24页
高级语言课程设计-销售管理系统说明书.doc_第2页
第2页 / 共24页
高级语言课程设计-销售管理系统说明书.doc_第3页
第3页 / 共24页
高级语言课程设计-销售管理系统说明书.doc_第4页
第4页 / 共24页
高级语言课程设计-销售管理系统说明书.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《高级语言课程设计-销售管理系统说明书.doc》由会员分享,可在线阅读,更多相关《高级语言课程设计-销售管理系统说明书.doc(24页珍藏版)》请在三一文库上搜索。

1、* 实践教学实践教学 * 兰州理工大学兰州理工大学 计算机与通信学院 2009 年春季学期 高级语言高级语言 课程设计课程设计 题 目:销售管理系统 专业班级: 信息与计算科学 1 班 姓 名: 肖有伟 学 号: 09500115 指导教师: 丁政建 成 绩: 目目 录录 摘摘 要要.1 前前 言言.2 正正 文文.3 1.问题描述3 2.需求分析3 3.系统总体设计4 4.详细设计7 5.系统测试13 6.软件使用说明书13 总总 结结.14 参考文献参考文献.15 致致 谢谢.16 附件附件 部分源程序代码部分源程序代码.17 1 摘摘 要要 某公司有四个销售员(编号:1-4) ,负责销售

2、五种产品(编号: 1-5) 。每个销售员都将当天出售的每种产品各写一张便条交上来。每 张便条包含内容: 销售员的代号 、产品的代号、这种产品的当天的 销售额 。每位销售员每天可能上缴 0-5 张便条。假设,收集到了上 个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行 如下处理: 系统以菜单方式工作,录入信息用文件保存;计算上个月每个人 每种产品的销售额; 按销售额对销售员进行排序,输出排序结果 (销售员代号) ;统计每种产品的总销售额,对这些产品按从高到底 的顺序,输出排序结果(需输出产品的代号和销售额) ;输出统计报 表。 关键词:销售管理系统;文件;浏览;查询;修改; 2 前前

3、 言言 近年来,随着商品销售市场的不断扩大,有关商品的各种信息量 也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致商品 销售管理上的混乱,人力与物力过多浪费,用于支付职员的工资不断 增加,从而使各大商品经销商的负担过重,影响整个销售部门的运作 和控制管理,因此,必须制定一套合理、有效,规范和实用的商品销 售管理系统,对欲要销售的商品进行集中统一的管理。本系统开发的 总设计目标是实现商品经销商对商品的系统化、规范化和自动化管理, 实现对所经销商品的集中统一管理。 3 正正 文文 1. 问题描述问题描述 由于商品经销商销售渠道的增加,规模的扩大,使得管理工作繁 重,而且手工管理效率极低,急

4、需一个软件系统解决这些问题。为了 跟上时代潮流,规范管理,提高管理水平和管理效率,特此开发一个 “商品销售管理软件” 。 2. 需求分析需求分析 本系统通过对商品的管理 , 管理商品从入库到销售出的整个过 程,以供经销商方便的管理。本系统能够建立商品信息为经销商提供 准确的资料,提高了人员的工作效率。 4 3. 系统总体设计系统总体设计 1.整体结构流程图 商品销售商品销售 管理系统管理系统 添加插入修改查询删除 数据库 C 盘 暂存 内存中 存储 功能 2. 系统执行过程 A. 进入系统主菜单过程:进入系统主菜单过程: /执行 main( )函数 int main(void) passwor

5、d( ); head=(linklist)malloc(sizeof(node); last=(linklist)malloc(sizeof(node); head-next=last; last-next=NULL; last-pre=head; 5 head-pre=NULL; do menu( ); while (select( )!=0); destroy( ); return 0; 首先调用 Password( )函数,要求用户输入登陆密码, (密码错误则提示,并 调用 Windows 库函数进行清屏处理,请求重新输入密码,正确则进入欢迎界面, 等待进入系统菜单) 进入系统,执行 M

6、enu( )函数: void menu(void) system(“cls“); 显示主菜单显示主菜单 显示主菜单,等待用户选择要执行的操作,调用 select( )函数,通过 switch(choose)语句对应相应的子函数 (特别的,当用户输入 0,执行 destroy( )函数,释放内存空间,并退出系统; ) B. 进入系统主菜单后可执行的进程:进入系统主菜单后可执行的进程: 1.添加记录添加记录,执行 Add()函数,在执行 Add( )函数的时候,在 内存中开辟存储空间(一个节点) ,调用 setData( )函数, 供用户从键盘上输入数据,当用户输入一组数据后,询问是 否还需继续输

7、入新数据,按 Y 继续,非 Y 则返回主菜单 2. 删除记录删除记录, 执行 Del( )函数,指针,将指向用户欲要删除 的数据记录,调用查询记录 Qur( )函数,根据用户的输入, 查找相应的记录,然后将其从内存空间中删除,Qur( )将 在下一条进行解释。 3. 查询记录查询记录,执行 Qur( )函数,定义一个一维数组,根据用 户的请求进行信息检索。从第一条记录开始,找到则列出, 否则继续,指导最后一条记录,提示未找到(o) 4. 修改记录修改记录,执行 Modify( )函数,调用 Qur( )函数根据用 户输入查找记录,在调用 setData( )函数修改记录 5.5. 插入记录插入

8、记录,void Insert( )函数,调用 setData( )函数在 最后一条记录后面插入新的记录。 6.6. 统计函数统计函数,执行统计( )函数,通过 while( )函数,执行 循环,记录循环的次数,作为商品的数目 6 7.7. 降序排序降序排序,执行 void Sort( )函数,指针,For 循环,中 间变量实现对所记录数据的排序任务。 8. 存储记录存储记录,执行 void Save( )函数,文件与指针,开辟空 间,打开文件(我定义在 C:Kaka 认真.txt 文件下,以 w 写 的方式打开) 9. 显示数据显示数据,执行 void Disp( )函数,调用 printTi

9、tle( ) 函数,打印标题栏,当未输出最后一条记录时,执行 show(p)函 数,直到输出所有的商品信息。 7 4. 详细设计详细设计 对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下: /数据的输入及数据类型 void setData(linklist p)/setData()函数,在需要增添、修改、插入、删除的时候被调用, 以从键盘输入数据 printf(“产品编号:“); scanf(“%s“,/字符串 printf(“产品名称:“); scanf(“%s“,/字符串 printf(“产品单价:“); scanf(“%f“,/浮点类型 printf(“产品数量:“); sc

10、anf(“%d“,/整型 /II 插入记录 void Insert(linklist p)/Insert()函数 setData(p);/指向“I 数据的输入及数据类型” p-next=last; last-pre-next=p; p-pre=last-pre; last-pre=p; /III 添加记录 void Add()/Add()函数 char ch;/定义 do linklist p=(linklist)malloc(sizeof(node); system(“cls“);/清屏处理 Insert(p); printf(“是否继续?继续请输入“Y”后按下回车键“); scanf(“

11、%c“, while(ch=y|ch=Y);/不区分大小写,输入其他非“Y”字符则退出! /IV 查询记录 linklist Qur()/Qur()函数 char num10; linklist p=head-next;/从第一条记录开始,准备检索 8 printf(“请输入产品编号:“); scanf(“%s“,num);/字符串 while(p!=last)/信息检索直至最后一条记录 if(strcmp(num,p-p.num)=0) break; /两个字符串相等返回 0,第一个大于第二个返回0 的数,否则返回next; if(p=last) printf(“未找到您的数据请求 %_pr

12、e-next=p-next; p-next-pre=p-pre; free(p); printf(“恭喜您,记录删除成功n“); system(“pause“); /VI 修改记录 void Modify()/Modify()函数 linklist p=Qur(); if(p=last) return ; setData(p); /VII 显示记录标题栏 void printTitle()/printTitle()函数 printf(“编号t 名称t 单价t 数量n“); /VIII 显示记录子函数 void show(linklist p) printf(“%st%st%.2ft%dn“,p

13、-p.num,p-p.name,p-p.price,p-p.amount); /编号 num 字符串;名称 name 字符串;单价 price 浮点型(小数点后面保留两位) ;数量 amount 整型 9 /IX 统计数据 void Tongji()/Tongji()函数 linklist p=head-next;/指向第一条记录 int i=0; printTitle();/调用 printTitle()函数,打印标题栏 while(p!=last) show(p);/调用 show()函数逐条输出统计信息 p=p-next; i+; printf(“共%d 项商品n“,i);/依据循环的次

14、数统计商品数量 system(“pause“);/统计完成,按任意键继续 /X 降序排序 void Sort()/sort()函数 linklist p,q; for (p=head-next;p!=last;p=p-next)/从第一条记录开始,当不指向最后一条记录的 时候,执行以下循环 for (q=p-next;q!=last;q=q-next)/? if(strcmp(p-p.num,q-p.num)p; p-p=q-p; q-p=temp; printf(“排序完成n“); system(“pause“);/请按任意键继续 /XI 存储记录 void Save() linklist

15、p=head-next;/指向第一条记录,从第一条记录开始检索 FILE *fp=fopen(“c:xx.txt“,“w“); if(fp=NULL) printf(“很抱歉,保存失败 %_p.num,p-p.name,p-p.price,p-p.amount); /编号 num 字符串;名称 name 字符串;单价 price 浮点型(小数点后面保留两位) ;数量 amount 整型 p=p-next; fclose(fp); printf(“恭喜您,保存完成n“); system(“pause“); /XII 表格输出记录 void Disp()/Disp()函数,将记录以表格形式输出至屏

16、幕 linklist p=head-next;/指向第一条记录,开始检索 printTitle();/打印标题栏 while(p!=last) show(p);/调用 show 函数 p=p-next; system(“pause“); /XIII 错误提示 void Wrong() printf(“输入错误!n“); system(“pause“); /XIV 实现加密功能 void password(void) char password7=“肖有伟“;/系统默认登录密码,定义为 7 个字符串 char s7; printf(“nnnnnnt 您好,欢迎您使用本销售管理系统软件“); pr

17、intf(“nnnt 系统开发人:肖有伟“); printf(“nnnt 版权没有,请尽情的复制吧!“); printf(“nnnnt 请输入您的登陆密码,然后按回车键:“); scanf(“%s“,s);/用户登录时输入 if(!strcmp(s,password)/要求用户的输入=password7才可以进入本系统 system(“cls“);/清屏处理 printf(“nnnnttt 恭喜你进入销售管理系统nnnn“); 11 system(“pause“);/请按任意键返回 else printf(“nt 您输入的密码有误,请重新输入 %_next; while(p!=last) he

18、ad-next=p-next; free(p); p=head-next; free(head); free(last); /Main()函数 int main(void) password(); head=(linklist)malloc(sizeof(node); last=(linklist)malloc(sizeof(node); head-next=last; last-next=NULL; last-pre=head; head-pre=NULL; do menu(); while (select()!=0); destroy(); return 0; 13 5. 系统测试系统测试

19、 编号产品价格数量 1123 2454 3385 进过本人多次测试,该程序无重大错误,能满足要求。 6. 软件使用说明书软件使用说明书 1. 根据正确的提示安装软件。 2. 只要是 2000 年以后的计算机,都可运行。 3. 打开该程序系统,浏览菜单,根据需要选择功能,进行各 项操作。 操作如下: 双击文件,进入系统,输入正确的密码登陆(系统默认密码是: 禹认真,请使用中文输入法输入,谢谢合作!) 。 菜单使用说明:菜单使用说明: 1. 添加:将所需的信息输入。 2. 删除:删除记录。 3. 修改:修改单条记录。 4. 查询:查询已经入库的记录。 5. 插入:在所有记录之后插入一条新的记录。

20、6. 统计:统计已经入库的记录条数。 7. 将序排列:根据产品编号对产品进行排序。 8. 存储:存储所有记录至文件(记录被默认存储到 C:xx.txt 文件下) 9. 显示数据:显示已经存储到内存的数据 14 总总 结结 该系统以销售管理为背景,涵盖了管理员对职工信息管理的多种 功能,并且有一定的可行性和安全性,确保了各项指定功能得以运行。 本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯 穿实现。 通过此次程序设计实践,是同学们对所学知识的综合运用, 也是程序设计得以提高的表现。 通过此次编程培养了我们结构化程序设计的思想,加深了对高级 语言基本语言要素和控制结构的理解,锻炼我们

21、独立思考制作程序的 能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后 的学习提供了锻炼的机会。 经过设计和开发,销售管理系统基本开发完毕以及各类相关报表 的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、 数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。 从而是我对 c 语言这门课程有了更好的了解。 但是由于设计时间较短,所以该系统还有许多不尽如人意的地方, 比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问 题。这些都有待进一步改善。 15 参考文献参考文献 1c+程序设计教程 ,王连相,中国铁道出版社,2007 2 C 语言程序设计,谭浩强,清

22、华大学出版社,1999 3C 程序设计题解与上机指导,谭浩强,清华大学出版社,1999 4 C 语言的实际应用,安徽科学技术出版社,2000 5 C 语言函数手册,机械工业出版社,1999 6 C 语言实用程序荟萃,西安电子科技大学出版社,1993 16 致致 谢谢 在编写程序的过程中,我们得到了丁政建老师的精心指导以及孜 孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成 了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心 的感谢! 感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常 时期,在生活和学习上帮我许多忙。 在课设即将完成之际,我的心情无法平静,从开始进入

23、课题到课 设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助, 在这里请接受我诚挚的谢意。 17 附件附件 部分源程序代码部分源程序代码 void setData(linklist p)/setData()函数,在需要增添、修改、插入、删除的时候被调用, 以从键盘输入数据 printf(“产品编号:“); scanf(“%s“,/字符串 printf(“产品名称:“); scanf(“%s“,/字符串 printf(“产品单价:“); scanf(“%f“,/浮点类型 printf(“产品数量:“); scanf(“%d“,/整型 /II 插入记录 void Insert(linkli

24、st p)/Insert()函数 setData(p);/指向“I 数据的输入及数据类型” p-next=last; last-pre-next=p; p-pre=last-pre; last-pre=p; /III 添加记录 void Add()/Add()函数 char ch;/定义 do linklist p=(linklist)malloc(sizeof(node); system(“cls“);/清屏处理 Insert(p); printf(“是否继续?继续请输入“Y”后按下回车键“); scanf(“ %c“, while(ch=y|ch=Y);/不区分大小写,输入其他非“Y”字符

25、则退出! /IV 查询记录 linklist Qur()/Qur()函数 char num10; linklist p=head-next;/从第一条记录开始,准备检索 printf(“请输入产品编号:“); scanf(“%s“,num);/字符串 18 while(p!=last)/信息检索直至最后一条记录 if(strcmp(num,p-p.num)=0) break; /两个字符串相等返回 0,第一个大于第二个返回0 的数,否则返回next; if(p=last) printf(“未找到您的数据请求 %_pre-next=p-next; p-next-pre=p-pre; free(p

26、); printf(“恭喜您,记录删除成功n“); system(“pause“); /VI 修改记录 void Modify()/Modify()函数 linklist p=Qur(); if(p=last) return ; setData(p); /VII 显示记录标题栏 void printTitle()/printTitle()函数 printf(“编号t 名称t 单价t 数量n“); /VIII 显示记录子函数 void show(linklist p) printf(“%st%st%.2ft%dn“,p-p.num,p-p.name,p-p.price,p-p.amount);

27、/编号 num 字符串;名称 name 字符串;单价 price 浮点型(小数点后面保留两位) ;数量 amount 整型 /IX 统计数据 void Tongji()/Tongji()函数 19 linklist p=head-next;/指向第一条记录 int i=0; printTitle();/调用 printTitle()函数,打印标题栏 while(p!=last) show(p);/调用 show()函数逐条输出统计信息 p=p-next; i+; printf(“共%d 项商品n“,i);/依据循环的次数统计商品数量 system(“pause“);/统计完成,按任意键继续 /

28、X 降序排序 void Sort()/sort()函数 linklist p,q; for (p=head-next;p!=last;p=p-next)/从第一条记录开始,当不指向最后一条记录的 时候,执行以下循环 for (q=p-next;q!=last;q=q-next)/? if(strcmp(p-p.num,q-p.num)p; p-p=q-p; q-p=temp; printf(“排序完成n“); system(“pause“);/请按任意键继续 /XI 存储记录 void Save() linklist p=head-next;/指向第一条记录,从第一条记录开始检索 FILE *

29、fp=fopen(“c:Kaka 认真.txt“,“w“); if(fp=NULL) printf(“很抱歉,保存失败 %_p.num,p-p.name,p-p.price,p-p.amount); /编号 num 字符串;名称 name 字符串;单价 price 浮点型(小数点后面保留两位) ;数量 amount 整型 p=p-next; fclose(fp); printf(“恭喜您,保存完成n“); system(“pause“); /XII 表格输出记录 void Disp()/Disp()函数,将记录以表格形式输出至屏幕 linklist p=head-next;/指向第一条记录,开

30、始检索 printTitle();/打印标题栏 while(p!=last) show(p);/调用 show 函数 p=p-next; system(“pause“); /XIII 错误提示 void Wrong() printf(“输入错误!n“); system(“pause“); /XIV 实现加密功能 void password(void) char password7=“禹认真“;/系统默认登录密码,定义为 7 个字符串 char s7; printf(“nnnnnnt 您好,欢迎您使用本销售管理系统软件“); printf(“nnnt 系统开发人:禹认真“); printf(“n

31、nnt 版权没有,请尽情的复制吧!“); printf(“nnnnt 请输入您的登陆密码,然后按回车键:“); scanf(“%s“,s);/用户登录时输入 if(!strcmp(s,password)/要求用户的输入=password7才可以进入本系统 system(“cls“);/清屏处理 printf(“nnnnttt 恭喜你进入学生成绩管理系统nnnn“); system(“pause“);/请按任意键返回 21 else printf(“nt 您输入的密码有误,请重新输入 %_next; while(p!=last) head-next=p-next; free(p); p=head-next; free(head); free(last); /Main()函数 int main(void) password(); head=(linklist)malloc(sizeof(node); last=(linklist)malloc(sizeof(node); head-next=last; last-next=NULL; last-pre=head; head-pre=NULL; do menu(); while (select()!=0); destroy(); return 0;

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

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1