设备管理系统.doc_第1页
设备管理系统.doc_第2页
设备管理系统.doc_第3页
设备管理系统.doc_第4页
设备管理系统.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设备管理系统程序设计基础课程设计报告二OO八年七月三日目 录1.课程设计目的22.课程设计题目描述和要求23.课程设计报告内容33.1设备类(kehu)104.运算结果105.课程设计总结106.参考书目101 课程设计目的练习自己的动手能力,在学习理论的同时增强自己的编程能力,使理论与实践相结合,在学习书本的同时扩展自己的课外知识.2 课程设计题目描述和要求2.1课程题目设备管理系统2.2课程要求根据规定的题目,编写程序设计说明(程序设计文档),程序设计说明包括以下内容:1、 设计的简要说明2、 程序运行的软件环境3、 程序的组成模块及每个模块的基本功能4、 程序的使用方法5、 源程序清单6、 总结与体会a) 有启动和退出界面b) 采用按钮或菜单选择方法,选择相应的功能c) 要求系统具有下列功能;(1)通过类实现。设备信息包括编号、名称、单价、数量、故障,所属实验室等字段;所录入的数据存入一个文本文件中,能根据情况能调出数据。(2)设备信息的插入、删除功能。(3)按编号进行排序功能。(4)按设备名称查询功能:完成按故障查询功能;完成按所属实验室查询功能。3调试 调试方法:每编一个函数,就进行调试,检验此函数是否有问题。在函数体中插入一些输出代码,这样可以检验函数在那个地方出了问题。 遇到的问题:不知道如何用链表的方法进行排序。 解决问题:在其他同学的帮助下,得以慢慢修改成功。4源程序:#define NULL 0#include#include #include #includeusing namespace std;struct Shebei /设备数据结构体int bianhao; /编号 string name; /名称float danjia; /单价 int shuliang; /数量 string guzhang; /故障string shiyanshi; /所属实验室 Shebei *next; ;int n;int main() Shebei *creat(void); /用链表输入设备数据函数 Shebei*del(Shebei *,int ); /用链表删除设备数据 Shebei *insert( Shebei *, Shebei *);/用链表插入设备数据 void print(Shebei *);/把设备数据录入文件夹并输出所有的设备数据函数 void chaxun (Shebei *,int);/查询设备数据函数 void tongji (Shebei *,int );/统计设备数据函数 void paixu(Shebei *); /排序设备数据函数 Shebei *head,tea; int del_bianhao,ab,aba; cout请输入设备数据,如果要结束请按0然后按回车键键:endl; head=creat(); /返回头指针 print(head); /录入设备数据并输出所有设备数据 char c; /字符变量 int a=1; while(a!=0) cout输入A是删除设备endl; cout输入B是插入设备endl; cout输入C是设备查询endl; cout输入D是设备统计endl; cout输入E是设备排序c; /选择输入 switch(c) case A: coutendldel_bianhao; /输入要删除的编号 head=del(head,del_bianhao); /删除后返回链表的头地址 print(head); /录入设备数据并输出所有设备数据 break; case B: coutendl请输入要插入的设备数据:endl; cout 输入设备编号:tea.bianhao; cout 输入设备名称:; cout 输入设备单价:tea.danjia; cout输入设备数量tea.shuliang;cout输入设备故障tea.guzhang; cout 输入设备所属实验室:tea.shiyanshi ; head=insert(head,&tea); /插入后返回链表的头地址 print(head); /录入设备数据并输出所有设备数据 break; case C: cout输入1设备名称查询endl; cout输入2设备故障故障查询endl; cout输入3设备所属实验室查询ab; chaxun(head,ab); /调用查询设备数据函数 break; case D: cout输入1故障率endl; cout输入除1以外的数是设备总量和总价格aba; tongji(head,aba); /调用统计设备数据函数 break; case E: paixu(head); break; cout如果还要查询请按除0外的任意数字,如果不需要查询请按0:a; return 0;Shebei *creat(void) /建立输入设备数据链表函数Shebei *head; Shebei *p1,*p2; n=0; p1=p2=new Shebei; /开辟一个新单元,并使p1,p2指向它 cout 输入设备编号:p1-bianhao; cout 输入设备名称:p1- name; cout 输入设备单价:p1-danjia; cout输入设备数量p1-shuliang; cout输入设备故障p1-guzhang; cout 输入设备所属实验室:p1-shiyanshi ; head=NULL; while(p1-bianhao!=0)n=n+1; if(n=1) head=p1; else p2-next=p1; p2=p1; p1=new Shebei; cout 输入设备编号:p1-bianhao; if(p1-bianhao=0) continue; cout 输入设备名称:p1- name; cout 输入设备单价:p1-danjia; cout输入设备数量p1-shuliang; cout输入设备故障p1-guzhang; cout 输入设备所在的所属实验室:p1-shiyanshi ;p2-next=NULL;return(head); Shebei *del(Shebei*head,int bianhao) /删除设备数据函数Shebei *p1,*p2; if (head=NULL) /是空表 return(head); p1=head; /使p1指向第一个结点 while(bianhao!=p1-bianhao & p1-next!=NULL) /p1指向的不是所要找的结点且后面还有结点 p2=p1; p1=p1-next; /p1后移一个结点 if(bianhao=p1-bianhao) /找到了 if(p1=head) head=p1-next; /若p1指向的是首结点,把第二个结点地址赋予head else p2-next=p1-next; /否则将下一结点地址赋给前一结点地址 cout删除的编号:bianhaoendl; n=n-1; else cout没有该编号next=NULL; /使指向的结点作为头结点 else while(p0-bianhaop1-bianhao) & (p1-next!=NULL) p2=p1; /使指向刚才p指向的结点 p1=p1-next; /p1后移一个结点 if(p0-bianhaobianhao) if(head=p1) head=p0; /插到原来第一个结点之前 else p2-next=p0; /插到p2指向的结点之后* p0-next=p1; else p1-next=p0; p0-next=NULL;/插到最后的结点之后 n=n+1; /结点数加 return (head); void print(Shebei *head) /输出链表的函数 ofstream outfile(f1.dat,ios:out); if(!outfile) cerropen error!endl; exit(1); while (head!=NULL) coutbianhao name danjia shuliang guzhang shiyanshiendl; outfilebianhao name danjia shuliang guzhang shiyanshinext; outfile.close();void chaxun(Shebei *head,int ab) /查询设备数据函数 bool leap; /布尔变量 leap=true; /为真 string nam ,gzhang,syanshi; /字符串变量if(ab=1) cout请输入要查询设备的名称:nam; while (head!=NULL) if(nam=head-name ) coutbianhao name danjia shuliang guzhang shiyanshinext; else if(ab=2)cout请输入要查询设备的故障:gzhang;while(head!=NULL)if(gzhang=head-guzhang)coutbianhao name danjia shuliang guzhang shiyanshinext; elseif(ab=3)cout请输入要查询设备的所属实验室:syanshi;while(head!=NULL)if(syanshi=head-shiyanshi)coutbianhao name danjia shuliang guzhang shiyanshinext; if(leap) cout对不起没有该设备guzhang=huai)shu=shu+1;shul=shul+p-shuliang;zongjia=zongjia+p-danjia*p-shuliang;p1=p;p=p-next;if(aba=1) cout设备故障率endl;coutshu/shul%endl;elsecout设备总量endl;coutshulendl;cout设备总价格endl; coutzongjianext)while(p1!=NULL)while(p1!=NULL)p=p1-next;if(p1-bianhaop-bianhao)p2=p;p4=p1;p=p1;p-next=p2;p1=p2;p1-next=p4-next;p3=p1;p1=p1-next;print(head); 41设备类插入,删除,排序,查寻,统计42运算结果5课程设计总结 通过做课程设计,以及对程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论