




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*实践教学实践教学*兰州理工大学兰州理工大学计算机与通信学院2009 年春季学期高级语言高级语言 课程设计课程设计题 目:销售管理系统 专业班级: 信息与计算科学 1 班 姓 名: 肖有伟 学 号: 09500115 指导教师: 丁政建 成 绩: 目目 录录摘摘 要要.1前前 言言.2正正 文文.31.问题描述.32.需求分析.33.系统总体设计.44.详细设计.75.系统测试.136.软件使用说明书.13总总 结结.14参考文献参考文献.15致致 谢谢.16附件附件 部分源程序代码部分源程序代码.171摘摘 要要某公司有四个销售员(编号:1-4) ,负责销售五种产品(编号:1-5) 。每个销
2、售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 销售员的代号 、产品的代号、这种产品的当天的销售额 。每位销售员每天可能上缴 0-5 张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理:系统以菜单方式工作,录入信息用文件保存;计算上个月每个人每种产品的销售额; 按销售额对销售员进行排序,输出排序结果(销售员代号) ;统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) ;输出统计报表。 关键词:销售管理系统;文件;浏览;查询;修改; 2前前 言言近年来,随着商品销售市场的不断扩大,有关商品的各种
3、信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致商品销售管理上的混乱,人力与物力过多浪费,用于支付职员的工资不断增加,从而使各大商品经销商的负担过重,影响整个销售部门的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的商品销售管理系统,对欲要销售的商品进行集中统一的管理。本系统开发的总设计目标是实现商品经销商对商品的系统化、规范化和自动化管理,实现对所经销商品的集中统一管理。3正正 文文1. 问题描述问题描述由于商品经销商销售渠道的增加,规模的扩大,使得管理工作繁重,而且手工管理效率极低,急需一个软件系统解决这些问题。为了跟上时代潮流,规范管理,提高管理水平和管理效率,特
4、此开发一个“商品销售管理软件” 。2. 需求分析需求分析本系统通过对商品的管理 , 管理商品从入库到销售出的整个过程,以供经销商方便的管理。本系统能够建立商品信息为经销商提供准确的资料,提高了人员的工作效率。43. 系统总体设计系统总体设计1.整体结构流程图商品销售商品销售管理系统管理系统添加插入修改查询删除数据库c 盘暂存内存中存储功能2. 系统执行过程a. 进入系统主菜单过程:进入系统主菜单过程:/执行 main( )函数int main(void)password( );head=(linklist)malloc(sizeof(node);last=(linklist)malloc(si
5、zeof(node);head-next=last;last-next=null;last-pre=head;5head-pre=null;do menu( ); while (select( )!=0);destroy( );return 0;首先调用 password( )函数,要求用户输入登陆密码, (密码错误则提示,并调用 windows 库函数进行清屏处理,请求重新输入密码,正确则进入欢迎界面,等待进入系统菜单)进入系统,执行 menu( )函数:void menu(void)system(cls); 显示主菜单显示主菜单显示主菜单,等待用户选择要执行的操作,调用 select( )
6、函数,通过switch(choose)语句对应相应的子函数(特别的,当用户输入 0,执行 destroy( )函数,释放内存空间,并退出系统;)b. 进入系统主菜单后可执行的进程:进入系统主菜单后可执行的进程:1.添加记录添加记录,执行 add()函数,在执行 add( )函数的时候,在内存中开辟存储空间(一个节点) ,调用 setdata( )函数,供用户从键盘上输入数据,当用户输入一组数据后,询问是否还需继续输入新数据,按 y 继续,非 y 则返回主菜单2. 删除记录删除记录, 执行 del( )函数,指针,将指向用户欲要删除的数据记录,调用查询记录 qur( )函数,根据用户的输入,查找
7、相应的记录,然后将其从内存空间中删除,qur( )将在下一条进行解释。3. 查询记录查询记录,执行 qur( )函数,定义一个一维数组,根据用户的请求进行信息检索。从第一条记录开始,找到则列出,否则继续,指导最后一条记录,提示未找到(o)4. 修改记录修改记录,执行 modify( )函数,调用 qur( )函数根据用户输入查找记录,在调用 setdata( )函数修改记录5.5. 插入记录插入记录,void insert( )函数,调用 setdata( )函数在最后一条记录后面插入新的记录。6.6. 统计函数统计函数,执行统计( )函数,通过 while( )函数,执行循环,记录循环的次数
8、,作为商品的数目67.7. 降序排序降序排序,执行 void sort( )函数,指针,for 循环,中间变量实现对所记录数据的排序任务。8. 存储记录存储记录,执行 void save( )函数,文件与指针,开辟空间,打开文件(我定义在 c:kaka 认真.txt 文件下,以 w 写的方式打开)9. 显示数据显示数据,执行 void disp( )函数,调用 printtitle( )函数,打印标题栏,当未输出最后一条记录时,执行 show(p)函数,直到输出所有的商品信息。 74. 详细设计详细设计对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:/数据的输入及数据类型void
9、 setdata(linklist p)/setdata()函数,在需要增添、修改、插入、删除的时候被调用,以从键盘输入数据printf(产品编号:); scanf(%s,&p-p.num);/字符串 printf(产品名称:); scanf(%s,&);/字符串 printf(产品单价:); scanf(%f,&p-p.price);/浮点类型 printf(产品数量:); scanf(%d,&p-p.amount);/整型/ii 插入记录void insert(linklist p)/insert()函数setdata(p);/指向“i 数据的输入及数据类型” p-next
10、=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,&ch); while(ch=y|ch=y);/不区分大小写,输入其他非“y”字符则退出!/iv 查询记录linklist qur()/qur()函数char num10; linklist p
11、=head-next;/从第一条记录开始,准备检索8printf(请输入产品编号:); scanf(%s,num);/字符串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);printf(恭喜您,记录删除成功n);system(pause);/vi 修改记录void modify()/modify()函数linkli
12、st 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.price,p-p.amount);/编号 num 字符串;名称 name 字符串;单价 price 浮点型(小数点后面保留两位) ;数量 amount整型9/ix 统计数据void tongji()/tongji()函数li
13、nklist p=head-next;/指向第一条记录int i=0;printtitle();/调用 printtitle()函数,打印标题栏while(p!=last)show(p);/调用 show()函数逐条输出统计信息p=p-next;i+;printf(共%d 项商品n,i);/依据循环的次数统计商品数量system(pause);/统计完成,按任意键继续/x 降序排序void sort()/sort()函数linklist p,q;for (p=head-next;p!=last;p=p-next)/从第一条记录开始,当不指向最后一条记录的时候,执行以下循环for (q=p-ne
14、xt;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 *fp=fopen(c:xx.txt,w);if(fp=null)printf(很抱歉,保存失败 %_p.num,,p-p.price,p-p.amount);/编号 num 字符串;名称 name 字符串;单价 price 浮点型(小数点后面保留两
15、位) ;数量amount 整型p=p-next;fclose(fp);printf(恭喜您,保存完成n);system(pause);/xii 表格输出记录void disp()/disp()函数,将记录以表格形式输出至屏幕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(voi
16、d)char password7=肖有伟;/系统默认登录密码,定义为 7 个字符串 char s7;printf(nnnnnnt 您好,欢迎您使用本销售管理系统软件);printf(nnnt 系统开发人:肖有伟);printf(nnnt 版权没有,请尽情的复制吧!);printf(nnnnt 请输入您的登陆密码,然后按回车键:);scanf(%s,s);/用户登录时输入if(!strcmp(s,password)/要求用户的输入=password7才可以进入本系统system(cls);/清屏处理printf(nnnnttt 恭喜你进入销售管理系统nnnn);11system(pause);/
17、请按任意键返回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 (sel
18、ect()!=0);destroy();return 0; 135. 系统测试系统测试编号产品价格数量112324543385进过本人多次测试,该程序无重大错误,能满足要求。6. 软件使用说明书软件使用说明书1. 根据正确的提示安装软件。2. 只要是 2000 年以后的计算机,都可运行。3. 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。操作如下:双击文件,进入系统,输入正确的密码登陆(系统默认密码是:禹认真,请使用中文输入法输入,谢谢合作!) 。菜单使用说明:菜单使用说明:1. 添加:将所需的信息输入。2. 删除:删除记录。3. 修改:修改单条记录。4. 查询:查询已经入库的记录
19、。5. 插入:在所有记录之后插入一条新的记录。6. 统计:统计已经入库的记录条数。7. 将序排列:根据产品编号对产品进行排序。8. 存储:存储所有记录至文件(记录被默认存储到 c:xx.txt文件下)9. 显示数据:显示已经存储到内存的数据14总总 结结该系统以销售管理为背景,涵盖了管理员对职工信息管理的多种功能,并且有一定的可行性和安全性,确保了各项指定功能得以运行。本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。 通过此次程序设计实践,是同学们对所学知识的综合运用,也是程序设计得以提高的表现。通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制
20、结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。经过设计和开发,销售管理系统基本开发完毕以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。从而是我对 c 语言这门课程有了更好的了解。但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。 15参考文献参考文献1c+程序设计教程 ,王连相,中国铁道出版社,2007 2 c 语言程序设计,谭浩强,清华
21、大学出版社,1999 3c 程序设计题解与上机指导,谭浩强,清华大学出版社,1999 4 c 语言的实际应用,安徽科学技术出版社,2000 5 c 语言函数手册,机械工业出版社,1999 6 c 语言实用程序荟萃,西安电子科技大学出版社,1993 16致致 谢谢在编写程序的过程中,我们得到了丁政建老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢! 感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利
22、完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。17附件附件 部分源程序代码部分源程序代码void setdata(linklist p)/setdata()函数,在需要增添、修改、插入、删除的时候被调用,以从键盘输入数据printf(产品编号:); scanf(%s,&p-p.num);/字符串 printf(产品名称:); scanf(%s,&);/字符串 printf(产品单价:); scanf(%f,&p-p.price);/浮点类型 printf(产品数量:); scanf(%d,&p-p.amount);/整型/ii 插入记录void
23、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( %c,&ch); while(ch=y|ch=y);/不区分大小写,输入
24、其他非“y”字符则退出!/iv 查询记录linklist qur()/qur()函数char num10; linklist p=head-next;/从第一条记录开始,准备检索printf(请输入产品编号:); scanf(%s,num);/字符串18while(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);printf(
25、恭喜您,记录删除成功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.price,p-p.amount);/编号 num 字符串;名称 name 字符串;单价 pri
26、ce 浮点型(小数点后面保留两位) ;数量 amount整型/ix 统计数据void tongji()/tongji()函数19linklist p=head-next;/指向第一条记录int i=0;printtitle();/调用 printtitle()函数,打印标题栏while(p!=last)show(p);/调用 show()函数逐条输出统计信息p=p-next;i+;printf(共%d 项商品n,i);/依据循环的次数统计商品数量system(pause);/统计完成,按任意键继续/x 降序排序void sort()/sort()函数linklist p,q;for (p=he
27、ad-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 *fp=fopen(c:kaka 认真.txt,w);if(fp=null)printf(很抱歉,保存失败 %_p.num,,p-p.price,p-p.amount);/编号 num 字符串;名称 name 字符串;单价 price 浮点型(小数点后面保留两位) ;数量amount 整型p=p-ne
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法律与科学技术的结合试题及答案
- 2025企业机密协议合同范本
- 理解Delphi编程中的安全性与隐私问题试题及答案
- Delphi运用中的摸索与实践试题及答案
- 2025年Web考试技巧试题及答案汇集
- Python程序优化理念与思路试题及答案
- 计算机一级Photoshop考试运用案例分析试题及答案
- 考前准备2025年Msoffice试题及答案
- 2025年二级C++考试的试题及答案策略
- 软件操作界面的设计与实现试题及答案
- 系杆拱桥工程测量施工方案
- 浅谈摩托艇的安全管理
- 女性功能治疗方案ppt课件
- 公路工程计量与计价考试B本科
- 医用耗材分类目录 (低值 ╱ 高值)
- 短、中、长距离游泳项目的体能训练方法及特征研究
- 人造草坪技术参数
- 浅谈歌曲《我的祖国》
- lemon米津玄师翻唱中文谐音
- 城镇老旧小区改造技术导则(青岛)
- 农村饮水安全工程施工组织设计方案
评论
0/150
提交评论