课程设计报告
一、 需求分析
描述问题,简述题目要解决的问题是什么?规定软件做什么。
编写一个简单的4S店汽车销售管理程序,帮助管理汽车销售信息。要求具有汽车销售信息管理的功能。汽车销售信息管理包括汽车销售基本信息的录入、删除和修改等功能。本课程设计的具体任务就是设计一个汽车销售管理信息系统,它是一款利用现代计算机代替人工处理,从而减轻工作人员的劳动强度,提高工作质量和效率,提高信息资源的利用率和企业管理水平的实用销售管理系统。
运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
本题程序应提供的基本管理功能有:
添加:即增加一个汽车到汽车信息中;
显示:即在屏幕上显示所有汽车的信息。
存储:即将汽车信息保存在一个文件中。
装入:即将文件中的信息读入程序。
查询:可根据汽车数据查找汽车信息。若找到,显示在屏幕上。
6) 修改:可修改汽车信息。
二、算法设计
1.设计思想:程序结构(UML图),重要的数据结构; 主要算法思想(文字描述); 4S店汽车销售管理
4S店汽车销售管理系统
增加一个汽车到汽车信息中
将汽车信息保存在一个文件中
根据汽车编号修改汽车信息
根据汽车编号查找汽车信息
在屏幕上显示所有汽车的信息
创建汽车类,每条汽车信息都用该类来实现,包含1汽车型号,2汽车编号,3汽车价格,4是否售出,5汽车颜色,6汽车品牌,7生产厂家,8出厂时间,9产品售况,10外观描述等。用一个单向链表来管理汽车信息,作为链表的值指针指向这些类对象,通过链表的遍历可以操作这些数据。
2.设计表示:各个及其作用,每个函数的功能要详细描述;
本课程设计包含三个类,分别是:节点类、链表类、汽车类,每个类都有成员函数,其中节点类仅有构造函数,用于节点类的初始化;在链表类中不仅有Link();//构造函数,初始化变量;
bool linkIsEmpty();//判断链表是否为空;
void linkInsert(Node *newnode);//向链表中插入新的结点;
bool linkDelete(int nid);//从链表中删除的结点;
void linkClear();//清空链表中数据;
void linkView();//查看链表中数据;
Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针;
Node* getHead();//获取头指针;
在汽车类中,Car();
Car::Car()//构造函数,对变量进行初始化;
Link();//调用成员对象的构造函数;
carLoad();//从文件中读取数据,创建链表;
void carClear();//清空汽车记录;
void carInsert();//判断汽车编号是否存在,插入汽车记录设置数据被修改;
void carDelete();//删除汽车记录;
void carFind();//查找某编号的汽车记录;
void carModify();//修改某编号的汽车信息,链表为空的情况,获得找到的结点的指针,指针值不为(为)NULL时;
void carView();//显示所有汽车的记录;
void carLoad();//从文件中读入数据,创建链表,关闭文件,读取汽车信息;
void carSave();将数据保存到文件;
void Exit();//退出程序//判断数据是否修改;
void showMenu();//显示菜单;
void showTip();//显示操作提示;
void doMenu(char n);//执行相应菜单项功能;
在主函数main()函数中,运用switch开关语句进行选择菜单的编写,输入相应的数字以实现对应的功能。运用文件保存软件项目信息,并可实现对相关信息的读取。运用system("cls")对所有数据进行清除操作即清除屏幕。
3.实现注释:任务中各项要求的实现程度;在完成基本要求的基础上
运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
程序应输入不少于10个汽车信息,应考虑到汽车型号相同的情况。这个要求的完成情况与实现程度与要求相比稍有瑕疵,因为我对于汽车的情况了解有限,所以仅实现了以下几个功能:清空:清除所有汽车数据,添加:增加一个汽车到汽车信息中,删除:删除指定汽车数据,查找:根据汽车数据查找汽车信息,修改:可修改汽车信息,显示:在屏幕上显示所有汽车的信息,存储:将汽车信息保存在一个文件中,退出:安全的退出本系统