欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    +c+课程设计报告---南阳康佳公司的设备管理系统大学论文.doc

    • 资源ID:91665209       资源大小:343.50KB        全文页数:17页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    +c+课程设计报告---南阳康佳公司的设备管理系统大学论文.doc

    C+课程设计报告课程设计题目南阳康佳公司的设备管理系统专 业:软件工程目录(1)设计目的 (2)(2)设计要求 (2)基本要求和创新要求(3)设计方法 (3)模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)(4)总体设计 (3)设计系统的类层次,类层次中各个类的描述,类中各个成员函数(5)调试与测试 (14)调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施(6)实验总结 (15) 1.设计目的:1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2. 设计要求: 1、 基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 2、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 3. 设计方法功能:南阳康佳公司现有以下设备:普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。 根据系统功能,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; 4.总体设计1、系统功能模块图系统登录设备管理系统系统分析添加设备信息输出设备信息查询设备信息删除设备信息保存设备信息2、类的层次设计定义四个类,一个equipment基类,包含设备(价钱,编号),三个派生类:TV,DVD,DVD_TV。定义一个manage类,在里面实现文件异常处理。3、功能设计(1)添加删除功能:能根据设备的变动情况,添加记录;(2)删除功能: 删除记录;(3)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。(4)删除功能: 删除记录查询功能:能根据编号进行查询; 4系统流程图开始输入菜单选择选择调用函数指令输出开始5界面设计图1:运行首界面图2添加设备信息界面图3设备信息查找界面图4设备信息删除界面6部分代码设计#include<iostream>#include<fstream>#include<string>#include<iomanip>using namespace std;class machine /定义machine为基类protected:char name20;float price;int machineno;static int n;public:machine();machine() void setname(char *names);char *getname();void setprice(float pr);float getprice();int getnum(); /以下都为machine的派生类class TV: virtual public machine /TV和DVD都定义虚基类公有继承public:TV() ;class DVD: virtual public machinepublic:DVD() ;class DVD_TV: public TV, public DVDpublic:DVD_TV()float getprice(float p1,float p2);int machine:n=0; /初始化机器编号machine:machine() /每增加一台机器编号自动加一machineno=n+;void machine:setname(char*names) /用来设置机器的品名strcpy(name,names);char *machine:getname() /用来获取机器的品名return name;void machine:setprice(float pr) /初始化机器价钱 price=pr;float machine:getprice() /获得机器价钱return price;int machine:getnum() /获取机器编号return machineno;float DVD_TV:getprice(float p1,float p2) /计算DVD_TV的方法return (p1+p2)*0.8;/文件异常处理class fileexceptionpublic:fileexception():message("file is not created!") const char *what() constreturn message;private:const char *message; machine *j1; /定义一个基类指针对象 TV T1; DVD D1; DVD_TV DT1; /以下为函数声明void add();void output();void search();void deleteinf();void save();void main()cout<<"nn 欢迎进入南阳康佳设备管理系统"<<endl<<endl;cout<<" 08110502 曹亚琪 "<<endl<<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "<<endl<<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "<<endl<<"* * 1:添加设备信息 2:输出设备信息 3:查询设备信息* *"<<endl<<"* * 4:删除设备信息 5:保存设备信息 0: 退出系统 * *"<<endl <<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl int choose; cin>>choose; switch(choose) case 0: cout<<"欢迎再次使用该系统!"<<endl; exit(0); break; case 1: add(); break; case 2: output(); break; case 3: search(); break; case 4: deleteinf(); break; case 5: save(); break; default: cout<<"输入无效!请重新输入!"<<endl; break; while(!0);void add()char names20;int kind,choose; cout<<"请输入machine的类型(1·普通电视机 2·DVD 3·带DVD的电视机):" ; cin>>kind;while(kind<1 |kind>3) cout<<"输入错误!请重新选择:" cin>>kind;cout<<"请输入品名:"cin>>names;switch(kind)case 1:j1=&T1;break; case 2:j1=&D1;break;case 3:j1=&DT1;break;if(kind=1|kind=2) j1->setname(names); float price; cout<<"价格为:" cin>>price; j1->setprice(price); cout<<"该产品的相关信息为:"<<endl; cout<<"编号为:"<<j1->getnum()<<" 该产品名称为:"<<j1->getname()<<" 价格为:"<<j1->getprice()<<endl;else j1->setname(names); DT1.setname(names); cout<<"该类型为:"<<DT1.getname();float price1,price2,price3;cout<<"请输入上述普通电视机的价格:"cin>>price1;cout<<"请输入上述DVD的价格:" cin>>price2;price3=(price1+price2)*8/10;DT1.setprice(price3); cout<<"该产品的相关信息为:"<<endl;cout<<"编号为:"<<j1->getnum()<<" 该产品名称为:"<<DT1.getname()<<" 价格为:"<<DT1.getprice(price1,price2)<<endl; cout<<"是否将该产品信息存入文件:(1、是 2、否):"cin>>choose;while(choose!=1 &&choose!=2) cout<<"输入错误!请重新选择:"cin>>choose;if(choose=1)save();void output()ifstream infile("南阳设备管理系统.txt",ios:in);tryif(!infile)throw fileexception();/捕获由throw表达式抛掷的异常catch(fileexception fe)cout<<fe.what()<<endl;exit(0);cout<<"从文件中读取的数据如下:"<<endl;char line101;for(int i=0;i<3;i+) infile.getline(line,100); cout<<line<<endl;infile.close();void search() char line100;int i=1,n;cout<<"请输入要查询的序号:"cin>>n;ifstream infile("南阳设备管理系统.txt",ios:in);try if(!infile) throw fileexception();catch(fileexception fe) cout<<fe.what()<<endl; exit(0);while(!infile.eof() infile.getline(line,100); if(i=n) cout<<line<<endl; break; i+; if(infile.eof() cout<<"没找到相应的产品!"<<endl;void deleteinf()ifstream ifile("南阳设备管理系统.txt");ofstream ofile("temp.txt");char line100;int i=1,n; cout<<"请输入要查询的序号:"cin>>n; while(!ifile.eof() ifile.getline(line,100); /读取完之后,从读取的内容中删除该终止字符if(i!=n)ofile<<line<<endl;i+;ifile.close();ofile.close();system("del 南阳设备管理系统.txt");system("rename temp.txt,南阳设备管理系统.txt");cout<<"该产品已成功删除!"<<endl;cout<<"查看是否已被删除?(0-否、1-是):"int number;cin>>number;if(number)output();void save()ofstream ofile("南阳设备管理系统.txt",ios_base:app);/抛出错误try if(!ofile) throw fileexception(); catch(fileexception fe) cout<<fe.what()<<endl;exit(0);/写入文件ofile<<"编号为:"<<j1->getnum()<<" 该产品名称为:"<<j1->getname()<<" 价格为:"<<j1->getprice()<<endl;ofile.close();cout<<"该厂品信息已存入文件!"<<endl;5.调试与测试(1)调试方法:在编译连接前先进行静态检查,对每个函数模块出现的细节语法错误逐步改正。再进行系统编译连接,根据编译器提示错误类型逐个修正。调试一个函数模块的程序时,将其他模块及相应的函数定义用注释语句注释,至顶向下,顺序化,模块化。(2)测试遇到的问题及解决:(1)输入的数据无法查找。解决方法:调用嵌套查找函数,将实参传递至相应形参,定位数据,并输出。(2)测试某段文本,当出现句子“真便宜!)这令”后,出现严重乱码错误。经过仔细排查,发现是分句函数引起的问题,原因是“!”的后一个字节,和“)”的前一个字节,正好是句号“。”的两个字节,由此导致错误分句。查出此错误后,顺利解决此问题。(3)测试某段文本,检查文本向量序列时,发现其句数,与真实情况不符。经过排查,程序某处,pos值应该为-1才能应对所有可能出现的情况。6.实验总结:(1)刚开始,本来是想用两三个类来封装所有信息和功能函数,但由于类成员相互调用、文件读写等老出现错误和问题,所有基本上没有使用这种方法。经过查阅相关资料和参考指导老师给出的模型,决定采用一个类加一个主函数的办法来实现全部功能。显然这种方法不适合C+面向对象的要求,但由于本人领悟不够,再加上时间短,没有更好的方法解决,现在只能试用下。我也希望以后能再完善这个程序,用类封装来实现全部功能。当然,我也有想过加入管理员类,以实现必须得用内置的管理员账号和密码才能登录系统,这种想法刚开始能够在自己写的类里实现,但加入一些功能模块后,基本功能出现缺失,所以就剔除掉这个拓展功能模块。(2)从课程设计的目的出发,通过课程设计的各个环节,通过C程序课程设计实例,我掌握了C语言程序设计基础,学会运用基本算法,程序控制结构,学会了调试程序的方法,培养严谨的思维。并逐步加深了对知识的理解与实际运用,学会分析和解决问题将所学知识联系实际,提高了我对语言学习的积极性,增强了自己的动手能。(3)在遇到实际操作问题时,尝试用各种思路,查询相关知识,与他人交流,利用资源,从问题中思考收获。 17

    注意事项

    本文(+c+课程设计报告---南阳康佳公司的设备管理系统大学论文.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开