C语言课程设计实验设备管理Word下载.docx
《C语言课程设计实验设备管理Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实验设备管理Word下载.docx(30页珍藏版)》请在冰豆网上搜索。
设计内容:
编写一个简单的实验室设备管理程序,帮助管理实验室设备信息。
要求具有设备信息管理的功能。
其中包括设备信息的录入、删除、查询和修改等功能。
还应包括对实验室信息管理的功能。
其中包括对实验室信息的录入、删除、修改和查询等功能。
2.1程序设计组成框图
3、任务和要求
运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
本题程序应提供的基本管理功能有:
1)添加:
即增加一条信息到设备信息中,或增加一条信息到实验室信息中;
2)显示:
即在屏幕上显示所有设备或实验室信息;
3)存储:
即将设备信息和实验室信息分别保存在文件中;
4)装入:
即将文件中的信息读入程序;
5)查询:
可根据设备名称查找具体情况,若找到,显示在屏幕上;
6)修改:
可修改设备信息,或对实验室信息进行修改。
4、课程设计报告内容
4.1流程图显示
4.2程序实现思路
定义一个结点类,用于存放实验室设备的各种信息;
定义一个Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象;
定义一个Shebei类,用于包装Link类及菜单操作;
定义Link类和Shebei类的成员函数,实现要求的各种功能;
Link类:
classLink//Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象
{
private:
Node*head;
//链表的头指针,为Node对象类型的指针
public:
Link();
//构造函数,初始化变量
boollinkIsEmpty();
//判断链表是否为空
voidlinkInsert(Node*newnode);
//向链表中插入新的结点
boollinkDelete(intnid);
//从链表中删除的结点
voidlinkClear();
//清空链表中数据
voidlinkView();
//查看链表中数据
Node*linkFind(intnid);
//在链表中查找id为nid结点,返回指向该结点的指针
Node*getHead();
//获取头指针
};
Shebei类:
classShebei
Linkclink;
//Link对象成员
boolk;
//记录数据是否被修改
public:
Shebei();
voidShebeiClear();
voidShebeiInsert();
voidShebeiDelete();
voidShebeiFind();
voidShebeiModify();
voidShebeiView();
voidShebeiLoad();
voidShebeiSave();
voidExit();
//退出程序
voidshowMenu();
//显示菜单
voidshowTip();
//显示操作提示
voiddoMenu(charn);
//执行相应菜单项功能
然后就是各个函数的具体定义。
菜单选择功能的实现,使用switch语句;
菜单选择函数的定义:
voidShebei:
:
showMenu()
cout<
<
"
\t\t**************************************************"
endl;
\t\t*实验室设备管理系统*"
cout<
\t\t**"
\t\t*1--清空:
清除所有设备信息*"
\t\t*2--添加:
增加一个设备到设备信息中*"
\t\t**"
\t\t*3--删除:
删除指定设备数据*"
\t\t*4--查找:
根据设备数据查找设备信息*"
\t\t*5--修改:
修改指定设备信息*"
\t\t*6--显示:
在屏幕上显示所有设备的信息*"
\t\t*7--存储:
将设备信息保存在一个文件中*"
\t\t**"
\t\t*0--退出:
安全的退出本系统*"
}
showTip()
****************操作完成*********************"
**************选择0-7继续*****************"
请选择:
;
doMenu(charn)
switch(n)
{
case'
1'
ShebeiClear();
break;
2'
ShebeiInsert();
3'
ShebeiDelete();
break;
4'
ShebeiFind();
5'
ShebeiModify();
6'
ShebeiView();
7'
ShebeiSave();
0'
Exit();
default:
输入错误!
}
5、程序演示
5.1、进入系统
5.2添加设备信息
5.3删除指定设备信息
5.4根据设备数据查找设备信息
5.5修改设备信息
5.6显示所有设备信息
5.7将设备信息存储在文本中
6、总结
经过一个星期的C++程序设计,让我明白到了C++这门课的重要性,C++作为一门电脑学的基础课,是我们必须掌握的顺电脑飞速发展的今天,掌握电脑的应用是如今每一位大学生所必须掌握的,掌握电脑有对各人来说有我种好处,学习电脑是一种本领,也是一种生存的技能,而C++做为电脑的基础,掌握它更是我们这些大学生所必须掌握的。
经过这次程序设计,让我认识到了C++的运用是相当广泛的,才拿到题目的时候,我真的不知道该怎么办,但随着慢慢的设计,思路也总算有了,这样才能继续进行下去,这时我才真正认识到了C+++的功能原来是那么的多。
一个复杂的实验室设备管理系统,经过500-600行的代码就可以完完全全的达到,这是让我非常惊讶的,但相对,如今的C++也是非常难的,这学期学到的一些内容,都是C++的重点,但学下来以后感觉还是很难所以必须先打好基础,基础好了,学什么都会容易很多。
这次的程序设计让我重新认识到了C++,这是一门非常重要的科目,我们必须付出很多倍的努力学习它,才能熟练地掌握它。
源代码
#include<
iostream>
cstdlib>
string>
fstream>
sstream>
usingnamespacestd;
classNode//结点类,用于存放客户的各种信息
longid;
//实验设备编号
stringname;
//名称
stringtype;
//设备类型
stringsuoshushiyanshi;
//实验设备所属实验室
stringbuytime;
//购买时间
stringprice;
//价格
stringamount;
//库存量
stringshengchanriqi;
//生产日期
stringshiyongshouming;
//使用寿命
stringweight;
//重量
Node*next;
//指向下一结点的指针
Node(longid=000,stringnname="
noname"
stringntype="
unkown"
stringnsuoshushiyanshi="
unknow"
stringnbuytime="
stringnprice="
stringnamount="
stringnshengchanriqi="
stringnshiyongshouming="
stringnweight="
);
Node:
Node(longnid,stringnname,stringntype,stringnsuoshushiyanshi,
stringnbuytime,stringnprice,stringnamount,stringnshengchanriqi,
stringnshiyongshouming,stringnweight)
id=nid;
name=nname;
type=ntype;
suoshushiyanshi=nsuoshushiyanshi;
buytime=nbuytime;
price=nprice;
amount=namount;
shengchanriqi=nshengchanriqi;
shiyongshouming=nshiyongshouming;
weight=nweight;
next=NULL;
Link:
Link()//构造函数,初始化链表为空
head=NULL;
boolLink:
linkIsEmpty()//判断链表是否为空,空则返回true
return(head==NULL);
------共同设计
voidLink:
linkInsert(Node*newnode)//按id值从小到大的顺序,插入新的结点
Node*p1;
if(!
head)//链表为空的情况
head=newnode;
elseif((head->
id)>
(newnode->
id))//插入到第一个结点的情况
newnode->
next=head;
else//插入到第二个及以后情况
p1=head;
while
(1)
(p1->
next))
p1->
next=newnode;
elseif((p1->
next)->
id>
newnode->
id)
next=p1->
next;
p1=p1->
linkDelete(intnid)//删除结点,成功则返回true
Node*p;
if(head==NULL)//链表为空的情况
returnfalse;
if(head->
id==nid)//删除的为第一个结点的情况
head=head->
returntrue;
p=head;
while(p->
next)//删除的为第二个及以后结点的情况
if((p->
id==nid)
p->
next=(p->
p=p->
-------由陈广鹏设计
linkClear()//清空链表
Node*Link:
linkFind(intnid)//查找id值为nid的结点,返回该结点的指针
Node*p=head;
//没找到符合条件的结点的话,返回的指针值为NULL
while(p)
if(p->
else
returnp;
linkView()//显示链表数据
实验设备编号:
p->
id<
cout<
名称:
name<
类型:
type<
所属实验室:
suoshushiyanshi<
购买时间:
buytime<
价格:
price<
库存量:
amount<
生产日期:
shengchanriqi<
使用寿命:
shiyongshouming<
重量:
weight<
*******************************************************"
getHead()
returnhead;
//类Shebei,用于包装Link类及菜单操作
Shebei:
Shebei()
//调用成员对象的构造函数
ShebeiLoad();
//从文件中读取数据,创建链表
k=false;
//设置数据被修改
-----------由陈军文设计
ShebeiClear()//清空设备记录
clink.linkClear();
成功清空设备信息记录!
ShebeiInsert()//插入设备记录
Node*p=newNode();
请输入设备编号:
cin>
>
id;
请输入名称:
name;
请输入类型:
type;
请输入所属实验室:
suoshushiyanshi;
请输入购买时间:
buytime;
请输入价格:
price;
请输入库存量:
amount;
请输入生产日期:
shengchanriqi;
请输入设备重量:
weight;
clink.linkFind(p->
id))//判断设备信息是否存在
clink.linkInsert(p);
k=true;
设备编号为"
的的设备已存在,插入失败!
----------由陈磊设计
ShebeiDelete()//删除设备记录
longi;
if(clink.linkIsEmpty())//链表为空的情况
没有设备记录!
i;
if(clink.linkDelete(i))
成功删除编号为"
i<
的实验记录!
没有找到编号为"
的设备!
ShebeiFind()//查找某编号的设备记录
longn;
请输入要查找设备的编号:
n;
p=clink.linkFind(n);
//获得找到的结点的指针
if(p)//指针值不为NULL时
else//指针值为NULL时
n<
的设备记录!
ShebeiModify()//修改某编号的设备信息
请输入要修改设备的编号: