电子元器件管理系统C综合设计报告_第1页
电子元器件管理系统C综合设计报告_第2页
电子元器件管理系统C综合设计报告_第3页
电子元器件管理系统C综合设计报告_第4页
电子元器件管理系统C综合设计报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、(电子行业企业管理)电子元器件管理系统C综合设计报告目录设计题目11 .引言12 .设计依据及框图2.1 设计平台22.2 设计目的22.3 设计思想22.4 系统总体结构框图32.5 数据结构设计53 .各模块功能实现3.1 源文件定义63.2 系统中定义的函数列表63.3 封面73.4 主函数73.5 信息添加模块93.6 信息删除模块113.7 查找模块133.8 修改模块173.9 排序模块203.10 显示模块243.11 加载模块263.12 保存模块283.13 退出模块-303.14 统计模块324 .软件调试分析4.1 在编程当中遇到的一些问题384.2 程序待完善之处385

2、 .结语386 .参考文献387 .致谢39电子元器件管理系统摘要:C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。具体应用比如硬件方面,单片机以及嵌入式系统都可以用C来开发。C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASEmPLUS、DBASEIV都是由C语言编写的。用C语言加上一些汇编语言子程序,就更

3、能显示C语言的优势了,像PC-DOS、WORDSTAR等就是用这种方法编写的。本程序是一个完全基于C语言,利用链表,数组结构为用户提供元器件管理的系统。关键词:C语言、链表、结构体、元器件管理1.引言C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编

4、写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。C语言优点甚多:1、简洁紧凑、灵活方便;2、运算符丰富;3、数据类型丰富4、表达方式灵活实用;5、允许直接访问物理地址,对硬件进行操作;6、生成目标代码质量高,程序执行效率高;7、可移植性好;8、表达力强.C语言是一门实践性很强的编程语言,我们通过理论课的学习,已经对其有了一定的理解和掌握,并且能够编写一些简单的小程序,但是还是缺乏系统的应用实践。而这次课程设计,正好给了我们这样一个机会,即:1 .通过本环节的充分编程实践和实际应用,进一步熟悉和巩固C语言语法知识和程序设计的基本方法;2 .利用适当形式的命题,了解结构化程

5、序设计的方法,培养自顶而下、逐步细化的编程思维方式;3 .通过一定的文档要求,培养良好的程序设计风格,包括程序结构形式,行文格式和程序正文格式等。2设计依据及框图2.1 设计平台VisualC+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC+1.0后,随着其新版本的不断问世,VisualC+已成为专业程序员进行软件开发的首选工具。既可以编辑C+程序,也可以编辑C程序。所以本设计以MicrosoftvisualC+6.0为开发平台设计基于DOS界面的电子元器件管理系统。VisualC+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视

6、化集成开发环境(integrateddevelopmentenvironment,IDE)。VisualC+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。本系统是以VC6.0为开发平台利用C语言设计的基于DOS界面的电子信息管理系统。2.2 设计目的本系统为用户提供一个在Windows系统上运行的电子元器件管理平台。该平台为用户提供主要功能有:1 .通过键盘输入元器件的相关信息,2 .通过编号查找并删除相应元器件的信息,3 .通过编号,类型,型号等查找

7、相应元器件的信息,4 .通过编号查找并选择修改某一项信息或全部信息,5 .根据编号,类型,型号等的降序或升序排序,6 .显示系统中的所有信息,7 .通过给定文件的地址或名称加载元器件信息,8 .根据编号,类型,型号等统计元器件的相关信息,9 .保存系统中的系信息到指定的文件或地址,10 .退出程序。2.3 设计思想该程序在每一处需要容错的地方都添加了容错处理,包括添加主函数,添加,查找等模块。本程序的重点在程序的排序的统计模块,难点在统计模块,统计模块共调用了4个函数。C语言进行开发,程序的书系统采用结构化的程序设计方法进行,采用链表存储数据,采用写是锯齿状,各个函数分开存放。在基本功能的基础

8、上添加了更多的元器件信息,如在添加和显示模块的元器件的购买日期,元器件的总价,元器件的状态(可用于表示缺货,过多等信息),在排序中添加降序或升序的可选排序方式,在修改函数中添加了修改单项信息和全部信息的功能,在统计模块中可以先显示所选类型的种类再根据选择的信息,显示相应的元器件信息,并统计所查找的元器件的总数目和总价格。且该系统在一些特殊的位置调用back()函数实现返回,要求只能输入B或b才能返回上一级菜单,进而避免无意的返回或退出的现象。2.4 系统总体结构框图该电子元器件管理系统提供元器件的添加,删除,查询,修改,排序,显示,加载,统计,保存,退出等主要功能。系统总框架如图1所示,子系统

9、框架如图2所示。图1:元器件管理系统总框架图2:元器件管理系统子模块框架2.5数据结构设计本系统采用链表储存数据,系统中共定义了两个结构体:structproduc和structpro;利用product存储元器件的编号,类型,型号,数目,单价,总价,厂家,生产日期,购买日期,状态等信息,利用pro暂时存储查询时输入的元器件相应信息,其中总价是根据单价*数量确定的不需要从键盘输入。具体结构如下:typedefstructproduct/宏定义链表charnum10;/num表示元器件的编号chartype10;/type表示元器件的类型charmodel10;/model表示元器件的型号int

10、sum;/sun表示元器件的数目整型charpack10;/pack表是元器件的封装charfactory10;/fantory表示元器件的厂家floatprice;/price表示元器件的单价浮点型floatzprice;/zprice表示元器件的总价浮点型chardate10;/date表示元器件的生产日期chargdate10;/gdate表示元器件的购买日期charstate10;/state表示元器件的状态(缺货。)structproduct*next;PRODUCT;structpro/定义一个数组用于比较和判断(表示的内容与上面相同)charnum10;chartype10;ch

11、armodel10;intsum;charpack10;charfactory10;floatprice;floatzprice;chardate10;chargdate10;charstate10;;3.各模块功能实现3.1 源文件定义为了实现个模块的功能,系统中定义了一下文件:header_.c元器件信息头文件huanying_.c封面created_.c添加模块dele_.c删除模块find_.c查找模块modify_.c修改模块sort_.c排序模块back_.c返回copy_.c复制jianshao_.c去重main_.c主函数menu_.c菜单模块print_.c显示模块print

12、tf_bf.c显示去重后的函数quit_.c退出模块read_.c加载模块statistic_.c统计模块tongji_.c显示统计信息模块Write.保存模块3.2 系统中定义的函数列表各个函数的原型如下:为了实现函数的各项功能,在程序的设计中定义了相应的相关的函数,PRODUCT*creat();/添加函数PRODUCT*dele();/删除函数voidfind(PRODUCT*);/查找函数voidmodify(PRODUCT*);/修改函数PRODUCT*sort(PRODUCT*);/排序函数PRODUCT*sort1(PRODUCT*,char,char);voidprint();

13、/显示函数voidwrite(PRODUCT*);/保存函数PRODUCT*read(PRODUCT*);/力口载函数voidstatistic(PRODUCT*);/统计函数voidprint_bf(PRODUCT*pjs,charchoice_s)/显示统计后的。voidtongji(PRODUCT*head,charchoice_s)PRODUCT*copy(PRODUCT*head)/复制函数形参和返回值都是指针PRODUCT*jianshao(PRODUCT*head1,charn)/删除“重复的”用于统计不同的种类intquit();/退出函数voidback();/返回函数3.3

14、 封面程序的封面用于介绍程序设计的基本信息,用于表明程序名,作者,时间等相关信息。界面如图3所示。图3:元器件管理的封面3.4 主函数主函数main()利用多分支结构switch实现功能的选则,调用不同的函数实现不同的功能,包括信息的添加,删除,查找,修改,排序,显示,加载,统计,保存,退出等功能。在功能的选择上进行了容错处理,当输入没有的选项是会让用户重新输入。系统主界面如图4所示,主函数的流程图如图5所示。图4:元器件管理系统的主菜单图5:主函数流程图3.5 信息添加模块该信息的添加指的是从键盘添加,逐一的输入元器件的编号,类型,型号等信息。该添加模块考虑了各种添加情况,可以是最基本的没有

15、信息直接添加,也可以是在加载完元器件信息之后的添加,加载模块和添加模块可以很好的兼容。在数目和单价上设置了容错处理,若输入的信息有误时,会让用户从新输入。从数据的源头提高了元器件信息的正确率。添加模块的界面如图6所示。流程图如图7所示。图6:添加模块的界面图7:添加模块的流程图3.6 信息删除模块元器件的删除是通过输入编号查找相应的元器件来实现的,先显示元器件的信息,再询问用户是否确认删除该条信息,做相应处理后,再询问是否继续删除,是则重复之前的步骤,否则返回主菜单。删除函数的界面如图8所示,删除函数的流程图如图9所示。(删除模块下)找到元器件的界面(删除模块下)未能找到元器件的界面图8:删除

16、模块的界面图9:删除模块的流程图3.7 查找模块为了便于用户查找所需的信息,在查找模块中可以根据元器件的任意一个信息查找到所需的元器件信息,其中在数目,单价,总价,生产日期,购买日期五项中可以通过查询一个范围来获取所需的信息,增加了系统灵活性。其他的几项是通过精确查找确定的。查找模块的界面如图10。查找模块的流程图如图11.。(该模块的流程图与统计模块中的tongji()函数相似,只是tongji()函数多加了数目和价格的统计,所以就没有再重复绘制了)图10:查找模块的界面图11:查找函数的流程图3.8 修改模块由于用户在录入元器件信息时可能会输入错误,或者由于元器件信息的更改,市场行情的改变

17、需要更改单价,封装等信息等原因增加了设置了修改模块,该模块通过输入元器件的编号查询并显示原来元器件的信息,再由用户判断是否是所需更改的信息,并询问是否更改,若不更改则询问是否修改另一条,如果修改则重复输入查找元器件编号的步骤,如果不修改则返回主菜单,若更改则显示修改子系统菜单,修改的方式可以单独修改该元器件信息的编号,类型,型号,数目,封装,厂家,单价,生产日期,购买日期,状态,或者选择修改该元器件的全部信息。修改完之后,显示更改后的元器件信息。这样的设计便于用户高效率,高正确率的管理和修改元器件信息。提高用户的体验。修改模块的界面如图12所示。修改模块的流程图如图13所示。图12:修改函数的

18、界面图13:修改函数的流程图3.9 排序模块排序模块的设计是为了便于用户查看电子元器件管理系统中的信息,可以以元器件的任何一条信息排序,且为了更好的使用排序,我们还在程序中设计了升序和降序两种排序方式,这样更佳利于用户查看相应的信息,如需查看最近购买的产品,只需通过以购买日期降序的排14所示,排序模块列方式便可快速获得,增加了系统排序的灵活性。排序模块的界面如图的流程图如图15所示。图14:排序模块的界面图15:排序模块的流程图3.10 显示模块用于显示元器件管理系统所有元器件的信息,便于直观的了解元器件的信息。在显示之前的排序是通过调用sort1()函数来实现的,以编号升序的方式排列。显示模

19、块的界面如图16。排序模块的流程图如图17所示。图16:显示模块的界面图17:显示模块的流程图3.11 加载模块用于从文件中读取元器件的信息,可以快速的读取大量的元器件信息,而不是通过键盘逐一的输入元器件信息,这样便可高效的管理和利用元器件信息,也可实现与相同的电子元器件管理系统之间的信息交流。在信息的加载中增加了读取判断,正确则继续,错误则终止读取,返回主菜单。加载模块的界面如图18。加载模块的流程图如图19。图18:加载模块的界面图19;加载模块的的流程图3.12 保存模块该模块的功能是将元器件管理系统中的信息保存到文件中,增加了信息的抑制性,可重复利用性,该功能与加载功能两者的使用是相同

20、的道理,两者的配合使用便可实现,同一种系统,不同用户之间的信息交流。让该系统有更广泛的使用空间。保存模块的界面如图20所示。保存模块的流程图如图21所示。图20.保存函数的界面图21:保存函数的流程图3.13 退出模块通过询问是否退出避免了误退的情况。退出模块的界面如图22,退出模块的流程图如图23。图22:.退出模块的界面图23:退出模块的流程图3.14 统计模块统计模块的前半部分的思想与查找模块的相似,最核心的功能是不相同的。该模块和查找模块一样可根据元器件的任意相关信息统计。如果统计的是数量(4)则显示出该元器件管理系统中的所有种类的数量,如果统计的是价格(7)则显示该元器件管理系统中所

21、有种类的元器件的总价值。在选择相应的统计方式时调用复制函数copy()重新创建一个与原来一模一样的链表,再调用去重函数jianshao()删除所查询方式中重复的信息,之后利用显示函数print_bf()显示去重后的种类。最后利用tongji()函数,实现所统计函数的信息的显示,并统计显示元器件的总数量和总价格。这样的统计方式,便于用户统计所需元器件的总剩余量和总价值,有利用用户对自己的元器件和财产的了解。统计模块的界面如图24所示,统计模块的流程图如图25所示。选项4统计系统中所有元器件的总数目选项7统计系统中所有元器件的总价格图24:统计模块的界面图26:统计模块的流程图4软件调试分析4.1

22、在编程当中遇到的一些问题:1 .出现的一些警告或者错误是英文看不懂,解决方法:下一个有道词典随用随翻译。2 .添加函数中,录入元器件数目时一步小心录入了字符就会在显示是出现无关的数字,解决方法:在录入时增加一个dowhile循环语句,但录入的信息不能正确读取是要求用户重新输入。这种容错的想法在之后的每一处可能出现错误的地方都应用了。使得程序的容错能力全面提升。3 .在元器件信息的读取是总是出现多读一条无用信息的显现,我们在这个问题上纠结了很久。尝试了个中方法均不行,解决方法:通过咨询老师,老师在其中添加了一判断是否正确读去的判断,就解决了该问题。同时也学的了scanf,当它正确读取几个数据时就返回几。4 .经常会出现的一个错误是“结果不能被预测”这样的错误,通常是有与缺少了一个花括号引起的,解决方法:认真的查看程序,将程序排成锯齿状,养成良好的书写习惯。4.2程序待完善之处:1 .该系统是一个开放的系统,任何人都可以使用,而现实生活中往往不是这样的,所以我们可在系统开始之前,加入用户的登陆,和用户注册删除等基本功能,这样更有利于对元器件信息的管理。2 .该界面的显示太过于原始,希望在以后的学习中能学的其他的工具,将界面美化,使得

温馨提示

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

评论

0/150

提交评论