1、南京工程学院 课程设计说明书(论文) 题目小型超市商品销售管理系统 课 程 名 称面向对象程序设计 院 ( 系 ;、 1 部、 中心) 专业 班级 学 生 姓 名 学号 设 计 地 占 指 导 教 师 设计起止时间:2007年12月22日至2007年12月28I 3详细设计 4效果及存在问题. 4. 1效果截屏. 错误!未定义书签。23 错误!未定义书签。23 27 课程设计任务书.2 1功能描述.7 2概要设计.7 2.1类的设计.7 2. 2流程图.8 错误!未定义书签。11 4.2存在问题 5心得体会.28 3 6参考文献.28 南京工程学院 课程设计任务书 课 程名称 面向对象程序设计
2、 院 (系、 部屮心) 专业 班级 起止日期2007年12月22 H至28日 指导教师 1课程设计应达到的目的 通过课程设讣加深理解课堂教学内容,熟练学握C+语言的基本知识和技能;学握 面向 对象程序设计的皋木思路和方法;掌握指针、类的封装与继承、文件的打开和保存、 链表应 用;利用所学的基本知识和技能,解决而向对象程序设计问题。培养分析、解决 问题的能力; 提高学生的科技论文写作能力。 2课程设计题目及要求 题目:小型超市商品销佚管理系统 要求: 某小型超市销售的商品有四类:食品、化妆品、生活用品利饮料。毎类商品都有商 品名 和商品利润每类商品还有区别于其他类的特殊信息,例如食品冇批发商,化
3、妆品 有品牌,饮 料冇生产厂家。木系统完成如下功能: (1)输入商品的基本信息。 (2)根据商品名査询某个商品的情况。 (3)计算并显示商品的利润。o I小 c 5 3课程设计任务及工作虽的要求(包括课程设计计算说明书、图纸、实物样品等耍求 (1)分析系统屮的各个实体之间的关系及其属性和行为。 (2)根据问题描述,设计系统的类层次,完成类层次中各个类的描述(包括属性 和方法), 完成类中各个成员函数的定义。 (3)完成系统的应用模块,进行功能调试。 (4)系统设汁要实用,编程简练,功能全而。程序屮要有异常处理。 (5)界而设计要以用户为小心,操作方便、美观大方。(要有选择性捉示) (6)按照课
4、程设计说明书的格式规范撰写课程设计说明书,其小正文包括: 1.功能描述:对系统要实现的功能进行简明扼耍的描述。 2.概要设计:根据功能描述,建立系统的体系结构,即将整个系统分解成若干子 功能 模块,并用框图表示各功能模块Z间的衔接关系,并简要说明各模块的功能。 3.详细设计:详细说明各功能模块的实现过程,所用到的类的层次图(包括类成 员列 表)、算法、技巧等。 4.效果及存在问题:说明系统的运行效果(附上运彳亍界而图片)、存在哪些不足 以 及预期的解决办法。 5.心得体会:谈谈自己在课程设计过程中的心得体会。 (7)课程设计说明书用A4纸统一打印,装订按学校的统一要求完成。 (8)课程设计的程
5、序以软盘形式上交,文件夹名称为学生姓名及学号的组合。未经指导 教 师许町或无故不到者,缺勤率达50%的学生不能参加答辩。答辩时,设计者在5分钟 内阐述口 己的设计过程和最终结果,突出设计屮遇到的主要问题和解决方法,然后回答 教师提问。每位 学生答辩总时间一般不超过15分钟。 4主要参考文献 谭浩强.C+程序设计M .北京:清华大学出版社,2004. 吴乃陵.C+程序设计实践教程M北京:高等教育出版社,2003. 谭浩强.C+程序设计题解与上机指导M.北京:清华大学出版社,1999. 曝宙,罗代忠.C语言程序设计基础实验教程.北京:薛等教育出版社,2005. 5.课程设计进度安排 起止日期工作内
6、容 12月22 I I 12月23日 12月24日 12月25日 12月26日 12月27 H 12月28日 熟悉任务,算法设计 软件设计 软件设计 软件调试 软件调试 软件联合调试 考核 6.成绩考核办法 课程设计成绩的评定:根据设计的完成情况、程序的编制质量、独立设计能力以及答 辩情 况综合衡量,由答辩小组讨论决定。原则上按以下公式计算: 课程设计成绩=工作表现X 30%+设计成果X 40%+考核测评X 30% 工作表现:独立工作能力及设计过程的表现。占总成绩的30%。 设计成果:设计说明书(计算书、论文)、图纸、程序、作品等的质量。占总成绩的40%。 考 核测评:课程设计结束前,指导教师
7、应采用考试或答辩等形式对所指导的学生进 行测评。 测评成绩占总成绩的30%。有创新的同学根据貝体情况适当加分。 教研室审查意见: BvJLzl 1 1 vZ vx III 教研室主任签字: 年 月 日 7 院(系、部、中心)意见: 主管领导签字: 年 月 日 功能描述 某小型公司,主要有四类人员:经理、加职技术人员、销售经理和加职推销员。现在, 需要存储这些人员的姓 名、编号、级别、当月薪水,计算月薪总额并显示全部信息。 要求: (1)其中,人员編号在牛成人员信息时同时生成,每输入一个人员信息编号顺序加1。 (2)程序对所有人员有提升级别的功能 (3)月薪的计算方法是:经理京固定月薪,兼职技术
8、人员按工作小时数领取月薪,兼职推 销员的报酬按该推 销员当月销传额提成,销供经理既拿固定月薪也领取销售提成。 (4)能按姓乳或者編号显示、脊找、增加、删除和保存各类人员的信息。 概要设计 2.1类的设计 2.2流程图 (1)主函数流程图 9 (2)添加函数(左图)和删除函数(右图)的流程图 开始 T 打开文件 1 输 getd 入ate() 开始 V 训Search。函数 关闭文件 (3)查询函数流程图 商品已删除 II 详细设计 1.主函数设计#include #include #include #Include #includc #include #include void main()
9、system(cls); cout ,nnnntt*nzz tt*n *n 欢迎使用小型超M商品销售管理系统(HYY)*n *n Desined by韩永扬206050529*n *n (按任意键进入)*n *n *n gctch (); food f; makeup m; drink d: live 1; while(l) A: system(cls); int choice; int x; cout*nntttt主菜单nntttt(l)添加商品品种n ntttt(2)査询商品n z,ntttt(3)删除商品nntttt(4)退出x: swi tch(x) case 1: system(cl
10、s); cout ,znnnnnntt 请选择添加哪一类:nntttt ( 1 )食品类ntttt (2)化妆 品类ntttt (3)饮料类ntttt (4)生活用品 类ntttt (5)返回choice; switch(choice) case 1: system( ,zcls3 ; f. addfO; break; case 2: systcm(cls); m. addm(); break; case 3: system(cis); d. addd(); break; case 4: systcm(cls); l.addlO; break; case 5: system (cis); br
11、eak; break; case 2: systemCcls); cout z,nnnnnntt 请选择查询哪一类:nntttt (1)食品类*ntttt (2)化妆品类rendl; cinchoicc; switch(choice) (case 1: systemCcls); f. searchf (); break; case 2: systemC*cls /Z); m. searchmO ; break; case 3: systemC zcls/,); d. searchd (); break; case 4: systemC zcls/,); 1. search!(); break;
12、 case 5: system(cls); break; break; case 3: system(cls); cout /znnnnnntt 请选择删除哪节类:y *nntttt (1)食品 类ntttt (2)化妆品类ntttt (3)饮料类ntttt (4)生活用 品类namc; cout*ntt请输入商品售价:cinoprice; coutquantity; void spbase:showdate() (coutnn商品基本信息如下:; coutnntt商晶名称:; coutname; cout /znntt 商品售价:;coutoprice; coutnntt商品进价:;cout
13、iprice; cout z,nntt 商品库存量:;coutquant i ty; prof=(opricc-iprice)*quanti ty; cout /,nntt 商品利润为:;coutprof; void spbase:add()/添加函数的设计 t=l; ofstream file(HYY txt, ios:out|ios:ate): if(!file) cout文件打开失败! getch(); exit (1); / void spbase:search()查询函数的设计 whi le(!fi le. eof () 删除函数的设计 spbase pl: pl. getdateO
14、 ; file write(reinterpret_cast( reinterprct_cast强制转换file close0; char name4 JO; coutn请输入生活用品名称 cinname4; fstream file(HYY. txt, ios:in); if (!file) cout文件打开失败!; getchO ; exit (1); 设标志位 spbase pl: file read(rcintcrprcl_casi( 正确显示,指针还没到 末尾继续 if(strcmp(pl. name, name4)=0) getchO ; flag-7 7:; ; break; f
15、ile.read(reinterpret_cast( if (flag!-z z ) ) coutr该商品已被删除! ”);getchO ; file, close(); void spbase:remove 0 t=0;search (); 3.食品类设iKfood) class food:pubic spbase private: char pfs10; public: void getdatef() spbase:getdateO ; coutntt请输入商品批发商:;cinpfs; void showdatef() spbase:showdate(); cout*nntt商品批发商:;
16、coutpfs; void addf () t=l; ofstream fileCHYYl txt, ios:out|ios:ate); if(!file)I I I l cout*文件打开失败!; getchO ; exit(1); food f; f. getdatef (); file, write(reinterpret_cast( file close(); void searchf() char namcl10; coutn请输入食品名称:;cinnamel; fstream file(HYY1. txt, ios:in); if (!file) cout文件打开失败!; getc
17、hO; exit (1); char flag二a; food f; fiIo. read(rcinterprct_cast( while(!file, eof () if (strcmp(f. name, name 1) 0) getchO ; flag二z z ; ; break: file, read(reinterpret_cast( if (flag! =t z z ) ) coutr该商品已被删除! “);getchO; file. closeO ; void removef() t-0;searchf ():. ; 4.化妆品类设计(makeup) class makeup:pu
18、blic spbase private: char p讥10); public: void geIdatemO spbase:getdeiteO ; coutntt请输入商品品牌:; cinpp; void showdatemO spbase:showdate (); cout /znntt 商品品牌:; coutpp; void addmO t=l: ofstream file(HYY2 txt, ios:out|ios:ate); if(!file) cout文件打开失败!; gelchO ; exit(1); makeup m; m. getdatemO ; file, write(re
19、interpret_castchar*( file, close0; 二 void searchmO char name210; cout /zn 请输入化妆品名称:; cinname2; fstream file(HYY2 txt, ios:in); if(!门2) cout文件打开失败!; getchO ; exit(l); char flag二a* ; makeup m; file read(reinterpret_cast( while(!file. cof () if (strcmp(m name, namc2) =0) m. showdatemO ; getchO ; flag =
20、,z z ; ; break; file rcad(rcinterprct_cast( if (flag!二z z ) ) coutr该商品已被删除!); gctchO ; file close(); void rcmovcmO t=O;searchm(); ; 5.饮料类设计(drink) class drink:public spbase private: char factory10; public: void getdatedO spbase:getdateO : coutntt请输入商品生产厂家:cinfactory; AtKfl A J void showdatedO i spba
21、se:showdatc (); coutnntt商品生产厂家:; coutfactory: void addd() t=l; ofstream file( /zHYY3 txl, ios: :out | ios:ate); if(!filc) coul文件打开失败!getchO ; exit (1); drink d; d. getdatedO : file wri te(reinterpret_cast( file close(); voi d scarchdO char naine310: 21 coutn请输入饮料名称:; cinname3; fstream file(HYY3 txl,
22、 ios:in); if (!filc) cout文件打开失败!; getchO ; exit(1); char flag =,a a ; ; drink d; file. read(reinterpret cast( while(!iile. eof 0) if (strcmp (d name, name3) =0) d. showdatedO ; getchO ; flag =,z; break; 111111VV vJ VX wl I I wk file readdeinterpietCastXchaEX if(flag!=z)z) coutr该商品已被删除!); getchO : fi
23、le close(); void removed() t=0;searchd(): ; 6.生活用品类设计(li9) class live:public spbase public: void getdatel () spbase:getdatcO ; void showdatel() spbase:showdate(); void addl () spbase:add(); void search() spbase:search0 ; void remove!() (spbase:remove (); ; 23 效果及存在问题 4.1效果截屏 主菜单 1添加商品品种 2查询商品 3删除商品
24、“退岀 胡选择 进入主界面 卜 25 进入添加商品品种啲自菜单,选择“3 %添加”饮料类“ 请选择添加哪一类: 类类品 类品类 用品薯 活回 , 爲 饮生返 写入添加的商品基本信息 返回上一层主菜单后,选“2”,査询商品 片/类品类 品类用品 第活回总 饮生返 1212 3 3 4 4 5 5 选择“3S查询“饮料类” wGO0Cimnts und settkigscfiMy DocwnwitsBijyDetHMncpplXf 请选择查询哪一类, 输入杳询的饮料名称 X:Gc(wnemsMIJSettings肺系场 My X 请输入饮料名称:kele b d 查询到该商品,基本信息如下: 27
25、 返回主菜单,选“3,删除商品 选“3S删除饮料类” 03 i青选择删除哪类: 写入删除的商品名称 注 X X 类品 类品类 用品蒼 活回矗 饮主返 -|n|x| 删除后查询显示: wC:Oocuirwms and SetUngsBJicSftly DocumoirtsHiyjfDelMiuCW1 Mxa .|x| 该商品己被刑徐1 主菜单 “添加商品品种 2查询商品 3删除商品 4退岀 3 请选择:4- 选“4”后, 退出 “添加商品品种”的操作还存在不完善之处,进入主菜单选了 “添加商品品种”的操作,当 添加完一 种商品后,不能继续添加商品;必须选择“返回操作返回到主菜爪垂新选择“添 加商
26、胡胡种”后,才 能添加笫二种商品,也就是说不能够连续添加。 心得体会 经过一周课程设计,熟练的学握了C+语言的基本知识和技能,可以利用血向对彖程序 设计的基 本思路和方法,利川所学的基本知识和技能,解决而向对象程序设计问题。 ocimieirts anti Seninas聲永扬 *My 4.2存在问题 29 通过一个学期的Visual C+程序设计的学习, 自己感觉吸收了不少新知识。 从计算机 基础到Visual C+,我感觉充实了很多。经过自己的努力,把程序作完,作好,自己感受 到了收获的喜悦,告诉我: 一-分耕耘-分收获。 一个程序作完不难,关键是调试,修改的过程很难,不过按动F4键可以提
27、示你哪里出 错,有时少 个分号都不能调试过去。还有一点,一个细心的人作程序可能少走弯路。再次, 一般作程序不是从头到 尾作完再调试,这样很难调好,因为每编一句都可能出错,这样错谋 越枳越餌,就好的方法是毎作完 一个小段调试一次,按动F4找出其错误,一步一步循序渐 进地作完,到瑕后不至于出了很多错谋,不 知如何寻找,同样少了很多的麻烦。编程多了, 口然地经验多了,调程序就不觉得那么难了。 还右一点,要想编好、快速完成任务,就必须肓严谨的科学态度,比如说-个字却,其 至一个标 点符号的错谋都会导致错谋,这种错谋在编程中我们经常出现,育时系统能让你很 快找出,你能顺利 往下进行,但令时它提示的错误信
28、息和标点一点关系都没有,而后你把編 的程序从头到尾看了-遍, 结果花了人量的时间,人大降低了效率。其它的粗心人意错误更 是五花八门,调试起來就更加困难了, 所以在编程时一定要心细。 还仃就是耍仃耐心,因为编程是件很繁琐的丁作,如果没有耐心恐怕是编不卜-去的,比 如有的 人,有好几处错谋,就放界了,结果一事无成。 瑕后一点,就是編程时思路一定要消楚。因为编程本身就是一个严密的逻辑过程,实现 每步的 操作需要那些命令,哪些条件都是淸清楚楚,明明了了的,来不得半点遗漏。 总的来说,编程是件复杂的脑力劳动,要有科学严谨的科学态度,细心的习惯和耐心才 能作好,要 做到以上的要求我们还要做许多许多。 也就是从现在我更深刻体会到学海无涯,我要用正确的态度面对学习的挑战,理论联系 实际,进 肴步熟练掌握科学知识,武装自己的头脑,为将来走向社会打下坚实的峯础。” 参考文献 谭浩强.C+程序设计H.北京:清华大学出版社,2004. 吴乃陵.C+程序设计实践教程M.北京:高等教育出版社,2003. 谭浩强.C+程序设计题解与上机指导M.北京:清华大学出版社,1999. 屢雷,罗代忠.C语言程序设计基础实验教程.北京:高等教育出版社,2005.
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。