华南理工数据库大作业 汽车修理管理系统 含完整源码

合集下载

汽车管理系统的模拟全部代码

汽车管理系统的模拟全部代码

/*============================================================ ==*//* Database name: db_csms *//* DBMS name: Microsoft SQL Server 2005 *//* Created on: 2021-7-26 9:14:46 *//*============================================================ ==*/drop database db_csmsgo/*============================================================ ==*//* Database: db_csms *//*============================================================ ==*/create database db_csmsgouse db_csmsgo/*============================================================ ==*//* Table: tb_car *//*============================================================ ==*/create table tb_car (car_no char(12) not null,wh_id int not null,car_logo varchar(20) NOT null,car_type varchar(20) NOT null,car_color varchar(20) NOT null,car_price float(4) NOT null,car_date datetime NOT null,car_remark text null,constraint PK_TB_CAR primary key nonclustered (car_no),CONSTRAINT FK_CAR_WH FOREIGN KEY(wh_id) REFERENCES tb_wh(wh_id ))go/*============================================================ ==*//* Table: tb_wh *//*============================================================ ==*/create table tb_wh (wh_id int identity,wh_name varchar(20) null,wh_total_num int null,wh_addr varchar(100) null,wh_num int null,wh_remark text null,constraint PK_TB_WH primary key nonclustered (wh_id))gopackage .softeem.jdbc.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DBUtil {private static final String DRIVER = ".microsoft.sqlserver.jdbc.SQLServerDriver";private static final String USER = "sa";private static final String PASSWORD = "admin123";private static final String URL = "jdbc:sqlserver://localhost:1433;database=db_csms";static {try {Class.forName(DRIVER);} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection getConn() {Connection conn = null;try {conn = DriverManager.getConnection(URL, USER, PASSWORD);} catch (SQLException e) {e.printStackTrace();}return conn;}public static void close(ResultSet rs, Statement st, Connection conn) { try {if (rs != null) {rs.close();}if (st != null) {st.close();}if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}}package .softeem.jdbc.dto;public class WareHouseDTO {// 仓库编号private int whId;// 仓库名称private String whName;// 仓库总量private int whTotalNum;// 仓库地址private String whAddr;// 仓库库存量private int whNum;// 仓库备注private String whRemark;// 无参数的构造方法public WareHouseDTO() {}// 全参数的构造方法public WareHouseDTO(int whId, String whName, int whTotalNum, String whAddr, int whNum, String whRemark) {this.whId = whId;this.whName = whName;this.whTotalNum = whTotalNum;this.whAddr = whAddr;this.whNum = whNum;this.whRemark = whRemark;}// 去掉id的构造方法public WareHouseDTO(String whName, int whTotalNum, String whAddr,int whNum, String whRemark) {this.whName = whName;this.whTotalNum = whTotalNum;this.whAddr = whAddr;this.whNum = whNum;this.whRemark = whRemark;}// getter和setter方法public int getWhId() {return whId;}public void setWhId(int whId) {this.whId = whId;}public String getWhName() {return whName;}public void setWhName(String whName) {this.whName = whName;}public int getWhTotalNum() {return whTotalNum;}public void setWhTotalNum(int whTotalNum) {this.whTotalNum = whTotalNum;}public String getWhAddr() {return whAddr;}public void setWhAddr(String whAddr) {this.whAddr = whAddr;}public int getWhNum() {return whNum;}public void setWhNum(int whNum) {this.whNum = whNum;}public String getWhRemark() {return whRemark;}public void setWhRemark(String whRemark) {this.whRemark = whRemark;}Overridepublic String toString() {return this.whId + "\t" + this.whName + "\t" + this.whTotalNum + "\t"+ this.whAddr + "\t" + this.whNum + "\t" + this.whRemark;}}============================================================= =====================package .softeem.jdbc.dto;import java.text.SimpleDateFormat;import java.util.Date;public class CarDTO {// 车的编号private String carNo;// 利用对象建立关联,一个car对象可以找到对应的仓库信息,car和wh属于多对一的关系private WareHouseDTO wh;// 车的logoprivate String carLogo;// 车的类型private String carType;// 车的颜色private String carColor;// 车的价格private float carPrice;// 车的日期private Date carDate;// 车的备注private String carRemark;// 无参数的构造方法public CarDTO() {}// 全参数的构造方法public CarDTO(String carNo, WareHouseDTO wh, String carLogo,String carType, String carColor, float carPrice, Date carDate,String carRemark) {this.carNo = carNo;this.wh = wh;this.carLogo = carLogo;this.carType = carType;this.carColor = carColor;this.carPrice = carPrice;this.carDate = carDate;this.carRemark = carRemark;}// getter和setter方法public String getCarNo() {return carNo;}public void setCarNo(String carNo) {this.carNo = carNo;}public WareHouseDTO getWh() {return wh;}public void setWh(WareHouseDTO wh) { this.wh = wh;}public String getCarLogo() {return carLogo;}public void setCarLogo(String carLogo) { this.carLogo = carLogo;}public String getCarType() {return carType;}public void setCarType(String carType) { this.carType = carType;}public String getCarColor() {return carColor;}public void setCarColor(String carColor) { this.carColor = carColor;}public float getCarPrice() {return carPrice;}public void setCarPrice(float carPrice) {this.carPrice = carPrice;}public Date getCarDate() {return carDate;}public void setCarDate(Date carDate) {this.carDate = carDate;}public String getCarRemark() {return carRemark;}public void setCarRemark(String carRemark) {this.carRemark = carRemark;}Overridepublic String toString() {String date = new SimpleDateFormat("yyy-MM-dd").format(this.carDate);return this.carNo + "\t" + this.carLogo + "\t" + this.carType + "\t"+ this.carColor + "\t" + this.carPrice + "\t" + date + "\t"+ wh.getWhId() + "\t" + wh.getWhName() + "\t" + wh.getWhAddr();}}import java.sql.CallableStatement;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import .softeem.jdbc.dto.WareHouseDTO;import .softeem.jdbc.util.DBUtil;/*wh_id int identity,wh_name varchar(20) null,wh_total_num int null,wh_addr varchar(100) null,wh_num int null,wh_remark text null,*/public class WareHouseDAO{private Connection conn;private Statement st;private PreparedStatement pst;private CallableStatement cst;private ResultSet rs;// 插入一条记录,其中id是自动生成的public boolean insert(WareHouseDTO dto) {boolean flag = false;String sql = "insert into tb_wh(wh_name,wh_total_num,wh_addr,wh_num,wh_remark)"+ "values(?,?,?,?,?)";conn = DBUtil.getConn();try {pst = conn.prepareStatement(sql);pst.setString(1, dto.getWhName());pst.setInt(2, dto.getWhTotalNum());pst.setString(3, dto.getWhAddr());pst.setInt(4, dto.getWhNum());pst.setString(5, dto.getWhRemark());flag = pst.executeUpdate() > 0 ? true : false;} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(null, pst, conn);}return flag;}// 删除一条记录,根据id删除的public boolean delete(int id) {boolean flag = false;String sql = "delete from tb_wh where wh_id=?";conn = DBUtil.getConn();try {pst = conn.prepareStatement(sql);pst.setInt(1, id);flag = pst.executeUpdate() > 0 ? true : false;} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(null, pst, conn);}return flag;}// 更新一条记录,根据id更新其他的属性public boolean update(WareHouseDTO dto) {boolean flag = false;String sql = "update tb_wh set wh_name=?,wh_total_num=?,wh_addr=?,wh_num=?,wh_remark=?)"+ "where wh_id=?";conn = DBUtil.getConn();try {pst = conn.prepareStatement(sql);pst.setString(1, dto.getWhName());pst.setInt(2, dto.getWhTotalNum());pst.setString(3, dto.getWhAddr());pst.setInt(4, dto.getWhNum());pst.setString(5, dto.getWhRemark());pst.setInt(6, dto.getWhId());flag = pst.executeUpdate() > 0 ? true : false;} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(null, pst, conn);}return flag;}// 查询所有的记录public List<WareHouseDTO> listAll() {List<WareHouseDTO> list = new ArrayList<WareHouseDTO>();String sql = "select * from tb_wh";conn = DBUtil.getConn();try {st = conn.createStatement();rs = st.executeQuery(sql);while (rs.next()) {int id = rs.getInt("wh_id");String name = rs.getString("wh_name");int totalNum = rs.getInt("wh_total_num");String addr = rs.getString("wh_addr");int num = rs.getInt("wh_num");String remark = rs.getString("wh_remark");list.add(new WareHouseDTO(id, name, totalNum, addr, num, remark));}} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(rs, st, conn);}return list;}// 根据id查询一条记录public WareHouseDTO listById(int whid) {WareHouseDTO wh = null;String sql = "select * from tb_wh where wh_id=?";conn = DBUtil.getConn();try {pst = conn.prepareStatement(sql);pst.setInt(1, whid);rs = pst.executeQuery();if (rs.next()) {String name = rs.getString("wh_name");int totalNum = rs.getInt("wh_total_num");String addr = rs.getString("wh_addr");int num = rs.getInt("wh_num");String remark = rs.getString("wh_remark");wh = new WareHouseDTO(whid, name, totalNum, addr, num, remark);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(rs, pst, conn);}return wh;}}import java.sql.CallableStatement;import java.sql.Connection;import java.sql.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Types;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import .softeem.jdbc.dto.CarDTO;import .softeem.jdbc.util.DBUtil;/*car_no char(12) not null, wh_id int not null, car_logo varchar(20) NOT null, car_type varchar(20) NOT null, car_color varchar(20) NOT null, car_price float(4) NOT null, car_date datetime NOT null, car_remark text null,*/public class CarDAO{private Connection conn;private Statement st;private PreparedStatement pst;private CallableStatement cst;private ResultSet rs;public boolean insert(CarDTO cdto) {boolean flag = false;String sql = "insert into tb_car(car_no,wh_id,car_logo,car_type,car_color,"+ "car_price,car_date,car_remark) values(?,?,?,?,?,?,?,?)";conn = DBUtil.getConn();try {pst = conn.prepareStatement(sql);pst.setString(1, cdto.getCarNo());pst.setInt(2, cdto.getWh().getWhId());pst.setString(3, cdto.getCarLogo());pst.setString(4, cdto.getCarType());pst.setString(5, cdto.getCarColor());pst.setFloat(6, cdto.getCarPrice());pst.setDate(7, new Date(cdto.getCarDate().getTime()));pst.setString(8, cdto.getCarRemark());flag = pst.executeUpdate() > 0 ? true : false;} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(null, pst, conn);}return flag;}public boolean delete(Stringo) {boolean flag = false;String sql = "delete from tb_car where car_no=?";conn = DBUtil.getConn();try {pst = conn.prepareStatement(sql);pst.setString(1,o);flag = pst.executeUpdate() > 0 ? true : false;} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(null, pst, conn);}return flag;}public boolean update(CarDTO cdto) {boolean flag = false;String sql = "update tb_car set wh_id=?,car_logo=?,car_type=?,car_color=?,"+ "car_price=?,car_date=?,car_remark=? where car_no=?";conn = DBUtil.getConn();try {pst = conn.prepareStatement(sql);pst.setInt(1, cdto.getWh().getWhId());pst.setString(2, cdto.getCarLogo());pst.setString(3, cdto.getCarType());pst.setString(4, cdto.getCarColor());pst.setFloat(5, cdto.getCarPrice());pst.setDate(6, new Date(cdto.getCarDate().getTime()));pst.setString(7, cdto.getCarRemark());pst.setString(8, cdto.getCarNo());flag = pst.executeUpdate() > 0 ? true : false;} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(null, pst, conn);}return flag;}public List<CarDTO> listAll() {List<CarDTO> list = new ArrayList<CarDTO>();String sql = "select * from tb_car";conn = DBUtil.getConn();try {st = conn.createStatement();rs = st.executeQuery(sql);while (rs.next()) {String num = rs.getString(1);int id = rs.getInt(2);String logo = rs.getString(3);String type = rs.getString(4);String color = rs.getString(5);float price = rs.getFloat(6);Date date = rs.getDate(7);String remark = rs.getString(8);CarDTO dto = new CarDTO(num, new WareHouseDAO().listById(id),logo, type, color, price, date, remark);list.add(dto);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(rs, st, conn);}return list;}public CarDTO listById(Stringo) {CarDTO cdto = null;String sql = "select * from tb_car where car_no=?";conn = DBUtil.getConn();try {pst = conn.prepareStatement(sql);pst.setString(1,o);rs = st.executeQuery(sql);if (rs.next()) {String num = rs.getString(1);int id = rs.getInt(2);String logo = rs.getString(3);String type = rs.getString(4);String color = rs.getString(5);float price = rs.getFloat(6);Date date = rs.getDate(7);String remark = rs.getString(8);cdto = new CarDTO(num, new WareHouseDAO().listById(id), logo,type, color, price, date, remark);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtil.close(rs, st, conn);}return cdto;}/** --根据给定的价格,统计汽车数量* create PROC proc_car* lowPrice FLOAT,* highPrice FLOAT,* totalCount INT OUTPUT,* conditionCount INT OUTPUT* AS* SELECT totalCount=COUNT(*) FROM dbo.tb_car;* SELECT conditionCount=COUNT(*) FROM dbo.tb_car WHERE* car_price BETWEEN lowPrice AND highPrice; --带有结果集的存储过程* SELECT *FROM dbo.tb_car WHERE car_price BETWEEN lowPrice AND highPrice;* SELECT *FROM dbo.tb_car;* GO*BEGIN*DECLARE l INT;*DECLARE h INT;*EXEC proc_car 40000.0,60000.0,l OUT,h OUT;*PRINT l;*PRINT h;*END*/// 根据两个价格查询相应的汽车SuppressWarnings({ "rawtypes", "unchecked" })public Map<String,Object> queryCarByPrice(float low, float high) {Map<String,Object> map=new HashMap<String,Object>();String sql = "{call proc_car(?,?,?,?)}";conn=DBUtil.getConn();try {cst=conn.prepareCall(sql);cst.setFloat(1, low);cst.setFloat(2, high);cst.registerOutParameter(3, Types.INTEGER);cst.registerOutParameter(4, Types.INTEGER);cst.execute();rs=cst.getResultSet();List clist=new ArrayList();while (rs.next()) {String num = rs.getString(1);int id = rs.getInt(2);String logo = rs.getString(3);String type = rs.getString(4);String color = rs.getString(5);float price = rs.getFloat(6);Date date = rs.getDate(7);String remark = rs.getString(8);CarDTO dto = new CarDTO(num, new WareHouseDAO().listById(id),logo, type, color, price, date, remark);clist.add(dto);}map.put("clist", clist);if(cst.getMoreResults()){rs=cst.getResultSet();List tlist=new ArrayList();while (rs.next()) {String num = rs.getString(1);int id = rs.getInt(2);String logo = rs.getString(3);String type = rs.getString(4);String color = rs.getString(5);float price = rs.getFloat(6);Date date = rs.getDate(7);String remark = rs.getString(8);CarDTO dto = new CarDTO(num, new WareHouseDAO().listById(id),logo, type, color, price, date, remark);tlist.add(dto);}map.put("tlist", tlist);}int totalCount=cst.getInt(3);map.put("totalCount", totalCount);int conditionCount=cst.getInt(4);map.put("conditionCount", conditionCount);} catch (SQLException e) {e.printStackTrace();} finally{DBUtil.close(rs, cst, conn);}return map;}}import java.util.List;import java.util.Map;import .softeem.jdbc.dao.CarDAO;import .softeem.jdbc.dao.WareHouseDAO;SuppressWarnings("rawtypes")public class Test{public static void main(String[] args) {CarDAO cdao = new CarDAO();List list = cdao.listAll();for (Object object : list) {System.out.println(object);}System.out.println("==============================================" );WareHouseDAO whdao = new WareHouseDAO();List list1 = whdao.listAll();for (Object object : list1) {System.out.println(object);}System.out.println("=============================================== ");Map<String, Object> map = cdao.queryCarByPrice(20000, 60000);List clist=(List) map.get("clist");for (Object object : clist) {System.out.println(object);}}}。

数据库课程设计-汽车修理管理系统

数据库课程设计-汽车修理管理系统

目录1 设计时间 (2)2 设计目的 (2)3设计任务 (2)4 设计内容 (2)4.1需求分析 (2)4.2系统设计 (3)4.3系统实施 (8)4.4运行与测试 (12)5 总结与展望 (13)参考文献 (13)成绩评定 (14)1 设计时间第17周(2012年6月4日~2012年6月8日)2 设计目的数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完《数据库原理及应用》及《SQL SERVER数据库》课程后进行的一次全面的综合练习。

其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。

同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。

3设计任务课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。

严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。

4 设计内容4.1需求分析(1)数据登记把各种手填单据中的数据及时登记到系统中、并要求能进行修改。

这些单据包括修车登记单、汽车修理单、零件入库单、零件出库单。

(2)查询能查询登记单、修理单、汽车、车主、修理公、零件库存的有关数据。

(3)编制并显示零件订货计划月报表。

(4)发票发票中包括顾客姓名、汽车牌号、修理项目、修车费(=修理费+零件费)。

零件费=∑(零件价格×耗用数量)修理费=小时工资×修理小时×3(5)统计修理工工资月报表某修理工的月工资=(∑小时工资)×修理小时4.2系统设计4.2.1 概念结构设计E-R 图是分为两部分实体和属性,每个实体可以有多个属性,这些属性用来表示实体的性质。

不同实体之间可以用关系进行连接,表明各个实体之间的内在联系。

工厂数据库管理系统-华工数据库大作业(含源文件)

工厂数据库管理系统-华工数据库大作业(含源文件)

⼯⼚数据库管理系统-华⼯数据库⼤作业(含源⽂件)课程设计任务书课程名称:数据库系统原理设计题⽬:⼯⼚数据库管理系统已知技术参数和设计要求:需求说明及要求题⽬:⼯⼚数据库管理系统⼀、⼯⼚管理数据库⼯⼚需建⽴⼀个管理数据库存储以下信息:*⼯⼚信息包括⼯⼚代号,⼯⼚名,⼚长名及⼯⼚运营开销。

*⼀个⼚内有多个车间,每个车间有车间号、车间主任姓名、地址,电话及每个⽉的车间运营开销。

*⼀个车间有多个⼯⼈,每个⼯⼈有职⼯号、姓名、年龄、性别,⼯种及⽉⼯资。

*⼀个车间⽣产多种产品,产品有产品号、产品名、规格,制造成本和销售价格。

*⼀个车间⽣产多个零件,⼀个零件也可能由多个车间制造。

零件有零件号、零件名,制造成本和销售价格。

*⼀个产品由多个零件组成,⼀个零件也可装配出多种产品。

*产品与零件均存⼊仓库中。

*⼚内有多个仓库,仓库有仓库号,仓库主任姓名、电话及仓库的运营成本。

应完成的主要功能:(1)各种各样的管理功能,如⼯⼚信息的管理功能,包括录⼊、修改、查询、输出⼯⼚的信息;车间信息的管理功能,包括录⼊、修改、查询、输出车间的信息;还有⼯⼈,零件,产品,仓库等的信息管理功能。

(2) ⼯⼚的利润统计,包括⽉利润和年利润统计。

(3) 能输出各种各样的报表,如⼯⼈⼯资⽉报表,年报表;每个车间⽣产的产品和零件数量的⽉报表;仓库存储产品和零件数量的⽉报表;⼯⼚运营开销和车间运营开销的⽉报表等。

⼆、开发环境数据库选⽤微软的SQL SERVER。

开发环境可以选择:(1)Delphi;(2)Visual Basic; (3) C++ builder; (4) Visual C++。

只选择其中的⼀种软件开发⼯具就可以。

三、基本要求(1)完成问题陈述中所提到的所有需求功能(2)要求撰写不少于2500个⽂字的⽂档。

(3)⽂档中⾄少要包括:ER模型图、系统功能图、数据字典、表关系的详细说明。

(4)⽤户界⾯设计:采⽤窗⼝式,⾊彩要柔和,界⾯要友好,操作要简单。

汽车维修信息管理系统用户操作手册

汽车维修信息管理系统用户操作手册

汽车维修信息管理系统用户操作手册Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】车辆快修综合业务系统用户手册2013年11月Powerd By 北京华鑫杰瑞计算机系统工程有限公司目录一、维修业务委托修理单------------------------------------------------------------------------------------------3派工单------------------------------------------------------------------------------------------------4维修领料单------------------------------------------------------------------------------------------5修车拍照-------------------------- ------------------------------------------------------------------ 6财务结算单---------------------------------------------------------- --------------------------------8二、配件业务订货单------------------------------------------------------------------------------------------------9订货入库---------------------------------------------------------------------------------------------10采购入库---------------------------------------------------------------------------------------------11工具入库---------------------------------------------------------------------------------------------13入库退货单------------------------------------------------------------------------------------------14客户订单---------------------------------------------------------------------------------------------15订货销售---------------------------------------------------------------------------------------------16销售单------------------------------------------------------------------------------------------------18工具领用管理---------------------------------------------------------------------------------------19销售退货单-----------------------------------------------------------------------------------------20工具归还管理--------------------------------------------------------------------------------------22三、库存管理库存管理---------------------------------------------------------------------------------------------23四、客户关系管理用户档案---------------------------------------------------------------------------------------------34五、系统管理初始化------------------------------------------------------------------------------------------------37用户管理---------------------------------------------------------------------------------------------38角色权限管理---------------------------------------------------------------------------------------39手机端同步到本系统------------------------------------------------------------------------------40修改密码-------------------------------------------------------------------------------------------一、维修业务委托修理单功能描述:需要修理那些项目,需要什么配件,及修理以外的代办业务,以及客户所委托的相关修车业务在此开单确定,并打印出委托修理单让车主签字确认后,可开始维修。

汽车维修信息管理系统的设计与实现

汽车维修信息管理系统的设计与实现

汽车维修信息管理系统的设计与实现一、系统设计背景随着汽车保有量的不断增加,汽车维修服务行业迎来了高速发展。

然而,传统的汽车维修信息管理方式已无法满足日益增长的业务需求。

为提高维修效率,优化客户体验,我们提出设计一套汽车维修信息管理系统,实现对维修流程的智能化管理。

二、系统设计目标1. 提高维修服务效率,缩短客户等待时间。

2. 实现维修信息数字化存储,便于查询和管理。

3. 优化库存管理,降低维修成本。

4. 提升客户满意度,增强维修企业的市场竞争力。

三、系统功能模块设计1. 客户信息管理模块(1)录入和维护客户基本信息,如姓名、联系方式、车牌号等。

(2)记录客户车辆维修历史,便于跟踪和回访。

2. 维修项目管理模块(1)详细记录维修项目名称、维修工时、材料费用等信息。

(2)提供维修进度查询,让客户实时了解维修状态。

3. 库存管理模块(1)实时掌握库存材料数量,预警库存不足。

(2)自动采购清单,提高采购效率。

4. 财务管理模块(1)统计维修项目收入,财务报表。

(2)管理维修工时费、材料费等支出,实现成本控制。

5. 统计分析模块(1)分析维修项目类型、频次等数据,为经营决策提供依据。

(2)评估客户满意度,不断优化维修服务。

四、系统技术实现1. 开发环境:采用主流的软件开发环境,如Java、Python等,确保系统稳定性和可扩展性。

2. 数据库设计:选用成熟的数据库管理系统,如MySQL、Oracle 等,实现数据的高效存储和查询。

五、系统实施与推广1. 系统测试:在开发完成后进行严格测试,确保系统功能的完善和稳定性。

2. 培训与指导:为维修企业员工提供系统操作培训,确保系统顺利投入使用。

3. 持续优化:根据用户反馈,不断优化系统功能,满足业务发展需求。

六、系统安全与维护1. 数据安全(1)实施数据加密措施,保护客户和业务数据不被未授权访问。

(2)定期备份数据,防止数据丢失,确保业务连续性。

2. 用户权限管理(1)设置不同级别的用户权限,限制对敏感信息的访问和操作。

(完整word版)车辆管理系统源代码(C++)

(完整word版)车辆管理系统源代码(C++)

#include<windows.h>#include<iostream>#include<fstream>#include<iomanip>#include<conio.h>using namespace std;#define N 20 //车辆最大存储量20#define OilPrice 8.0 //油价8元每升class Manager;class Cars{private:int num; //编号int pnum; //车牌号char made[20]; //制造公司double time; //购买时间(多少个月)int type; //型号(1-大客车,2-小轿车,3-卡车) double km; //总公里数int cost; //基本维护费用int RoadFee; //养路费double OilKm; //耗油量/公里double AllCount;//累计总费用friend Manager;};class Manager{private:Cars car[N];int people[N]; //最大载客量(大客车)int coach[N]; //箱数(小轿车)int weight[N]; //载重量(卡车)int top; //记录当前车辆数量public:Manager(){top = 0;}//车辆初始值为0void add(); //添加车辆void search(); //查询车辆void show(); //显示车辆信息库void edit(); //编辑功能void delet(); //删除车辆void sum(); //统计信息void read(); //读出车辆信息void write(); //车辆信息存盘void jiemian(); //总界面};//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////void Manager::add() //////////添加车辆{int a = 0, x, y;while(1){if(top < N){cout<<"请输入需添加的车辆信息"<<endl;cout<<"车辆编号:";cin>>x;for(int j = 0; j < top; j++){if ( car[j].num == x ) //编号重复{cout<<"编号重复,添加失败! 即将跳转至功能主界面"<<endl;a++;break;}}if(a == 0) //此时编号不重复{car[top].num = x;cout<<"车牌号:";cin>>car[top].pnum;cout<<"车辆制造公司:";cin>>car[top].made;cout<<"购买时间:";cin>>car[top].time;cout<<"养路费:";cin>>car[top].RoadFee;cout<<"车辆型号(1-大客车,2-小轿车,3-卡车):";cin>>car[top].type;while(!(car[top].type==1||car[top].type==2||car[top].type==3)) //判断输入指令是否为1-3{cout<<"输入指令号错误,重输:";cin>>car[top].type;}cout<<"总公里数:";cin>>car[top].km;if( car[top].type == 1 ) //此时是1-大客车{cout<<"最大载客量:";cin>>people[top];car[top].cost = 2000;car[top].OilKm = 0.1;}else if( car[top].type == 2 ) //此时是2-小轿车{cout<<"车厢数:";cin>>coach[top];car[top].cost = 1000;car[top].OilKm = 0.05;}else //此时是3-卡车{cout<<"载重量:";cin>>weight[top];car[top].cost = 1500;car[top].OilKm = 0.15;}car[top].AllCount =(OilPrice * car[top].OilKm * car[top].km) + (car[top].time *car[top].cost); //计算总费用top++; //车辆总数加一write(); //调用车辆信息存盘函数cout<<"是否继续添加车辆?(1-是,2-否):";cin>>y;while(!( y==1 || y==2 )){cout<<"输入指令号错误,重输:";cin>>y;}if(y == 2){cout<<"即将跳转至功能主界面"<<endl;break;}}else //此时编号重复break;}else{cout<<"车辆信息库已满,不能再添加车辆!"<<endl;cout<<"即将跳转至功能主界面"<<endl;break;}}Sleep(1000); //延迟1秒jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////void Manager::search() //////////查询车辆{int choose,m,n,a = 0;char i,t[20];cout<<"****************************"<<endl;cout<<"* 1.按车辆制造公司查询*"<<endl;cout<<"* 2.按编号查询*"<<endl;cout<<"* 3.按类别查询*"<<endl;cout<<"****************************"<<endl;cout<<" 请输入你的选项:";while(1){cin>>i;cout<<endl;if(i=='1'||i=='2'||i=='3')break;cout<<"输入错误,重输:";}if(i == '1'){cout<<"请输入需查询车辆的制造公司:";cin>>t;}else if(i == '2'){cout<<"请输入需查询的车辆编号:";cin>>n;}else if(i == '3'){cout<<"请输入需查询的车辆型号(1-大客车,2-小轿车,3-卡车):";cin>>m;}for(int j = 0; j < top; j++)if(strcmp(car[j].made, t) == 0||car[j].num == n||car[j].type == m){cout<<"编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"<<endl;break;}for( j = 0; j < top; j++)if(strcmp(car[j].made, t) == 0||car[j].num == n||car[j].type == m){cout<<setw(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7)<<car[j].time;if(car[j].type == 1 )cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<people[j];else if(car[j].type == 2 )cout<<setw(9)<<"小轿车"<<setw(9)<<"车厢数: "<<coach[j];elsecout<<setw(8)<<"卡车"<<setw(9)<<"载重量:"<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;a++;}if(a != 0){cout<<"是否进行修改?(1-是,2-否):";cin>>choose;if(choose == 1)edit();}else{if(i=='1') cout<<"车辆制造公司不存在!"<<endl;if(i=='2') cout<<"车辆编号不存在!"<<endl;else if (i=='3') cout<<"车辆型号不存在!"<<endl;}cout<<"按任意键返回功能主界面"<<endl;char zz=getch();jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////void Manager::show() //////////显示车辆信息库{if(top != 0){cout<<"********************************************************************************"< <endl;cout<<"编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"<<endl;for(int j = 0; j < top; j++){cout<<setw(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7) <<car[j].time;if(car[j].type == 1 )cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<setw(2)<<people[j];else if(car[j].type == 2 )cout<<setw(9)<<"小轿车"<<setw(8)<<"车厢数:"<<setw(2)<<coach[j];elsecout<<setw(9)<<"卡车"<<setw(8)<<"载重量:"<<setw(2)<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;}cout<<"********************************************************************************"< <endl;}elsecout<<"车辆库为空!"<<endl;cout<<"按任意键返回主界面:";char z=getch();jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////void Manager::edit() ////////////编辑功能{int i, j, a = 0;cout<<"请依次输入需要修改的车辆信息:"<<endl;while(1){cout<<"车辆编号:";cin>>i;for(j = 0; j < top; j++){if(car[j].num == i) //车库有此编号的车{cout<<"车牌号:";cin>>car[j].pnum;cout<<"制造公司:";cin>>car[j].made;cout<<"购买时间:";cin>>car[j].time;cout<<"型号(1-大客车,2-小轿车,3-卡车):";cin>>car[j].type;while(!(car[j].type==1||car[j].type==2||car[j].type==3)){cout<<"输入信息有误,请输入1-3:";cin>>car[j].type;}cout<<"总公里数:";cin>>car[j].km;cout<<"养路费:";cin>>car[j].RoadFee;if( car[j].type == 1 ) //此时是1-大客车{cout<<"最大载客量:";cin>>people[j];car[j].cost = 2000;car[j].OilKm = 0.1;}else if( car[j].type == 2 ) //此时是2-小轿车{cout<<"车厢数:";cin>>coach[j];car[j].cost = 1000;car[j].OilKm = 0.05;}else //此时是3-卡车{cout<<"载重量:";cin>>weight[j];car[j].cost = 1500;car[j].OilKm = 0.15;}write();a++;}}if(a == 0)cout<<"此编号不存在,不能进行修改,请重新输入!"<<endl;else{cout<<"修改成功!系统将返回主界面..."<<endl;break;}}Sleep(1000); //延迟1秒jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////void Manager::delet() //////////////////删除车辆{int i, a = 0;while(1){if(top == 0){cout<<"车辆信息库为空!系统将返回功能界面..."<<endl;break;}else{cout<<"请输入需要删除的车辆编号:";cin>>i;for(int j = 0; j < top; j++){if(car[j].num == i) //车辆编号存在{if(top==1)car[0].type=0;else{if( car[top - 1].type == 1 ) //判断出此时car数组里储存在最后一组的是1-大客车{people[j] = people[top - 1];///////// (把最后一组数据)///////car[j].cost = 2000; ///////// (赋给将要删除的)///////car[j].OilKm = 0.1; ///////// (那组数据的位置)///////}else if(car[top - 1].type == 2 ) //判断出此时car数组里储存在最后一组的是2-小轿车{coach[j] = coach[top - 1];car[j].cost = 1000;car[j].OilKm = 0.05;}else //判断出此时car数组里储存在最后一组的是3-卡车{weight[j] = weight[top - 1];car[j].cost = 1500;car[j].OilKm = 0.15;}car[j].num = car[top - 1].num; ///////// (把最后)///////car[j].pnum = car[top - 1].pnum; ///////// (一组数)///////strcpy(car[j].made, car[top - 1].made); ///////// (据赋给)///////car[j].time = car[top - 1].time; ///////// (将要删)///////car[j].type = car[top - 1].type; ///////// (除的那)///////car[j].km = car[top - 1].km; ///////// (组数据)///////car[j].RoadFee = car[top - 1].RoadFee; ///////// (的位置)///////car[j].AllCount = car[top-1].AllCount; ///////// ()///////}top--; //此时删除车辆数据彻底完成,车辆总数减一a++;write();}}if(a == 0)cout<<"此编号不存在,不能进行删除,请重新输入!"<<endl;else{cout<<"删除成功!系统将返回功能界面..."<<endl;break;}}}Sleep(1000); //延迟1秒jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////void Manager::write() //////////////////车辆信息存盘{ofstream write;write.open("d:\\a.txt",ios::out);if(write){for(int i = 0; i < top; i++){//依次存入编号、车牌号、制造商、购买时间、型号、write<<endl;write<<car[i].num<<" "<<car[i].pnum<<" "<<car[i].made<<" "<<car[i].time<<" "<<car[i].type<<" ";if(car[i].type == 1)write<<people[i];//存入载客量else if(car[i].type == 2)write<<coach[i];//存入车厢数elsewrite<<weight[i];//存入载重量//依次存入总公里、养路费、维护费、油耗、总费用write<<" "<<car[i].km<<" "<<car[i].RoadFee<<" "<<car[i].cost<<" "<<car[i].OilKm<<" "<<car[i].AllCount;}}else cout<<"write failed"<<endl;}//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////void Manager::read() ///////////////////读出车辆信息{while(1){ifstream read("d:\\a.txt",ios::in);if(read){while(!read.eof()){//依次读取编号、车牌号、制造商、购买时间、型号read>>car[top].num>>car[top].pnum>>car[top].made>>car[top].time>>car[top].type;if(car[top].type == 1)read>>people[top];//读取载客量else if(car[top].type == 2)read>>coach[top];//读取车厢数elseread>>weight[top];//读取载重量//依次读取总公里、养路费、维护费、油耗、总费用read>>car[top].km>>car[top].RoadFee>>car[top].cost>>car[top].OilKm>>car[top].AllCount ;if(car[top].type==1||car[top].type==2||car[top].type==3)top++;}read.close();break;}else{ofstream o("d:\\a.txt");o.close();}}}//////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////void Manager::jiemian() ////////////////总界面{int c1=0,c2=0,c3=0;top=0;read();system("cls");for(int j = 0; j < top; j++)if( car[j].type == 1 )c1++; //统计大客车的数量else if(car[j].type == 2)c2++; //统计小轿车的数量else if(car[j].type==3)c3++; //统计卡车的数量top=c1+c2+c3;cout<<"***********************************"<<endl;cout<<"* 欢迎进入车辆管理系统*"<<endl;cout<<"* 1.添加车辆*"<<endl;cout<<"* 2.查询车辆*\t\t总车辆\t"<<top<<endl;cout<<"* 3.显示车辆*\t\t大客车\t"<<c1<<endl;cout<<"* 4.编辑车辆*\t\t小轿车\t"<<c2<<endl;cout<<"* 5.删除车辆*\t\t卡车\t"<<c3<<endl;cout<<"* 0.退出系统*"<<endl;cout<<"***********************************"<<endl;cout<<"请输入你需要操作的选项:";char i;cin>>i;while(!(i=='1'||i=='2'||i=='3'||i=='4'||i=='5'||i=='0')){cout<<"输入错误,请重新输入:";char i=getch();cout<<endl;}switch(i){case '1':add();break;case '2':search();break;case '3':show();break;case '4':edit();break;case '5':delet();break;case '0':return;}}//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////int main(){system("color 3f");Manager a;a.jiemian();return 0;}。

数据库课程设计实验报告--汽车修理信息管理系统

数据库课程设计实验报告--汽车修理信息管理系统

数据库课程设计(汽车修理信息管理系统)设计者:陈兵.栾洪乐辅导老师:钱洁.薛昌春设计时间:2013.1.14-1.18目录一,设计目的 (3)二,设计任务 (3)三,设计内容 (3)(一)需求分析 (3)(二)系统设计 (3)1,概念结构设计 (4)2,逻辑结构设计 (5)3,物理结构设计 (5)(三)系统实施 (7)1,数据库实现 (8)2,数据载入 (11)(四)运行与测试 (12)1.试图建立 (16)2.试图运行结果 (17)3.索引建立 (19)4.索引查询 (20)五,实验总结 (21)六,考看文献 (23)一.设计目的:数据库原理及应用课程设计是软件工程专业集中实践性环节之一是学习完《数据库原理及应用》及《SQL SERVER数据库》课程后进行的一次全面的综合练习。

其目的在于加深对数据库基础理论和基本知识的理解掌握使用数据库进行软件设计的基本方法提高运用数据库解决实际问题的能力最终实现对于给定的应用环境构造最优的数据库模式建立数据库及其应用系统使之能够有效地存储数据满足各种用户的应用需求信息要求和处理要求。

同时此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。

数据库是一个单位或是一个应用领域的通用数据处理系统,他存储的是属于企业和事业部门、团体和个人的有关数据的集合。

数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。

其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。

二.设计任务:课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。

严格实施课程设计这一环节对于学生基本程序设计素养的培养和软件工作者工作作风的训练将起到显著的促进作用。

数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。

不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。

(完整word版)车辆管理系统源代码(C++)

(完整word版)车辆管理系统源代码(C++)

#include<windows.h>#include<iostream>#include<fstream>#include<iomanip>#include<conio.h>using namespace std;#define N 20 //车辆最大存储量20#define OilPrice 8.0 //油价8元每升class Manager;class Cars{private:int num; //编号int pnum; //车牌号char made[20]; //制造公司double time; //购买时间(多少个月)int type; //型号(1-大客车,2-小轿车,3-卡车) double km; //总公里数int cost; //基本维护费用int RoadFee; //养路费double OilKm; //耗油量/公里double AllCount;//累计总费用friend Manager;};class Manager{private:Cars car[N];int people[N]; //最大载客量(大客车)int coach[N]; //箱数(小轿车)int weight[N]; //载重量(卡车)int top; //记录当前车辆数量public:Manager(){top = 0;}//车辆初始值为0void add(); //添加车辆void search(); //查询车辆void show(); //显示车辆信息库void edit(); //编辑功能void delet(); //删除车辆void sum(); //统计信息void read(); //读出车辆信息void write(); //车辆信息存盘void jiemian(); //总界面};//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////void Manager::add() //////////添加车辆{int a = 0, x, y;while(1){if(top < N){cout<<"请输入需添加的车辆信息"<<endl;cout<<"车辆编号:";cin>>x;for(int j = 0; j < top; j++){if ( car[j].num == x ) //编号重复{cout<<"编号重复,添加失败! 即将跳转至功能主界面"<<endl;a++;break;}}if(a == 0) //此时编号不重复{car[top].num = x;cout<<"车牌号:";cin>>car[top].pnum;cout<<"车辆制造公司:";cin>>car[top].made;cout<<"购买时间:";cin>>car[top].time;cout<<"养路费:";cin>>car[top].RoadFee;cout<<"车辆型号(1-大客车,2-小轿车,3-卡车):";cin>>car[top].type;while(!(car[top].type==1||car[top].type==2||car[top].type==3)) //判断输入指令是否为1-3{cout<<"输入指令号错误,重输:";cin>>car[top].type;}cout<<"总公里数:";cin>>car[top].km;if( car[top].type == 1 ) //此时是1-大客车{cout<<"最大载客量:";cin>>people[top];car[top].cost = 2000;car[top].OilKm = 0.1;}else if( car[top].type == 2 ) //此时是2-小轿车{cout<<"车厢数:";cin>>coach[top];car[top].cost = 1000;car[top].OilKm = 0.05;}else //此时是3-卡车{cout<<"载重量:";cin>>weight[top];car[top].cost = 1500;car[top].OilKm = 0.15;}car[top].AllCount =(OilPrice * car[top].OilKm * car[top].km) + (car[top].time *car[top].cost); //计算总费用top++; //车辆总数加一write(); //调用车辆信息存盘函数cout<<"是否继续添加车辆?(1-是,2-否):";cin>>y;while(!( y==1 || y==2 )){cout<<"输入指令号错误,重输:";cin>>y;}if(y == 2){cout<<"即将跳转至功能主界面"<<endl;break;}}else //此时编号重复break;}else{cout<<"车辆信息库已满,不能再添加车辆!"<<endl;cout<<"即将跳转至功能主界面"<<endl;break;}}Sleep(1000); //延迟1秒jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////void Manager::search() //////////查询车辆{int choose,m,n,a = 0;char i,t[20];cout<<"****************************"<<endl;cout<<"* 1.按车辆制造公司查询*"<<endl;cout<<"* 2.按编号查询*"<<endl;cout<<"* 3.按类别查询*"<<endl;cout<<"****************************"<<endl;cout<<" 请输入你的选项:";while(1){cin>>i;cout<<endl;if(i=='1'||i=='2'||i=='3')break;cout<<"输入错误,重输:";}if(i == '1'){cout<<"请输入需查询车辆的制造公司:";cin>>t;}else if(i == '2'){cout<<"请输入需查询的车辆编号:";cin>>n;}else if(i == '3'){cout<<"请输入需查询的车辆型号(1-大客车,2-小轿车,3-卡车):";cin>>m;}for(int j = 0; j < top; j++)if(strcmp(car[j].made, t) == 0||car[j].num == n||car[j].type == m){cout<<"编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"<<endl;break;}for( j = 0; j < top; j++)if(strcmp(car[j].made, t) == 0||car[j].num == n||car[j].type == m){cout<<setw(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7)<<car[j].time;if(car[j].type == 1 )cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<people[j];else if(car[j].type == 2 )cout<<setw(9)<<"小轿车"<<setw(9)<<"车厢数: "<<coach[j];elsecout<<setw(8)<<"卡车"<<setw(9)<<"载重量:"<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;a++;}if(a != 0){cout<<"是否进行修改?(1-是,2-否):";cin>>choose;if(choose == 1)edit();}else{if(i=='1') cout<<"车辆制造公司不存在!"<<endl;if(i=='2') cout<<"车辆编号不存在!"<<endl;else if (i=='3') cout<<"车辆型号不存在!"<<endl;}cout<<"按任意键返回功能主界面"<<endl;char zz=getch();jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////void Manager::show() //////////显示车辆信息库{if(top != 0){cout<<"********************************************************************************"< <endl;cout<<"编号车牌号制造商购买时间型号特性总公里养路费维护费油耗总费用"<<endl;for(int j = 0; j < top; j++){cout<<setw(4)<<car[j].num<<setw(7)<<car[j].pnum<<setw(7)<<car[j].made<<setw(7) <<car[j].time;if(car[j].type == 1 )cout<<setw(9)<<"大客车"<<setw(8)<<"载客量:"<<setw(2)<<people[j];else if(car[j].type == 2 )cout<<setw(9)<<"小轿车"<<setw(8)<<"车厢数:"<<setw(2)<<coach[j];elsecout<<setw(9)<<"卡车"<<setw(8)<<"载重量:"<<setw(2)<<weight[j];cout<<setw(6)<<car[j].km<<setw(7)<<car[j].RoadFee<<setw(7)<<car[j].cost<<setw(7) <<car[j].OilKm<<setw(8)<<car[j].AllCount<<endl;}cout<<"********************************************************************************"< <endl;}elsecout<<"车辆库为空!"<<endl;cout<<"按任意键返回主界面:";char z=getch();jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////void Manager::edit() ////////////编辑功能{int i, j, a = 0;cout<<"请依次输入需要修改的车辆信息:"<<endl;while(1){cout<<"车辆编号:";cin>>i;for(j = 0; j < top; j++){if(car[j].num == i) //车库有此编号的车{cout<<"车牌号:";cin>>car[j].pnum;cout<<"制造公司:";cin>>car[j].made;cout<<"购买时间:";cin>>car[j].time;cout<<"型号(1-大客车,2-小轿车,3-卡车):";cin>>car[j].type;while(!(car[j].type==1||car[j].type==2||car[j].type==3)){cout<<"输入信息有误,请输入1-3:";cin>>car[j].type;}cout<<"总公里数:";cin>>car[j].km;cout<<"养路费:";cin>>car[j].RoadFee;if( car[j].type == 1 ) //此时是1-大客车{cout<<"最大载客量:";cin>>people[j];car[j].cost = 2000;car[j].OilKm = 0.1;}else if( car[j].type == 2 ) //此时是2-小轿车{cout<<"车厢数:";cin>>coach[j];car[j].cost = 1000;car[j].OilKm = 0.05;}else //此时是3-卡车{cout<<"载重量:";cin>>weight[j];car[j].cost = 1500;car[j].OilKm = 0.15;}write();a++;}}if(a == 0)cout<<"此编号不存在,不能进行修改,请重新输入!"<<endl;else{cout<<"修改成功!系统将返回主界面..."<<endl;break;}}Sleep(1000); //延迟1秒jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////void Manager::delet() //////////////////删除车辆{int i, a = 0;while(1){if(top == 0){cout<<"车辆信息库为空!系统将返回功能界面..."<<endl;break;}else{cout<<"请输入需要删除的车辆编号:";cin>>i;for(int j = 0; j < top; j++){if(car[j].num == i) //车辆编号存在{if(top==1)car[0].type=0;else{if( car[top - 1].type == 1 ) //判断出此时car数组里储存在最后一组的是1-大客车{people[j] = people[top - 1];///////// (把最后一组数据)///////car[j].cost = 2000; ///////// (赋给将要删除的)///////car[j].OilKm = 0.1; ///////// (那组数据的位置)///////}else if(car[top - 1].type == 2 ) //判断出此时car数组里储存在最后一组的是2-小轿车{coach[j] = coach[top - 1];car[j].cost = 1000;car[j].OilKm = 0.05;}else //判断出此时car数组里储存在最后一组的是3-卡车{weight[j] = weight[top - 1];car[j].cost = 1500;car[j].OilKm = 0.15;}car[j].num = car[top - 1].num; ///////// (把最后)///////car[j].pnum = car[top - 1].pnum; ///////// (一组数)///////strcpy(car[j].made, car[top - 1].made); ///////// (据赋给)///////car[j].time = car[top - 1].time; ///////// (将要删)///////car[j].type = car[top - 1].type; ///////// (除的那)///////car[j].km = car[top - 1].km; ///////// (组数据)///////car[j].RoadFee = car[top - 1].RoadFee; ///////// (的位置)///////car[j].AllCount = car[top-1].AllCount; ///////// ()///////}top--; //此时删除车辆数据彻底完成,车辆总数减一a++;write();}}if(a == 0)cout<<"此编号不存在,不能进行删除,请重新输入!"<<endl;else{cout<<"删除成功!系统将返回功能界面..."<<endl;break;}}}Sleep(1000); //延迟1秒jiemian();}//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////void Manager::write() //////////////////车辆信息存盘{ofstream write;write.open("d:\\a.txt",ios::out);if(write){for(int i = 0; i < top; i++){//依次存入编号、车牌号、制造商、购买时间、型号、write<<endl;write<<car[i].num<<" "<<car[i].pnum<<" "<<car[i].made<<" "<<car[i].time<<" "<<car[i].type<<" ";if(car[i].type == 1)write<<people[i];//存入载客量else if(car[i].type == 2)write<<coach[i];//存入车厢数elsewrite<<weight[i];//存入载重量//依次存入总公里、养路费、维护费、油耗、总费用write<<" "<<car[i].km<<" "<<car[i].RoadFee<<" "<<car[i].cost<<" "<<car[i].OilKm<<" "<<car[i].AllCount;}}else cout<<"write failed"<<endl;}//////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////void Manager::read() ///////////////////读出车辆信息{while(1){ifstream read("d:\\a.txt",ios::in);if(read){while(!read.eof()){//依次读取编号、车牌号、制造商、购买时间、型号read>>car[top].num>>car[top].pnum>>car[top].made>>car[top].time>>car[top].type;if(car[top].type == 1)read>>people[top];//读取载客量else if(car[top].type == 2)read>>coach[top];//读取车厢数elseread>>weight[top];//读取载重量//依次读取总公里、养路费、维护费、油耗、总费用read>>car[top].km>>car[top].RoadFee>>car[top].cost>>car[top].OilKm>>car[top].AllCount ;if(car[top].type==1||car[top].type==2||car[top].type==3)top++;}read.close();break;}else{ofstream o("d:\\a.txt");o.close();}}}//////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////void Manager::jiemian() ////////////////总界面{int c1=0,c2=0,c3=0;top=0;read();system("cls");for(int j = 0; j < top; j++)if( car[j].type == 1 )c1++; //统计大客车的数量else if(car[j].type == 2)c2++; //统计小轿车的数量else if(car[j].type==3)c3++; //统计卡车的数量top=c1+c2+c3;cout<<"***********************************"<<endl;cout<<"* 欢迎进入车辆管理系统*"<<endl;cout<<"* 1.添加车辆*"<<endl;cout<<"* 2.查询车辆*\t\t总车辆\t"<<top<<endl;cout<<"* 3.显示车辆*\t\t大客车\t"<<c1<<endl;cout<<"* 4.编辑车辆*\t\t小轿车\t"<<c2<<endl;cout<<"* 5.删除车辆*\t\t卡车\t"<<c3<<endl;cout<<"* 0.退出系统*"<<endl;cout<<"***********************************"<<endl;cout<<"请输入你需要操作的选项:";char i;cin>>i;while(!(i=='1'||i=='2'||i=='3'||i=='4'||i=='5'||i=='0')){cout<<"输入错误,请重新输入:";char i=getch();cout<<endl;}switch(i){case '1':add();break;case '2':search();break;case '3':show();break;case '4':edit();break;case '5':delet();break;case '0':return;}}//////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////int main(){system("color 3f");Manager a;a.jiemian();return 0;}。

数据库课程设计-汽车修理管理系统

数据库课程设计-汽车修理管理系统

序号数据库课程设计课程名称:数据库原理任课老师:作业题目:汽车修理管理系统姓名:学号:专业:计算机科学与技术教学中心:联系电话:目录1.系统概述 (2)1.1项目背景 (2)1.2编写目的 (2)1.3软件定义 (2)1.4开发环境 (2)2.需求分析 (3)2.1业务工作流图 (3)2.2业务数据流图 (3)2.3业务数据需求 (4)2.4E-R图 (5)2.4.1汽车实体 (5)2.4.2修理工实体 (5)2.4.4零件实体 (6)2.4.3用户实体 (6)3.数据库逻辑设计 (7)3.1数据字典 (7)3.2关系图 (9)4.软件功能设计 (10)5.软件界面设计 (11)5.1用户登录界面 (11)5.2软件主界面 (11)6 软件设计与编码 (12)6.1数据库访问模块(ADO方式) (12)6.2业务逻辑模块 (12)6.3界面框架模块 (12)7.结束语 (12)1.系统概述1.1项目背景随着汽车修理厂规模的不断扩大,业务及账目数量也相应的增加,有关汽车维修的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致汽车修理管理上的混乱,人力与物力过多浪费,管理费用的增加,从而使汽车修理厂的负担过重,影响整个汽车修理厂的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的汽车修理管理系统,对汽车修理资料进行集中统一的管理。

另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。

提高汽车修理管理工作效率,作到信息的规范管理,科学统计和快速查询,让汽车修理更好的发展,为社会服务。

1.2编写目的本文档主要描述汽车修理管理系统的概述、需求分析、数据库逻辑设计、软件功能设计、软件界面设计、本次数据库系统设计的心得体会等内容。

本文档可供本次参与数据库课程设计相关人员、开发实现人员及项目相关负责人或老师查看、审阅。

汽车汽修管理系统课程设计(doc 47页)

汽车汽修管理系统课程设计(doc 47页)

汽车汽修管理系统课程设计(doc 47页)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊目录一、设计题目 (1)二、设计目的 (1)三、设计说明 (1)四、总体设计 (2)五、详细设计 (3)六、结论 (7)七、附录(程序源代码): (7)┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊(2)软件环境。

本系统的设计采用Visual C++6.0编写。

在Windows XP SP2环境下测试通过。

四、总体设计1. 数据设计(1)类设计车辆信息类car_infor,该类有共同的信息车牌号car_no、牌号car_brand、型号car_modles、生产厂家manufacturer、修理项目码repair_code、车主姓名owner_name、联系电话phone_nomber、修理日期repair_time。

车辆修理菜单信息类repair_list,该类有共同的修理单编号list_no、修理工工号repaiman_no、修理日期repair_time、修理项目project、修理小时数repair_hours、完工日期complete_time。

用户信息类user,该类有成员用户名user_name、密码password。

功能类fun,该类中包含所有的功能函数,实现对车辆信息及车辆修理单信息的增加、修改、删除以及统计等实用功能。

void add()增加车辆信息,void del()删除车辆信息,void modify ()修改车辆信息,void add_list()增加车辆修理单信息,void del_list()删除车辆修理单信息,void modify_list()修改车辆修理单信息,int Judge()判断函数,void query_car()查询车辆信息,void query_list()查询车辆修理单信息,void query_car_no()按车辆名查询,void query_owner_name()按车主名查询,voidquery_repaiman_no()按修理工工号查询,void query_rlist_no()按车辆修理单号查询,Statistics()修理单统计等。

汽车维修管理系统数据字典

汽车维修管理系统数据字典

软件工程数据字典报告题目:汽车维修管理系统班级:1115班姓名:胡**指导老师:***数据字典一、数据项条目1.登录表信息表中:字段名: name数据项:客户号含义说明:每个客户的编号别名:客户编号类型:字符型长度:20取值范围:十个中文字符以内取值含义:根据读客户登录时用的名字字段名: password2、员工信息表中:字段名: name数据项:员工号含义说明:每个员工的编号别名:员工编号类型:字符型长度:20取值范围:十个中文字符以内取值含义:根据读员工登录时用的名字字段名: password3、零件信息表中:字段名: name数据项:零件号含义说明:每种零件的编号别名:零件编号类型:字符型长度:20取值范围:十个中文字符以内取值含义:根据读零件登录时用的名字字段名: password4、维修项目编号表中:字段名: name数据项:维修号含义说明:每个维修的编号别名:维修编号类型:字符型长度:20取值范围:十个中文字符以内取值含义:根据读维修登录时用的名字字段名: password5、维修工时表中:字段名: name数据项:工时号含义说明:每种工时维修的编号别名:工时编号类型:字符型长度:20取值范围:十个中文字符以内取值含义:根据读维修工时登录时用的名字字段名: password6、维修委托书编号表:字段名: name数据项:维修委托书号含义说明:每份维修委托书的编号别名:维修委托书编号类型:字符型长度:20取值范围:十个中文字符以内取值含义:根据读维修委托书编号登录时用的名字字段名: password二、数据流条目1、维修信息数据流名:维修信息说明:维修信息数据流来源:汽车维修管理系统数据流去向:业务员组成:姓名,客户编号,电话号码,车辆信息,维修次数,总次数平均流量:每天100个高峰期流量:每天200个2、单价工时数据流名:工时信息说明:工时信息数据流来源:维修车间数据流去向:汽车维修管理系统组成:姓名,客户编号,电话号码,车辆信息,维修次数,维修工时平均流量:每天100个高峰期流量:每天200个3、总费用数据流名:总费用信息说明:总费用信息数据流来源:汽车维修管理系统数据流去向:客户组成:姓名,客户编号,电话号码,车辆信息,维修次数,总费用平均流量:每天100个高峰期流量:每天200个1、客户文件数据文件名:客户文件简述:存放的是维修客户基础信息数据;数据文件组成:表单形式存储组成:客户文件=姓名+车牌号+电话号码+维修记录存储方式:以客户名为记录关键字升序排列数据文件名:客户信息文件2、费用文件数据文件名:费用文件简述:存放的是维修客户费用基础信息数据;数据文件组成:表单形式存储组成:客户文件=姓名+车牌号+电话号码+维修记录+维修费用存储方式:以客户名为记录关键字升序排列数据文件名:费用文件3、维修车辆的故障信息数据文件名:车辆的故障文件简述:存放的是维修客户车辆故障基础信息数据;数据文件组成:表单形式存储组成:客户文件=姓名+车牌号+电话号码+维修车辆的故障信息存储方式:以客户名为记录关键字升序排列数据文件名:客户维修车辆的故障信息文件1、客户信息处理处理过程:客户信息处理加工编号:1说明:根据客户情况处理信息加工逻辑:BEGIN输入客户维修请求信息和当前日期IF 在客户文件中找不到该客户 THEN 记录该客户的相关信息求ELSE查询客户的修理情况END 系统自行保存所有维修客户的信息2、工时信息处理处理过程:工时信息处理加工编号:2说明:根据客户情况工时信息处理加工逻辑:BEGIN输入客户编号和当前日期IF 在客户文件中找不到该客户 THEN 记录该客户的相关信息求ELSE查询客户的修理工时情况END 系统自行保存所有维修工时的信息3、费用信息处理处理过程:费用信息处理加工编号:3说明:根据输入客户情况处理信息加工逻辑:BEGIN输入客户编号和当前日期IF 在客户文件中找不到该客户 THEN 记录该客户的相关信息ELSE查询客户的修理费用情况END 系统自行保存所有维修客户费用的信息。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汽车修理管理系统说明书(有源码)一. 概述1.项目背景在计算机不断发展的今天,计算机已经运用到各个领域,计算机的作用使由手工的操作到计算机的操作是一个大的飞跃,代替的复杂的容易出错的人工操作,节省了大量的时间,提高了正确性,提高了数据的可靠性。

因此每个公司使用计算机建立自己的业务是迫在眉睫,汽车修理厂根据业务发展的需要,决定建立一个数据库管理系统,以代替单一的人工管理。

这样使人工操作的管理方便,简单。

2.编写目的编写的目的是使汽车修理厂由单一的人工管理到计算机管理的飞跃,使汽车修理厂的管理的效率得到很大的提高,使人工管理的出错的机会大大减少,实现数据的共享,便于查询自己的数据信息,使汽车修理厂的业务的流程时间大大减少,从而可以提高该汽车修理厂的竞争性,在社会有立足之地。

3.软件定义该软件为第一版,既汽车修理管理系统1.0 版。

4.开发环境数据库: SQL SERVER 2000开发和编译环境: Visual C++6.0。

二.需求分析1.通过分析得知,该修理厂共使用5种单据,4种账册和3种主要报表。

⑴五种单据如表1所示:表中D1由送修人填写。

修理派工员据此开出修理单D2,分派给指定的修理工执行。

如果在修理中需要更换零件,一律由修理工填写零件领用单D3向仓库领用。

修理结束后,修理工将D2交回给派工员,然后转财务部门结账并开修车发票D5。

D4在零件入库时由仓库管理员验收并且填写。

图6显示了这些单据的格式内容。

编号名称填写人D1 修车登记单送修人D2 汽车修理单修理派工员和修理工D3 零件领用单修理工D4 零件入库单仓库管理员D5 修车发票财务人员表1 当前系统单据一览表⑵ 四种账册,如表2所示。

图7-10显示了这些账册的表式。

图2 图4 图3 图5 图6编号 名称 建账根据 Z1 汽车登记册 D1 Z2 修理工名册 人事部门资料 Z3 汽车修理台账 D2,D5 Z4 库存修理台账 库房资料 表2 当前系统账册一览表 牌号 型号 生产厂 车主名 地址 电话 图7 汽车登记册表式 工号 姓名 小时工资 出生日期 进厂日期 地址 电话 图8 修理工名册表式⑶ 3种主要报表如表3所示图11-13显示了这些报表的格式。

工号牌号 修理项目 修理工号 修理小时 修理费 零件费 总计 零件用量 送修日期 完工日期 零件号 数量 零件号 数量 零件号 数量图9 汽车修理台账表式 零件号 零件名 成本 价格 库存量 最低库存量 订货量 图10 库存零件台账表式编号 名称 数据来源 B1 零件耗用月报表 Z3,Z4 B2 修理工资月报表 Z3,Z2 B3 零件订货计划 Z4表3当前系统报表一览表 零件名 订货量 成本 总计 图12零件订货计划 工号姓名 修理小时 小时工资 月工资 图13修理工资月报表 零件名数量 价格 名称 利润 图11零件耗用月报表三.数据库逻辑设计<<汽车修理单>>QICHEXIULIDAN四.软件功能设计⑵修改密码:包括旧密码、新密码及新密码的确认⑶注销用户:退回到登陆模式⑷退出系统:退出2.基本信息:⑴零件基本信息:包括的功能有零件的添加、修改、删除、查询⑵汽车基本信息:包括的功能有汽车的添加、修改、删除、查询⑶修理工基本信息:包括的功能有修理工的添加、修改、删除、查询3.表单操作:⑴修车登记单:包括的功能有修车登记的添加、修改、删除、查询⑵汽车修理单:包括的功能有汽车修理的添加、修改、删除、查询⑶零件入库单:包括的功能有零件入库的添加、修改、删除、查询⑷零件领用单:包括的功能有零件领用的添加、修改、删除、查询⑸修车发票:包括的功能有修车发票的添加、修改、删除、查询4.帐册操作⑴汽车登记册:包括的功能有汽车的添加、修改、删除、查询⑵修理工名册:包括的功能有修理工的添加、修改、删除、查询⑶汽车修理台账:自动汽车修理生成台账,有打印和查询的功能⑷库存零件台账:自动库存零件生成台账,可以更新和查询5.报表操作⑴零件耗用月报表:自动生成,有打印和查询功能⑵员工工资月报表:自动生成,有打印和查询功能⑶零件定货计划表:自动生成,有打印和查询功能6.帮助⑴帮助文档:用户操作手册⑵关于该系统:版本说明五.系统界面1.用户登录(用户名及密码都为admin)2.管理用户3.主界面及数据添加六.程序设计的心得体会SQL Server2000是美国微软公司开发的一款关系型数据库管理系统的产品,具有成本低,易上手,工具全等优点。

适用于大型或超大型数据库服务器端。

它所使用的是增强型T-SQL语言。

这个程序用到的数据库是一个关系型的数据库,设计关系型数据库的重头戏是把数据元素分别放进相关的表格里。

一旦准备好开始操作数据,要依靠表格之间的关系把数据以有意义的方式联系到一起。

这也是这个数据库程序设计的难点所在。

视图是关系型数据库系统提供给用户以多种角度观察数据库中数据的重要机制。

视图具有如下的一些优点:1.简单性。

视图不仅可以简化用户对数据的理解,也可以简化他们的操作。

那些被经常使用的查询可以被定义为视图,使用户不必为以后的操作每次都指定全部的条件。

2.安全性。

通过视图用户只能查询和修改他们所能见到的数据。

数据库中的其他数据则既看不见也取不到。

数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。

通过视图,用户可以被限制在数据的不同子集上。

3.逻辑数据独立性。

视图可以使应用程序和数据库表在一定程度上独立。

如果没有视图,应用一定是建立在表上的。

有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

在本程序中的三种统计报表:零件耗用月报表,修理工工资月报表,零件订货计划。

都是通过视图来完成自动的统计的。

数据库程序编写是通过对MFC ODBC 数据库访问技术的运用实现。

ODBC基于SQL(Structured Query Language),并把它作为访问数据库的标准。

这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。

一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。

ODBC可以为不同的数据库提供相应的驱动程序。

CRecordset类代表一个记录集。

该类是MFC的ODBC类中最重要、功能最强大的类。

本程序对数据库的操作大多是基于这个类的。

通过本次课程设计,让我对SQL SERVER 2000及Visual C++ 之间的设计连接有了更深的理解,提高了软件系统的设计能力,在设计中虽然遇到了很多困难,通过同学朋友帮助,及网络询问、搜查,慢慢解决遇到的问题,最终还是完成本次的课程设计,使我对编程有了更大的兴趣,形成正确的编写Windows程序的思路,了解利用Visual C++编写程序的奥妙。

本次的设计还有些“瑕疵”,主要是系统界面不够漂亮,还有待提高。

七.参考文献1.Visual c++6.0 数据库开发技术与工程实践,求是科技编著,人民邮电出版社;2.Visual C++6.0实用教程(第2版),杨永国、张冬明等编著,清华大学出版社;3.SQL Server数据库应用开发技术,袁鹏飞编著,人民邮电出版社;4.SQL Server 2000应用系统开发教程(第2版)李春葆编著,清华大学出版社;5.Visual C++ +SQL Server数据库应用系统开发与实例,启明工作室编著,人民邮电出版社。

《数据库原理与设计》课程设计一、课程设计题目设某汽车修理厂根据业务发展的需要,决定建立一个数据库管理系统,以代理单一的人工管理。

该系统取名为“汽车修理管理系统”。

2.1.1 当前系统的工作状况通过分析得知,该修理厂共使用5种单据,4种账册和3种主要报表。

(1)五种单据如表1所示:表中D1由送修人填写。

修理派工员据此开出修理单D2,分派给指定的修理工执行。

如果在修理中需要更换零件,一律由修理工填写零件领用单D3向仓库领用。

修理结束后,修理工将D2交回给派工员,然后转财务部门结账并开修车发票D5。

D4在零件入库时由仓库管理员验收并且填写。

图6显示了这些单据的格式内容。

(2)四种账册,如表2图7-10显示了这些账册的表式。

编号 名称 填写人 D1 修车登记单 送修人 D2 汽车修理单 修理派工员和修理工D3 零件领用单 修理工 D4 零件入库单 仓库管理员 D5修车发票财务人员表1 当前系统单据一览表图2图4图3表2 当前系统账册一览表牌号 型号 生产厂 车主名 地址 电话图7 汽车登记册表式工号姓名 小时工资出生日期进厂日期地址 电话图8 修理工名册表式(3)3种主要报表如表3所示图11-13显示了这些报表的格式。

工号 牌号修理项目 修理工号 修理小时 修理费 零件费总计零件用量 送修日期 完工日期 零件号 数量 零件号 数量 零件号 数量图9 汽车修理台账表式零件号 零件名 成本 价格 库存量 最低库存量订货量图10 库存零件台账表式编号 名称 数据来源 B1 零件耗用月报表 Z3,Z4 B2 修理工资月报表 Z3,Z2 B3零件订货计划Z4表3当前系统报表一览表零件名 订货量 成本 总计图12零件订货计划工号 姓名 修理小时小时工资月工资图13修理工资月报表零件名 数量 价格 名称 利润图11零件耗用月报表2 对目标系统的应用要求通过对当前系统的调查和讨论,对将要开发的目标系统提出了如下的总体要求:1.用数据文件代替现用的全部账册。

2.具有对各种数据文件装入和修改数据的功能。

3.能计算修车费和开发票。

其修车费按下列各式计算:零件费=∑零件价格×耗用数量修理费=∑小时工资×修理工时总计=零件费+修理费4.能找出需要订货的零件,编制并打印零件订货计划。

订货条件:零件库存量<最低库存量订货数量:额定订货量5.按现行格式和内容编制和打印零件耗用月报表和修理工资月报表。

6.有多种查询和统计功能。

二、开发环境数据库选用微软的SQL SERVER。

开发环境可以选择:(1)Delphi;(2)Visual Basic; (3) C++ builder; (4) Visual C++。

只选择其中的一种软件开发工具就可以。

三、基本要求(1)完成问题陈述中所提到的所有需求功能(2)要求撰写不少于2500个文字的文档。

(3)文档中至少要包括:ER模型图、系统功能图、数据字典、表关系的详细说明。

(4)用户界面设计:采用窗口式,色彩要柔和,界面要友好,操作要简单。

(5)用户手册,描述软件系统所具有的功能及基本的使用方法。

使用户能了解该软件的用途,并能确定在什么情况下、如何使用它。

(6)操作手册,为操作人员提供该软件每一个运行的具体过程和相关知识,包括操作方法的细节等。

相关文档
最新文档