《汽车销售系统设计.docx》由会员分享,可在线阅读,更多相关《汽车销售系统设计.docx(29页珍藏版)》请在第一文库网上搜索。
1、课程设计汇报一、需求分析描述问题,简述题目要处理的问题是什么?规定软件做什么。编写一种简朴的4S店汽车销售管理程序,协助管理汽车销售信息。规定具有汽车销售信息管理B功能。汽车销售信息管理包括汽车销售基本信息0录入、删除和修改等功能。本课程设计的详细任务就是设计一种汽车销售管理信息系统,它是一款运用现代计算机替代人工处理,从而减轻工作人员的劳动强度,提高工作质量和效率,提高信息资源的运用率和企业管理水平的实用销售管理系统。运用面向对象B程序设计措施,规定选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文献进行读写操作。本题程序应提供的基本管理功能有:1) 添加:即增长一种汽车到汽车信息
2、中;2) 显示:即在屏幕上显示所有汽车的信息。3) 存储:即将汽车信息保留在一种文献中。4) 装入:即将文献中B信息读入程序。5) 查询:可根据汽车数据查找汽车信息。若找到,显示在屏幕上。6)修改:可修改汽车信息。二、算法设计1.设计思想:程序构造(UM1图),重要的数据构造;重要算法思想(文字描述);针指向这些类对象,通过链表的遍历可以操作这些数据。2.设计表达:各个和其作用,每个函数0功能要详细描述;本课程设计包括三个类,分别是:节点类、链表类、汽车类,每个类均有组员函数,其中节点类仅有构造函数,用于节点类的初始化;在链表类中不仅有1ink();构造函数,初始化变量;boo1IinkISE
3、mPty();判断链表与否为空;void1inkinsert(Node*newnode);向链表中插入新的J结点;boo11inkDe1ete(intnid);从链表中删除0结点;voidIinkCICar();清空链表中数据;voidIinkView();查看链表中数据;Node*IinkFincKintnid);在链表中查找id为nid结点,返回指向该结点的指针;Node*getHead();获取头指针;在汽车类中,CarO;Car:Car()构造函数,对变量进行初始化;1ink();调用组员对象的构造函数;Car1OaC1();从文献中读取数据,创立链表;voidCarCIear();清
4、空汽车记录;voidCar1nSert();判断汽车编号与否存在,插入汽车记录设置数据被修改;voidCarDCIete();删除汽车记录;voidCarFind();查找某编号的J汽车记录;voidCarModify();修改某编号B汽车信息,链表为空B状况,获得找到的结点的指针,指针值不为(为)NU11时;voidCarVieW();显示所有汽车欧I记录;VoidCar1oad();从文献中读入数据,创立链表,关闭文献,读取汽车信息;voidCarSaVe();将数据保留到文献;voidExit();退出程序判断数据与否修改;voidShoWMenU();显示菜单;voidShoWTiP(
5、);显示操作提醒;voiddoMenu(charn);执行对应菜单项功能;在主函数main。函数中,运用SWitCh开关语句进行选择菜单B编写,输入对应的数字以实现对应的功能。运用文献保留软件项目信息,并可实现对有关信息的读取。运用SyStem(”c1s“)对所有数据进行清除操作即清除屏幕。3 .实现注释:任务中各项规定的实现程度;在完毕基本规定的基础上运用面向对象B程序设计措施,规定选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文献进行读写操作。程序应输入不少于10个汽车信息,应考虑到汽车型号相似的状况。这个规定的完毕状况与实现程度与规定相比稍有瑕疵,由于我对于汽车的状况理解有限
6、,因此仅实现了如下几种功能:清空:清除所有汽车数据,添加:增长一种汽车到汽车信息中,删除:删除指定汽车数据,查找:根据汽车数据查找汽车信息,修改:可修改汽车信息,显示:在屏幕上显示所有汽车的信息,存储:将汽车信息保留在一种文献中,退出:安全的退出本系统。4 .算法设计中某些新的想法:在重要描述本算法的应用或发现其局限性之处或有新的思绪和想法方面,程序规定中没有规定该系统具有删除汽车信息的功能,之后将其加上,感觉这个系统就愈加完善了,功能愈加齐全了。三、顾客手册请按提醒进行操作,在选择功能时,应在指定的数字范围中进行输入,否则将会提醒输入错误,在进行日期输入时,形如20230629的形式输入,操
7、作完毕时,应进行保留,否则系统会自动提醒你进行保留。四、调试和测试在调试过程中碰到B某些问题时不可防止的,我会看书和上网查询去处理。例如,当我用DEV-CPP编写的程序时,编译后,运行,闪一下就没了?后来上网查询才把这个问题给处理:在return0下面加一种getchar();可以了。五、小结就本课程设计进行小结,可以包括设计过程收获,本系统日勺局限性和有待改善之处。就本课程设计,我认为非常符合当今的世界格局,汽车如今已经成为我们生活中必不可少的东西,基于4S店的汽车管理系统是非常符合生活实际的设计课题。不过,要运用C+中的类的思想来完毕还是有一定难度0o在实际编程中也确实如此,对汽车类B编写
8、,和模块化0操作说实话确实却很难,因此用了网上的资源进行了整合,不过字字都是自己编写的,其中艰苦汗水都是真正的付出,可把我给累挺了!此外还对c+和C语言的联络有了些许理解,例如在C+下的头文献是许多C语言头文献,在C+下I向头文献一般改头换面变成前面加个c,背面去掉.h,如:math.hstd1ib.hcmathcstd1ib等等。整个系统的设计过程对于我来说算是个学习、探索的过程,通过实践和对比他人开发程序的过程。在整个设计过程中,出现过诸多的问题,诸多繁琐0东西都需要反复的修改,重要是前期工作不彻底,对系统的需求分析的规定认识不够清晰,使得在后边的工作中不得不常常反复去修改。使我体会到设置
9、中每一步的重要性。因此在分析一种问题时,我们需要站在一种有远见0高度。通过本次设计,我不仅对C+语言编程有了更深刻的认识,积累了使用软件工程0思想来开发软件0经验,更重要的是学会了在看待问题时应当考虑到哪些方面和怎么处理问题。虽然时间紧迫但我学会了诸多,也感到自身知识的贫乏,但愿在后来的努力中能做出更完善的系统。六、参照文献1 .郑莉等编著C+语言程序设计(第四版)北京:清华大学出版社,2023.72 .郑莉等编著C+语言程序设计(第三版)上机用书北京:清华大学出版社3 .李春葆等编著C+程序设计学习与上机试验指导北京:清华大学出版社14,范辉等编著Visua1C+6.0程序设计简要教程高等教
10、育出版社5 .李龙潮C+程序设计实训教程北京:清华大学出版社6 .洪国胜等编著C+Bui1der程序设计轻松上手北京:清华大学出版社7,严蔚敏等数据构造(C语言版)北京:清华大学出版社,1997年4月第1版。18.胡学钢等数据构造算法设计指导北京:清华大学出版社,1999年第1版。附录:1、源程序清单:#inc1ude/cincoutSinc1ude#inc1ude#inc1ude文献输入输出流类、磁盘文献的流缓冲区类#inc1de字符串输入输出流类、字符串缓冲区流类#inc1udeSetW操作符域宽设置usingnamespacestd;c1assNOde结点类,用于寄存汽车的多种数据(pu
11、b1ic:intid;汽车编号stringname;汽车型号stringsa1e;与否售出stringco1or;汽车颜色intprice;汽车价格stringfirm:生产厂商intouttime:出厂时间Node(intnid=0,stringnname=*noname*stringnsa1e=*0*,stringnco1or=*0*,intnprice=0,stringnfirm=*0*,intnouttimc=0);构造函数,初始化变量;c1ass1ink1ink类,把数据以链表的形式存储,链表的每个结点为一种Xode对象(private:Node*hcad;链表口勺头指针,为Wde对
12、象类型的指针pub1ic:1ink();构造函数,初始化变量boo1IinkISEnIPty();判断链表与否为空void1inkinsert(Node*newnode);向链表中插入新的结点boo11inkDc1ete(intnid);从链表中删除的结点voidIinkCIear();清空链表中数据voidIinkViewO;/查看链表中数据Node*1inkFind(intnid);在链表中查找id为nid结点,返回指向该结点的指针Node*getHead();获取头指针);Node:Node(intnid,stringnname,stringnsa1e,stringnco1or,intn
13、price,stringnfirm,intnouttime)id=nid;namc=nname;sa1e=nsa1e;co1or=nco1or;price=nprice;firm=nfirm;outtime=nouttime;next=NU11;1ink-1inkO构造函数,初始化链表为空head=NU11;boo11ink:Iink1sEmptyO判断链表与否为空,空则返回truereturn(head=NU11);void1ink:1inkinsert(Node*newnode)/按id值从小到大的次序,插入新的结点Node*p1;if(!head)铢表为空的状况head=newnode;
14、e1seif(head-id)(ncwnode-id)插入到第一种结点的J状况newnode-next=head;head=newnode;)e1se插入到第二个和后来状况(p1=head;whi1e(1)(if(!(1-next)(p1-next=newnode;break:e1seif(p1-next)-idnewnode-id)(ncwnode-next=p1-next;p1-next=newnode;break;)p1=p1-next;)boo11ink:1inkDe1ete(intnid)删除结点,成功则返回true(Noe1e*p:if(head=NU11)/链表为空小J状况returnfa1se;if(head-id=nid)删除的为第一种结点的状况(head=head-next;returntrue:p=head;whi1e(p-next)删除的为第二个和后来结点的状况if(p-next)-id=nid)p-next=(p-next)-next;returntrue;)p=p-next;)returnfa1se;)void1ink:IinkC1earO/清空链表(head=NU11:)Nod