SOUTHCENTRALUNIVERSITYFORNATIONALITIESC综合设计报告设计题目:电子元器件管理系统学院:电子信息工程专业:电气信息类年级:2012级班级:4班姓名:杨赵南学号:2012214462姓名:裴忠慧学号:2012214447指导老师:田晓梅2012年6月14日目录设计题目·······································································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.结语········································································386.参考文献····································································387.致谢········································································391电子元器件管理系统摘要:C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。具体应用比如硬件方面,单片机以及嵌入式系统都可以用C来开发。C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASEⅢPLUS、DBASEⅣ都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,像PC-DOS、WORDSTAR等就是用这种方法编写的。本程序是一个完全基于C语言,利用链表,数组结构为用户提供元器件管理的系统。关键词:C语言、链表、结构体、元器件管理1.引言C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。C语言优点甚多:1、简洁紧凑、灵活方便;2、运算符丰富;3、数据类型丰富;4、表达方式灵活实用;5、允许直接访问物理地址,对硬件进行操作;6、生成目标代码质量高,程序执行效率高;7、可移植性好;8、表达力强.C语言是一门实践性很强的编程语言,我们通过理论课的学习,已经对其有了一定的理解和掌握,并且能够编写一些简单的小程序,但是还是缺乏系统的应用实践。而这次课程设计,正好给了我们这样一个机会,即:1.通过本环节的充分编程实践和实际应用,进一步熟悉和巩固C语言语法知识和程序设计的基本方法;2.利用适当形式的命题,了解结构化程序设计的方法,培养自顶而下、逐步细化的编程思维方式;3.通过一定的文档要求,培养良好的程序设计风格,包括程序结构形式,行文格式和程序正文格式等。22设计依据及框图2.1设计平台VisualC++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。既可以编辑C++程序,也可以编辑C程序。所以本设计以MicrosoftvisualC++6.0为开发平台设计基于DOS界面的电子元器件管理系统。VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。本系统是以VC6.0为开发平台利用C语言设计的基于DOS界面的电子信息管理系统。2.2设计目的本系统为用户提供一个在Windows系统上运行的电子元器件管理平台。该平台为用户提供主要功能有:1.通过键盘输入元器件的相关信息,2.通过编号查找并删除相应元器件的信息,3.通过编号,类型,型号等查找相应元器件的信息,4.通过编号查找并选择修改某一项信息或全部信息,5.根据编号,类型,型号等的降序或升序排序,6.显示系统中的所有信息,7.通过给定文件的地址或名称加载元器件信息,8.根据编号,类型,型号等统计元器件的相关信息,9.保存系统中的系信息到指定的文件或地址,10.退出程序。2.3设计思想该程序在每一处需要容错的地方都添加了容错处理,包括添加主函数,添加,查找等模块。本程序的重点在程序的排序的统计模块,难点在统计模块,统计模块共调用了4个函数。系统采用结构化的程序设计方法进行,采用链表存储数据,采用C语言进行开发,程序的书写是锯齿状,各个函数分开存放。在基本功能的基础上添加了更多的元器件信息,如在添加和显示模块的元器件的购买日期,元器件的总价,元器件的状态(可用于表示缺货,过多等信息),在排序中添加降序或升序的可选排序方式,在修改函数中添加了修改单项信息和全部信息的功能,在统计模块中可以先显示所选类型的种类再根据选择的信息,显示相应的元器件信息,并统计所查找的元器件的总数目和总价格。且该系统在一些特殊的位置调用back()函数实现返回,要求只能输入B或b才能返回上一级菜单,进而避免无意的返回或退出的现象。32.4系统总体结构框图该电子元器件管理系统提供元器件的添加,删除,查询,修改,排序,显示,加载,统计,保存,退出等主要功能。系统总框架如图1所示,子系统框架如图2所示。图1:元器件管理系统总框架4图2:元器件管理系统子模块框架52.5数据结构设计本系统采用链表储存数据,系统中共定义了两个结构体:structproduc和structpro;利用product存储元器件的编号,类型,型号,数目,单价,总价,厂家,生产日期,购买日期,状态等信息,利用pro暂时存储查询时输入的元器件相应信息,其中总价是根据单价*数量确定的不需要从键盘输入。具体结构如下:typedefstructproduct//宏定义链表{charnum[10];//num表示元器件的编号chartype[10];//type表示元器件的类型charmodel[10];//model表示元器件的型号intsum;//sun表示元器件的数目整型charpack[10];//pack表是元器件的封装charfactory[10];//fantory表示元器件的厂家floatprice;//price表示元器件的单价浮点型floatzprice;//zprice表示元器件的总价浮点型chardate[10];//date表示元器件的生产日期chargdate[10];//gdate表示元器件的购买日期charstate[10];//state表示元器件的状态(缺货。。)structproduct*next;}PRODUCT;structpro//定义一个数组用于比较和判断(表示的内容与上面相同){charnum[10];chartype[10];charmodel[10];intsum;charpack[10];charfactory[10];floatprice;floatzprice;chardate[10];chargdate[10];charstate[10];};63.各模块功能实现3.1源文件定义为了实现个模块的功能,系统中定义了一下文件:header_.c元器件信息头文件huanying_.c封面created_.c添加模块dele_.c删除模块find_.c查找模块modify_.c修改模块sort_.c排序模块back_