好久没更新博客了,最近一直在忙,花了一天时间做出这个简陋版的课程设计,

为了储存,也为了更新,所以于今天更新我的博客。

我选的课程设计题目如下:

某某公司的设备管理系统

功能及要求描述:

(1)公司主要包括三类设备需要管理:电视机、DVD、带DVD的电视机;

(2)设备主要包含的信息:编号、类别、名称、价格、库存数量;

(3)添加各类设备信息;

(4)删除设备信息;

(5)查找设备信息;

(6)修改设备信息;

(7)输出所有设备信息;

(8)将信息保存到文件。

由于我目前水平有限,并没有使用太多c++的东西,正如老师所说,只是把printf scanf换成了cout

cin之类,但尽管如此,我仍使用了类与对象,继承,文件这几个东西,对于这次,有个bug我没时间

调了,就是每次运行程序的时候,储存的后台信息会自动清除,并没有读取上回留下来的产品信息。

如果读者有兴趣的话,可以帮我debug,也算是留给大家的一个小小的“作业”。哈哈。

话不多说,贴上代码,还有一点,我比较调皮,加了两个图形,故代码部分你们可能不知道是什么,

你们可以运行看看这两个小彩蛋。。。。

 # include<iostream>
# include<fstream>
# include<cstring>
# include<cstdlib>//system()
# define maxnum //后台定义最大设备数量为50
using namespace std; //类的声明
class menu;
class Product;
class graphical; class graphical//图形类
{
public:
void in();//进入系统图形
void out();//退出系统图形
};
void graphical::out()
{
int a[][]= {};
int i,j;
a[][]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
for(j=; j<; j++) a[][j]=;
a[][]=,a[][]=;
for(i=; i<; i++)
{
for(j=; j<; j++)
if(a[i][j]==)
cout<<"*";
else
cout<<" ";
cout<<endl;
}
cout<<"拜拜 欢迎下次再来玩"<<endl;
cout<<"系统由台湾高山族第一美男子黄广独立完成"<<endl;
}
void graphical::in()
{
cout<<"----------Dragon be here!----------"<<endl;
cout<<" ┏┓   ┏┓"<<endl;
cout<<"┏┛┻━━━┛┻┓"<<endl;
cout<<"┃       ┃"<<endl;
cout<<"┃ ■ ■┃"<<endl;
cout<<"┃   ┃"<<endl;
cout<<"┃    ┃"<<endl;
cout<<"┃ ◎   ┃"<<endl;
cout<<"┃       ┃"<<endl;
cout<<"┗━┓   ┏━┛"<<endl;
cout<<"  ┃   ┃神兽保佑"<<endl;
cout<<"  ┃   ┃代码无BUG!"<<endl;
cout<<"  ┃   ┗━━━┓"<<endl;
cout<<"  ┃       ┣┓"<<endl;
cout<<"   ┃       ┏┛"<<endl;
cout<<"  ┗┓┓┏━┳┓┏┛"<<endl;
cout<<"   ┃┫┫ ┃┫┫"<<endl;
cout<<"   ┗┻┛ ┗┻┛"<<endl;
cout<<"━━━━━━神兽出没━━━━━━"<<endl;
} class Product //产品类
{
public:
int ID; //编号
int PRICE; //价格
int NUM; //库存数量
string TYPE; //类别 为三种 TV(电视) DVD DT(带DVD的电视)
string NAME; //名称 如 康佳电视机 美的电视机
//五个获取信息的成员函数
void getID(int & id)
{
ID=id;
}
void getPRICE(int & price)
{
PRICE=price;
}
void getNUM(int & num)
{
NUM=num;
}
void getTYPE(string & type)
{
TYPE=type;
}
void getNAME(string & name)
{
NAME=name;
}
void headdisplay();//显示南阳公司信息
void error();//显示错误信息(因为无产品)
};
void Product::headdisplay()
{
cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★"<<endl;
cout<<"★★★★★★★★★★★★★★欢迎来到南阳康佳公司★★★★★★★★★★★★★★★★"<<endl;
cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★"<<endl;
cout<<"★★★★★★★★★★ 当你看到这个界面 ★★★★★★★★★★★"<<endl;
cout<<"★★★★★★★★★★★★★★ 就代表你 ★★★★★★★★★★★★★★★★"<<endl;
cout<<"★★★★★★★★★★★★★ 已经成为一名 ★★★★★★★★★★★★★★★"<<endl;
cout<<"★★★★★★★★★★★★ 康佳产品搬运工 ★★★★★★★★★★★★★★"<<endl;
cout<<"★★★★★★★★★★★ 恭喜恭喜 ★★★★★★★★★★★★★"<<endl;
}
void Product::error()
{
cout<<"错误!!没有产品信息"<<endl;
cout<<"自动返回主菜单"<<endl<<endl;
} //全局定义产品信息组
int count=;
Product pro[maxnum];
//全局定义图形类对象
graphical b; class menu: public Product//菜单类继承产品类
{
public:
void Display();//显示菜单信息
void use();//操控菜单
void Add();//添加
void Find();//查找
void Delete();//删除
void Modify();//修改
void display();//显示产品信息
void Storage();//自动储存产品信息
void storage();//手动储存产品信息(欺骗用户)因为每一个操作之后都会自动储存 所以无需手动
void Empty();//清空产品日记信息
};
void menu::Display()
{
cout<<"***欢迎使用设备管理系统***"<<endl;
cout<<" ***1.添加设备信息***"<<endl;
cout<<" ***2.查找设备信息***"<<endl;
cout<<" ***3.删除设备信息***"<<endl;
cout<<" ***4.修改设备信息***"<<endl;
cout<<" ***5.输出设备信息***"<<endl;
cout<<" ***6.储存设备信息***"<<endl;
cout<<" ***7.一键清空信息***"<<endl;
cout<<" ***0.退出管理系统***"<<endl;
cout<<"请选择所需要的功能:";
}
void menu::use()
{
int i;
while(cin>>i)
{
switch(i)
{
case :
Add();
system("cls");
Storage();//自动储存
Display();
break;
case :
Find();
Display();
break;
case :
Delete();
Storage();//自动储存
Display();
break;
case :
Modify();
Storage();//自动储存
Display();
break;
case :
display();
Display();
break;
case :
storage();
Display();
break;
case :
Empty();
Display();
break;
case :
Storage();//自动储存
b.out();
exit();
break;
default:
cout<<"选择错误!!请重新选择!!"<<endl;
cout<<"请选择所需要的功能:";
}
}
}
void menu :: Add()
{
system("cls");
int _id,_price,_num=;
string _type,_name;
// 记录类别信息
cout<<"请选择添加的设备类别(1-3):"<<endl;
cout<<"1.电视机(TV) 2.DVD(DVD) 3.带DVD的电视机(DT)"<<endl;
int i;
while(cin>>i)
{
switch(i)
{
case :
_type="TV";
pro[count].getTYPE(_type);
break;
case :
_type="DVD";
pro[count].getTYPE(_type);
break;
case :
_type="DT";
pro[count].getTYPE(_type);
break;
default:
cout<<"输入有误!!请重新选择!!"<<endl;
}
if(i==||i==||i==)//防止用户非法输入
break;
}
// 记录名称信息
cout<<"请输入设备名称:"<<endl;
cin>>_name;
pro[count].getNAME(_name);
// 记录编号信息
cout<<"请输入设备编号(四位数,以“1”开头,如“1000”)"<<endl;
cin>>_id;
pro[count].getID(_id);
//记录价格信息
cout<<"请输入价格(1-9999):"<<endl;
cin>>_price;
pro[count].getPRICE(_price);
//记录库存信息
pro[count].getNUM(_num);
count++;
}
void menu::Delete()
{
system("cls");
if(count==)
{
error();//输出无产品信息
return ;//如果没有产品则终止删除函数
}
cout<<"欢迎使用删除功能,产品信息如下:"<<endl;
display();//显示产品信息
cout<<"请输入想删除的产品的编号:";
int bian,d,i;
while(cin>>bian)
{
for(i=; i<count; i++)
{
if(pro[i].ID==bian)//如果编号存在
{
cout<<"请问您是否确认删除编号为"<<pro[i].ID<<"的产品?"<<endl;
cout<<"1.是 2.否"<<endl;
cin>>d;
if(d==)//确认删除
{
if(i==count-)//如果是最后一个 无需前移
count--;
else//如果不是最后一个 则后续产品前移
{
while()
{
pro[i].ID=pro[i+].ID;
pro[i].TYPE=pro[i+].TYPE;
pro[i].NAME=pro[i+].NAME;
pro[i].PRICE=pro[i+].PRICE;
pro[i].NUM =pro[i+].NUM;
count--;
i++;
if(i==count)//前移完毕后跳出while循环
break;
}
}
cout<<"删除成功!!"<<endl;
return;//删除成功后 直接终止删除函数
}
else//否认删除 自动返回主菜单
{
return ;
}
}
}
if(i==count)//如果编号不存在
cout<<"您输入的编号有误,请重新输入"<<endl;
}
}
void menu::Find()
{
system("cls");
if(count==)
{
error();//输出无产品信息
return ;//如果没有产品则终止查找函数
}
cout<<"欢迎使用查找功能,请选择查找方式:"<<endl;
cout<<"1.编号 2.名称 "<<endl;
int c;
string s_name;
int bian,i;
while(cin>>c)
{
if(c==)//如果选择编号
{
cout<<"请输入编号:";
while(cin>>bian)
{
for(i=; i<count; i++)
{
if(pro[i].ID==bian)//如果编号存在
{
cout<<"您所输入编号的设备的信息如下:"<<endl;
cout<<" "<<endl;
cout<<"编号:"<<pro[i].ID;
cout<<" 类别:"<<pro[i].TYPE;
cout<<" 名称:"<<pro[i].NAME;
cout<<" 价格:"<<pro[i].PRICE;
cout<<" 库存数量:"<<pro[i].NUM<<endl;
cout<<" "<<endl;
return ;
}
}
if(i==count)//如果编号不存在
{
cout<<"您输入的编号有误,请选择"<<endl;
cout<<"1.继续查找 2.结束查找"<<endl;
int ss;
while(cin>>ss)
{
if(ss==)
{
cout<<"请输入编号:";
break;//跳出之后返回
}
else if(ss==)
return ;//结束查找
else
cout<<"选择错误,请重新选择"<<endl;
}
}
}
}
if(c==)//如果选择名称
{
cout<<"请输入名称:";
while(cin>>s_name)
{
for(i=; i<count; i++)
{
if(pro[i].NAME==s_name)//如果编号存在
{
cout<<"您所输入名称的设备的信息如下:"<<endl;
cout<<" "<<endl;
cout<<"编号:"<<pro[i].ID;
cout<<" 类别:"<<pro[i].TYPE;
cout<<" 名称:"<<pro[i].NAME;
cout<<" 价格:"<<pro[i].PRICE;
cout<<" 库存数量:"<<pro[i].NUM<<endl;
cout<<" "<<endl;
return ;
}
}
if(i==count)//如果编号不存在
{
cout<<"您输入的名称有误,请选择"<<endl;
cout<<"1.继续查找 2.结束查找"<<endl;
int ss;
while(cin>>ss)
{
if(ss==)
{
cout<<"请输入名称:";
break;//跳出之后返回
}
else if(ss==)
return ;//终止要求
else
cout<<"选择错误,请重新选择"<<endl;
}
}
}
}
else
cout<<"选择错误,请重新选择"<<endl;
}
}
void menu::display()
{
if(count==)
{
system("cls");
error();
return ;
}
else
{
int i;
for(i=; i<count; i++)
{
cout<<endl<<"编号:"<<pro[i].ID;
cout<<" 类别:"<<pro[i].TYPE;
cout<<" 名称:"<<pro[i].NAME;
cout<<" 价格:"<<pro[i].PRICE;
cout<<" 库存数量:"<<pro[i].NUM<<endl;
cout<<" "<<endl;
}
}
}
void menu::Modify()
{
system("cls");
if(count==)
{
error();
return ;//如果没有产品则终止查找函数
}
cout<<"欢迎使用修改功能,产品信息如下:"<<endl;
display();
cout<<"请输入想修改的产品的编号:";
int bian,d,i;
string s_name;
int s_price,s_num;
while(cin>>bian)
{
for(i=; i<count; i++)
{
if(pro[i].ID==bian)//如果编号存在
{
cout<<"请输入想要修改的内容:"<<endl;
cout<<"1.名字 2.价格 3.库存数量"<<endl;
while(cin>>d)//输入选项 如非法输入则重新输入
{
switch(d)
{
case :
cout<<"请输入新的名字:";
cin>>s_name;
pro[i].getNAME(s_name);
cout<<endl<<"修改成功,自动返回主菜单"<<endl;
return ;
case :
cout<<"请输入新的价格:";
cin>>s_price;
pro[i].getPRICE(s_price);
cout<<endl<<"修改成功,自动返回主菜单"<<endl;
return ;
case :
cout<<"请输入新的库存数量:";
cin>>s_num;
pro[i].getNUM(s_num);
cout<<endl<<"修改成功,自动返回主菜单"<<endl;
return ;
}
cout<<"选择错误,请重新选择"<<endl;
}
}
}
if(i==count)//如果编号不存在
cout<<"您输入的编号有误,请重新输入"<<endl;
}
}
void menu::Storage()
{
ofstream ofs;
int i;
ofs.open("C:\\information.txt",ios::out|ios::trunc);
if(ofs)//判断是否打开成功
{
for(i=; i<count; i++)
{
ofs<<endl<<"编号:"<<pro[i].ID;
ofs<<" 类别:"<<pro[i].TYPE;
ofs<<" 名称:"<<pro[i].NAME;
ofs<<" 价格:"<<pro[i].PRICE;
ofs<<" 库存数量:"<<pro[i].NUM<<endl;
ofs<<endl;
}
}
ofs.close();
}
void menu::storage()
{
system("cls");
cout<<"储存成功,信息已存在c盘的information.txt下"<<endl<<endl;
}
void menu::Empty()
{
cout<<"请问是否确认清空信息"<<endl;
cout<<"1.是 2.否"<<endl;
int d;
while(cin>>d)
{
if(d==)
{
count=;
cout<<"清空成功,自动返回主菜单"<<endl;
return ;
}
else if(d==)
return ;
else
cout<<"选择错误!! 请重新选择"<<endl;
}
} int main(void)
{
system("color 3E");//设置颜色
//定义菜单类的对象
menu a; b.in();//调用图形类的进入系统图形函数
cout<<"请用你洁白的小手轻轻点击一下回车键"<<endl;
getchar();
system("cls"); a.headdisplay();//调用菜单类继承产品类的显示公司函数
a.Display();//调用菜单类的显示菜单函数
a.use();//使用系统
return ;
}

学校的c++程序课程设计(简单的写法 并无太多c++的特色)的更多相关文章

  1. c语言程序课程设计题目

    <C语言程序设计>课程设计课题表 一.A类 .职工信息管理系统设计 职工信息包括职工号.姓名.性别.年龄.学历.工资.住址.电话等(职工号不重复).试设计一职工信息管理系统,使之能提供以下 ...

  2. 2017Java课程设计201521123007

    1. 课程设计博客链接 项目地址 2. 个人负责模块或任务说明 ps:一个人做的项目 一个登录jsp文件,登录成功转入商品界面, 一个商品jsp文件,显示所有商品信息,数据从MySql数据库导入,可以 ...

  3. JAVA课程设计——一个简单的教务人事管理系统

    大三上学期期末总结,没错,上学期,写在下学期新学期开始,哈哈哈. 上学期学习了面向对象程序设计,课程设计的题目使用JAVA语言完成一个简单的教务人事管理系统,能够实现访问数据库的登录验证,分别按部门和 ...

  4. Java课程设计——计算数学表达式的程序(201521123051 谢庆圆)

    计算数学表达式的程序(201521123051 谢庆圆) 1.团队课程设计博客链接 团队课程设计博客链接 2.个人负责模块或任务说明 1.计算数字表达式中操作按钮的实现(右容器) 2.. 注册监听器以 ...

  5. 单片机课程设计-四位加法计算器设计参考程序(c语言)

    #include<reg52.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit rw=P2^; sbit ...

  6. 基于mysql和Java Swing的简单课程设计

    摘要 现代化的酒店组织庞大.服务项目多.信息量大.要想提高效率.降低成本.提高服务质量和管理水平,进而促进经济效益,必须利用电脑网络技术处理宾馆酒店经营数据,实现酒店现代化的信息管理.本次课程设计运用 ...

  7. 课程设计之(struts2+Hibernate)航空订票系统

    1.题目 课程设计之航空订票系统 为某家机票预订服务商开发一个机票预订和查询管理系统.该系统中的航班和机票信息由多家航空公司负责提供.客户通过上网方式查询航班时间表.机票可用信息.机票折扣信息,可以远 ...

  8. 嵌入式系统及应用课程设计——基于STM32的温湿度监测系统

    大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh. 上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统. 记得刚开始做课程设计的时候,听说先设计画出原理 ...

  9. Socket聊天程序——初始设计

    写在前面: 可能是临近期末了,各种课程设计接踵而来,最近在csdn上看到2个一样问答(问题A,问题B),那就是编写一个基于socket的聊天程序,正好最近刚用socket做了一些事,出于兴趣,自己抽了 ...

随机推荐

  1. 让盒子两端对齐小技巧 => inline-block

    今天在项目中碰到了设计盒子两端对齐的栗子,咱们用inline-block方法轻松的解决了,下面是我的经验: 原理: 利用文字text-align:justify; 操纵inline-block盒子,能 ...

  2. python基础知识——基于python3.6

    语法糖 # # -*- coding: utf-8 -*- # #------------- # #--------- 语法糖--------------- # #------------------ ...

  3. Mongoose之 SchemaTypes 数据类型

    SchemaTypes 数据类型 SchemaTypes handle definition of path defaults, validation, getters, setters, field ...

  4. Lombok 使用小结

    Lombok 简介 Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO).它通过注释实现这一目的.通过在开发环境中实现 Lo ...

  5. day2--通过setup设置网卡

    配置IP地址,安装完成centos之后,需要配IP地址,流程如下: 1.首先开启虚拟机,如下: 2.登陆账号,root账户登陆,如下: 3.输入setup,按回车键进入,设置IP的方法有很多种,此处采 ...

  6. HttpClient发送Post请求,get请求

    // 创建默认的httpclient实例 CloseableHttpClient httpclient = getHttpClient(); CloseableHttpResponse respons ...

  7. C#中消息的工作流程

    C#中的消息被Application类从应用程序消息队列中取出,然后分发到消息对应的窗体,窗体对象的第一个响应函数是对象中的protected override void WndProc(ref Sy ...

  8. 掌握numpy(一)

    NumPy是一款用于科学计算的python包,强大之处在于矩阵的运算以及包含丰富的线性代数运算的支持.本文将对numpy一些常用的用法进行讲解,一来是对自己的知识进行梳理,二来作为一份备忘录供以后查阅 ...

  9. Power BI连接SSAS(微软的分析服务)进行权限控制(本地部署)

    尬聊...... 在干活之前先尬聊一会儿 丸子我在10月下旬左右就开始弄power BI连接SSAS进行权限控制的问题,中间也是历经波折,看了网上很多资料,可是都是SSAS怎么进行权限控制,没有SSA ...

  10. 脱掉Golang的第一层衣裳 golang入坑系列

    读前必读,博客园的文章并非最新,想看最新还是建议点击这里.博客园的文章是为了方便不能FQ的同学,同步而来的.不放在博客园,不是不支持国产,而是博客园的排版太难看了,太难看了,太难看了!而且还没有客户端 ...