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

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

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

某某公司的设备管理系统

功能及要求描述:

(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. 1026: [SCOI2009]windy数

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 8247  Solved: 3708[Submit][Sta ...

  2. hbase的HQuorumPeer和QuorumPeerMain

    hbase是列式数据库,既可以单机也可以以集群的方式搭建,以集群的方式搭建一般建立在hdfs之上. 分布式的hbase如何启动? 首先启动hadoop,然后就来问题了:zookeeper和hbase的 ...

  3. HTML学习笔记 cs动画基础(分列效果可用于做瀑布流) 第十五节 (原创) 参考使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 淘宝轮播JS

    taobao首页轮播原生js面对对象封装版 Author:wyf 2012/2/25

  5. DNA序列对齐问题

    问题描述: 该问题在算法导论中引申自求解两个DNA序列相似度的问题. 可以从很多角度定义两个DNA序列的相似度,其中有一种定义方法就是通过序列对齐的方式来定义其相似度. 给定两个DNA序列A和B,对齐 ...

  6. 《天书夜读:从汇编语言到windows内核编程》九 时间与定时器

    1)使用如下自定义函数获取自系统启动后经历的毫秒数:KeQueryTimeIncrement.KeQueryTickCount void MyGetTickCount(PULONG msec) { L ...

  7. 工作中用到的一些shell命令

    1.将十进制转换为十六进制 for i in `seq 0 127`; do printf "%02x\n" $i; done

  8. 微信小程序开发《三》:微信小程序请求不能使用session的原因及解决办法

    本人在前面的微信小程序开发<二>中提到要想在服务端保持状态需要在客户端第一次请求服务器的时候给客户端返回一个sessionid,由客户端在本地保存,下次请求的时候在header里面带上这个 ...

  9. git命令提交项目

    相关的操作命令,总是忘记,故在此记录下: 此为linux下的命, windows的话,去掉sudo即可 1.进入项目代码根目录,执行: sudo git init 把这个目录变成git可以管理的仓库. ...

  10. SSM框架通过mybatis-generator自动生成代码

    一.首先eclipse配置好maven环境,并且创建好一个SSM框架的工程 二.在pom.xml中添加plugin <build> <finalName>ssm_web< ...