




已阅读5页,还剩134页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学计算机科学与技术1301班彭靥课程设计报告题目中小企业资产信息管理系统课程名称C语言程序设计专业班级计算机科学与技术201301班学号姓名指导教师报告日期2014102计算机科学与技术学院华中科技大学计算机科学与技术1301班彭靥课程设计任务书题目大学教师工作量信息管理系统课题内容用C语言开发一个基于十字交叉链表的信息系统,对教师工作量进行自动管理,该系统具有以下功能(1)各种基本数据的录入。要求每个系统的1级链表、2级链表、3级链表都能够进行基本数据的录入。(2)各种基本数据的修改。允许对已经录入的数据重新进行编辑、修改。要求每个系统的1级链表、2级链表、3级链表都能够进行基本信息的修改。(3)各种基本数据的插入。要求每个系统的1级链表、2级链表、3级链表都能够进行结点的插入。(4)各种基本数据的删除。要求每个系统的1级链表、2级链表、3级链表都能够进行结点的删除。(5)基于各种数据的查询。(6)基于各种基本数据的统计计算。如(631)统计各类资产的总价格,按总价格从高到低排序后输出;(632)统计各资产的出借次数,从高到低排序后输出;(633)列出到期未还的出借信息如资户编号,责任人姓名;(634)其它方面的统计(自行确定)。课题任务要求1、只能使用C语言,源程序编写格式要按照缩进方式,源程序要有详细的注释。2、要有用户界面。要求至少采用教材P325类似的简易菜单;最好采用文本菜单界面;鼓励采用图形菜单界面。3、必须使用结构和十字交叉链表等数据结构。4、使用二进制数据文件来分别保存1级链表、2级链表、3级链表的数据。5、鼓励自行增加新功能。主要参考文献1曹计昌,卢萍,李开C语言与程序设计北京电子工业出版社,201312李开,卢萍,曹计昌C语言实验与课程设计北京科学出版社,20113华中科技大学计算机科学与技术1301班彭靥第0页共139页目录1绪论111课题背景112课题的基本要求113课题的主要研究工作22系统整体设计521信息录入设计522信息修改设计623信息删除设计724信息查询设计825信息统计设计83数据结构设计及用法说明1031数据中对数据结构的定义1032十字交叉链表的设计、说明、信息表格114系统各模块设计与实现1441资产类别维护、插入结点、删除结点流程图1442各模板函数及流程图165系统测试266总结与体会53参考文献56附源代码57华中科技大学计算机科学与技术1301班彭靥第1页共139页1绪论课程设计题目为中小企业资产信息管理系统11课题背景在企业由自动化建设阶段向数字化阶段转变的过程中,出现了大量的数字化资源,而数字中小企业相关技术的研究却显得相对滞后。这就导致一方面信息管理不够方便。丰富的资源在给企业更多的选择的同时却带来信息检索的不便。读者在实际科研工作中,我们常常会因为少量资产的漏查而导致大量的重复工作。本题目需要完成对中小企业资产信息进行管理,主要包括资产分类信息、资产信息、资产出借信息,本系统需要实现信息录入、信息修改、信息插入、信息删除、信息统计、信息查询六个主要的功能模板。12课题的基本要求1、只能使用C语言,源程序要有适当的注释,使程序容易阅读。2、要有用户界面。要求至采用文本菜单界面,鼓励采用图形菜单界面。3、必须使用结构和十字交叉链表等数据结构。4、使用文件保存数据。5、至少输出一份报表(屏幕输出即可),鼓励自行增加新功能。6、设计测试的模拟数据,完成系统测试。7、写实验报告(要求正规打印,A4幅面),内容包括题目系统功能模块结构图数据结构设计及用法说明(列出程序中的STRUCT设计和自己程序的使用、操作方法)程序结构(画流程图)(如系统总体流程图,某种查询、插入、删除程序实现的程序流程图。要求采用教材中的标准流程图图符至少画两个流程图。)各模块的功能试验结果(包括输入数据的结果,查询、修改、删除的结果,可以拷屏实现结果的报告)华中科技大学计算机科学与技术1301班彭靥第2页共139页实验体会参考文献附录程序清单及源程序软盘13课题的主要研究工作131信息录入本模板包括三个子模板对资产分类信息的录入、对资产信息的录入、对出借信息的录入。132信息查询本模板包括三个子模板对资产分类信息的查询、对资产信息的查询、对出借信息的查询。实现三个功能以资产分类编号为条件来查找并显示满足条件的资产分类信息。例如查找并显示资产分类编号为“00001”的资产分类信息。以资产分类编号、资产编号为条件来查找并显示满足条件的资产信息。例如查找并显示资产分类编号为“00001”、资产编号为“12345”的资产信息。以资产分类编号、资产编号、资产出借人姓名为条件来查找并显示满足条件的资产出借信息。例如查找并显示资产分类编号为“00001”、资产编号为“12345”、资产出借人姓名为“ZHANG_SAN”的资产出借信息。133信息插入本模板包括三个子模板对资产分类信息的插入、对资产信息的插入、对出借信息的插入。实现三个功能输入资产分类编号对此类资产进行资产分类信息的插入例如输入资产分类编号“00001”来进行资产分类信息的插入。输入资产分类编号及资产编号对资产信息进行插入。例如输入资产分类编号“00001”、资产编号“12345”来进行资产信息的插入。输入资产分类编号、资产编号、资产出借人姓名对出借信息进行插入。例如输入资产分类编号“00001”、资产编号“12345”、出借人姓名“ZHANG华中科技大学计算机科学与技术1301班彭靥第3页共139页_SAN”来进行资产信息的插入。134信息删除本模板包括三个子模板对资产分类信息的删除、对资产信息的删除、对出借信息的删除。实现三个功能输入资产分类编号对此类资产进行资产分类信息的删除例如输入资产分类编号“00001”来进行资产分类信息的删除。输入资产分类编号及资产编号对资产信息进行删除。例如输入资产分类编号“00001”、资产编号“12345”来进行资产信息的删除。输入资产分类编号、资产编号、资产出借人姓名对出借信息进行删除。例如输入资产分类编号“00001”、资产编号“12345”、出借人姓名“ZHANG_SAN”来进行资产信息的删除。135信息修改本模板包括三个子模板对资产分类信息的修改、对资产信息的修改、对出借信息的修改。实现三个功能输入资产分类编号对此类资产进行资产分类信息的修改例如输入资产分类编号“00001”来进行资产分类信息的修改。输入资产分类编号及资产编号对资产信息进行修改。例如输入资产分类编号“00001”、资产编号“12345”来进行资产信息的修改。输入资产分类编号、资产编号、资产出借人姓名对出借信息进行修改。例如输入资产分类编号“00001”、资产编号“12345”、出借人姓名“ZHANG_SAN”来进行资产信息的修改。136信息统计本模板包含三个子模板统计各类资产的总价格、统计各类资产出借次数、统计到期未还的出借信息。以资产分类编号为条件统计所有资产分类,并且显示资产分类的名称与华中科技大学计算机科学与技术1301班彭靥第4页共139页此类资产总价格。统计所有的资产分类,并且每种分类包含的所有资产种类,并且显示每种种类的基本信息,如资产编号、资产名称、型号、制造商姓名、价格等等。并且统计各类资产的出借次数。统计所有到期未还的出借信息,包含出借的基本信息,如工作证编号、资产出借姓名、计划归还日期、实际归还日期等等。华中科技大学计算机科学与技术1301班彭靥第5页共139页2系统整体设计系统主界面五大模块,每个模板完成一类相关的功能文件,数据维护,数据查询,数据统计,帮助。见图21信息录入信息修改信息插入信息删除信息查询信息统计中小企业资产信息管理系统图21系统主功能模块结构图21信息录入设计信息录入系统流程图,见图22资产类型录入资产录入出借信息录入信息录入图22信息录入模块的子模块划分华中科技大学计算机科学与技术1301班彭靥第6页共139页211资产类型录入用于将内存中的代码表数据和链表数据按照缺省路径,分别保存到各个文件中,自动保存录入资产的类型。录入资产分类编号及资产分类编号。212资产录入用于将内存中的代码表数据和链表数据按照缺省路径,分别保存到各个文件中,自动保存录入资产详细资料。输入资产所在的分类的编号,进入输入界面。输入资产的名称,分类编号,总支型号姓名,价格,制造商等等。213出借信息录入输入要查找的资产的分类编号及资产编号,如果系统成功找到匹配资产,会提示用户之后输入出借信息如工作证编号,出借姓名,出借日期,归还日期等等。22信息修改设计信息修改模板流程图,见图23资产类型修改资产修改出借信息修改信息修改图23信息修改模块的子模块划分221资产类型修改包括对资产的分类编号、名称的修改等功能。华中科技大学计算机科学与技术1301班彭靥第7页共139页222资产修改包括对资产信息的编号、名称、制造商姓名、价格、等级日期、存放地点、是否使用的修改等功能。223出借信息修改包括对工作证编号、资产编号、出借姓名、出借信息、计划归还日期等等的修改等功能。23信息删除设计信息删除系统流程图,见图24资产类型删除资产删除出借信息删除信息删除图24信息删除模块的子模块划分231资产类型删除包括对资产的分类编号、名称的删除等功能。232资产删除包括对资产信息的编号、名称、制造商姓名、价格、等级日期、存放地点、是否使用的删除等功能。233出借信息删除包括对工作证编号、资产编号、出借姓名、出借信息、计划归还日期等等的删除等功能。华中科技大学计算机科学与技术1301班彭靥第8页共139页24信息查询设计信息查询系统流程图,见图25资产类型查询资产查询出借信息查询信息查询图25信息查询模块的子模块划分241资产类型查询实现以资产分类编号为条件来查找并显示满足条件的所属资产信息。例如,查找并显示所属资产分类为“00001”的资产信息。242资产查询实现以资产分类编号及资产编号为条件查找并显示满足条件的资产的基本信息,如资产的编号、名称、总支型号姓名、制造商姓名、价格、等级日期、存放地点、是否使用等等。243出借信息查询实现以资产分类编号及资产编号为条件查找并显示满足条件的出借的基本信息。实现对资产编号、资产分类编号、资产出借姓名。计划归还日期、维修记录的查询功能。25信息统计设计信息统计模板流程图,见图26华中科技大学计算机科学与技术1301班彭靥第9页共139页统计各类资产总价格统计各资产出借次数统计未归还出借信息信息统计图26信息统计模块的子模块划分251统计各类资产总价格系统所包含的所有资产分类均会出现,以资产分类为条件分别统计各种分类编号、资产分类名称,降序排序后,输出统计结果252统计各资产出借次数系统中资产分类会按照时间顺序排列,并会统计此资产分类中的所有资产种类及其出借次数,且罗列每种种类的编号、名称、型号、制造商姓名、价格、登记日期及出借次数。253统计未按期归还出借信息系统会统计未归还的出借信息,记录其资产编号、分类编号,出借人的姓名、出借信息、计划归还日期等等;并且系统会统计未按时归还的资产出借信息。华中科技大学计算机科学与技术1301班彭靥第10页共139页3数据结构设计及用法说明31数据中对数据结构的定义TYPEDEFSTRUCTASSETSTYPE/资产分类基本信息结点结构CHARTYPE_NUM6/资产分类编号CHARTYPE_NAME20/资产分类名称STRUCTASSETSTYPENEXTSTRUCTASSETSDHEADTYPEINFOTYPEDEFSTRUCTASSETS/资产基本信息结点结构CHARASSETS_NUM6/资产编号CHARASSETS_NAME20/资产名称CHARTYPE_NUM6/资产分类编号CHARMODELNAME6/型号CHARMANUFACTURER15/制造商FLOATPRICE/价格CHARRECORDDATE11/登记日期CHARSAVELOCATION30/存放地点CHARISUSING2/是否使用Y/NSTRUCTASSETSNEXTSTRUCTBORROWINFOTHEADASSETSINFOTYPEDEFSTRUCTBORROWINFO/资产出借基本信息结点结构CHARLEADERNAME11/资产出借姓名华中科技大学计算机科学与技术1301班彭靥第11页共139页CHARASSETS_NUM6/资产编号CHARTYPE_NUM6/资产分类编号CHARBORROWDATE11/出借日期CHARPLANRETURNDATE11/计划归还日期CHARRETURNDATE11/实际归还日期CHARFIXED50/维修记录STRUCTBORROWINFONEXTBORROWINFO32十字交叉链表的设计、说明、信息表格321使用三级的十字交叉链表,链表使用单向链表,其链式数据结构图见图31图31三级十字链表结构图HEAD分类1分类2分类NNULL资产1基本信息资产2基本信息资产N基本信息资产1出借信息链资产2出借信息链资产N出借信息链华中科技大学计算机科学与技术1301班彭靥第12页共139页322十字交叉链表使用说明大多数操作要对十字交叉链表进行遍历。本系统的所有功能的核心就是对十字链表的各种操作。信息输入处理即为以后进先出的方式创建十字链表,包括对一级、二级和三级链表新结点的插入。查询功能实质是分别遍历一级二级三级链表,或遍历十字交叉链表信息修改处理即为遍历链表并修改对应的结点信息,包括对一级、二级和三级链表结点的修改;信息插入处理即为在十字交叉链表中插入结点。信息删除处理即为遍历链表并删除对应的结点,包括对一级、二级和三级链表结点的删除;323采用三个方向的十字交叉链表资产分类基本信息参考,见表31表31资产分类基本信息中文字段名类型及长度举例分类编号INT00001分类名称CHAR20电脑硬件资产基本信息参考,见表32表32资产基本信息中文字段名类型及长度举例分类编号INT00001资产编号INT12345资产名称CHAR20MONITOR型号CHAR15L1715S华中科技大学计算机科学与技术1301班彭靥第13页共139页制造商CHAR30LG价格FLOAT18000登记日期CHAR112008/06/02存放地点CHAR30N1503是否在用CHARY资产出借基本信息参考,见表33表33资产出借基本信息中文字段名类型举例资户编号INT12345责任人姓名CHAR11ZHANG_SAN出借日期CHAR112008/01/06计划归还日期CHAR112008/02/02实际归还日期CHAR112008/02/09维修详细说明CHAR50NULL华中科技大学计算机科学与技术1301班彭靥第14页共139页4系统各模块设计与实现41资产类别维护、插入结点、删除结点流程图411资产类别维护流程图流程图见图41开始显示操作菜单1修改资产信息2录用资产信息3删除资产信息用户选择输入需要阐述的资产类别编号退出是1否调用删除函数返回值为TRUE是操作成功输出提示出错信息否图41资产类别维护流程图华中科技大学计算机科学与技术1301班彭靥第15页共139页412插入节点流程图开始用户选择2申请一个新的节点来存放要插入的资产类别信息输入相关的基本信息数量,名称。调用插入函数输出操作成功退出是否12返回值为TRUE是提示用户出错信息否图42插入节点流程图413删除资金结点流程图图见43华中科技大学计算机科学与技术1301班彭靥第16页共139页开始PNULL释放节点P的内存退出否否是是查找要删除的节点P退出继续删除图43删除资金结点流程图42各模板流程图及函数421/系统信息修改/以下是该函数模块的操作流程图流程图见图44华中科技大学计算机科学与技术1301班彭靥第17页共139页开始信息修改输入1资产类型录入输入2资产录入输入3出借信息录入执行函数函数名称MODIFYASSETSTYPE执行函数函数名称MODIFYASSETS执行函数函数名称MODIFYBORROWINFO数据保存确定修改,依次输入修改后的资产分类编号、资产分类名称确认修改,依次输入修改后的资产编号、资产名称、总支型号姓名、制造商姓名、价格、登记日期、存放地点确定修改,依次输入修改后的工作证编号、资产编号、资产分类编号、资产出借姓名、出借日期、计划归还日期、出生地、维修记录输入待修改资产编号输入资产出借负责人姓名输入待修改资产编号华中科技大学计算机科学与技术1301班彭靥第18页共139页图44系统信息修改模板流程图函数名称MODIFYASSETSTYPE函数功能修改资产分类信息结点函数参数指向资产分类信息链链头的一级指针返回值修改成功返回1说明如果MODIFYASSETSTYPE成功修改资产分类信息结点,返回参数1。函数名称MODIFYASSETS函数功能修改资产信息结点函数参数指向资产分类信息链链头的一级指针返回值修改成功返回1说明如果MODIFYASSETS成功修改资产信息结点,返回参数1。函数名称MODIFYBORROWINFO函数功能修改资产出借信息结点函数参数指向资产出借信息链链头的一级指针返回值修改成功返回1说明如果MODIFYBORROWINFO成功修改资产出借信息结点,返回参数1。422/系统信息插入/以下是该函数模块的操作流程图流程图见图45华中科技大学计算机科学与技术1301班彭靥第19页共139页开始信息插入输入1资产类型录入输入2资产录入输入3出借信息录入依次输入带插入资产分类编号、资产分类名称执行函数函数名称INSERTASSETSTYPE依次输入带插入资产编号、资产名称、总支型号姓名、制造商姓名、价格、登记日期、存放地点执行函数函数名称INSERTASSETS依次输入待修改的工作证编号、资产出借姓名、出借日期、计划归还日期、出生地、维修记录执行函数函数名称INSERTBORROWINFO数据保存输入带插入资产的资产分类编号输入待插入出借资产编号。输入带插入资产的资产分类编号华中科技大学计算机科学与技术1301班彭靥第20页共139页图45系统信息插入模板流程图函数名称INSERTASSETSTYPE函数功能插入资产分类信息结点函数参数指向资产分类信息链链头的二级指针返回值插入失败返回0否则返回1说明如果INSERTASSETSTYPE成功插入资产分类信息结点,返回参数1。失败则返回0函数名称INSERTASSETS函数功能插入资产信息结点函数参数指向资产分类信息链链头的一级指针返回值插入失败返回0,否则返回1说明如果INSERTASSETS成功插入资产信息结点,返回参数1。失败则返回0函数名称INSERTBORROWINFO函数功能插入资产出借信息结点函数参数指向资产分类信息链链头的一级指针返回值插入失败返回0,否则返回1说明如果INSERTBORROWINFO成功插入资产出借信息结点,返回参数1。失败则返回0423/系统信息删除/以下是该函数模块的操作流程图流程图见图46华中科技大学计算机科学与技术1301班彭靥第21页共139页开始信息删除输入1资产类型录入输入2资产录入输入3出借信息录入执行函数函数名称MODIFYASSETSTYPE执行函数函数名称MODIFYASSETS执行函数函数名称MODIFYBORROWINFO数据保存输入资产分类编号输入待删除资产编号输入待删除的资产出借联系人姓名输入待删除资产分类编号输入待删除资产编号输入待删除资产分类编号华中科技大学计算机科学与技术1301班彭靥第22页共139页图46系统信息删除模板流程图函数名称DELETEASSETSTYPE函数功能删除资产分类信息结点函数参数指向资产分类信息链链头的二级指针返回值删除成功返回1说明如果DELETEASSETSTYPE成功删除资产分类信息结点,返回参数1函数名称DELETEASSETS函数功能删除资产信息结点函数参数指向资产分类信息链链头的一级指针返回值删除成功返回1说明如果DELETEASSETS成功删除资产信息结点,返回参数1函数名称DELETEBORROWINFO函数功能删除资产出借信息结点函数参数指向资产分类信息链链头的一级指针返回值删除成功返回1说明如果DELETEBORROWINFO成功删除资产出借结点,返回参数1424/系统信息查询/以下是该函数模块的操作流程图流程图见图47华中科技大学计算机科学与技术1301班彭靥第23页共139页开始信息查询输入1资产类型录入输入2资产录入输入3出借信息录入执行函数函数名称SEARCHASSETSTYPEBYNO函数名称SEARCHASSETSTYPEBYNAME执行函数函数名称SEARCHASSETSBYNO函数名称SEARCHASSETSBYNAME执行函数函数名称SEARCHBORROWBYNO函数名称SEARCHBORROWBYNAME数据保存输入查找的资产分类编号输入查询资产分类编号输入查询资产编号输入查询资产分类编号输入查询资产编号输入查询的资产出借人姓名华中科技大学计算机科学与技术1301班彭靥第24页共139页图47系统信息查询模板流程图函数名称SEARCHASSETSTYPEBYNO函数功能通过资产分类编号来查找资产分类信息结点并将所有符合要求的结点组织成链表函数参数HEAD资产分类信息链链头TYPE_NUM资产分类编号返回值如果没有找到对应的资产分类信息返回NULL否则返回所有符合条件的资产分类信息函数名称SEARCHASSETSTYPEBYNAME函数功能通过资产分类名称或部分名称来查找资产分类信息结点,并将所有符合要求的结点组织成链表函数参数HEAD资产分类信息链链头TYPE_NAME查找条件返回值NULL如果没有找到对应的资产分类信息否则返回所有符合条件的资产分类信息/函数名称SEARCHASSETSBYNO函数功能通过资产编号来查找资产信息结点并将所有符合要求的结点组织成链表函数参数HEAD资产分类信息链链头ASSETS_NUM资产分类编号返回值如果没有找到对应的资产信息返回NULL否则返回所有符合条件的资产信息函数名称SEARCHASSETSBYNAME华中科技大学计算机科学与技术1301班彭靥第25页共139页函数功能通过资产名称来查找资产信息结点,并将所有符合要求的结点组织成链表函数参数HEAD资产分类信息链链头ASSETS_NAME查找条件返回值NULL如果没有找到对应的资产信息否则返回所有符合条件的资产信息函数名称SEARCHBORROWBYNO函数功能通过资产出借工作证编号来查找资产出借信息结点并将所有符合要求的结点组织成链表函数参数HEAD资产分类信息链链头LEADERNAME资产出借工作证编号返回值如果没有找到对应的资产出借信息返回NULL否则返回所有符合条件的资产出借信息函数名称SEARCHBORROWBYNAME函数功能通过资产出借名字来查找资产出借信息结点,并将所有符合要求的结点组织成链表函数参数HEAD资产分类信息链链头SEARCHT查找条件返回值NULL如果没有找到对应的资产出借信息否则返回所有符合条件的资产出借信息华中科技大学计算机科学与技术1301班彭靥第26页共139页5系统测试程序运行后出现以下界面见图51,表示各数据文件加载成功,按任意键继图51信息加载成功继续运行,出现以下界面,以及6个主菜单,见图52华中科技大学计算机科学与技术1301班彭靥第27页共139页图52系统主菜单输入1,进入资产信息录入界面,可以输入1或2或3进行选择资产类型录入或资产录入或出借信息录入,输入数字0退出信息录入系统。见图53图53信息录入系统输入1,进行资产分类信息的输入,见图54图54资产类型信息录入华中科技大学计算机科学与技术1301班彭靥第28页共139页输入2,进行资产信息的录入,见图55。图55资产信息录入输入3,进行出借信息录入,见图56图56资产出借信息录入华中科技大学计算机科学与技术1301班彭靥第29页共139页输入数字0,退出中小企业资产信息录入系统,见图57图57返回子菜单回到主菜单,输入数字2,进入资产信息修改界面,可以输入数字1、2、3来修改资产类型、资产、出借信息;输入0退出此菜单,见图58图58资产信息修改界面华中科技大学计算机科学与技术1301班彭靥第30页共139页输入数字1,菜单提示需要待修改的资产分类编号,输入待修改的资产分类编号,显示要修改的资产分类信息如下,系统询问是否修改此分类信息,见图59图59资产类型信息修改输入Y,确认修改,见图510图510资产信息修改华中科技大学计算机科学与技术1301班彭靥第31页共139页输入N,取消修改,见图511图511资产信息修改按任意键退出子菜单,输入数字2,进行资产修改,系统提示输入待修改资产分类编号及待修改资产编号。输入完待修改资产分类编号及资产编号,弹出资产信息,询问是否修改。见图512图512资产出借信息修改华中科技大学计算机科学与技术1301班彭靥第32页共139页输入Y,确认修改,见图513图513资产出借信息修改成功输入N,取消修改,见图514华中科技大学计算机科学与技术1301班彭靥第33页共139页图514资产出借信息修改失败按任意键回子菜单,输入数字3,进入出借信息修改。系统提示输入要修改的资产出借所在资产分类编号、要修改的资产出借所在资产编号、要修改的资产出借负责人。输入完毕后,弹出要修改的资产出借信息,如工作证编号、资产编号、资产分类编号、资产出借姓名、出借日期、计划归还日期、实际归还日期。并要求确认是否修改此信息,界面如下。见图515华中科技大学计算机科学与技术1301班彭靥第34页共139页图515资产出借信息修改输入N,取消修改,见图516图516取消资产出借信息修改华中科技大学计算机科学与技术1301班彭靥第35页共139页输入Y,确认修改,见图517图517资产类型信息录入按任意键回子菜单,输入0退出信息修改菜单,回到主菜单,输入数字3进入信息插入菜单。输入数字1,系统要求输入资产分类信息、资产分类编号。见图518华中科技大学计算机科学与技术1301班彭靥第36页共139页图518资产类型信息插入按任意键继续,输入数字2进行资产插入,见图519图519资产信息插入华中科技大学计算机科学与技术1301班彭靥第37页共139页按任意键继续,回到信息插入子菜单,输入数字3进行出借信息录入。见图520图520资产出借信息插入按任意键回到信息插入子菜单,输入数字0回到主菜单,输入数字4,进入信息删除菜单,输入数字1、2、3可以进行资产类型删除、资产删除、出借信息删除,输入数字0可以退出信息删除菜单。见图521华中科技大学计算机科学与技术1301班彭靥第38页共139页图521信息删除系统输入数字1进行资产类型删除,要求输入资产分类编号。输入相应的资产分类编号,会弹出要删除的资产分类信息,选择是否删除此信息,见图522图522资产分类信息删除华中科技大学计算机科学与技术1301班彭靥第39页共139页若输入错误的资产分类编号,系统提示资产分类编号不存在,要检查输入。见图523图523输入错误信息按任意键继续,回到资产信息删除子菜单。输入数字2,进行资产删除界面,系统要求输入待删除的资产所在资产分类编号,输入资产分类编号后,系统要求输入资产编号。若输入错误的资产分类编号,系统会要求你检查输入。见图524华中科技大学计算机科学与技术1301班彭靥第40页共139页图524资产信息删除若入资产分类编号及资产编号均正确,系统会询问是否确定删除。见图525图525资产信息删除步骤华中科技大学计算机科学与技术1301班彭靥第41页共139页输入正确的待删除的资产分类编号、待删除的资产编号、待删除的资产出借联系人姓名。系统会出现要删除的资产出借信息,包括工作证编号、资产出借姓名、出借日期、计划归还日期等等,并询问是否删除。见图526图526资产出借信息删除按任意键回到信息删除子菜单,按0退出信息删除菜单,进入主菜单,输入数字5进行信息查询菜单,其中输入数字1、2、3进行资产类型查询、资产查询、出借信息查询。见图527华中科技大学计算机科学与技术1301班彭靥第42页共139页图527信息查询系统输入数字1进行资产类型查询,并且输入要查找的资产分类编号,只会出现要查找的资产分类编号、资产分类名称。见图528图528资产分类信息查询华中科技大学计算机科学与技术1301班彭靥第43页共139页按任意键继续回到子菜单,输入数字2,接着输入资产分类编号和资产编号按回车确定,能看到要查询的资产信息,包括资产编号、资产名称。资产分类编号、价格等等。见图529图529资产信息查询按任意键回到信息查询子菜单,输入数字3进行出借信息查询。系统要求输入要查找的资产出借所在资产分类编号、要查找的资产出借所在资产编号、要查找的资产出借人联系人姓名。信息输入正确,系统弹出要查找的资产出借信息,包括工作证编号、资产编号、资产分类编号、出借日期、计划归还日期、实际归还日期等等。见图530华中科技大学计算机科学与技术1301班彭靥第44页共139页图530资产出借信息查询按任意键回到子菜单,输入数字0回到主菜单,输入数字6进行信息统计。进入信息统计子菜单,输入数字1、2、3来进行统计各类资产总价格、统计各资产出借次数、列出到期未还的出借信息。见图531图531资产统计系统华中科技大学计算机科学与技术1301班彭靥第45页共139页输入数字1进行统计各类资产总价格。见图532图532资产分类信息统计按任意键回到信息统计子菜单,输入数字2进行统计各类资产出借次数,界面会出现所有的资产分类,及每种资产分类中包含的小资产分类。包括其资产编号、资产名称、型号、制造商姓名、价格、登记日期、存放地点、是否使用、出借次数。一共出现了6中资产分类,其中1分类笔记本电脑中有4种笔记本电脑;2分类为电视中有4种类型的电视;3分类为鼠标其中有5类型的鼠标;4类为华中科技大学计算机科学与技术1301班彭靥第46页共139页电脑软件其中包含4种类型的电脑软件;5分类为电脑硬件,其中包含4种电脑硬件;6分类为音响,其中包含4种类型的音响。见图533、图534、图535、图536图533资产信息统计华中科技大学计算机科学与技术1301班彭靥第47页共139页图534资产信息统计华中科技大学计算机科学与技术1301班彭靥第48页共139页图535资产信息统计华中科技大学计算机科学与技术1301班彭靥第49页共139页图536资产信息统计华中科技大学计算机科学与技术1301班彭靥第50页共139页输入数字3,列出到期未还的出借信息,见图537、图538、图539图537资产出借信息统计华中科技大学计算机科学与技术1301班彭靥第51页共139页图538资产出借信息统计华中科技大学计算机科学与技术1301班彭靥第52页共139页图539资产出借信息统计华中科技大学计算机科学与技术1301班彭靥第53页共139页6总结与体会此次课程设计我受益颇多,领悟了很多方法,切实体会了程序设计是怎样的,看到功能正常运行的时候真的有种我是程序员的感觉,也激发了对计算机程序设计的极大热情。此次设计有成功也有失败,我想谈谈我的经验和教训刚开始做这个程序设计的时候毫无头绪,一片混乱,首先是数据文件和系统内存之间数据的传递,怎么把数据写入文件,系统内存又怎样从数据文件中读取数据。我经过考虑后选择了文本文件类型,因为与二进制文件相比更有可观性,查数据信息更容易些。相应的写入文件的函数从FWRITE变成FPRINTF,FREAD变成FSCANF。实现了文件与内存的数据传递功能,再来是菜单的问题,如何将每个菜单和函数连接起来,经过一番苦思,发现EXEFUNCTION中能实现这个功能,使用函数数组,同时需要把例子程序中的标题修改。接下来就是各种函数的实现了,分别在维护,查询,统计模块中写程序。我用文本菜单进行功能的选择,然后根据选择结果实现相应的子函数。各功能的实现依赖于链表,设计时脑子中一定要有清晰的思路,每条链都是什么,不同方向的链依靠什么数据来联系。函数实现后需要显示出结果,好让用户明白。比如信息插入成功或失败,这是让程序具有实用性的一个必要条件。这次不如意的地方有系统不能正常退出,目前仍没有解决,还有修改信息这一功能实现的不好,每次都要输入全部的信息,麻烦,应该提示用户想修改哪条信息才合适。信息的给出最好用表格形式,这样更加直观,简明。编译过程出现过各种问题,比如函数没有声明等,设计时怎样判断日期处在两个日期中间我想了好久,发现只要比较数字大小就可以,不用分年份月份和天数,这个和数学知识有关系。运行时不能出现正常的结果这种情况经常出现,最可能的原因是链表的操作有误,比如我曾经少遍历了一个方向的链表。这次设计我学到一个很好的方法是代码表,代码表的编写可以让数据表示更加统一,简单。此次设计的一个遗憾是没有在菜单的设计上下工夫,只是用了例子程序中的菜单,字体单一,屏幕普通。我想在以后学习怎样设计菜单,尤其是图形菜单这样的高级菜单。华中科技大学计算机科学与技术1301班彭靥第54页共139页这次程序设计还培养了我对程序的整体感,不同函数之间的联系,调用,函数调用的先后顺序,各功能函数间是如何相互配合的。只有清楚了这些,才能继续设计程序,否则只能杂乱无章地看着一堆代码不知从哪入手。调试程序这一环节是最有意思的,看着数据一个一个地变化,再找出出错的地方,很有成就感,也让我对代码是如何运行的有了更加深刻的了解。还有很重要的一点是我体会了交流合作的重要性,每次遇到瓶颈时都能从同学那里收到启发,促使我继续设计下去,给别人解决问题时也提高了我阅读代码的速度。总之,这次程序设计是我人生的一大体验,也希望下次再做这样的课设能用上这次学到的经验。确定好写文本菜单,则分为三个部分界面,内部功能函数以及“纽带”。“纽带”的作用就是把内部功能函数和界面整合起来,以整齐、清晰、美观的方式展现给用户,使系统简洁易操作。本程序主要有三个文件MAINC、ASSETSC、ASSETSH,ASSETS的文件里为内部功能函数,MAIN函数主要是主控逻辑和菜单,将MAIN和ASSETS分开。这样清晰易懂,编程时函数易查找。加载在程序开始时自动进行,省去了手动操作的麻烦。重新输入数据和保存数据也只需要点击,简单易行。数据维护则分为三类修改、录入和删除。对于每一级链表的操作大抵相同,只是注意删除一、二级链表时要同时将内含的二三、三级链表所占存储空间释放。数据查询有两种,一种是按编号查询,一种是按名字查询,两种查询方式用法也相同。只是时间上来不及再写,模糊查找应该也是可以实现的。数据统计则是遍历一遍,挑选出符合用户要求的信息,再显示给用户。这次课程设计是难得的宝贵体验,想想也是学好C的必经之路,如果没有这次体验,可能C的水平还停留在一个非常初级的阶段。这个浩大的工程不仅是对耐心的锻炼,更加是让我对链表和函数等加深了了解,想必对之后的学习非常有益。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得华中科技大学计算机科学与技术1301班彭靥第55页共139页出结论,从而提高自己的实际动手能力和独立思考的能力。由于时间仓促,系统还有一些小小的未完善的地方,假以时日一定可以做得更加完美,这在以后的学习过程中需要改进。华中科技大学计算机科学与技术1301班彭靥第56页共139页参考文献1刘正林编著。最新C语言程序设计教程。武汉华中科技大学出版社,20102谭浩强编著。C语言程序设计。北京清华大学出版社,20093曹琼编著。C语言程序设计。天津南开大学出版社,20044李春褒编著。数据结构C语言篇习题与解析。北京清华大学出版社,20125韩永泉编著。高质量程序设计教程。北京电子工业出版社,20116裘宗燕编著。程序设计与C语言引论。北京北京出版社,20097陈德学编著。实用C语言程序设计。北京机械工业出版社,2008华中科技大学计算机科学与技术1301班彭靥第57页共139页附源代码(ASSETSH)INCLUDEINCLUDEINCLUDEDEFINEBOOLINTDEFINETRUE1DEFINEFALSE0TYPEDEFSTRUCTASSETSTYPE/资产分类基本信息结点结构CHARTYPE_NUM6/资产分类编号CHARTYPE_NAME20/资产分类名称STRUCTASSETSTYPENEXTSTRUCTASSETSDHEADTYPEINFOTYPEDEFSTRUCTASSETS/资产基本信息结点结构CHARASSETS_NUM6/资产编号CHARASSETS_NAME20/资产名称CHARTYPE_NUM6/资产分类编号CHARMODELNAME6/型号CHARMANUFACTURER15/制造商FLOATPRICE/价格CHARRECORDDATE11/登记日期CHARSAVELOCATION30/存放地点CHARISUSING2/是否使用Y/N华中科技大学计算机科学与技术1301班彭靥第58页共139页STRUCTASSETSNEXTSTRUCTBORROWINFOTHEADASSETSINFOTYPEDEFSTRUCTBORROWINFO/资产出借基本信息结点结构CHARLEADERNAME11/资产出借姓名CHARASSETS_NUM6/资产编号CHARTYPE_NUM6/资产分类编号CHARBORROWDATE11/出借日期CHARPLANRETURNDATE11/计划归还日期CHARRETURNDATE11/实际归还日期CHARFIXED50/维修记录STRUCTBORROWINFONEXTBORROWINFO/链表处理相关函数VOIDCREATE_CROSS_LISTTYPEINFOHEAD/创建链表VOIDTRAVERSE_CROSS_LISTTYPEINFOHEAD/遍历链表INTSAVE_CROSS_LISTTYPEINFOHEAD/储存链表INTLOAD_CROSS_LISTTYPEINFOHEAD/读取链表TYPEINFOSEARCHASSETSTYPETYPEINFOHEAD,CHARTYPE_NUM/查找资产类型信息结点ASSETSINFOSEARCHASSETSTYPEINFOHEAD,CHARASSETS_NUMBORROWINFOSEARCHBORROWTYPEINFOHEAD,CHARLEADERNAMEINTINSERTASSETSTYPETYPEINFOHEAD/插入资产类型信息链INTINSERTASSETSTYPEINFOHEAD华中科技大学计算机科学与技术1301班彭靥第59页共139页INTINSERTBORROWINFOTYPEINFOHEADINTDELETEASSETSTYPETYPEINFOHEAD/删除资产类型信息链INTDELETEASSETSTYPEINFOHEADINTDELETEBORROWINFOTYPEINFOHEADINTMODIFYASSETSTYPETYPEINFOHEAD/修改资产类型信息链INTMODIFYASSETSTYPEINFOHEADINTMODIFYBORROWINFOTYPEINFOHEADINTSEARCHASSETSTYPEINFOTYPEINFOHEAD/查找资产类型信息链INTSEARCHASSETSINFOTYPEINFOHEADINTSEARCHBORROWINFOTYPEINFOHEADINTSTRINGCONTAINCHARGOAL_STRING,CHARCOMP_STRING/判断GOAL_STRING中是否含有COMP_STRING/查找功能TYPEINFOSEARCHASSETSTYPEBYNOTYPEINFOHEAD,CHARTYPE_NUMTYPEINFOSEARCHASSETSTYPEBYNAMETYPEINFOHEAD,CHARTYPE_NAMEASSETSINFOSEARCHASSETSBYNOTYPEINFOHEAD,CHARASSETS_NUMASSETSINFOSEARCHASSETSBYNAMETYPEINFOHEAD,CHARASSETS_NAMEBORROWINFOSEARCHBORROWBYNOTYPEINFOHEAD,CHARLEADERNAME/HAIYOUYIGE/统计各类资产总价格VOIDSATISTICASSETSTYPETOTALPRICETYPEINFOHEAD/统计各资产出借次数VOIDSTATISTICSBORROWTIMESTYPEINFOHEAD华中科技大学计算机科学与技术1301班彭靥第60页共139页/列出到期未归还的出借信息VOIDSTATISTICSNOTRETURNBORROWTYPEINFOHEADENDIF/UNIVERSITY_H_INCLUDED(ASSETSC)INCLUDE“ASSETSH“/函数名称CREATE_CROSS_LIST函数功能根据用户输入数据创建新链表函数参数HEAD指向链头指针的二级指针华中科技大学计算机科学与技术1301班彭靥第61页共139页返回值VOID/VOIDCREATE_CROSS_LISTTYPEINFOHEADTYPEINFOHPNULLTYPEINFOPASSETSINFODPBORROWINFOTPBOOLRET/输入资产类型信息LOOPPTYPEINFOMALLOCSIZEOFTYPEINFOPRINTF“输入资产分类信息NN“PRINTF“资产分类编号“SCANF“S“,PTYPE_NUMGETCHARPRINTF“资产分类名称“SCANF“S“,PTYPE_NAMEGETCHARPDHEADNULLPNEXTHPHPPIFPRINTF“是否继续输入资产分类信息“GOTOLOOP华中科技大学计算机科学与技术1301班彭靥第62页共139页HEADHPPHEAD/输入资产信息WHILEPNULLPRINTFPTYPE_NAMEPRINTF“NN“RETPRINTF“是否输入相应资产信息“WHILERETDPASSETSINFOMALLOCSIZEOFASSETSINFOPRINTF“资产编号“SCANF“S“,DPASSETS_NUMGETCHARPRINTF“资产名称“SCANF“S“,DPASSETS_NAMEGETCHARPRINTF“总支型号姓名“SCANF“S“,DPMODELNAMEGETCHARPRINTF“制造商姓名“SCANF“S“,DPMANUFACTURERGETCHARPRINTF“价格“SCANF“F“,华中科技大学计算机科学与技术1301班彭靥第63页共139页GETCHARPRINTF“存放地点“SCANF“S“,DPSAVELOCATIONGETCHARPRINTF“是否使用“SCANF“S“,DPISUSINGGETCHARSTRCPYDPTYPE_NUM,PTYPE_N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论