




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、山东理工大学计算机学院课 程 设 计(软件开发实践)班 级 软件1304 姓 名 郭江涵学 号指导教师 方春二一五年一月十三日课程设计任务书及成绩评定课题名称 固定资产管理系统、题目的目的和要求: 1、 设计目的基于C+面向对象编程语言的知识,用<<数据结构>>中的顺序存储、链表、堆栈、串、树、图等数据结构,结合项目的具体需求编写该系统,能熟练掌握几种基本数据结构的基本操作。使用合适的数据结构和算法来实现各功能模块的增、删、改、查,把所学数据结构知识应用到实际软件开发中去。巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解
2、,最终使学生能够熟练应用数据结构的知识写程序。能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。2、设计题目要求: 随着公司业务不断发展,人员越来越多,固定资产的管理人员压力逐渐增大,需要建立数据库和使用软件系统来进行管理。公司对固定资产的定义为:价值超过2000元人民币的设备。例如彩色喷墨打印机、计算机、扫描仪、机房其他设备,而打印纸、书籍等不属于固定资产,属于易耗品。通过同资产管理人员和该公司领导的面谈,总结和归纳之后,他们需要软件具备以下的功能:1 管理员登录2 固定资产信息管理3 人员信息管理4 资产配置:领用、归还5 资产处置:调拨、变卖、
3、报废案例覆盖技能点1、 数组、字符串、运算符重载2、 类的封装、继承、多态性3、 虚函数、纯虚函数和抽象类4、 输入输出流的操作5、 程序算法的设计说明(流程图形式)6、 常用数据结构的操作7、 例如:顺序存储、链表、树、图等系统基本模块包括:功能点难度登录资产信息管理人员信息管理资产配置资产处置、设计进度及完成情况日 期内 容1.05-1.09选取参考书,查阅有关文献资料,完成资料搜集和系统分析工作。1.091.12创建相关数据结构,录入源程序。1.131.13调试程序并记录调试中的问题,初步完成课程设计报告。1.141.14上交课程设计报告打印版并进行课程设计答辩,要求每个同学针对自己的设
4、计回答指导教师3-4个问题。考核结束后将课程设计报告和源程序的电子版交班长统一刻光盘上交。、主要参考文献及资料1 严蔚敏 数据结构(C语言版)清华大学出版社 19992 谭浩强 C语言程序设计 清华大学出版社3 与所用编程环境相配套的C语言或C+相关的资料、成绩评定 成绩: (教师填写) 指导老师: (签字) 二一五 年 一 月 十三 日目 录第一章 概述1第二章 系统分析2第三章 概要设计3第四章 详细设计13第五章 运行与测试24第六章 总结与心得29参考文献30第一章 概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课
5、程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。数据结构是一门重要的专业基础课,是计算机理论和应用的核心基础课程。数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。课程设计可以锻炼学生们的思考构思能力和动手实践能力,通过课程设计中的实际性问题,可以让学生把平日所学理论知识与亲身实践结合在一起,更好的提高学生编程的综合能力。课程设计还可以让学生查出自己平日里的不足,结合实际问题,把理论与实际相结合,找出
6、以后的学习努力方向,查漏补缺,更进一层楼。第二章 系统分析1、本次课程设计,有小组共同分工完成代码的编写和实现程序的运行。在整个固定资产管理系统中,一共包括登陆、资产信息管理、人员信息管理、资产配置和资产处置五大模块,我主要负责人员信息管理模块和登陆模块以及程序代码整体大框架的编写。2、在登陆模块中,主要是管理员登陆系统,进行对资产信息以及人员信息的增删改查,为了系统人员信息以及资产信息的安全性问题,需要对管理员登录信息进行安全性验证,所以管理员登陆系统需要输入自己的账户名和密码,(系统管理员初始账户和密码为“guanliyuan”“1234”),只有密码和账户都输入正确才能进入系统,否则系统
7、会提示管理员重新输入自己的账户和密码,知道输入正确才能进入系统。3、在人员信息管理模块中,主要要实现人员信息的增删改查功能,这里的“人员”是指可能领用资产的人,人员的信息包括人员编号、姓名、职务和备注。在该模块中可以选择某个员工查看该员工的所属资产。在这个模块中,定义了LinkNode和LinkList两个类,还用了链表的方法实现数据的查找与增加删除和查询。系统显示通过查询人员编号来找到人员信息进行删除或者修改,其实是通过查询链表结点来查找每个数据,为了确保通过编号能正确的找到对应编号的人员,所以管理员在添加人员信息时,需要先输入结点位置,再输入编号,并且结点值需要与编号相同,(在系统中显示的
8、是“请输入要添加的人员编号”“请再次确认人员编号”,其实第一次输入的人员编号是插入信息的结点位置值,第二次输入的才是人员编码)所以为了避免管理员输入的结点位置值和人员编号不相同,在添加人员信息模块的代码中又添加了一个if判断语句,来判断管理员输入的结点位置值和人员编号值是否相同,只有相同时才能继续添加其他信息,否则系统将提示输入出错,继续添加人员编号。第三章 概要设计1、 数据结构的设计本程序设计主要采用的是数据结构的思想,运用了C+的手段,完成了代码的编写和实现了程序的运行,在人员信息管理模块中,运用了链表的方法以及类的思想,还运用了构造函数和析构函数实现了代码的编写。 2、 算法的设计(1
9、)、登陆信息的有效性验证:void logn()cout<<"管 理 员 你 好, 请 登 录。"<<endl;cout<<"请 输 入 您 的 账 号:"cin>>zhanghao;cout<<"请 输 入 你 的 密 码:"cin>>mima;while(zhanghao!="guanliyuan"|mima!=ma)cout<<"| 账号密码错误,请重新输入: |"<<endl;cout<
10、<"请输入您的账号:"cin>>zhanghao;cout<<"请输入你的密码:"cin>>mima;if(zhanghao="guanliyuan"&&mima=ma)/*有效性检验,管理员进入系统*/ (各模块代码。)(2)LinkNode和LinkList类的定义:class LinkNode/*编号、姓名、职务和备注*/int data;/编号string name;/姓名string staff;/职位string remark;/备注/*指向下一个节点*/LinkN
11、ode *next;public:LinkNode( void )/*默认构造函数*/data = 0;name="空"staff="空" remark="空"next = NULL;LinkNode( const LinkNode &obj )/*构造函数,实现初始化*/data = obj.data;name=;staff=obj.staff;remark=obj.remark;next = obj.next;LinkNode( void )/*析构函数*/data = 0;name="空&quo
12、t;staff="空"remark="空"next = NULL;void setData( int a )/*设置data*/data = a;int getData( void )/*获得data*/return data;void set_name( string a )name= a;string get_name( void )/*获得data*/return name;void set_staff( string a )staff= a;string get_staff( void )/*获得data*/return staff;void s
13、et_remark( string a )remark= a;string get_remark( void )/*获得data*/return remark;void setNext( LinkNode *p )next = p;LinkNode *getNext( void )return next;void pp( void )data+;void ss( void )data-;typedef LinkNode* pLink;class LinkListLinkNode head;public:LinkList( void )head.setData( 0 );head.set_nam
14、e("空");head.set_staff("空");head.set_remark("空");head.setNext( NULL );LinkList( const LinkList &obj )pLink p, q = &head;head = obj.head;p = head.getNext();head.setNext( NULL );while( p )q->setNext( new LinkNode );q = q->getNext();q->setData( p->getDat
15、a() );p = p->getNext();LinkList( void )MakeEmpty();void MakeEmpty( void )pLink p = &head, q = p->getNext();head.setData( 0 );head.set_name("空");head.set_staff("空");head.set_remark("空");while( q )p->setNext( q->getNext() );delete q;q = p->getNext();int
16、 Length( void )return head.getData();void Insert( int x,string a,string b,string c, int i )int n = -1;pLink p = &head, q;if( i < 0 )return;while( p->getNext() && ( +n < i ) )p = p->getNext();q = new LinkNode;q->setData( x );q->set_name(a);q->set_staff(b);q->set_re
17、mark(c);q->setNext( p->getNext() );p->setNext( q );head.pp();void Delete( int x )pLink p = &head, q = head.getNext();while( q )if( q->getData() = x )p->setNext( q->getNext() );delete q;q = p->getNext();elsep = p->getNext();q = q->getNext();int ReMove( int i )pLink p =
18、&head, q;int n = -1;while( p->getNext() && ( +n < i ) )p = p->getNext();if( p )return 0;elseq = p->getNext();p->setNext( q->getNext() );delete q;return 1;int Find( int x )pLink p = head.getNext();while( p )if( p->getData() = x )return 1;p = p->getNext();return 0;v
19、oid Display( void )pLink p = head.getNext();while( p )cout<<"编号:" << p->getData() << endl;cout<<"姓名:"<<p->get_name()<<endl;cout<<"职位:"<<p->get_staff()<<endl;cout<<"备注:"<<p->get_remar
20、k()<<endl;p = p->getNext();(3)、默认构造函数LinkNode( void )/*默认构造函数*/data = 0;name="空"staff="空" remark="空"next = NULL;(4)、构造函数,实现初始化LinkNode( const LinkNode &obj )data = obj.data;name=;staff=obj.staff;remark=obj.remark;next = obj.next;(5)、析构函数LinkNode( vo
21、id )data = 0;name="空"staff="空"remark="空"next = NULL;(6)、主界面函数int menu( void )int re;system( "cls" );cout<<"tt欢迎进入固定资产管理系统-人员管理模块"<<endl;cout << "tt1.置空" << endl;cout << "tt2.显示人员个数:" << endl;cou
22、t << "tt3.插入人员" << endl;cout << "tt4.删除所有指定值的人员" << endl;cout << "tt5.移除指定位置的人员" << endl;cout << "tt6.查找有无指定值的人员" << endl;cout << "tt7.显示" << endl;cout << "tt8.退出" << e
23、ndl;cout<<"tt请输入您的选择:"<<endl;cin >> re;system( "cls" );if( re <= 8 && re > 0 )return re;elsereturn 0;(7)、删除人员信息函数:void Delete( int x )pLink p = &head, q = head.getNext();while( q )if( q->getData() = x )p->setNext( q->getNext() );delete
24、 q;q = p->getNext();elsep = p->getNext();q = q->getNext();(8)、移除人员信息函数:int ReMove( int i )pLink p = &head, q;int n = -1;while( p->getNext() && ( +n < i ) )p = p->getNext();if( p )return 0;elseq = p->getNext();p->setNext( q->getNext() );delete q;return 1;(9)查找人员
25、信息函数:int Find( int x )pLink p = head.getNext();while( p )if( p->getData() = x )return 1;p = p->getNext();return 0;(10)、显示人员信息函数void Display( void )pLink p = head.getNext();while( p )cout<<"编号:" << p->getData() << endl;cout<<"姓名:"<<p->get_
26、name()<<endl;cout<<"职位:"<<p->get_staff()<<endl;cout<<"备注:"<<p->get_remark()<<endl;p = p->getNext(); 第四章 详细设计(一)人员信息管理模块#include <iostream>#include <cstdlib>#include<string>using namespace std;class LinkNode/*编号、
27、姓名、职务和备注*/int data;/编号string name;/姓名string staff;/职位string remark;/备注/*指向下一个节点*/LinkNode *next;public:LinkNode( void )/*默认构造函数*/data = 0;name="空"staff="空" remark="空"next = NULL;LinkNode( const LinkNode &obj )/*构造函数,实现初始化*/data = obj.data;name=;staff=obj.sta
28、ff;remark=obj.remark;next = obj.next;LinkNode( void )/*析构函数*/data = 0;name="空"staff="空"remark="空"next = NULL;void setData( int a )/*设置data*/data = a;int getData( void )/*获得data*/return data;void set_name( string a )name= a;string get_name( void )/*获得data*/return name;vo
29、id set_staff( string a )staff= a;string get_staff( void )/*获得data*/return staff;void set_remark( string a )remark= a;string get_remark( void )/*获得data*/return remark;void setNext( LinkNode *p )next = p;LinkNode *getNext( void )return next;void pp( void )data+;void ss( void )data-;typedef LinkNode* p
30、Link;class LinkListLinkNode head;public:LinkList( void )head.setData( 0 );head.set_name("空");head.set_staff("空");head.set_remark("空");head.setNext( NULL );LinkList( const LinkList &obj )pLink p, q = &head;head = obj.head;p = head.getNext();head.setNext( NULL );w
31、hile( p )q->setNext( new LinkNode );q = q->getNext();q->setData( p->getData() );p = p->getNext();LinkList( void )MakeEmpty();void MakeEmpty( void )pLink p = &head, q = p->getNext();head.setData( 0 );head.set_name("空");head.set_staff("空");head.set_remark(&quo
32、t;空");while( q )p->setNext( q->getNext() );delete q;q = p->getNext();int Length( void )return head.getData();void Insert( int x,string a,string b,string c, int i )int n = -1;pLink p = &head, q;if( i < 0 )return;while( p->getNext() && ( +n < i ) )p = p->getNext()
33、;q = new LinkNode;q->setData( x );q->set_name(a);q->set_staff(b);q->set_remark(c);q->setNext( p->getNext() );p->setNext( q );head.pp();void Delete( int x )pLink p = &head, q = head.getNext();while( q )if( q->getData() = x )p->setNext( q->getNext() );delete q;q = p-&
34、gt;getNext();elsep = p->getNext();q = q->getNext();int ReMove( int i )pLink p = &head, q;int n = -1;while( p->getNext() && ( +n < i ) )p = p->getNext();if( p )return 0;elseq = p->getNext();p->setNext( q->getNext() );delete q;return 1;int Find( int x )pLink p = hea
35、d.getNext();while( p )if( p->getData() = x )return 1;p = p->getNext();return 0;void Display( void )pLink p = head.getNext();while( p )cout<<"编号:" << p->getData() << endl;cout<<"姓名:"<<p->get_name()<<endl;cout<<"职位:"&l
36、t;<p->get_staff()<<endl;cout<<"备注:"<<p->get_remark()<<endl;p = p->getNext();int menu( void )int re;system( "cls" );cout << "tt1.置空" << endl;cout << "tt2.显示人员个数:" << endl;cout << "tt3.插入人员&q
37、uot; << endl;cout << "tt4.删除所有指定值的人员" << endl;cout << "tt5.移除指定位置的人员" << endl;cout << "tt6.查找有无指定值的人员" << endl;cout << "tt7.显示" << endl;cout << "tt8.退出" << endl;cout<<"tt请输入
38、您的选择:"<<endl;cin >> re;system( "cls" );if( re <= 8 && re > 0 )return re;elsereturn 0;int main( void )LinkList L;int a, b;string info1,info2,info3;while( true )switch( menu() )case 0:cout << "输入有误,请重新输入" << endl;break;case 1:L.MakeEmpty()
39、;break;case 2:cout << "共有 " << L.Length() << " 个人员" << endl;/显示的人员数是结点的个数system( "pause" );break;case 3:cout << "请输入要添加的人员编号:"cin >> a;cout << "请再次确认人员编号:" ;cin >> b;while(a!=b)cout<<"两次输入不一致
40、,请重新输入"<<endl;cout << "请输入要添加的人员编号:"cin >> a;/结点位置cout << "请再次确认人员编号:" ;cin >> b;/编号if(a=b)cout<<"姓名"<<endl;cin>>info1;cout<<"职位:"<<endl;cin>>info2;cout<<"备注:"<<endl;c
41、in>>info3;L.Insert( b, info1,info2,info3,a );break;case 4:cout<<"请输入要删除的人员编号"<<endl;cin >> a;L.Delete( a );break;case 5:cout<<"请输入要移除的人员编号"<<endl;cin >> a;if( L.ReMove( a ) )cout << "删除成功" << endl;elsecout << &
42、quot;未能找到指定结点" << endl;system( "pause" );break;case 6:cout<<"请输入要查询的人员编号"<<endl;cin >> a;if( L.Find( a ) )cout << "找到了编号为" << a << "的人员" << endl;elsecout << "没有编号为" << a << "的人员" << endl;system( "pause" );break;case 7:L.Display();system( "pause" );break;default:return 0;return 0;(二)管理员登陆模块void logn()co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物医药技术在教育中的实践与探索
- 高中维修合同范本
- 2024年荔波县甲良镇中心卫生院人员招聘考试真题
- 2025至2030年中国氟利昂表数据监测研究报告
- 知识产权的商业化运用策略
- 2024年福州地铁集团有限公司招聘考试真题
- 知识产权诉讼流程及典型案例讲解
- 向下属反馈协议
- 种植业技术创新与生态农业的协同发展
- 合作分成协议书
- 江苏2025年01月江苏省扬州生态科技新城管委会2025年招考6名劳务派遣人员笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2024年湖南外贸职业学院单招职业适应性测试题库及答案解析
- 中国儿童幽门螺杆菌感染诊治专家共识2022
- 山东职业学院单招《语文》考试复习题库(含答案)
- 光伏发电工程施工组织设计施工工程光伏发电工程光伏发电施工组织设计
- 11钢的表面淬火解析
- 民政局离婚协议书模板(4篇)
- 导数应用举例
- 第三讲文献的形成与流布1
- 配煤配矿管理办法
- ISO14001风险和机遇评估分析报告
评论
0/150
提交评论