电子元器件管理系统C综合设计报告.doc

上传人:赵** 文档编号:50921256 上传时间:2022-10-16 格式:DOC 页数:43 大小:2.52MB
返回 下载 相关 举报
电子元器件管理系统C综合设计报告.doc_第1页
第1页 / 共43页
电子元器件管理系统C综合设计报告.doc_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《电子元器件管理系统C综合设计报告.doc》由会员分享,可在线阅读,更多相关《电子元器件管理系统C综合设计报告.doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 SOUTH CENTRAL UNIVERSITY FOR NATIONALITIES C综合设计报告 设计题目: 电子元器件管理系统 学院:电子信息工程 专业:电气信息类 年级: 2012级 班级: 4 班 姓名: 杨赵南 学号:2012214462 姓名: 裴忠慧 学号:2012214447 指导老师: 田晓梅 2012年6月14日目录设计题目11. 引言12. 设计依据及框图 2.1设计平台2 2.2设计目的2 2.3设计思想2 2.4系统总体结构框图3 2.5数据结构设计53. 各模块功能实现 3.1 源文件定义6 3.2 系统中定义的函数列表6 3.3 封面7 3.4 主函数7 3.

2、5 信息添加模块9 3.6 信息删除模块11 3.7 查找模块13 3.8 修改模块17 3.9 排序模块20 3.10显示模块24 3.11加载模块26 3.12保存模块28 3.13退出模块30 3.14统计模块324. 软件调试分析 4.1 在编程当中遇到的一些问题38 4.2 程序待完善之处38 5. 结语38 6.参考文献387.致谢39 电子元器件管理系统摘要: C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。 它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言在很多方

3、面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。具体应用比如硬件方面,单片机以及嵌入式系统都可以用C来开发。C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASEPLUS、DBASE都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,像PC-DOS、WORDSTAR等就是用这种方法编写的。本程序是一个完全基于C语言,利用链表,数组结构为用户提供元器件管理的系统。关键词: C语言、链表、结构体、元器件管理1. 引 言C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝

4、尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。C语言优点甚多:1、简洁紧凑、灵活方便;2、运算符丰富;3、数据类型丰富;4、表达方式灵活实用;5、允许直接访问物理地址,对硬件进行操作;6、生成目标代码质量高,程序执行效率高;7、可移植性好;8、表达力强.C语言是

5、一门实践性很强的编程语言,我们通过理论课的学习,已经对其有了一定的理解和掌握,并且能够编写一些简单的小程序,但是还是缺乏系统的应用实践。而这次课程设计,正好给了我们这样一个机会,即:1通过本环节的充分编程实践和实际应用,进一步熟悉和巩固C语言语法知识和程序设计的基本方法;2利用适当形式的命题,了解结构化程序设计的方法,培养自顶而下、逐步细化的编程思维方式;3通过一定的文档要求,培养良好的程序设计风格,包括程序结构形式,行文格式和程序正文格式等。2 设计依据及框图2.1设计平台Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,

6、随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。既可以编辑C+程序,也可以编辑C程序。所以本设计以Microsoft visualC+6.0为开发平台设计基于DOS界面的电子元器件管理系统。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件

7、集成为和谐的开发环境。本系统是以VC6.0为开发平台利用C语言设计的基于DOS界面的电子信息管理系统。2.2设计目的本系统为用户提供一个在Windows系统上运行的电子元器件管理平台。该平台为用户提供主要功能有:1. 通过键盘输入元器件的相关信息, 2.通过编号查找并删除相应元器件的信息,3.通过编号,类型,型号等查找相应元器件的信息,4.通过编号查找并选择修改某一项信息或全部信息,5.根据编号,类型,型号等的降序或升序排序,6.显示系统中的所有信息,7.通过给定文件的地址或名称加载元器件信息,8.根据编号,类型,型号等统计元器件的相关信息,9.保存系统中的系信息到指定的文件或地址,10.退出

8、程序。2.3设计思想该程序在每一处需要容错的地方都添加了容错处理,包括添加主函数,添加,查找等模块。本程序的重点在程序的排序的统计模块,难点在统计模块,统计模块共调用了4个函数。系统采用结构化的程序设计方法进行,采用链表存储数据,采用C语言进行开发,程序的书写是锯齿状,各个函数分开存放。在基本功能的基础上添加了更多的元器件信息,如在添加和显示模块的元器件的购买日期,元器件的总价,元器件的状态(可用于表示缺货,过多等信息),在排序中添加降序或升序的可选排序方式,在修改函数中添加了修改单项信息和全部信息的功能,在统计模块中可以先显示所选类型的种类再根据选择的信息,显示相应的元器件信息,并统计所查找

9、的元器件的总数目和总价格。且该系统在一些特殊的位置调用back()函数实现返回,要求只能输入B或b才能返回上一级菜单,进而避免无意的返回或退出的现象。2.4系统总体结构框图 该电子元器件管理系统提供元器件的添加,删除,查询,修改,排序, 显示,加载,统计,保存,退出等主要功能。系统总框架如图1所示,子系统框架如图2所示。 图1:元器件管理系统总框架 图2:元器件管理系统子模块框架2.5数据结构设计本系统采用链表储存数据,系统中共定义了两个结构体:struct produc和struct pro ;利用product 存储元器件的编号,类型,型号,数目,单价,总价,厂家,生产日期,购买日期,状态

10、等信息,利用pro 暂时存储查询时输入的元器件相应信息,其中总价是根据 单价*数量 确定的不需要从键盘输入。具体结构如下:typedef struct product / 宏定义 链表 char num10; / num 表示 元器件的 编号 char type10; / type 表示 元器件的 类型 char model10; / model 表示 元器件的 型号 int sum; / sun 表示 元器件的 数目 整型 char pack10; / pack 表是 元器件的 封装 char factory10; / fantory 表示 元器件的 厂家 float price ; / p

11、rice 表示 元器件的 单价 浮点型 float zprice; / zprice 表示 元器件的 总价 浮点型 char date10; / date 表示 元器件的 生产日期 char gdate10; / gdate 表示 元器件的 购买日期 char state10; / state 表示 元器件的 状态(缺货 。) struct product *next;PRODUCT; struct pro / 定义一个数组用于 比较和判断 (表示的内容与上面相同) char num10; char type10; char model10; int sum; char pack10; cha

12、r factory10; float price; float zprice; char date10; char gdate10; char state10;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 显示模块 p

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

14、ort1(PRODUCT *,char ,char ); void print(); / 显示函数void write(PRODUCT *); / 保存函数PRODUCT *read(PRODUCT *); / 加载函数void statistic(PRODUCT *); / 统计函数void print_bf(PRODUCT *pjs,char choice_s) / 显示 统计后的。void tongji(PRODUCT *head,char choice_s)PRODUCT *copy(PRODUCT *head) / 复制函数 形参和返回值都是指针PRODUCT *jianshao(P

15、RODUCT *head1,char n) / 删除“重复的”用于统计不同的种类int quit(); / 退出函数void back(); / 返回函数 3.3封面程序的封面用于介绍程序设计的基本信息,用于表明程序名,作者,时间等相关信息。界面如图3所示。 图3:元器件管理的封面3.4主函数 主函数main()利用多分支结构switch实现功能的选则,调用不同的函数实现不同的功能,包括信息的添加,删除,查找,修改,排序,显示,加载,统计,保存,退出等功能。在功能的选择上进行了容错处理,当输入没有的选项是会让用户重新输入。系统主界面如图4所示,主函数的流程图如图5所示。 图4:元器件管理系统的

16、主菜单 图5:主函数流程图3.5信息添加模块 该信息的添加指的是从键盘添加,逐一的输入元器件的编号,类型,型号等信息。该添加模块考虑了各种添加情况,可以是最基本的没有信息直接添加,也可以是在加载完元器件信息之后的添加,加载模块和添加模块可以很好的兼容。在数目和单价上设置了容错处理,若输入的信息有误时,会让用户从新输入。从数据的源头提高了元器件信息的正确率。添加模块的界面如图6所示。流程图如图7所示。 图6:添加模块的界面 图7:添加模块的流程图3.6 信息删除模块 元器件的删除是通过输入编号查找相应的元器件来实现的,先显示元器件的信息,再询问用户是否确认删除该条信息,做相应处理后,再询问是否继

17、续删除,是则重复之前的步骤,否则返回主菜单。删除函数的界面如图8所示,删除函数的流程图如图9所示。 (删除模块下)找到元器件的界面 (删除模块下)未能找到元器件的界面 图8:删除模块的界面 图9:删除模块的流程图3.7 查找模块 为了便于用户查找所需的信息,在查找模块中可以根据元器件的任意一个信息查找到所需的元器件信息,其中在数目,单价,总价,生产日期,购买日期五项中可以通过查询一个范围来获取所需的信息,增加了系统灵活性。其他的几项是通过精确查找确定的。查找模块的界面如图10。查找模块的流程图如图11.。(该模块的流程图与统计模块中的tongji ()函数相似,只是tongji()函数多加了数

18、目和价格的统计,所以就没有再重复绘制了) 图10:查找模块的界面 图11:查找函数的流程图 3.8修改模块 由于用户在录入元器件信息时可能会输入错误,或者由于元器件信息的更改,市场行情的改变需要更改单价,封装等信息等原因增加了设置了修改模块,该模块通过输入元器件的编号查询并显示原来元器件的信息,再由用户判断是否是所需更改的信息,并询问是否更改,若不更改则询问是否修改另一条,如果修改则重复输入查找元器件编号的步骤,如果不修改则返回主菜单,若更改则显示修改子系统菜单,修改的方式可以单独修改该元器件信息的编号,类型,型号,数目,封装,厂家,单价,生产日期,购买日期,状态,或者选择修改该元器件的全部信

19、息。修改完之后,显示更改后的元器件信息。这样的设计便于用户高效率,高正确率的管理和修改元器件信息。提高用户的体验。修改模块的界面如图12所示。修改模块的流程图如图13所示。 图12:修改函数的界面 图13:修改函数的流程图3.9 排序模块 排序模块的设计是为了便于用户查看电子元器件管理系统中的信息,可以以元器件的任何一条信息排序,且为了更好的使用排序,我们还在程序中设计了升序和降序两种排序方式,这样更佳利于用户查看相应的信息,如需查看最近购买的产品,只需通过以购买日期降序的排列方式便可快速获得,增加了系统排序的灵活性。排序模块的界面如图14所示,排序模块的流程图如图15所示。 图14:排序模块

20、的界面 图15:排序模块的流程图3.10显示模块 用于显示元器件管理系统所有元器件的信息,便于直观的了解元器件的信息。 在显示之前的排序是通过调用sort1()函数来实现的,以编号升序的方式排列。显示模块的界面如图16。排序模块的流程图如图17所示。 图16:显示模块的界面 图17:显示模块的流程图3.11加载模块 用于从文件中读取元器件的信息,可以快速的读取大量的元器件信息,而不是通过键盘逐一的输入元器件信息,这样便可高效的管理和利用元器件信息,也可实现与相同的电子元器件管理系统之间的信息交流。在信息的加载中增加了读取判断,正确则继续,错误则终止读取,返回主菜单。加载模块的界面如图18。加载

21、模块的流程图如图19。 图18:加载模块的界面 图19;加载模块的的流程图3.12 保存模块 该模块的功能是将元器件管理系统中的信息保存到文件中,增加了信息的抑制性,可重复利用性,该功能与加载功能两者的使用是相同的道理,两者的配合使用便可实现,同一种系统,不同用户之间的信息交流。让该系统有更广泛的使用空间。保存模块的界面如图20所示。保存模块的流程图如图21所示。 图 20.保存函数的界面 图21:保存函数的流程图3.13 退出模块 通过询问是否退出避免了误退的情况。 退出模块的界面如图22,退出模块的流程图如图23。 图22:.退出模块的界面 图23:退出模块的流程图3.14 统计模块 统计

22、模块的前半部分的思想与查找模块的相似,最核心的功能是不相同的。该模块和查找模块一样可根据元器件的任意相关信息统计。如果统计的是数量(4)则显示出该元器件管理系统中的所有种类的数量,如果统计的是价格(7)则显示该元器件管理系统中所有种类的元器件的总价值。在选择相应的统计方式时调用复制函数copy()重新创建一个与原来一模一样的链表,再调用去重函数jianshao()删除所查询方式中重复的信息,之后利用显示函数print_bf()显示去重后的种类。最后利用tongji()函数,实现所统计函数的信息的显示,并统计显示元器件的总数量和总价格。这样的统计方式,便于用户统计所需元器件的总剩余量和总价值,有

23、利用用户对自己的元器件和财产的了解。统计模块的界面如图24所示,统计模块的流程图如图25所示。 选项4 统计系统中所有元器件的总数目 选项7统计系统中所有元器件的总价格 图24:统计模块的界面 图26:统计模块的流程图4 软件调试分析4.1 在编程当中遇到的一些问题: 1.出现的一些警告或者错误是英文看不懂,解决方法:下一个有道词典随用随翻译。 2.添加函数中,录入元器件数目时一步小心录入了字符就会在显示是出现无关的数字,解决方法:在录入时增加一个do while循环语句,但录入的信息不能正确读取是要求用户重新输入。这种容错的想法在之后的每一处可能出现错误的地方都应用了。使得程序的容错能力全面

24、提升。 3.在元器件信息的读取是总是出现多读一条无用信息的显现,我们在这个问题上纠结了很久。尝试了个中方法均不行,解决方法:通过咨询老师,老师在其中添加了一判断是否正确读去的判断,就解决了该问题。同时也学的了scanf ,当它正确读取几个数据时就返回几。 4. 经常会出现的一个错误是“结果不能被预测”这样的错误,通常是有与缺少了一个花括号引起的,解决方法:认真的查看程序,将程序排成锯齿状,养成良好的书写习惯。4.2程序待完善之处: 1.该系统是一个开放的系统,任何人都可以使用,而现实生活中往往不是这样的,所以我们可在系统开始之前,加入用户的登陆,和用户注册删除等基本功能,这样更有利于对元器件信

25、息的管理。 2.该界面的显示太过于原始,希望在以后的学习中能学的其他的工具,将界面美化,使得系统更加的美观,提升用户的体验,增加系统的美观性。 3.安全性,元器件信息的保存未做加密处理,使得安全性降低了。 4.在编号的输入上没有进行重复判断,添加了之后可是的程序更加严谨。但重复判断的使用也是有弊端的,在从键盘输入是可以使用,若是使用加载来录入信息则,很难判断是否应该读取信息。5. 结 语该程序的最初设计是由数组结构体制作的,后来感觉数组的大小是固定的,这样的系统不能为用户提供一个可靠的平台管理元器件的信息,更不能体现资源的合理利用这一特点,所以最终改成了链表来制作,使用数组时循环语句多是利用f

26、or循环的,而改为链表则是利用while循环更加便利,该系统完全是实现了程序设计的基本要求,元器件信息的添加,查找,删除,修改,查找,排序,显示,统计,加载,保存,退出。且在每一个模块中都进行了相应的个性化处理,并不是单一的使用一次,或这说是单一的修改,排序,统计.后直接退出子系统。通过该这次程序的设计让我们学会了,如何进行任务上的合理分工,如何多人共同处理一个程序的方法。且让我们从上课时的对链表的模模糊糊的认识到了有一个更加具体的认识,让我们更加熟练的掌握了VC,并且对visio 有一个基本的了解,懂得了如何利用它绘制简单的流程图,懂得了团队合作的重要性,希望在以后的学习中能够更加熟练的运用C解决相关问题。6. 参考文献1谭浩强.C程序设计(第三版).M.北京:清华大学出版社,20052王微衡,等.学生信息管理系统-设计报告模版.中南名族大学,20107. 致 谢 我们小组在被系统中的信息读取出错和程序分模块后运行出错所困惑时,田晓梅老师细心给我们分析,最终将问题解决,借写此实验报告之际,我们向她表示真诚的感谢。 最后还要感谢12级三班的黄文秀同学,是她为我们提供了程序分模块储存的思路。 39

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁