版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称 算法与程序设计 课题名称 公司库存管理系统 专 业 信息与计算科学 班 级 信息科学1002 学 号 201010010213 姓 名 马子和 指导教师 王祝君 2011年12月26日湖 南 工 程 学 院课 程 设 计 任 务 书课程名称 算法与程序设计 课 题 公司库存管理系统 专业班级 信息科学1002 学生姓名 马子和 学 号 201010010213 指导老师 王祝君 审 批 任务下达日期 2011 年 12 月 8日任务完成日期 2012 年 1 月 7日 一、设计内容与设计要求1设计内容: 对课程算法与程序设计中的相关内容进行综合设计或应用(具体课
2、题题目见后面的供选题目)。题目2:设计某公司的库存管理系统 (一)、课程设计题目:某公司的库存管理系统(二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握c+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及c+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 3、创新要求: 在基本要求达到后,可进行创新
3、设计,如根据查找结果进行修改的功能。 4、写出设计说明书 (三、)设计方法和基本原理: 1、问题描述(功能要求): 某公司现有以下设备:普通电视机、dvd、带dvd的电视机,带dvd的电视机的售价为普通电视机和dvd单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。 2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调
4、试; (7)完成系统总结报告以及系统使用说明书。2设计要求:l 课程设计报告正文内容(包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等)。(一)需求分析系统设计目的与意义系统功能需求(系统流程图);输入输出的要求;(二)总体设计系统功能分析;系统功能模块划分与设计(系统功能模块图)。(三)详细设计数据库需求分析数据库概念结构设计(er图);数据库逻辑结构设计。类层次图(四)界面设计与各功能模块实现(五)系统调试调试问题出现的主要问题:编译语法错误及修改,重点是运行逻辑问题修改和调整(六)使用说明及编程体会说明如何使用
5、你编写的程序,详细列出每一步的操作步骤。(七)关键源程序(带注释)l 书写格式a要求用a4纸打印成册b正文格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。c正文的内容:正文总字数要求在3000字左右(不含程序原代码)。d封面格式如下页。l 考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:a平时出勤 (占10%)b系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)c程序能否完整、准确地
6、运行,个人能否独立、熟练地调试程序(占40%)d设计报告(占30%)注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。e独立完成情况(占10%)。l 课程验收要求a判定算法设计的合理性,运行相关程序,获得正确的数值结果。b回答有关问题。c提交课程设计报告。d提交软盘(源程序、设计报告文档)。e依内容的创新程度,完善程序情况及对程序讲解情况打分。三、 教材及参考书 朱战立等著, c+面向对象程序设计,人民邮电出版社;郑莉著, c+ 语言程序设计(含实验指导书)。 清华大学出版社 ( 结构化程序设计部分 ) 钱能主编 ,c+ 程序设计教程,清华大学出版社, 2000.11 戴锋编著,
7、 visual c+ 程序设计基础 , 清华大学出版社 ,2001.4 吕日著, c+ 程序设计教程,清华大学出版社, c+ 大学教程,美国 harvey m.deitel 等 四、进度安排1、 班级: 信息与计算科学:1001、1002、10032、 主讲教师:王祝君3、 辅导教师:王祝君、聂 存 云4、 时间安排:第 16-17 周 星期二 8时:00分11时:30分 星期二 14时:00分17时:30分 星期六 8时:30分11时:30分 星期六 14时:30分17时:30分 系统需求分析1、系统设计目的与意义 库存管理系统是生产、计划和控制的基础。库存管理系统主要通过对仓库、入库、出库
8、的管理,及时反应物资的仓储、流向情况,为生产管理和成本核算提供依据。并通过库存分析,为管理及决策人员提供库存资金占用情况、物资短缺情况等不同的分析信息。同时为计划及决策人员提供实时准确的存货信息,以便及时调整生产,保证企业各项生产经营活动的顺利进行。通过库存管理信息化,可以全面监控企业商品的进、出、存等各种状况,满足现代企业的库存管理需要。2、系统功能需求(系统流程图)在本题系统程序设计中,系统需求我们设计四个类:家电类;由家电类派生出来的普通电视积类;由家电类派生出来的普通dvd类; 由普通电视机类和普通dvd类共同派生出来的带dvd的普通电视机类,其中 带dvd的电视机的售价为普通电视机和
9、dvd单价之和的80%。在这个系统中我们需要需要设计六个功能:物品录用功能;物品显示功能;物品添加功能功能;物品查找功能;物品删除功能;物品保存功能。 库存管理系统业务流程图系统登录 是否登录否仓库信息是家电类其他类产品分类普通电视机类dvd类带dvd的普通电视机类 总体设计 1、系统功能分析在公司库存管理系统中,物品信息主要为:物品名称,颜色,物品生产厂家,生产厂家地址,物品型号,物品生产日期,物品的单价和数量。公司库存管理系统中系统需要我们实现六个功能:物品录用功能:在物品录用功能中用户可以根据自己的需要输入自己想输入的物品信息(名称、颜色、生产厂家、厂家地址、型号、生产日期、数量),然后
10、将其保存,一开始系统会提示输入自己想输入的物品型号,然后再输入相关型号的物品信息,输入完之后会再次提示用户是否继续输入,然后再根据提示进行相关操作。物品显示功能:在显示物品功能中,当用户选择此功能时系统会打开保存信息的文件然后将用户所有保存的信息全部显示出来。添加物品功能:在添加物品功能中,用户可以根据系统的提示输入相关物品的信息,并将其保存。查找物品功能:在查找物品功能中,用户根据系统提示输入自己想查找的相关物品名称,然后在库存中的相关物品中查找,如果有此物品则会显示此物品的所有信息,如果没有则会显示无此物品信息。删除物品功能:在删除物品功能中,用户根据系统的提示输入自己想删除的物品名称,然
11、后将其删除。保存物品功能:在保存物品功能中,当用户选择此功能时,系统会将用户需要的所有物品保存。2、系统功能模块图 库存管理系统功能结构图库存管理系统输入物品名称保存该物品的信息输入名称删除普通dvd的信息输入名称删除带dvd的电视机的信息输入名称删除普通电视机的信息输入名称查找带dvd的电视机的信息输入名称查找普通dvd的信息输入名称查找普通电视机的信息添加普通dvd的信息添加带dvd的普通电视机的信息添加普通电视机的信息显示带dvd的普通电视机的信息输入普通电视机的信息输入普通dvd的信息输入带dvd的普通电视机的信息显示普通dvd的信息显示普通电视机的信息物品保存信息物品删除信息物品查找
12、信息物品添加信息物品显示信息物品录用信息 详细设计1、 数据库需求分析 为了用户更好管理物品信息,本系统设计的六个功能可以给用户提供物品录入、物品添加、物品显示、物品查找、物品删除、物品保存。方便用户更好管理。2、 数据库概念结构设计(er图) 物品录入信息表 物品录入信息实体e-r图输入物品规格输入物品名称 输入物品型号输入生产厂家及地址输入物品数量输入物品单价物品添加信息表 物品添加信息实体e-r图添加物品名称添加物品规格添加物品生产厂家及地址添加物品型号添加物品数量添加物品单价 物品显示信息实体e-r图物品显示信息表物品规格物品名称生产厂家及地址物品型号物品单价物品数量查找物品单价查找物
13、品数量生产厂家及地址查找物品型号查找物品名称查找物品规格物品查找信息表物品查找信息实体e-r图物品删除信息表 物品删除信息实体e-r图删除物品单价删除物品数量生产厂家及地址删除物品型号删除物品规格删除物品名称物品保存信息表 物品保存信息实体e-r图保存物品单价保存物品数量生产厂家及地址保存物品型号保存物品规格保存物品名称注:在本系统中只要求对普通电视机、dvd、带dvd的电视机的相关信息。 公司库存管理系统中各功能模块的实现图菜单查找物品信息删除物品信息保存物品信息录用物品信息添加物品信息显示物品信息3、类层次图 公司库存管理系统中四个类的类层次wiring类 dvd类tv类 tv_dvd类
14、公司库存管理系统中四个类的uml图 wiringname10:charcolor10:charaddress50:charfactory50:chartype20:charyear:intmonth:intday:intnumbe:intwiring()wiring() pay():void 虚基类wiring dvdprice2:float dvd( )set2( ):voidpay( ):void派生类tv tvprice1:float tv( )set1( ):voidpay( ):void派生类dvd dvdtv( ) price:float dvdtv( ) set3( ):void
15、 pay( ):void派生类dvdtv 界面设计及各功能实现 界面设计 系统调试与结果分析 调试程序中,出现许多问题,出现少花括号、分号、对象不明确、对成员函数运用范围不明确、派生类主体设计不完全的等问题,检查时,我觉得没问题,就盲目的去运行程序,可系统还是提示说有错误:某某函数非法定义,后来才一步步在系统提示下改过来,花了我好长时间,其实这份程序有几个不足之处,太复杂,要是是分几个文件一起编译这样出现错误也容易找出来,也比也较方便,那么在调试过程中也就不会出错,更容易找出错误。在这个系统中,用户可以根据系统的提示分别执行用户自己想实现的功能,比如:在物品信息录用功能中,用户可以输入自己想输
16、入的物品信息;在显示物品功能中用户可以查看系统所保存的所有物品信息;在添加物品功能中,用户可以根据自己的需要添加自己想添加的相关物品信息;在查找物品功能中用户可以根据自己的需要输入自己想查找的物品名称,然后查找用户想查找的物品的所有相关信息;在删除物品功能中用户可以根据自己的需要输入自己想删除的物品名称,然后进行删除;在物品保存功能中,当用户需要实现物品的保存时,系统会自动打开文件然后将用户输入的数据保存在用户给定的文件中。 报告总结 在这两周的上机实验当中,我发现了许多问题,都是自己无法完成的,我也认识到自己在学习c+课程中学习的不够好,同时在编程当中我也发现自己的c语言学的不好,比如fou
17、循环while循环都掌握的不够熟练。在c+中学的派生类这块没学懂,自己平常的上机操作掌握不够熟练,掌握的知识不够全面,有待更深的去研究学习。通过这次课程设计我知道了学习这门课的重要性,我要端正自己的学习态度,多花时间去学习c+,为以后学习更高级的语言奠定基础,还要付诸于实践当中。 附加源程序#include#include#include#includeusing namespace std;class jiadianpublic:char pinming10;char yanse10;char changjia50; char dizhi50; int year,month,day; cha
18、r xinghao20;int number; jiadian() /构造函数jiadian() /析构函数virtual void pay() /设置价格函数;class tv:virtual public jiadian public:tv() void set1(char *pm,char *ys,char *cj,char *dz,int y,int m,int d,char *xh, int num)strcpy(pinming,pm);strcpy(yanse,ys);strcpy(changjia,cj);strcpy(dizhi,dz);year=y;month=m;day=d
19、;strcpy(xinghao,xh);number=num;void pay() price1=3000; /普通电视机售价float price1;class dvd:virtual public jiadianpublic:dvd() void set2(char *pm,char *ys,char *cj,char *dz,int y,int m,int d,char *xh, int num)strcpy(pinming,pm);strcpy(yanse,ys);strcpy(changjia,cj);trcpy(dizhi,dz);year=y;month=m;day=d;strc
20、py(xinghao,xh);number=num;void pay() price2=2000; /dvd售价float price2;class dvdtv:public jiadianpublic:dvdtv() void set3(char *pm,char *ys,char *cj,char *dz,int y,int m,int d,char *xh, int num)strcpy(pinming,pm);strcpy(yanse,ys);strcpy(changjia,cj);strcpy(dizhi,dz);year=y;month=m;day=d;strcpy(xinghao
21、,xh);number=num;void pay() price3=(2000+3000)*80/100; /带dvd的普通电视机售价float price3;tv t120;dvd d120;dvdtv dt120;static int k(0),k1(0),k2(0);void main() /主函数for(int i=0;i1;i+)system(color 5a); sleep(100);void caidan();caidan();void caidan()void employw(); /信息录用void addw(); /添加物品信息void shown(); /显示物品信息vo
22、id selectw(); /删除物品信息void searchw(); /查找物品信息void savew(); /保存物品信息int a1;cout* * *;cout* 欢迎进入公司库存管理系统 *;cout* *;cout*;coutn;cout*功能菜单*;cout* *;cout*1、录入物品信息*; cout*2、添加物品信息*;cout*3、显示物品信息*;cout*4、查找物品信息*;cout*5、删除物品信息*;cout*6、保存物品信息*;cout*7、 退出 *;cout* *;cout*;couta1;while(a1!=1&a1!=2&a1!=3&a1!=4&a1!
23、=5&a1!=6&a1!=7) couta1;if(a1=1) employw(); if(a1=2) addw(); if(a1=3) shown();if(a1=4) searchw(); if(a1=5) selectw(); if(a1=6) savew();if(a1=7) coutn退出程序!n;void employw()char a10,b10,c50,d50,h20;int m,n,e,n1,rr,i1,v,i=9,r1;couti;if(i=1)coutn请输入普通电视机的相关信息!n;for(v=0;v20;v+)couta;coutb;coutc;coutd;coutm
24、ne;couth;coutn1;t1v.set1(a,b,c,d,e,m,n,h,n1);t1v.pay();k+;couti1;while(i1!=1&i1!=2) couti1; if(i1=1) system(cls);coutn请继续输入普通电视机的相关信息!n; else break;if(i=2)coutn请输入dvd的相关信息!n;for(v=0;v20;v+)couta;coutb;coutc;coutd;coutmne;couth;coutn1;d1v.set2(a,b,c,d,e,m,n,h,n1);d1v.pay();k1+;couti1;while(i1!=1&i1!=
25、2) couti1; if(i1=1) system(cls);coutn请继续输入dvd的相关信息!n;else break;if(i=3)coutn请输入带dvd的普通电视机的相关信息!n;for(v=0;v20;v+)couta;coutb;coutc;coutd;coutmne;couth;coutn1;dt1v.set3(a,b,c,d,e,m,n,h,n1);dt1v.pay();k2+;couti1;while(i1!=1&i1!=2) couti1;if(i1=1) system(cls);coutn请继续输入带dvd的普通电视机的相关信息!n;if(i1=2) break;c
26、outi1;while(i1!=1&i1!=2) couti1;if(i1=1) system(cls);coutn请输入数字输入相对应的物品信息(1-普通电视机 2-dvd 3-带dvd的普通电视机):;if(i1=2) break;coutrr;while(rr!=1&rr!=2) coutrr;if(rr=1)ofstream ofile(jiadian.txt,ios_base:out);for(v=0;vk;v+)ofilen普通电视机的名称:t1v.pinmingn普通电视机的颜色:t1v.yansen普通电视机的出厂的厂商:t1v.changjia n普通电视机的出厂地址:t1v
27、.dizhin普通电视机的出厂日期:t1v.year/t1v.month/t1v.dayn普通电视机的型号:t1v.xinghaon普通电视机的单价:t1v.price1n普通电视机的数量:t1v.numberendl;for(v=0;vk1;v+)ofilendvd的名称:d1v.pinmingndvd的颜色:ndvd的出厂的厂商:d1v.yansed1v.changjiandvd的出厂地址:d1v.dizhindvd的出厂日期:d1v.year/d1v.month/d1v.dayndvd的型号:d1v.xinghao ndvd的单价:d1v.price2ndvd的数量:d1v.number
28、endl;for(v=0;vk2;v+)ofilen带dvd的普通电视机的名称:dt1v.pinmingn带dvd的普通电视机的颜色:dt1v.yansen带dvd的普通电视机的出厂的厂商:dt1v.yansen带dvd的普通电视机的出厂地址:dt1v.dizhin带dvd的普通电视机的出厂日期:dt1v.year/dt1v.month/dt1v.day n带dvd的普通电视机的型号:dt1v.xinghaon带dvd的普通电视机的单价:dt1v.price3n带dvd的普通电视机的数量:dt1v.numberendl;ofile.close();coutn物品信息已储存!;coutr1;wh
29、ile(r1!=1) coutr1;if(r1=1) system(cls);caidan(); if(r1=2) coutn退出程序!;if(rr=2) coutr1;while(r1!=1&r1!=2) coutr1;if(r1=1) system(cls);caidan(); if(r1=2) coutn退出程序!;void addw() /添加物品信息函数void caidan(); /菜单函数char a10,b10,c50,d50,h20;int m,n,e,n1,rr,i1,v,i=9,r1;couti;if(i=1)coutn请输入普通电视机的相关信息!n;for(v=k;v2
30、0;v+)couta;coutb;coutc;coutd;coutmne;couth;coutn1;t1v.set1(a,b,c,d,e,m,n,h,n1);t1v.pay();k+;couti1;while(i1!=1&i1!=2) couti1; if(i1=1) coutn请继续输入普通电视机的相关信息!n; else break;if(i=2)coutn请输入dvd的相关信息!n;for(v=k1;v20;v+)couta;coutb;coutc;coutd;coutmne;couth;coutn1;d1v.set2(a,b,c,d,e,m,n,h,n1);d1v.pay();k1+;
31、couti1;while(i1!=1&i1!=2) couti1; if(i1=1) coutn请继续输入dvd的相关信息!n; else break;if(i=3)coutn请输入带dvd的普通电视机的相关信息!n;for(v=k2;v20;v+)couta;coutb;coutc;coutd;coutmne;couth;coutn1;dt1v.set3(a,b,c,d,e,m,n,h,n1);dt1v.pay();k2+;couti1;while(i1!=1&i1!=2) couti1; if(i1=1) coutn请继续输入带dvd的普通电视机的相关信息!n;if(i1=2) break
32、;couti1;while(i1!=1&i1!=2) couti1;if(i1=1) coutn请输入数字输入相对应的物品信息(1-普通电视机 2-dvd 3-带dvd的普通电视机):;if(i1=2) break;coutrr;while(rr!=1&rr!=2) coutrr;if(rr=1)ofstream ofile(wiring.txt,ios_base:out);for(v=0;vk;v+)ofilen普通电视机的名称:t1v.pinmingn普通电视机的颜色:t1v.yansen普通电视机的出厂的厂商:t1v.changjia n普通电视机的出厂地址:t1v.dizhin普通电视
33、机的出厂日期:t1v.year/t1v.month/t1v.dayn普通电视机的型号:t1v.xinghaon普通电视机的单价:t1v.price1n普通电视机的数量:t1v.numberendl;for(v=0;vk1;v+)ofilendvd的名称:d1v.pinmingndvd的颜色:ndvd的出厂的厂商:d1v.yansed1v.changjiandvd的出厂地址:d1v.dizhindvd的出厂日期:d1v.year/d1v.month/d1v.dayndvd的型号:d1v.xinghao ndvd的单价:d1v.price2ndvd的数量:d1v.numberendl;for(v=
34、0;vk2;v+)ofilen带dvd的普通电视机的名称:dt1v.pinmingn带dvd的普通电视机的颜色:dt1v.yansen带dvd的普通电视机的出厂的厂商:dt1v.yansen带dvd的普通电视机的出厂地址:dt1v.dizhin带dvd的普通电视机的出厂日期:dt1v.year/dt1v.month/dt1v.day n带dvd的普通电视机的型号:dt1v.xinghaon带dvd的普通电视机的单价:dt1v.price3n带dvd的普通电视机的数量:dt1v.numberendl;ofile.close();coutn物品信息已储存!;coutr1;while(r1!=1)
35、coutr1;if(r1=1) system(cls);caidan(); if(r1=2) coutn退出程序!;if(rr=2)coutr1;while(r1!=1&r1!=2) coutr1;if(r1=1) system(cls);caidan(); if(r1=2) coutn退出程序!;void shown() /显示物品信息coutn从文件中读取物品信息n;char ch;int nn;ifstream ofile(jiadian.txt);while(ofile.get(ch)coutch;ofile.close();coutnn;while(nn!=1&nn!=2) cout
36、nn;if(nn=1) system(cls); caidan(); if(nn=2) cout退出程序!n;void searchw() /查找物品信息void caidan();char namestr20;int rr;int i,j;coutrr;while(rr!=1&rr!=2&rr!=3) coutrr;if(rr=1)coutnamestr;for(i=0;ik;i+)if(strcmp(namestr,t1i.pinming)=0)coutn普通电视机的名称:t1i.pinmingn普通电视机的颜色:t1i.yansen普通电视机的出厂的厂商:t1i.changjia n普通电视机的出厂地址:t1i.dizhin普通电视机的出厂日期:t1i.year/t1i.month/t1i.dayn普通电视机的型号:t1i.xinghaon普通电视机的单价:t1i.price1n普通电视机的数量:t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年广东省深圳市中考英语押题试卷(二)
- 上海市市辖区(2024年-2025年小学五年级语文)统编版竞赛题((上下)学期)试卷及答案
- 上海市县(2024年-2025年小学五年级语文)统编版期末考试(下学期)试卷及答案
- 海南省陵水黎族自治县2022-2023学年四年级上学期期中英语试题
- 卫生监督机构公益目标评估指标调查表
- 【初中物理】光现象+单元练习-+2024-2025学年人教版物理八年级上册
- 河北省保定市定州市2024-2025学年高二上学期11月期中物理试题(无答案)
- 职业学院轮机工程技术专业人才培养方案
- 厨房用瓮非贵金属制市场需求与消费特点分析
- 戒烟用药物制剂市场需求与消费特点分析
- 领款单模板(B5的纸).xls
- 总公司与分公司合并报表编制举例
- 锦纶染色过程的问题与解决方法
- 土地租金发放表
- 医院水电安装施工方案
- 计算机网络考试重点整理
- 北师大版数学八上4.3.1《正比例函数的图像与性质》(22张).ppt课件
- 高一物理的必修的一期中考试试卷解析告
- 频谱分析与处理PPT课件
- 校园放心食品安全工程A级示范食堂量化评定标准
- 2012土壤学 第十五章 土壤分类与调查技术ppt
评论
0/150
提交评论