固定资产管理系统课程设计报告郭江涵

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

山东理工大学计算机学院课程设计(软件开发实践)班级软件1304姓名郭江涵学号13110572137指导教师方春二○一五年一月十三日课程设计任务书及成绩评定课题名称固定资产管理系统Ⅰ、题目的目的和要求:1、设计目的基于C++面向对象编程语言的知识,用数据结构中的顺序存储、链表、堆栈、串、树、图等数据结构,结合项目的具体需求编写该系统,能熟练掌握几种基本数据结构的基本操作。使用合适的数据结构和算法来实现各功能模块的增、删、改、查,把所学数据结构知识应用到实际软件开发中去。巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。2、设计题目要求:随着公司业务不断发展,人员越来越多,固定资产的管理人员压力逐渐增大,需要建立数据库和使用软件系统来进行管理。公司对固定资产的定义为:价值超过2000元人民币的设备。例如彩色喷墨打印机、计算机、扫描仪、机房其他设备,而打印纸、书籍等不属于固定资产,属于易耗品。通过同资产管理人员和该公司领导的面谈,总结和归纳之后,他们需要软件具备以下的功能:1.管理员登录2.固定资产信息管理3.人员信息管理4.资产配置:领用、归还5.资产处置:调拨、变卖、报废案例覆盖技能点1、数组、字符串、运算符重载2、类的封装、继承、多态性3、虚函数、纯虚函数和抽象类4、输入输出流的操作5、程序算法的设计说明(流程图形式)6、常用数据结构的操作7、例如:顺序存储、链表、树、图等系统基本模块包括:功能点难度登录★★资产信息管理★★★★人员信息管理★★★资产配置★★★★资产处置★★★★★Ⅱ、设计进度及完成情况日期内容1.05-1.09选取参考书,查阅有关文献资料,完成资料搜集和系统分析工作。1.09~1.12创建相关数据结构,录入源程序。1.13~1.13调试程序并记录调试中的问题,初步完成课程设计报告。1.14~1.14上交课程设计报告打印版并进行课程设计答辩,要求每个同学针对自己的设计回答指导教师3-4个问题。考核结束后将课程设计报告和源程序的电子版交班长统一刻光盘上交。Ⅲ、主要参考文献及资料[1]严蔚敏数据结构(C语言版)清华大学出版社1999[2]谭浩强C语言程序设计清华大学出版社[3]与所用编程环境相配套的C语言或C++相关的资料Ⅳ、成绩评定成绩:(教师填写)指导老师:(签字)二○一五年一月十三日目录第一章概述……………………………………………………………1第二章系统分析………………………………………………………2第三章概要设计………………………………………………………3第四章详细设计………………………………………………………13第五章运行与测试……………………………………………………24第六章总结与心得……………………………………………………29参考文献………………………………………………………………301第一章概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。课程设计可以锻炼学生们的思考构思能力和动手实践能力,通过课程设计中的实际性问题,可以让学生把平日所学理论知识与亲身实践结合在一起,更好的提高学生编程的综合能力。课程设计还可以让学生查出自己平日里的不足,结合实际问题,把理论与实际相结合,找出以后的学习努力方向,查漏补缺,更进一层楼。2第二章系统分析1、本次课程设计,有小组共同分工完成代码的编写和实现程序的运行。在整个固定资产管理系统中,一共包括登陆、资产信息管理、人员信息管理、资产配置和资产处置五大模块,我主要负责人员信息管理模块和登陆模块以及程序代码整体大框架的编写。2、在登陆模块中,主要是管理员登陆系统,进行对资产信息以及人员信息的增删改查,为了系统人员信息以及资产信息的安全性问题,需要对管理员登录信息进行安全性验证,所以管理员登陆系统需要输入自己的账户名和密码,(系统管理员初始账户和密码为“guanliyuan”“1234”),只有密码和账户都输入正确才能进入系统,否则系统会提示管理员重新输入自己的账户和密码,知道输入正确才能进入系统。3、在人员信息管理模块中,主要要实现人员信息的增删改查功能,这里的“人员”是指可能领用资产的人,人员的信息包括人员编号、姓名、职务和备注。在该模块中可以选择某个员工查看该员工的所属资产。在这个模块中,定义了LinkNode和LinkList两个类,还用了链表的方法实现数据的查找与增加删除和查询。系统显示通过查询人员编号来找到人员信息进行删除或者修改,其实是通过查询链表结点来查找每个数据,为了确保通过编号能正确的找到对应编号的人员,所以管理员在添加人员信息时,需要先输入结点位置,再输入编号,并且结点值需要与编号相同,(在系统中显示的是“请输入要添加的人员编号”“请再次确认人员编号”,其实第一次输入的人员编号是插入信息的结点位置值,第二次输入的才是人员编码)所以为了避免管理员输入的结点位置值和人员编号不相同,在添加人员信息模块的代码中又添加了一个if判断语句,来判断管理员输入的结点位置值和人员编号值是否相同,只有相同时才能继续添加其他信息,否则系统将提示输入出错,继续添加人员编号。3第三章概要设计1、数据结构的设计本程序设计主要采用的是数据结构的思想,运用了C++的手段,完成了代码的编写和实现了程序的运行,在人员信息管理模块中,运用了链表的方法以及类的思想,还运用了构造函数和析构函数实现了代码的编写。2、算法的设计(1)、登陆信息的有效性验证:voidlogn(){cout管理员你好,请登录。。。。endl;cout请输入您的账号:;cinzhanghao;cout请输入你的密码:;cinmima;while(zhanghao!=guanliyuan||mima!=ma){cout|账号密码错误,请重新输入:|endl;cout请输入您的账号:;cinzhanghao;cout请输入你的密码:;cinmima;}if(zhanghao==guanliyuan&&mima==ma)/*有效性检验,管理员进入系统*/{(各模块代码。。。。。。)}(2)LinkNode和LinkList类的定义:classLinkNode{/*编号、姓名、职务和备注*/intdata;//编号stringname;//姓名4stringstaff;//职位stringremark;//备注/*指向下一个节点*/LinkNode*next;public:LinkNode(void)/*默认构造函数*/{data=0;name=空;staff=空;remark=空;next=NULL;}LinkNode(constLinkNode&obj)/*构造函数,实现初始化*/{data=obj.data;name=obj.name;staff=obj.staff;remark=obj.remark;next=obj.next;}~LinkNode(void)/*析构函数*/{data=0;name=空;staff=空;remark=空;next=NULL;}voidsetData(inta)/*设置data*/{data=a;}intgetData(void)/*获得data*/{returndata;}voidset_name(stringa)5{name=a;}stringget_name(void)/*获得data*/{returnname;}voidset_staff(stringa){staff=a;}stringget_staff(void)/*获得data*/{returnstaff;}voidset_remark(stringa){remark=a;}stringget_remark(void)/*获得data*/{returnremark;}voidsetNext(LinkNode*p){next=p;}LinkNode*getNext(void){returnnext;}voidpp(void){data++;}voidss(void){data--;}6};typedefLinkNode*pLink;classLinkList{LinkNodehead;public:LinkList(void){head.setData(0);head.set_name(空);head.set_staff(空);head.set_remark(空);head.setNext(NULL);}LinkList(constLinkList&obj){pLinkp,q=&head;head=obj.head;p=head.getNext();head.setNext(NULL);while(p){q-setNext(newLinkNode);q=q-getNext();q-setData(p-getData());p=p-getNext();}}~LinkList(void){MakeEmpty();}voidMakeEmpty(void){pLinkp=&head,q=p-getNext();head.setData(0);head.set_name(空);head.set_staff(空);head.set_remark(空);7while(q){p-setNext(q-getNext());deleteq;q=p-getNext();}}intLength(void){returnhead.getData();}voidInsert(intx,stringa,stringb,stringc,inti){intn=-1;pLinkp=&head,q;if(i0)return;while(p-getNext()&&(++ni))p=p-getNext();q=newLinkNode;q-setData(x);q-set_name(a);q-set_staff(b);q-set_remark(c);q-setNext(p-getNext());p-setNext(q);head.pp();}voidDelete(intx){pLinkp=&head,q=head.getNext();8while(q)if(q-getData()==x){p-setNext(q-getNext());deleteq;q=p-getNext();}else{p=p-getNext();q=q-getNext();}}intReMove(inti){pLinkp=&head,q;intn=-1;while(p-getNext()&&(++ni))p=p-getNext();if(p)return0;else{q=p-getNext();p-setNext(q-getNext());deleteq;return1;}}intFind(intx){pLinkp=head.getNext();9while(p){if(p-getData()==x)return1;p=p-getNext();}return0;}voidDisplay(void){pLinkp=head.getNext();while(p){cout编号:p-getData()endl;cout姓名:p-get_name()end

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功