时间:2023-05-29 18:24:56
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇毕业设计致谢语,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
论文格式要求 一、基本要求 纸型:A4纸单面打印 字体:中文全部用宋体,英文全部用Times New Roman 页面设置:页边距上2.54cm,下2.54cm,左3.0cm,右2.0cm 行距:多倍行距,1.3倍,段前段后都为“0行” 中文摘要:摘要单独放一页,“摘要”两个字居中,三号加粗居中 内容字号与正文字号一致 关键词:“关键词”(小四号加粗居左)3~5个(小四号不加粗),之间用一空格隔开 (备注:英文摘要要求同中文摘要) 二、正文:正文另起一页,一级标题小三号加粗居左,二级标题四号加粗居左,三级标题小四加粗居左,若有四级标题,同样小四加粗居左。“致谢”另起一页居中。另外,从摘要开始插入页码。 三、前言的要求:前言不单独占一页,后应紧跟正文其它内容。如果前言内容较多,“前言”前可加级标题1,并且居左,如果内容就一两段话,可以不写“1前言”等字,直接放一两段话即可。 页眉:1.5cm,论文题目(小五居中) 页脚:1.75cm(页码五号居中) 四、目录 “目录”三号加粗居中,行距1.3倍,各级标题均采用小四号,不出现四级标题,摘要及一级标题需加粗,其余不要加粗。格式如下: 目 录 摘要································································································· 1 1 前言······························································································ 1 1.1主要营养素及食物来源··································································· 1 1.1.1蛋白质······················································································ 1 1.1.2糖类························································································· 1 参考文献·························································································· 1 致谢································································································· 1 五、参考文献:另起一页,“参考文献”三号加粗居中 内容格式如下:M表示论著,J表示期刊 [1] 中国保健科学技术学会.各类人群营养指导[M].北京:中国食品出版社,1988. [2]高玉峰,刘艳荣,郑纪宁.大学生十余年膳食结构变化[J].承德医学院学报,2001,18(22):130. 六、致谢:另起一页,“致谢”三号加粗居中 七、装订顺序 1封皮2毕业设计任务书 3目录 4摘要 5正文 6参考文献7致谢 8评审表一、评审表二、答辩情况记录、总成绩评定表、 (空三行) 河南质量工程职业学院毕业设计(论文) (三号不加粗居中) 黄酒的生产工艺及其稳定性的研究 (小一号加粗居中) 系 别:食品化工系 专 业:食品营养与检测 班 级:06级食检3班 学生姓名:耿佳佳 指导教师:王霞 完成日期:2008-11-23 (留四行) 河南质量工程职业学院 毕业设计(论文)任务书 班 级 05食检*班 宋体5号字 学生姓名 宋体5号字 指导教师 宋体5号字 设计(论文)题目 宋体小四号字 主要 研究 内容 宋体小四号字 主要技 术指标 或研究 目标 宋体小四号字 基本 要求 宋体小四号字(一般是学生写毕业论文应达到什么样的目的比如:) 1学会查阅文献资料 2 掌握书写论文的基本要求,能独立完成论文写作 3 能够独立进行研究工作 4 掌握基本的计算机排版 主要参 考资料 及文献 宋体小四号字(如果参考文献太多的话,这里只写出重要的几个) 河南质量工程职业学院毕业设计(论文)评审表一 (指导教师用) 班级: 宋体5号字 姓名:宋体5号字 学号:宋体5号字 评价内容 具 体 要 求 分值 评分 调查论证 能独立查阅文献和调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。 10 实验方案设计与实验技能 能正确设计实验方案,独立进行实验工作。 20 分析与解决问题的能力 能运用所学知识和技能去发现与解决实际问题;能正确处理实验数据;能对课题进行理论分析,得出有价值的结论。 20 工作量、 工作态度 按期圆满完成规定的任务,工作量饱满,难度较大;工作努力,遵守纪律;工作作风严谨务实。 20 质 量 综述简练完整,有见解;立论正确,论述充分,结构严谨合理;实验正确,分析处理科学;文字通顺,技术用语准确,符号统一,编号齐全,书写工整规范,图表完备、整洁、正确;论文结果有应用价值。 20 创 新 工作中有创新意识;对前人工作有改进或突破,或有独特见解。 10 成 绩 100 指导教师评语: 指导教师签名: 年 月 日
注:各专业可根据自己的具体情况,制定出适合本专业的毕业设计(论文)的具体要求和评分标准。 河南质量工程职业学院毕业设计(论文)评审表二 (评阅人用) 班级:宋体5号字 姓名: 宋体5号字 学号:宋体5号字 评价内容 具体要求 分值 评分 资料利用 查阅文献有一定广泛性;有综合归纳资料的能力和自己的见解。 15 论文质量 综述简练完整,有见解;立论正确,论述充分,结果严谨合理;实验正确,分析处理科学;文字通顺,技术用语准确,符号统一,编号齐全,书写工整规范,图表完备、整洁、正确;论文结果有应用价值。 50 工作量、难度 工作量饱满,难度较大。 25 创 新 对前人工作有改进或突破,或有独特见解。 10 成 绩 100 评阅人评语: 评阅人签名: 年 月 日
注:各专业可根据自己的具体情况,制定出适合本专业的毕业设计(论文)的具体要求和评分标准。 河南质量工程职业学院 毕业设计(论文)答辩情况记录 (答辩委员会或答辩小组用) 班级:宋体5号字 姓名:宋体5号字 学号:宋体5号字 答 辩 题 目 对学生回答问题的评语 正确 基本正确 经提示回答 不正确 未回答 答辩委员会(或小组)评语: 成绩: 答辩负责人签名: 年 月 日
河南质量工程职业学院 毕业设计(论文)总成绩评定表 班级 宋体5号字 姓名 宋体5号字 学号 宋体5号字 设计(论文)题目 宋体5号字 成 绩 指导教师评分 评阅人评分 答辩评分 总成绩 系毕业设计(论文)领导小组审核意见: 小组组长签名: 年 月 日
注:毕业设计(论文)总成绩中,指导教师评分占40%,评阅人评分占20%,答辩评分占40%。 展开阅读全文
为帮助广大计算机专业毕业生实现毕业设计目标,保证毕业设计实践环节工作的顺利进行,现将各环节做如下提示,以帮助广大首次从事毕业设计的毕业生对毕业设计的过程有1个大致的了解。
1、计算机专业实践环节形式:
毕业设计
2、毕业设计实践环节应注意的事项
1、“毕业设计”实践环节在全部毕业学分中占有1定学分;
2、“毕业设计”实践环节从起步到毕业答辩结束历时至少4周以上;
3、“毕业设计”实践环节包括两部分内容:
① 完成“毕业设计”所开发的应用程序;
② 针对所开发的应用程序书写“毕业设计”说明书(即论文);
3、毕业设计实践环节应先完成的工作
在毕业设计实践环节之前,应向有关主管设计工作的单位或老师上报如下材料:
①《毕业设计实践环节安排意见》(包括领导小组名单,毕业班专业、级别、性质、工作计划安排、实践环节工作步骤,指导教师名单,学生分组名单).
②《毕业设计(论文)审批表》1式两份(要求认真审核、填写指导教师资格,包括职称、从事专业、有何论著,每人指导学生不得超过1定人数,兼职(或业余)指导教师指导学生数根据情况酌减)。
4、关于“毕业设计”工作的过程步骤
1、“毕业设计”题目的选择,选题时应遵循以下原则:
①选题必须符合计算机专业的综合培养要求;
②应尽可能选择工程性较强的课题,以保证有足够的工程训练;
③毕业设计工作要有1定的编程量要求,以保证有明确的工作成果;
④选题原则上1人1题,结合较大型任务的课题,每个学生必须有毕业设计的独立子课题;
⑤选题应尽量结合本地、本单位的教学、科研、技术开发项目,在实际环境中进行。
总之选题要体现综合性原则、实用性原则、先进性原则、量力性原则等
选题时要达到以下目标:
①选题与要求提高综合运用专业知识分析和解决问题的能力;
②掌握文献检索、资料查询的基本方法和获取新知识的能力;
③掌握软硬件或应用系统的设计开发能力;
④提高书面和口头表达能力;
⑤提高协作配合工作的能力。
2、“毕业设计”题目审核
有关单位将毕业学生选择的题目填写在同1个“毕业设计(论文)审批表”中的“毕业设计安排表”相应栏目中,审核通过后方可开展下1步工作。
3、“毕业设计”应用程序开发实施(大致用时安排)
①需求分析阶段(约1周时间完成)
②系统分析阶段(约1周时间完成),同时完成毕业设计说明书前两章资料整理工作。
③系统设计阶段(约1周时间完成)
④代码实现阶段(约3周时间完成)同时完成毕业设计说明书第3章、第4章资料整理工作。
⑤系统调试阶段(约2周时间完成),同时完成毕业设计说明书第5章资料整理工作。
⑥投入运行阶段(约1周时间完成),同时完成毕业设计说明书中第6章资料整理工作。
⑦毕业设计说明书的整理定稿阶段(约2周时间完成)
摘要及关键词
Abstract and Keywords
目录
正文
第1章 引言
1、本课题的研究意义
2、本论文的目的、内容及作者的主要贡献
第2章 研究现状及设计目标
1、相近研究课题的特点及优缺点分析
2、现行研究存在的问题及解决办法
3、本课题要达到的设计目标
第3章 要解决的几个关键问题
1、研究设计中要解决的问题
2、具体实现中采用的关键技术及复杂性分析
第4章 系统结构与模型
1、设计实现的策略和算法描述
2、编程模型及数据结构
第5章 系统实现技术
1、分模块详述系统各部分的实现方法
2、程序流程
第6章、性能测试与分析
1、测试实例(测试集)的研究与选择
2、测试环境与测试条件
3、实例测试(表格与曲线)
4、性能分析
第7章 结束语
致谢
参考文献
⑧完成毕业设计及毕业设计说明书的撰写工作后定稿大多要以A4纸打印并装订成册。
4、“毕业设计”的上报及内容的存储方式
各位学生的设计成果要以指导教师所在的组为单位,把设计成果包括(论文、源程序、可执行程序、答辩稿等),以光盘或软盘等形式上报给指导老师。然后指导教师以组为单位,以各位学生姓名建立文件夹,并把相应学生的毕业设计(包括:应用程序系统、毕业设计说明书和答辩时的幻灯片演讲稿)保存其中,每组1张(或多张)光盘,以方便答辩之用。
5、毕业答辩前学生要与指导教师联系,确定具体答辩时间及要求。
6、评审阶段
有的学校也大致把毕业设计实施过程分为以下几个阶段(供参考):
①制定课题任务
②资料收集和文献阅读
③制定和论证技术方案
④完成系统或模块设计
⑤编程与测试
⑥总结撰写论文
1选题
为培养学生的创新设计和实验实践能力,使学生能够正确而恰当地选题,在大学第7学期中期便可公布毕业设计(论文)课题,让学生有充分的时间去选题,避免盲目选题。选题后,安排学生与导师见面,在导师的指导下,查阅相关文献,独立撰写开题报告,包括“选题的依据和意义”、“国内外的研究概况”、“主要研究线路”、“拟解决的关键技术”及“时间分配”等几方面,在此过程中,学生对课题有了更加深刻的了解,同时能够很好地梳理思路,做到心中有数,对后面要做的研究工作打下理论基础。
2实验研究
实验研究是毕业设计(论文)的重点,因此,做好实验研究对毕业设计(论文)的成功与否有莫大关系。首先,学校、导师及学生通力协作配合是做好实验研究的基础。在实验过程中,不可避免地要用到化学或生物试剂、科研仪器等,而这均需要经费支持。因此,为了保证毕业设计(论文)的质量,这就要求学校能加对学生毕业设计(论文)的投入,使得学生的科研实验有充分的经费保障;对于导师而言,带领学生进行毕业设计(论文)是一项费时而又繁琐的事情,所以导师在带教过程中,应投入较大的精力与热情去辅导学生。因为学生是初进科研实验室,有许多事情尚不清楚,这就要求导师给予学生精心指导。在学生方面,需要学生有较高的热情,坚忍不拔的精神及虚心向上的态度。其次,分阶段指导是做好实验研究的关键。我们可以将整个实验研究过程分为三个阶段,即实验初期的任务下达、实验中期的考核和实验末期的验收。在实验初期阶段,学生虽然对课题有了一定的理解,但只是停留在纸面上,尚未进入实验状态。因此,在学生进入实验室之前,导师可以给学生做一次实验安全讲座,特别是进入药物化学实验室,实验安全是非常重要的事情。进入实验室后,导师可以先让学生做一些基本操作实验,使学生对实验室的仪器操作有充分的了解。在此过程中,导师还可安排学生继续阅读课题相关文献,使其对课题有更加深入的了解,并与导师共修订制定研究方案,为后面的研究工作打下基础;实验中期,学生可以独立开展课题相关实验,对于实验中遇到的问题,导师可以给予分析解决,或指导学生查阅文献,独立去发现并解决问题。在实验研究过半时,学校可以对学生进行一次中期检查,包括“对分配工作完成的进度情况”、“工作态度情况”、“学生前期已完成的工作的质量情况”及“存在的问题与建议”等,让学校和导师对学生的实验状况有充分的了解,以便及时调整学生的毕业设计(论文)。实验后期的指导主要是导师带领学生整理实验研究的结果,包括数据的整理与分析、实验结果的讨论、实验存在的问题及拟解决的方法等。让学生做到有始有终,尽善尽美。
3毕业论文的撰写
实验研究结束后,学生开始撰写毕业论文,这是毕业设计(论文)的一个重要环节。写出论点明确、概念清楚、格式规范、文笔流畅的论文,需要学生能对自己在整个毕业设计(论文)期间所做的工作进行高度地概括和总结。但是,在带教大学生毕业设计(论文)过程中,我们发现,多数学生没有撰写论文的经验,常常是不知如何撰写,甚至有些学生连参考文献的格式都不明白。这就要求带教导师能够从头开始,一点一滴去教导。首先要培养学生良好的学术道德。在论文撰写过程中,特别是论文中的综述部分,很多学生都是从文献中大段大段拷贝黏贴而来。对于这样的论文,导师应及时退回,并批评指正。还有些学生,为了论文数据的丰富,用实验室里师兄师姐做过的数据,甚至是篡改数据,这都需要带教导师严格把关,防止此种学术不道德现象的发生;其次论文的内容的撰写。在论文写作过程中,我们常常发现,有些学生实验研究做的非常好,实验数据结果也很多,但是在论文里很难体现出来。对学生来讲,如何组织材料和归纳分析结果,仍是一件困难的事情。因此需要在撰写之前,学生应与指导教师探讨行文思路,拟定写作提纲,然后结合实验资料进行论文撰写;第三点是论文格式的规范要求。本学院给每位参加毕业设计(论文)的学生均发放一本《本科生毕业设计(论文)撰写规范》。在此规范中,从论文的封面、目录、中英文摘要、正文、图表、参考文献及致谢等均有严格的规范,带教导师在指导过程中,应对学生严格要求,让学生养成良好的作风及严谨的工作态度。一份好的毕业论文应包括充分调研文献、合理设计实验方案、开展实验研究、数据合理真实、讨论详实充分。在论文的撰写过程中,学生科技论文写作水平得到了大幅度提高,对科学研究的严谨性与严密性也有了更为深刻的认识。
4论文答辩
论文答辩是大学生毕业设计(论文)的最后一个环节。学生答辩委员会由3-5名答辩委员及1名答辩秘书组成,学生做好PPT,并熟悉答辩内容,讲解规定8-10分钟,回答问题5分钟。在学生答辩过程中,答辩委员从论文选题依据是否充分,论文设计是否合理,数据是否真实及回答问题是否正确等几方面,全面评价学生毕业设计(论文)及答辩的质量。如有不合格的学生,可进行第二轮答辩。通过论文答辩严格控制毕业设计(论文)的质量,同时也提高学生对毕业设计(论文)的重视程度。
5结束语
综上所述,毕业设计(论文)是本科生教学的重要环节,通过这一环节,提高了学生的实践动手能力,严谨的工作作风,坚忍不拔的科研精神和不断创新的思维。因此,在高校毕业生日益扩增的情况下,如何保质保量地让学生完成毕业设计(论文)是我们需要高度重视的问题。
作者:郑友广 安琳 薛云生 刘毅 单位:徐州医学院
关键词 本科 毕业设计 教学方法
中图分类号: G424文献标识码:A
Study on Teaching Methods of Graduation Project in
Institutions of Higher Learning
WANG Jingli
(College of Optoelectronic Engineering, Nanjing University of
Posts and Telecommunications, Nanjing, Jiangsu 210003)
AbstractGraduation project in institution of higher learning is an important teaching to realize the training objective of the undergraduate. In this course, students will be trained further in scientific method, engineering design and practical skills, and will synthesize their knowledge learned in college. The students can develop their capabilities in analyzing and solving problems if teachers apply teaching methods more flexibly, which is necessary for the students in future. In the paper, some new teaching methods and teaching ideas are proposed on the basis of years of teaching experience.
Key wordsthe undergraduate; graduation project; teaching methods
高等学校学生的毕业设计通常安排在大学期间的最后学习阶段,是培养学生综合运用所学知识处理实际问题的一个教学过程,也是学生在教师指导下独立进行科学研究或工程实践并取得成果的过程。在该阶段,学生将进一步受到科学研究方法、工程设计方法与实践技能的基本训练,并通过独立完成某一课题,提高分析问题和解决问题的能力,从而实现个人实践能力、科学研究能力、创新能力与综合素质的全面提升。
高校教师注重该阶段教学方法的灵活应用,不仅有助于调动学生的积极性和创造性,使其能够更好地完成该阶段的学习任务,且对提高本科毕业设计的质量和水平也具有重要意义,应该引起足够重视。本文总结了作者多年指导毕业设计的若干经验,并在此基础上,提出了一些新的教学方法和思路。
1 课题的全貌展示
毕业设计的第一步以学生选定课题,教师下达毕业设计任务书作为开始。以笔者的经验看,在该步骤中,学生由于不熟悉课题,对任务书布置的任务理解初浅,从而导致了两种可能:一是轻视课题,从思想上放松了对自己的要求;二是产生畏难情绪,低估了自己完成课题的能力。
为了帮助学生更好地进入毕业设计课题,教师在下达任务书之后,可以与学生进行简短的交流,笔者认为向学生展示课题的全貌很重要。展示课题全貌包括:(1)向学生简要介绍所做课题,包括:为什么要做这个课题,做这个课题有什么实际意义,以及课题的国内外发展情况等。在该过程中,笔者通常会涉及跟该课题相关的几个发展方向,并且鼓励学生选择某一感兴趣的方向作为切入点,在之后的课题调研阶段,有所侧重地查找相关文献资料。(2)帮助学生分解任务,制定切合实际的实施方案。由于学生初次接触课题,无法一下抓住重点与难点,教师可明确告知学生课题的难点所在,并帮助学生合理规划各项任务所需时间。事实证明,通过向学生展示课题全貌,有利于学生明确学习任务,合理安排执行时间,并令其逐步对所做课题产生浓厚兴趣,有助于课题的逐级展开。
2 科研基本功――文献调研
学生进入课题之后,面临的第一个问题就是独立查阅文献,结合课题进行各种调研。尽管本科阶段,学生已经接受了科技情报检索环节的训练,但是由于针对性不强,欠缺实践经验,学生仍在这一步表现得无所适从,不知如何下手。
笔者认为作为科研的必备基本功之一,文献查阅非常重要,不仅对全面了解课题有益,而且在文献的查阅、整理、分类、阅读和总结过程中,特别容易出现创新性想法。在该步骤中,笔者建议采用一对一的教辅方式,教师以某一课题为例,指导学生如何高效地利用学校采购的各类数据库,如何选择恰当的搜索关键词缩小查找范围,如何从搜索到的大量文献中迅速挑选出跟课题相关的各类资料,以及如何对所下载的文献进行分类整理等。通常,经过一至二次有针对性的训练后,学生基本可以掌握文献查阅的要点,且能够比较快的查找到所需资料,从而为完成课题打下了坚实基础。
3 各类相关软件的灵活运用
受到毕业设计经费、毕业设计场地、教育资源以及硬件设备等的限制,不可避免会使得部分课题编程仿真所占比重较大。遇到该类课题,学生存在较为普遍的问题就是:独立编程能力较差,尤其是非计算机专业的学生,此类现象更加明显。一旦在仿真编程这部分耗费过多的时间精力,势必会影响学生进一步产生创新性想法。
笔者认为,如果能够将学生从繁琐的编程工作中解放出来,那么学生就会有更多的时间用于思考和创新。以笔者所涉及的科研方向(光子晶体光纤、太赫兹波导设计等)为例,如果需要设计具有某种特性的光子晶体光纤,学生首先需要明确光子晶体光纤的概念,然后以求解麦克斯韦方程组为基础,经过复杂的推导过程,最终才能获得光在波导中传输的规律及特性。由于整个过程逻辑性强、物理概念抽象、公式推导繁琐、编程实现具有一定难度,很容易使得学生兴趣不足。因此,笔者认为此环节中各类相关软件的灵活运用就显得尤为重要。例如,有关上述光子晶体光纤的设计可采用瑞典COMSOL公司开发的有限元计算软件COMSOL Multiphysics进行建模仿真。①由于该款软件具有很多显著特点,例如:可轻松实现多物理场的直接耦合分析、完全开放的架构、任意独立函数控制的求解参数、专业的计算模型库、内嵌的丰富CAD建模工具、强大的网络剖分能力、大规模计算能力、丰富的后处理功能等,从而使得学生比较容易掌握。事实证明,通过相关软件的灵活运用,能够简化分析过程和纯粹的数学推导,将抽象的理论用更为直观的方式显示出来,从而帮助学生更加深刻的理解相关基本理论,重视其中的物理意义、现象和原理。而且,随着编程压力的减少,学生可将更多的精力投入到思考和创新上,有益于获得更多有价值的结果。
4 科技论文的撰写
随着课题接近尾声,学生又开始面临新问题――科技论文的撰写。学生初次尝试此类论文写作,容易出现:文体选择不当、用语不严谨、逻辑混乱、重现象轻分析、参考文献引用不规范等问题,所以教师在该步骤的指导很有必要。
笔者建议教师可在学生撰写论文前,就写作过程中容易出错的地方,有针对性地辅导学生,并向其交代清楚科技论文写作的基本注意事项。通常在开始写论文前,笔者会要求学生先拟定论文提纲,包括:设计题目及其各个章节的安排和要点。拟定提纲有助于安排好全文的逻辑结构,构建论文的基本框架。其次,注意论文的基本格式,毕业设计论文应该包括以下几部分内容:(1)设计题目。题目要求简短、明确,能够概括毕设论文的内容、专业特点等。(2)摘要和关键词。摘要要涵盖课题研究的基本观点、主要研究内容、研究方法、结果和结论。学生在摘要写作时,容易出现单一罗列各章内容,逻辑性不强,且重点不突出等问题,需要多加指导和训练。关键词要求选取题目和论文内容中具有实质意义、能够作为标引和检索文献主要概念的名词或词组。(3)目录。(4)正文。这是毕业设计论文的核心部分,包括课题发展动态的介绍、理论分析、仿真计算、实验方法、个人的分析和讨论、得出的结论等,需要附上有关公式、仿真图、实验图、数据表格、照片等。有关这部分内容的写作,要求理论正确、概念清晰、逻辑性强、层次分明、文字简洁流畅、数据真实可靠、公式推导和计算无误。在正文撰写时,学生最难把握的是对仿真或实验数据的分析和讨论,并从中总结出规律。基于此,笔者通常会在该步骤中,帮助学生一起分析其得出的各类数据,并启发学生运用所学知识寻找各类现象背后的理论依据,进行合理分析,从而得出准确的结论;(5)结束语。这是对论文主体的总结,应该完整且精炼,阐述本文所做的创新性工作及其所做工作的意义,对论文中某些不足和问题应给予客观说明,并且可以提出下一步的研究方向。(6)致谢。(7)参考文献。需要提醒学生注意参考文献的格式,通常在参考文献中应该列出主要参考书籍的作者、书名、出版社、出版年及其版本,若引用期刊论文时应该列出作者、期刊名、出版年、期刊卷数、期数、页码等。
5 总结
本文中,笔者就高校本科毕业设计环节的教学方法进行了总结和探讨。首先,作者强调毕设初期下达任务书后,对学生展示课题全貌的重要性,它有利于学生迅速进入课题,并能激发其对课题的浓厚兴趣。其次,作者认为文献调研是科研的基本功,此环节一对一的教辅方式,有利于学生迅速掌握查找文献的技巧,并为完成课题打下坚实基础。再次,作者认为各类相关软件的灵活运用,能够将学生从繁琐的编程工作中解放出来,有利于学生将更多精力投入到思考和创新上,有益于获得更有价值的结果。最后,作者认为有必要对学生就科技论文的撰写进行针对性指导,帮助学生掌握此类文体的写作,还就毕设论文写作常犯错误提出了各类解决方法。笔者期望通过对高校本科毕业设计环节教学方法的探讨,能够更好地帮助学生完成该阶段学习任务,提高本科毕业设计的质量和水平!
毕业设计(论文)必须要自动生成目录(不要手工录入)(在自动生成的目录上按住CTRL键并单击鼠标可以跟踪链接),格式如下: 四号字,黑体,加粗,单倍行距,居中。目录单独占一页
目 录 (本行空一行)(以下目录清单为:小四号宋体,单倍行距。显示到3级目录即可) 1. 引言 2. 流量工程 3. MPLS流量工程 4. MPLS流量工程研究进展 4.1 LSP建立方法 4.1.1 预规划路径法 5. 结束语 致谢 参考文献 小二黑,加粗居中。单倍行距。
基于MPLS的流量工程研究进展
(空一行) 软件工程专业 小四楷,加粗居中
120642009001 姚某某 指导教师:邹某某
(空一行) 【摘要】MPLS已成为IP网络的核心技术,基于MPLS的流量工程技术对提高网络资源利用率、改善网络性能具有十分重要的意义。本文分析MPLS流量工程技术中面临的问题,概述解决这些问题的最新研究进展,并进行分类,提出MPLS流量工程结构模型,以及MPLS流量工程研究的认识和建议。 小五楷加粗。单倍行距
【关键词】MPLS, 流量工程, LSP
(空一行) 1. 四号黑体,单倍行距,段前段后均空0.5行 引言 汉字为五宋;
英文为五号“Times New Roman” 单倍行距 随着互联网的迅速发展,互联网应用的逐渐增多,流量增长呈指数级迅速发展趋势。传统IP网络可满足传统业务(如Email、Web)的传输要求,不能提供QoS保证。但是,………………,传统IP网络也无法满足的这种传输过程的可预见性要求。
…………………… 2. 引用参考文献 流量工程 流量工程是映射业务流到实际网络拓扑的过程,是均衡网络链路、路由器以及交换机上负载的强有力工具[2]。通过管理和控制网络流量分布,可减少关键节点或链路的拥塞,提高资源利用率。流量工程技术不但可以……,而且……。流量工程通常包括各种技术的应用、网络测量规则、各种问题的模型化、流量控制,以及如何将这些理论和技术应用到实践中来获取一些特定指标的性能[3]。 …………………… 3. MPLS流量工程 正文…………………… 4. 小四黑,单倍行距,段前段后均空0.5行 MPLS流量工程研究进展 4.1 LSP建立方法 五号黑体,单倍行距,段前段后均空0.5行
通常应用约束路由的方法建立LSP。约束路由是一种命令驱动并具有资源预留能力的路由算法,它能够和现有的IGP共存。约束路由根据流量主干属性、资源属性、拓扑信息等,……………………,将有助于对网络的性能优化,减少手工配置和人工干预。
4.1.1 预规划路径法 预规划路径可分为三个步骤[7],这些步骤都是离线完成的。第一,路径查找:为每对出口/入口路由器之间查找所有可能路由,这些路由作为备选LSP路由;第二,路由选择:从路径集合中选出两个子集…… (1)流量预测法 要有表序号和表名,放在表格上方。表格用三线表
文[12]提出一种动态路由算法,该算法的主要思想是…………。算法分为两个阶段:预处理阶段和在线路由阶段。两阶段的算法以对照表形式列于表4-1。
表4-1 预处理阶段和在线路由阶段算法对照 预处理 在线路由 <预处理算法描述> ………… ………… <在线路由算法描述> ………… ………… (2)关键链路法 通常情况下,根据MPLS网络的拓扑结构、各链路的剩余带宽建立LSP,而不考虑入口/出口路由器的位置。事实上,如果不考虑入口/出口路由器的位置,会出现什么情况呢?考虑图4-1所示网络结构。 要有图序号和图名,放在示意图的下方
五号黑体
图4-1 资源使用产生冲突的例子
(空二行) 5. 结束语 ……………………………… (空一行) 致谢(注:文献综述不写致谢) 汉字为五号宋;
英文为五号“Times New Roman”。单倍行距。 实心的句点,半角的冒号和逗号 起止页码 感谢……………………
(空一行) 参考文献 [1] Yufei Wang,Zheng Wang. Explicit Routing algorithms for Internet Traffic Engineering[C]. Proceedings of IEEE International Conference on Computer Communications and Networks, 1999:228-239. [2] Chuck Smeria. Traffic Engineering for the New Public Network[R]. White Paper, Part Number: 200004-004 09/2000, Juniper Network, Inc.. [3] D. Awduche et al. Requirement for Traffic Engineering Over MPLS[S]. RFC 2702, September 1999. [4] D. Awduche. MPLS and Traffic Engineering in IP Networks[J]. IEEE Communications Magazine, 1999,37(12):42-47. [5] 王静华,张新家. 基于MPLS流量工程的约束路由的研究[J].计算机工程与设计, 2005,26(9):2386-2388. 期刊名。期刊不要写出城市
[6] 张辉译. 基于MPLS的流量工程[M]. 北京:人民邮电出版社, 2003:88-92.
[7] ………… 卷号
外国语学院英语专业学生毕业论文要求
一、毕业论文的目的
毕业论文是教学计划的最后一个重要环节,是落实教育培养目标的重要组成部分,其主要目的是培养学生综合运用所学的知识和语言技能,理论联系实际,独立分析和解决有关专业问题的实际能力,使学生得到从事本专业外语学术论文写作的基本训练。毕业论文的基本教学要求是:
1、通过毕业论文提高学生综合运用、扩展语言知识和专业知识的能力,培养学生独立分析问题、解决问题的能力。
2、通过撰写毕业论文,帮助学生接受科学研究、分析方法的初步训练。
3、培养学生正确的写作思想,理论联系实际的工作作风,严肃认真的科学态度。
4、使学生在外文资料查阅、阅读和翻译,语言表达、写作能力,计算机文字处理等基本技能方面得到进一步的训练和提高。
二、毕业论文题目的确定
(一) 方式:
1、由教研室安排教师做“怎样写毕业论文的报告”,详细介绍撰写论文的每一个环节和具体要求。
2、学生在指导教师指定的范围内选择和初步确定论文的方向。
3、由论文指导教师根据教学要求提供论文选题,在教研室汇总后向学生公布,供学生选题参考。
4、学生可根据自己所学专业,按学院所提供各专业论文参考选题确定题目,也可自选题目,必须报指导教师,征得同意后方可开题。原则上学生不得跨专业选题。
(二) 范围
英美语言文学、文化、语言学(语法、词法、修辞、语义、文体等)、翻译、国际商贸、国际商务、旅游、外语教学法等。
三、毕业论文写作要求
1、论文长度不少于3,000英文单词。
2、论文结构包括:
1) 标题 (title)
2) 作者署名 (name of the author and tutor)
3) 摘要 (abstract)(150—200词,中英文均要)
4) 关键词 (key words)(中英文均要)
5) 正文 (body)
6) 参考文献 (bibliography)
3、摘要(Abstract)通常为一个段落,长度不超过300个单词。
Abstract通常要回答如下问题:
(1)What is the general knowledge of your topic in the academic field?
(2)What research topic is the paper to focus on?
(3)What method or material do you use to support your main point of view?
(4)What conclusion will you draw?
(5)What is the main contribution of the paper?
4、关键词(Keywords)3至5个。除专有名词外,其他词不用大写,词与词之
间以分号隔开。
关键词应能反映论文的主要内容,因此常出现在标题与摘要中,多为名词,如用investigation 而不用investigate。
5、引言(Introduction)
6、在引言(Introduction)与结语(Conclusion)之间的正文部分应分若干章节。章节编号方法应采用分级阿拉伯数字编号方法,第一级为“1”、“2”、“3”等,第二级为“2.1”、“2.2”、“2.3”等,第三级为“2.2.1”、“2.2.2”、“2.2.3”等,但分级阿拉伯数字的编号一般不超过四级,两级之间用下角圆点隔开,每一级的末尾不加标点。
各层标题均单独占行书写。第一级标题居中书写;第二级标题序数顶格书写,后空一格接写标题,末尾不加标点;第三级和第四级标题均空两格书写序数,后空一格书写标题。第四级以下单独占行的标题顺序采用A.B.C……和a.b.c.两层,标题均空两格书写序数,后空一格写标题。正文中对总项包括的分项采用⑴、⑵、⑶…单独序号,对分项中的小项采用①、②、③…的序号或数字加半括号,括号后不再加其他标点。
7、如有注释,应为尾注。注释应编号,并置于参考文献之前。
8、参考文献数目不得少于5篇。排列采用以下格式:
1)参考期刊排列顺序为:作者,题目,期刊名称,出版年,卷(期),页码
2)参考专著排列顺序为:作者,书名,出版地,出版社,出版年,页码
9、论文为Word形式打印稿,纸型为A4,单倍行距,英文用Times New Roman
字体,中文用宋体。
10、字号要求:大标题为3号字加黑,小标题为4号字加黑,正文、注释与
参考文献为5号字。
11、论文写作过程中,应自觉主动与指导教师联系,虚心接受教师指导。
12、按要求打印装订并上交。装订顺序为:
1)毕业论文封面
2)扉页(毕业设计/论文任务书)
3)毕业论文指导书
4)目录
5)中文摘要(含关键词)
6)英文摘要(含关键词)
7)正文
8)致谢
9)参考文献
13、进度安排:
1、确定选题 第 1 周 ( 09年 2月 22日前)
2、论文提纲 第 2 周 ( 09年 3月 1日前)
3、完成初稿 第3-5周 ( 09年 3月 22日前)
4、完成定稿 第 6 周 ( 09年 3月 29日前)
5、上交论文 第7周 ( 09年 4月 5日前)
14、注意:
1、目录用Word文档自动生成,用1.5倍行距,4号宋体。
2、中文摘要、英文摘要各占一页,按一级标题标示。
四、上交要求
学生按任务书上规定的时间,以班级为单位交辅导员处,辅导员汇总后上交学院。
中州大学外国语学院
参考样文如下
目 录
中文摘要 1
ABSTRACT 2
1 引言 2
2 企业文化的内涵 3
2.1 文化和企业的定义 3
2.1.1 企业组织的法律形态 3
2.1.2 企业组织的管理形态 4
2.2 企业文化 4
2.3 认识企业文化 5
2.4 企业文化的功能 6
3 企业文化对组织创新的影响 7
3.1 组织创新的内容 7
3.2 企业文化对组织创新的影响 7
3.2.1 影响组织结构创新 7
3.2.2 影响组织流程创新 8
3.2.3 组织制度创新 8
4 结语 9
参考文献 9
致谢 10
摘要
随着经济全球化和知识经济时代的到来,国内企业改革的深入发展, 众多企业对传统的组织结构进行了大胆的创新。同时,人们逐渐认识到企业文化是一个成功企业不可或缺的一部分,是影响企业经营业绩的根本,企业文化决定了企业的竞争地位。本文主要讨论了企业文化对企业组织创新的影响。文中首先给出了企业和文化的定义及其内涵,其次提出了企业文化的内容和主要功能,最后揭示了组织创新的内容,论述了企业文化在组织结构、组织流程、组织制度等三方面对企业组织创新的影响。企业文化与创新相互影响,相互促进,共同对企业的发展产生影响。
关键词:文化;企业文化;组织创新
Abstract(用Time New Roman 字体)
Along with the economic globalization and arrival of knowledge-based economy ages, the thorough development of the local business enterprise reform, numerous business enterprises carried on the innovation of the brave to the traditional organization structure. At the same time, the people know that the corporate culture is a gradually successfully a necessary part of the business enterprise, is a root that affects the business enterprise management accomplishment, the corporate culture comes to a decision the competition position of the business enterprise. This text mainly discusses the corporate culture to organize the creative influence to the business enterprise. Give first in the text definition and its contents of the business enterprise and culture, put forward contents and main functions of corporate culture the next in order, announced to public the creative contents of organization finally, discuss the corporate culture to organize the creative influence to the business enterprise in the aspects of organizing the structure, organize process, organize system wait third. The corporate culture and innovation affects mutually, promoting mutually, common to the development creation influence of the business enterprise.
Key Words: culture,corporate culture,System innovation
1 引言
不管您意识到与否,文化每时每刻都在对政治、经济、社会、生活产生着潜在的影响,发挥着不可忽视的作用。本文通过对企业文化的基本内涵、企业文化的重要性以及企业文化的影响,试图让人们认知、认识企业文化。让人们明确,只有继承和发扬中华民族的优秀传统文化,吸收和借鉴人类先进文化,才能建立起优秀的中国企业文化,重视企业文化的影响,据此才能建立起比较完善的社会主义市场经济体制,实现兴企、富民、强国的目标。
2 企业文化的内涵
2.1 文化和企业的定义
文化,从广义上说,是人类在社会实践过程中获得的物质、精神的生产力和创造的物质、精神的总和。从狭义上讲,是指人类精神生产力和精神产品,包括一切社会意识形式:如自然科学、技术科学和社会意识形态等。作为一种历史现象,文化的发展有历史继承性;作为社会意识形态,文化是一定社会政治和经济的反映,同时又对一定社会的政治和经济产生巨大的影响。
作为经济组织实体的企业,为了实现其以行政组织手段替代市场交易来协调生产的功能,就需要有一定的组织形态。
一般地说,企业组织形态包括两个相互关联的方面,其一是企业组织的法律形态,其二是企业组织的管理形态。
2.1.1 企业组织的法律形态
在企业的长期发展过程中企业组织逐步形成三种主要的法律形态,这就是业主制企业,合伙制企业和公司制企业,这种界定的依据是法律认可的企业产权制度,感情。。。。。。
(以下略)
4 结语
二十一世纪,一个最响亮的词语就是创新。创新已成为社会发展、经济增长的最关键动力,而企业文化又与创新有着紧密的联系,所以,企业若要获得长足的发展就必须将企业文化与创新思想相融合,发展现今社会所需要的企业文化,并促进企业文化的建设,同时不断地进行组织创新、技术创新,使企业文化与创新协调发展,相互促进。
致谢
本论文得以完成,首先应该感谢。。。老师。正是她在本论文的写作过程中的悉心指导、热情鼓励,在繁忙的工作中抽出时间来为我修改论文,我才能顺利完成我的双学位论文。
作为中州大学的一名毕业生,我更要感谢管理工程系给了我能够学习不同学科知识的机会。在两年的工商管理专业学习过程中,任课老师们的学识渊博、治学严谨、人品高尚无时不在影响着我。学习的时间是短暂的,但老师们的影响却是我终生收益不尽的。在此对我的老师们深表感谢!
在论文写作过程中,我的一些同学、朋友也给了我巨大的帮助与鼓励。在此一并感谢!
在我的成长、学习过程中,能够在大学阶段同时学习到工科、管理两个学科的知识,是我一生的荣幸与财富。我相信,在未来的日子里我会更加努力学习,充分利用所学知识,回报社会、师长。
参考文献
[1] 罗仲伟.托起辉煌.广州:广东旅游出版社,1997年
[2] 埃德加•沙因.企业文化与领导.北京:中国友谊出版公司,1989年
[3] 威廉•道芬内斯,科林•L•普赖斯.21世纪CEO的经营历理念.北京:华夏出版社,1998年
[4] 杰克琳•谢瑞顿,詹姆斯•L•斯特恩.企业文化:排除企业成功的潜在障碍.上海:上海人民出版社,1998年
[5] 艾伦•迪尔,阿伦肯•尼迪.企业文化.北京:三联书店,1989年
[6] 埃尔文格•罗赫拉.企业组织.北京:经济管理出版社1991年
[7] 窦立夫.论组织效率变革策略 (科学学研究),1995(2)
[8] 连燕华.企业组织创新的案例研究.科学学研究),1992(2)
[9] 梁镇,赵国杰.企业管理创新.北京:中国经济出版社,1996年
[10] 林毅夫等.现代企业制度的内涵与国有企业改革方向.经济研究,1997(3)
[11] P F•德鲁克.创新与组织.中外科技政策与管理,1995(12)
[12] 许庆瑞.技术创新管理. 杭州:浙江大学出版社,1990年
[13] 颜光桐,刘正周等.企业再造.上海:上海财经大学出版社,1998
[14] 周振华. 企业改制.上海:上海人民出版社,1996年
[15] 张德,刘冀生.中国企业文化-现在与未来.北京:中国商业出版社,1991年
1.论文类型
不同的院系,不同的专业,毕业论文通常有不同的类型。就物信系物理类师范本科而言,毕业论文通常有下面几种类型:
1.1理论型论文经过文献调研后,对物理学某一领域的某一理论问题有一定见解,产生出一个题目(课题),利用自己所学的专业知识和数学工具,得出一个(些)有用(或者有潜在的价值)的结论。例如:解决了一个众所周知的问题;纠正了某些流行教材或杂志上理论的错误且提出了解决修正方案;或自己提出有意义的模型、定义、定理或命题等,最后形成论文。
1.2实验型论文对某进行改进或新设计实验,比如更换了测量原理,改进了测量方法,使测量精度更高,测量手段更方便更科学等,最后形成论文。
1.3应用型产品严格说来这算毕业设计。主要依据所学的知识,开发一个新产品或已有产品的改进。最后形成的开发报告加上所开发的样品即为毕业设计的结果。
1.4软件产品完成一个不太大的实际项目或在某一个较大的项目中设计并完成一个模块(如应用软件、工具软件及CAI课件等),然后以工程项目总结或科研报告、或已发表的论文的综合扩展等形式完成论文。
就物理类本科毕业论文的几种类型而言,前两种类型最为常见。
2.选题
2.1有科研项目的老师通常愿意从项目中选取本科生能完成的模块,交给学生作,然后以第一种形式写成论文。教师熟悉项目,项目有实用背景,一般而言,多数学生经过努力都能完成。
2.2学生自选题目,学生自己的知识或对一些问题有自己独到的看法和理解;有些学生已联系好毕业后的工作单位,工作单位要求学生作某方面的项目,或已交给学生某方面的项目,经过指导教师认可,认为可做出合格的毕业论文,则可作这方面题目。这种方式下,学生积极性高,责任心较强,学以致用,一般论文的质量较好且成文后篇幅较大。
2.3教师根据需求,拟定题目。例如,为了教学或者行政的需要而开发的信息管理系统、防黄防黑系统等,可能开始做出的软件还不很完善,但有了雏形,经过修改后,一般是能够应用的。有的系统经过下一届本科生毕业实习的改进,就可能更实用了,一些对路的、有用户的软件还有可能进一步发展为产品。
同学们最好自己能够拟定毕业论文题目,如果自己无法选题,则只有指导教师帮忙拟定题目。
3.文献调研
依据各自毕业论文选题的不同,在搜集整理论文的素材、组织安排论文的结构方面,应有所不同,做到有的放矢。实际上论文选题与文献调研是交叉进行的,它们之间是互相影响的,论文选题可以在文献调研的基础上修正,文献调研可促使你更准确地选题。
文献调研注意以下几个方面的问题:
1)关注背景关注内容--别人进行某方面的研究,内容到了什么层次?你能否对该研究作一些推进?
2)关注手段关注方法--已有的研究采用了什么方法?该方法是否还可以更新?是否可以把该方法移植到其它方面?比如实验论文的实验方法和手段,理论型论文的数学方法等。
3)关注时间--有时这比较重要,你查的文献越新,越接近目前研究的现状。
文献调研的一些方法:如何找到文章的闪光点?
先看题目和关键词,感兴趣后再看文章的摘要,然后关注全文,有必要时要仔细研读,一般来说,做毕业论文时至少要仔细研读10篇以上的参考文献(包括经典著作和外文文献)。
传统方法:到图书馆去,查阅教材,专著,期刊,各种论文集(包括本科、硕、博毕业论文集)等,将查得的文章复印,然后仔细研读;
电子方法:首先要学会利用关键词进行检索。关键词的选取非常重要,依据习惯,可以采用先小后大、也可以采用先大后小的方式逐渐找到自己需要的东西。
网上可以利用的资源
免费的公开的:各大搜索引擎,比如:网易,搜狐,新浪,AOL(美国在线),YAHOO(雅虎)等。
专业网站:一般是要收费的。比如:中国期刊网(CNKI)-我校正在试用,在给定的IP范围内用户名和密码均为syyx,万方数据,维普资讯-我校已经购买其镜像。还有就是科研单位网站(比如中科院的各个所),大学网站(图书馆及学报),个人学术网站等。
几个推荐网站:
维普资讯:http://dx3.tydata.com/index.asp,校园网内电脑可以由学校数字图书馆直接进入其镜像网站,可以下载全文。
万方网据:http://wanfangdata.com.cn,查阅资料请打开数字化期刊。可以免费检索及查阅摘要。
中国期刊网数字图书馆:http://cnki.net/index.htm,校园网内电脑可以试用(进入其主网站,限制IP),用户名和密码均为syyx,可以下载全文。她应该算是国内目前内容最齐全的中文文献数据库。
文献印预本网站:http://arxiv.org/,英文网站,包括的内容非常广泛,有物理、数学、非线性科学、计算机科学及数量生物学等。就物理而言,其内容也包罗万象。文章可以全文免费下载,一般下载PDF格式,其它的格式你们不知道怎么阅读。
另外还有专业的著名网站,比如:aps.org(美国物理学会-非常专业的物理评论-PhysicalReview、物理评论快报-PhysicalReviewLetter在此),aip.org(美国物理研究所,上面在多种物理杂志,比如:今日物理-PhysicalToday,数学物理通报-Math.Phys.Lett.)。
4.论文格式及目录系统
每个作者有自己的风格,格式不必强求一致,但科技论文不能象写小说剧本那样,一般不能用倒叙,插叙,不设悬念,不用意识流,多线索方式等。一般格式如下:
题目(封面)
扉页
摘要(中英文,300-1000字)
关键词(3-5个,方便别人检索和分类,关键词要能够体现论文的中心)
目录(目录可以用Word的自动功能,“插入—索引和目录”功能实现,可自动编页自动更新)
正文部分
1.前言、引言或导言(背景,动机,前人工作)
1.1
1.1.1
(1)
(a)
1.2
(在这一部分要突出自己文献调研所读过的资料,可以看出你对本研究到底了解有多少)
2.选题的特色,拟采用什么方法、方案和手段解决什么问题。
3.题目的研究过程(实验,数学手段等,一定要详细,具体,而且要求准确无差错)
4.结论,分析与讨论
5.结束语(全文的总结,有时题目比较单一时,这部分内容包含在第4项中,此时该部分可以省略)
参考文献
附录(比如:你在读本期间发表的论文,在什么学术会议上发表了什么文章等能够证明你学术水平的东东)
致谢(你可以在此处对你论文写作提供了帮助的人提出感谢)
5.写作技巧和注意事项
5.1学术论文要求文字流畅,层次清晰,词藻不能过分华丽,即便你想写得生动,但用词的前提是准确不过分夸张。
5.2标题要能反映内容。如有新意更好。例如,下面题目是个不好的题目:“原子物理中某些问题的研究”,论防火墙技术”等,其中的“某些问题”不如换成最中心的词汇。论防火墙技术题目太大太泛,根本不适合本科生作,那是写专著的题目。
5.3学术刊物上论文摘要一般300字左右,需要较高的综合能力。而学生毕业论文摘要原则上占一页(1000字左右),因此活动空间较大,要好写一些。
摘要可以在全文写完后再写。要简明。实际上摘要都是在全文写完后再写的。
中英文摘要应一致,要突出自己的工作,要提供几个keywords。
写英文摘要时,可先用英文的习惯和用语写摘要(可以借助于电子词典),然后英译汉,用中文摘要去将就英文摘要。反过来,如果先写好中文摘要,再汉译英,则很难把英文摘要写得地道。
为了使得英文表达地道、准确,可以读十几篇相关研究方向的论文的摘要,注意一些表达词的使用。
平行的内容宜用平行的句型。不要搞成一句主动,一句被动,读起来语感会非常糟糕。
5.4前言部分要写问题背景,动机,要说明自己工作的工作有用,有意义(才能鼓励读者读下去),通常在介绍国内外工作后,用“但是”一转,指出前人工作的不足,引出自己的工作。在前言中简述自己作的主要结果,(例如明确地列出几条,说明本文的主要工作,主要成果)。前言部分的末尾介绍文章的组织情况,各节内容。
5.5突出特色,一个项目中工作很多,有些是同行皆知,自己也无创新的,可以略写,要多写自己遇到的特殊困难和创造的特殊解决方法。使人家读了能学到东西,看到作者的创意。为了突出特色,还可以在一节中分成小标题写,一个问题一小段,与计算机相关的论文中还可以把数据结构和程序片段夹叙夹议呈现出来,比只用汉字解释得更清楚。
5.6上升到理论,一般硕士论文会要求这一点。如果本科生能够在毕业论文中得出有意义的定理或命题,一般会认为是好成果。可能会被推荐到杂志上发表,或在考研、求职中得到承认。
5.7各部分应详略得当。一般地,毕业论文应该主要写作者的见解和工作,把自己的创新写深写透。综述要有述有评有比较,一般地介绍相关工作(前人的成果)部分不应该超过总篇幅的1/6。
5.8完整的论文应包括结果、结论及分析(图表或曲线)。
5.9结论,小结。说明解决了什么问题,有什么创新,下一步工作主要内容和思路等。
6.参考文献及引用
参考文献是论文写作中的重要一环,带着问题读文献或杂志上的论文,不但注意学习学术内容,同时也注意学习选题方法、格式、标准的套话、起承转合的语言和方式,参考文献的写法,字体的运用等等。在论文中明确给出参考文献的出处,既代表着对前人成果的继承,也代表了对他人研究成果的尊崇,是科学研究中应培养的正确的科学态度和做人准则。
参考文献的写法:按参考文献在论文中出现的顺序,用编码的方式给出,如[1],[2],等。参考文献包括专著、学术期刊、学术会议、技术报告等。
7.怎样作答辩用PowerPoint
本科生毕业论文答辩时间一般10-30分钟,把自己的工作在15分钟内讲出来,是对综合能力、表达能力的挑战。这种能力在学生的一生中非常重要。(求职,面试,申请项目,总结等等)。作好PowerPoint幻灯片是答辩好的重要环节。一般有下列要点:
(1)每页8—10行字或一幅图。只列出要点,关键技术。
(2)毕业论文要突出自己的工作,不要在背景,前人工作上花过多时间。篇幅可以大致分配如下:
提纲:1页,
背景:1—2页,
提出问题,分析问题:5页,
解决问题,10—15页,
小结:1页,主要成果,工作,程序量,效益等等。
(3)演讲者大约一分钟讲2页。听众一分钟可以看完4—5页。因此不能完全照着念。要用口语化的语言,讲演式的语言。
(4)充分利用图形,可以在较短时间内传递较多信息。
(5)有些细节,如算法,可以全部用小字写在一页上,用红色标出特别重要的几个句子,讲解时可以快速"闪"过(20秒),"算法如此页","要点是...",,讲思想,介绍方法,讲关键。听众可以在较短时间内了解大意。
(6)10—15分钟的报告,准备20—22页即可。
8.时间表
第一周(2月29日前):指导教师与被指导学生见面。
第二周(3月7日前):完成指导学生选题工作。
第五周(3月28日前):文献调研初步工作,完成开题任务,交开题报告书。
第九周(4月25日前):文献调研,仔细研读,跟指导教师密切联系。
第十三周(5月16日前):完成课题研究,写出论文初稿,交指导教师审阅。
第十四周(5月23日前):指导教师返还修改论文,学生完成论文二稿。
第十五周(5月底前):指导教师进一步指导存在问题的论文。
第十六周(6月6日前):论文定稿、打印、装订,论文的最终版本交指导教师;制作PPT文稿,准备答辩。
第十七周(6月13日前):指导教师(交叉)评审论文。
第十八周(6月20日前):学生毕业论文答辩。
9.本科论文附加要求、格式、字体规定
1.论文必须打印,A4纸。
2.论文字体与字号(如以后学校有字体标准,以学校规定为准)
字体:宋体
论文标题:3号,标题1:小3,标题2:4号,标题3:小4标题加粗,
正文:小4,
参考文献:5号。
英文标题:小3,摘要正文:小4,字体:TimesNewRoman
3.封面使用规定的模板(以后学校有规定的,以学校规定的封面为准)。
4.答辩时,原则上要求作PowerPoint幻灯片。
10.关于译文和文献综述
文献综述实际上是在引言中叙述,汉译英工作体现在中英文摘要中,所以建议同学们要认真读2-4篇英文论文,看看科技文献是如何使用英语的。不过,150-300字的翻译量不太大,同学们还可以利用先进技术(如电子词典)辅助翻译。所以问题应该不大。
附件:
1、本科毕业论文流程:选题à文献调研à开题报告书à文献研读论文写作à答辩
2、时间安排表
3、选题申报表(包括开题报告书)
4、论文封面及论文正文模板
当代社会对标志的图形设计提出更高的要求——首先要寓意深刻,反映品牌的理念;其次要个性鲜明,引人注意,让人一目了然;再次要给人以美感,既符合实用要求,又符合美学原则;最后还要有好的适用性,便于运用各种工艺手段生产和制作。要符合上述的这么多要求,设计一个标志就显得很不容易了。标志简洁、易识别的要求,使标志的图形做起来不像画一幅画那么费时间,往往给人留下一个“简单”的印象(当然简单就意味着好复制,好传播,这也是标志设计的一个要求)。但它的定位创意却成了制胜的根本,需要反复的考虑苦苦寻觅。当然这种寻觅的过程并不是漫无目的的,它还是有一些规律和重点需要注意的,以下是我们对标志设计创意的要点进行分析和探讨。
一、明确企业的品牌理念,为企业标志设计找准契合点
设计标志时需收集品牌的信息,分析整理准确把握其内涵。每一个品牌都有其独特的理念、精神、文化或经营方针,而一个品牌往往内涵涉及层面是很广的。必须经过准确的提炼取舍找出重点要素,作为设计的突破点和基点。再集中各种艺术手段,巧、妙、准地反映主题内涵。这一步把握的准确与否,直接关系到标志设计的成败。
首先要弄清品牌的性质和用途。这是创意的一个基点,如:图一中国银行的标志用古钱币的形象表现了金融机构性质特点,说明标志图形要和品牌名称内容相一致。从整体趋势来看,标志设计是由具象向抽象演变。具象的标志往往会被具体物像或生活的真实性所束缚,而不易表达简单概念后面的丰富蕴涵,有碍于传递品牌的核心识别。
如图1-1
独特的地域文化也是标志设计创意时所要考虑的重要内容。每一个品牌都具有不同的地域性,历史背景,产品或服务背后的文化根源与市场的范围和对象等。因此在为一个品牌做标志设计前,一般企业或机构方会提供其理念、精神、文化或经营方针等有关资料。所提供的信息往往是较全面的,但也可能是繁琐和零碎的。我们就要准确地提炼主题内涵,把握住能反映主题意义的抽象概念。我们可以从分析问题入手,搞清“它是什么”,“它的个性特点怎样”,“有什么样的行业特征”,“覆盖哪些地域哪些人群”,“他给目标人群带来什么利益、服务或活动”,“推出的时代背景”等问题。
二、根据反映企业理念的要素,提炼图形元素
标志设计所反映的企业理念和所用的图形语言二者是内容与形式的关系。二者是互相依存的一个有机的统一体。空玩形式,搞得再好看反映不出内容来,只能是一个无生命的空壳,从传播的角度来说是毫无意义的。反过来,虽能准确地把握内涵,却只会用几个符号的简单罗列,那也一定是蹩脚的失败的,看上去一定是乏味的、混乱的和没有结构的。这试图是在 “写设计”或图解概念。好的标志设计表现形式应该是一个完美的形象图形,是在准确把握品牌内涵的基础上的再创造,这个图形应该独具个性、引人注目。如图二2008北京奥运会会徽选择中国传统文化符号——印章(肖形印)作为标志的主体图案,这在整个奥林匹克会徽设计史上是一个重大的突破和创新。以古老的印信寓意着有数千年诚信传统的华夏古国的庄严承诺“世界给我以信任,我给世界以辉煌!”
如图2-1
三、要有易识别的图形语言
标志的图形主要意义在于识别,服务于大众传播。这样单纯、显著就很重要,我们知道,只有受众理解了的东西才容易记忆。知觉和记忆总是一个相互交织而不可分割的统一体。一般情况下,人们辨别一个图形总是自觉地将它与记忆仓库储备的同类或相近的事物加以比较归类,以寻找其位置、确定其性质,这在心理学上叫视觉“预先匹配”现象。这种现象是图形语言得以正确传播的基础。我们要自觉地利用这一现象,准确传递我们的图形信息。但同时我们也要注意到:知觉对象同记忆中的标准意象吻合时,虽然认知度高,但却缺少视觉的刺激性,难以引起人们的注意。这样我们的图形就要对记忆中的标准意象母体,制造某种程度的“破坏”,使知觉充满活力,易于注目与记忆。设计的图形既要易于理解,饶有风趣,以平托奇,过目不忘。例如:国旗、国徽作为一个国家形象的标志,具有任何语言和文字都难以确切表达的特殊作用。公共场所的标志、交通标志、安全标志、操作标志等,对于指导人们进行有秩序的正常活动、确保生命财产安全,具有直观、快捷的功效。商标、店标、厂标等专用标志对于发展经济、创造经济效益、维护企业和消费者权益等具有实用价值和法律保障作用。各种国内外重大活动、会议、运动会以及邮政运输、金融财贸、机关、团体及至个人(图章、签名)等几乎都有表明自己特征的标志。这些标志从各种角度发挥着沟通、交流、宣传的作用,推动着社会经济、政治、科技、文化的进步,保障着各自的权益。标志的直观、形象、不受语言文字障碍等特性,极有利于国际间的交流与沟通,因此国际化标志得以迅速推广和发展,成为视觉传送最有效的手段之一,成为人类共通的一种直观的联系工具。
四、图形语言要寓意深刻
因社会人群的不同,对标志图形的理解就会不同,设计师和普通民众的认识就会有差异。这样就要求标志设计的图形有多层语义结构。以申办2008奥运会标志为例,是一个运动的人形,深入可依次识别为:打太极拳——联想到中国传统体育文化;中国结——联想到吉祥、美好、中国文化;奥运五环——联想到奥运会、世界体育;五角星环扣——联想到2008年在中国北京举办;整个图形感觉和谐动感——表达了奥林匹克更快、更高、更强的体育精神等不同层 次的意念。
设计时还要考虑各层意思的递进关系,不要几层意义有相悖的情况。很多标志是用首字母,或字母缩写为元素去设计,就是考虑了最浅的一层,起码一眼看上去就和品牌的名称建立了联系。传达企业理念和风格的图形语义要从其他层面去寻找。
有了好的创意之后,标志设计可以说呼之欲出。
五、运用以上的创意观点于毕业设计中
首先,在明确企业的品牌理念方面,我很清楚地知道我的企业品牌是“东方青少年购物中心”如图三,它的个性特点是“永远年轻”,它的行业特征是“针对性强,受惠性更强。”它覆盖了所有在杭或者到来杭的青少年。他给广大的青少年朋友带来丰厚的精神食粮和健康而又理想的购物休闲场所。在现今这个时代,青少年对于整个社会来说,是一群模糊服务界限的群体,所以针对性相对薄弱。在上述前提定位下,我的创意基点是“青少年”。其次,根据所反映的企业理念的要素,我提炼的图形元素是汉字“东方”, 充分说明了标志图形要和品牌名称内容相一致。再次,考滤到的易识别的图形语言是不同粗细的线条构成的粗细方圆曲直错落变化;给人以个性感和丰富。最后,结合我所运用的鲜
如图3-1
艳的明黄和橙红两种色彩于我的标志中,把我标志中的热情、动感和活力的元素体现地更加地淋漓精致更有寓意。
六、结束语
随着企业的经营和企业信息的不断传播,标志所代表的内涵日渐丰富,企业的经营活动,广告宣传,文化建设,公益活动都会被大众接受,并通过对标志符号的记忆刻画在脑海中,经过日积月累,当大众再次见到标志时,就会联想到曾经购买的产品,曾经受到的服务,从而将企业与大众联系起来,成为连接企业与受众的桥梁。而标志之所以有这样的内涵是由于有了“创意”。
致谢词
感谢老师两年来的谆谆教导和辛勤付出!让我在这两年中不仅在专业上有了提高,也在为人处世中有了很大的改变和进步。在这毕业之际,借着这方寸方格再次表示我的感激——谢谢老师!
参考文献
[1]王汀 张力平•图书版面的文字设计[M].广州: 广东人民出版社
[2]黄凯•标志设计[M].合肥:合肥工业大学出版社
[3]薄贯休 贾荣林•现代图形设计创意与表现[M].北京: 国际文化出版社
[4]郭岚•经典矢量标志图库[M].长沙: 湖南美术出版社 2005
来稿应具先进性、科学性和逻辑性,数据可靠、论点明确、结构严谨、文字通顺。
投稿前三看:①看投稿须知。投稿须知是各编辑部为使来稿符合该刊的性质、报道方向以及内容编排格式而制定的带有“法规”性质的文件;②看相应栏目的范文;③查看自己的论文。
为了加快稿件处理的速度,本刊实行远程在线投稿(http://),不再接收其他方式投稿。为了确保编辑部能够将相关信息准确传达到作者,注册投稿者应为第一作者或通讯作者,不宜让他人。
投稿成功后须及时交纳20元审稿费,并提供单位介绍信。介绍信应注明对稿件的审评意见以及无一稿两投、不涉及保密及署名无争议等项。
来稿首页请标明以下内容:题名,全部作者的姓名、工作单位(全称),负责与编辑部联系者的联系方式(详细通讯地址、电话号码和电子邮箱)。
忌一稿多投、抄袭剽窃、重复发表、虚假注释等。为了加强学术道德和学风建设,遏制学术不端行为,惩防并举,本刊编辑部已全面启用中国知网“学术不端文献检索系统”对来稿进行检测,凡涉嫌学术不端行为的将不予采用。对已通过本刊审稿、等待发表的稿件,作者要求撤稿时,须通过投稿系统提出撤稿要求,并作文字说明。
来稿一律文责自负。根据《著作权法》,本刊对决定刊用的文稿可作文字修改、删节。
本刊已被《万方数据资源系统数字化期刊群》、《中国期刊全文数据库》、《中文科技期刊数据库》收录,并实行开放获取。您可通过OA资源一站式服务平台、首席医学网及本刊网站免费阅读。作者将保留版权,拥有保护作品完整权和署名权。同时自投稿日起,本刊将获得该作品的首次出版权和网络传播权。编辑部不再向作者支付稿酬。如您的文章不同意被上述数据库收录和开放获取,请于来稿时注明。
2 撰稿要求
2.1 题名
力求简明、醒目,反映出文章的主题。中文题名一般不宜超过20个汉字,英文题名不宜超过10个实词。中、英文题名含义应一致。题名不应使用缩略语、字符、代号及简称、俗称等,也不应将原形词和缩略语同时列出。
2.2 作者署名与单位
①作者姓名写在题名下,排序应在投稿时确定,在编排过程中不应再作更改;通讯作者应附有联系方法(电子邮箱或电话号码)。②作者工作单位写在作者姓名下,应注明全称,包括所在省(自治区)、城市(县)名和邮政编码。附有英文摘要的论文,中国作者的姓名用汉语拼音字母标注;汉族作者姓名姓在前,复姓连写,全部大写;名在后,首字母大写,双名间加连字符;名不缩写,姓与名之间空一格。对于复姓或双名的汉语拼音音节界限易混淆者,应加隔音号“’”。少数民族作者姓名按照民族习俗,用汉语拼音字母音译转写,分连次序依民族习惯。我国香港、澳门、台湾地区作者姓名的书写方式尊重其传统习惯。外国作者的姓名写法遵从国际惯例。英文摘要中作者单位著录项目应与中文一致,并应在邮政编码后加注国名。
2.3 摘要
临床论著、流行病学调查、循证医学、中医药信息学、实验研究、中药研究与开发栏目的论文需附中、英文摘要。摘要应着重反映研究中的创新内容和作者的独到观点,并概括文中内容。字数要得当,一般不超过400字。摘要采用结构式摘要,包括目的、方法、结果及结论四部分。①目的:应简要说明研究的目的,1~2句话即可。应注意不是对文题的简单重复。②方法:应简要介绍研究对象的选择,分组(包括动物数及每组例数),观察方法(动物造模方法),给药剂量、次数,疗程及主要检测指标与方法等。③结果:应简要列出主要的结果,包括阳性结果和阴性结果,描述结果要尽量用具体数据,必要时包括统计学处理结果。④结论:应根据研究的目的和结果,得出主要的结论,应注意与“目的”相呼应。
中文摘要一般使用第三人称撰写,不列图、表,不引用文献,不加评论和解释。摘要中首次出现的缩略语、代号须注明全称或加以说明。新术语或尚无合适汉语译名的术语,可使用原文或在译名后加括号注明原文。英文摘要一般与中文摘要内容相对应,为了对外交流的需要,也可略详。中文摘要置于中文作者单位下方,英文摘要置于英文作者单位下方。
2.4 关键词
关键词是指论文中最能反映主题信息的特征词或词组。关键词包括主题词和自由词。标引原则是以主题词为主,若无相对应的主题词(新的专业术语)可直接选用关键词。主题词应在美国国立医学图书馆编印的“Medical Subject Headings”(MeSH)、中国医学科学院医学信息研究所编译的《医学名词与主题词(MeSH)对应表》、中国中医科学院中医药信息研究所编印的《中医药学主题词表》中选取。关键词应为全称,不能为非公知公认的缩写。一般每篇论文选取3~8个关键词,多个关键词之间以分号“;”隔开。以“关键词(Key words):”作为标识。有英文摘要的文章,应标注与中文对应的英文关键词。关键词分别排在中、英文摘要下方,无摘要的文章,关键词排印在正文前。
2.5 临床研究和基础研究类论文
一般分引言、资料与方法、结果、讨论和结论等部分。
2.5.1 引言 引言又称前言,它是论文开头部分的一段短文,是文章的引子。主要概述研究的背景、目的、研究思路、理论依据、研究方法、预期结果和意义等,引用他人的研究成果应标注相关参考文献。一般不超过300个汉字。
2.5.2 资料与方法 ①观察对象为患者,需注明观察对象和对照者来源及来源时间,诊断、纳入、排除标准(给出依据,并于文后标注参考文献),分组方法,各组基线资料等。临床试验研究还应说明试验程序是否经所在单位或地区伦理学相关机构的批准,研究对象是否知情同意并签署知情同意书。②研究对象为实验动物,需注明动物的名称、种系、等级、动物许可证号、数量、来源、性别、年龄、体质量、饲养条件等。③药品及化学试剂使用通用名称,并注明来源、批号、规格、剂量和单位。仪器、设备应注明名称、型号、生产单位,无须描述工作原理。④在方法中,详述创新的方法及改良方法的改进之处,以供他人重复。采用他人方法,应以引用文献的方式给出方法的出处,无须详细描述。注意要将各组所采用的干预方法分别介绍,不能只介绍观察组的方法,其他组不介绍或轻描淡写一带而过。同时说明观察治疗的时间和疗程。⑤观察项目及指标要分别列出,特殊的检测指标及方法要详细说明。
2.5.3 结果 结果的叙述应实事求是,简洁明了。结果应与观察指标对应。以数据反映结果时,不能只描述相对数(如百分数),应同时给出数据的绝对值。用表或图表示时,一般应先用文字简单介绍,引出图表。但避免图、表、文字三者内容重叠。图(表)题、图(表)例及其他文字说明可以只使用中文,也可以中、英文对照,但不应仅使用英文。
2.5.3.1 图 ①应具备自明性,包括图序、图题、图例、图注。②应注意图的美观,不应加边框与底纹。③除圆图外,图的高度与宽度的比例以5∶7左右较为美观。④图不宜过大,半栏图最大宽度不超过7.5 cm,通栏图不超过17.0 cm。⑤图的类型(线图、条图、百分条图、圆图、点图)应与资料性质匹配,并使数轴上刻度值的标法符合数学原则。⑥照片图要求有良好的清晰度和对比度;人体标本照片在图内应有尺度标记;病理照片要求注明染色方法和放大倍数。⑦高效液相色谱图峰形和横坐标标值线要清晰;一律不用纵坐标,横坐标单位为t/min;一般成方制剂需要提供对照品、供试品、阴性对照图;单味药需要提供对照品和供试品图。
2.5.3.2 表 应具有自明性,包括表序、表题、表头、表身、表注;表为三线表,应合理安排表的纵、横标目,组别一般为纵标目,表内数据要求同一指标保留的小数位数相同,一般比可准确测量的精度多一位。
2.5.4 讨论和结论 着重讨论研究结果的创新之处及从中导出的结论,包括理论依据、实际应用价值、局限性,及其对进一步研究的启示,也可通过讨论提出建议、设想或改进意见等。应将本研究结果与其他有关的研究相比较,指出本研究结果与其他相关研究结果的异同点。将本研究结论与目的联系起来讨论。不必重述已在前言和结果部分详述过的数据或资料。
2.6 理论研究类论文
是指对有关学术理论作专题研究后所作的报告。如在借鉴新学科理论和方法后,对传统理论有了新的见解,加以论述;通过对某一专题文献的整理,对该问题有了较系统的认识而作进一步阐述;在积累较多实践经验的基础上,对某一问题有了新的认识并加以阐述。撰写时应做到:论点明确、论据充足、论证有力。
2.7 经验总结
①经验总结的引言宜介绍作者实践历程,即获得经验的背景;如系整理名老中医经验,则需有名老中医简介,包括其学术渊源及学术特点。②经验总结的正文一般按照内容分列若干个小标题,以使读者一目了然,得其要领。③经验总结应与实践密切结合,离不开典型病例的介绍,并应突出辨证论治过程。④经验总结的文章无需结语,若有,文字宜简洁,应是画龙点睛之笔。
2.8 医案
取材于案例,作者评论则以“按语”形式表达。①医案的选材应新颖,一般集中在急症、少见病、疑难病,或新思路、新方法、新药物用于临床的典型验案。②医案记录应详尽、准确,包括中医四诊资料、诊断、辨证思路、治疗过程、结局。③按语应点评案中关键及值得大家注意之处,一般在500字以内,避免泛泛的方药分析。
2.9 文献综述
综述是查阅了某一专题在一段时期内相当数量的文献资料,经过分析研究,选取有关情报信息,进行归纳整理,作出综合性描述的文章。撰写时应注意:①选题要新。即所综述的选题必须是近期本刊未曾刊载过的。②说理要明。说理必须占有充分的文献,处处以事实为依据,尤其是要有自己的见解。③层次要清。即在写作时思路要清晰,前后呼应。④文献要新,以5年内的文献为宜,尽可能引用原始一次文献,文献数量以20~40条为宜。⑤篇幅以6 000字左右为宜。
2.10 层次标题及编号
①层次标题是对本段、本条主题内容的高度概括,应简短明确。同一级别层次标题的词组结构应尽可能相同,语气一致。②层次标题的分级编号采用阿拉伯数字,标题层次不宜过多,一般不超过4级,即:1, 1.1, 1.1.1, 1.1.1.1。③文内同时出现多个接排序号时,应依次用圆括号数码“1)”、“(1)”、“①”。
2.11 统计学方法
描述统计学方法时应说明所使用的统计学软件名称及版
本。应写明所用统计分析方法的具体名称(如成组设计资料的t检验、两因素析因设计资料的方差分析等)和统计量的具体值(如t=3.45),并尽可能给出具体的P值(如P=0.023);当涉及到总体参数时,在给出显著性检验结果的同时,再给出95%可信区间。统计学符号一律用斜体表示,如样本大小用小写斜体n,概率用大写斜体P,样本算术平均数用小写斜体―x,标准差用小写斜体s,t检验用小写斜体t,方差分析用大写斜体F,卡方检验用小写斜体χ2,相关系数用小写斜体r等。资料的表达与描述:用―x±s表达近似服从正态分布的定量资料,用M(QR)表达呈偏态分布的定量资料;用统计表时,要合理安排纵横标目,并将数据的含义表达清楚。统计学分析方法的选择:对于定量资料,应根据所采用的设计类型、资料所具备的条件和分析目的,选用合适的统计学分析方法,不应盲目套用t检验和单因素方差分析;对于定性资料,应根据所采用的设计类型、定性变量的性质和频数所具备的条件及分析目的,选用合适的统计学分析方法,不应盲目套用χ2检验。统计结果的解释和表达:当P
2.12 计量单位与数字
①计量单位执行国务院1984年2月颁布的《中华人民共和国法定计量单位》,具体使用可参照《法定计量单位在医学上的应用》一书。②数字:执行GB/T 15835-1995(《出版物上数字用法的规定》),凡是可以使用阿拉伯数字而又很得体的地方,均应使用阿拉伯数字。
2.13 名词术语与经典条文
中医药名词术语应以中医药学名词审定委员会审定的为准(http://.cn);经典条文出处、文字内容,包括标点务求准确。
2.14 中药药名
应以新版《中华人民共和国药典》所载药名为准。
2.15 英文缩略语
论文中首次出现英文缩略语时应给出中文全称,后文则不再出现中文名称。不超过4个汉字的名词一般不使用缩略语,以免影响文章的可读性。
2.16 基金项目
如果属于国家或部、省级等基金或项目的研究论文,须标注基金类别及编号(请在论文首页醒目处标注),并附基金项目证明复印件。
2.17 致谢
对给予提供工作方便或提供技术性帮助、指导的团体或个人表示感谢。文字力求简练,评价得当,并应征得被致谢者本人同意。置于正文后、参考文献前。
2.18 参考文献
引用参考文献是反映论文的科学性及学术水平的重要依据,也是作者尊重他人研究成果的体现,并可向读者进一步提供有关信息。除了会议消息报道等简讯外,每篇论文均应附参考文献。作者引用的参考文献应为亲自阅读过的、主要的、发表于正式出版物上的原始文献。要避免引用摘要简讯、未公开发表或在非正式出版物上发表的文献;若确有必要引用,可用括号插入正文,并应征得原作者的书面许可。著录格式执行GB/T 7714-2005《文后参考文献著录规则》。基于标准中文献种类较多,且采用专业用语进行描述,不易理解和掌握,举例说明。
2.18.1 连续出版物(期刊)
[序号] 主要责任者.文献题名[J].刊名,出版年份,卷号(期号):起页-止页.
[1] 袁庆龙,侯文义.Ni-P合金镀层组织形貌及显微硬度研究[J].太原理工大学学报,2001,32(1):51-53.
2.18.2 专著
[序号] 主要责任者.文献题名[M].版次.出版地:出版者,出版年:起页-止页.
[1] 刘国钧,郑如斯.中国书的故事[M].2版.北京:中国青年出版社, 1979:115.
2.18.3 古籍
[序号] 朝代・主要责任者.文献题名[M].版本.出版地:出版者,出版年:起页-止页.
[1] 黄帝内经素问[M].影印顾从德刻本.北京:人民卫生出版社,1956:31.
[2] 吴毓江.墨子校注[M].孙启治点校.北京:中华书局,1993:615.
[3] 清・王清任.医林改错[M].李天德整理.北京:人民卫生出版社,2005:68.
2.18.4 外文专著(期刊)
[序号] 原著主要责任者.文献题名[M].第一译者,译.出版地:出版者,出版年:起页-止页.
[1] Seth A. Spector. 外科学[M].刘淑芬,译.天津:天津科技翻译出版公司,2008:16.
2.18.5 报纸文章
[序号] 主要责任者.文献题名[N].报纸名,出版年,月(日):版次.
[1] 谢希德.创造学习的思路[N].人民日报,1998,12(25):10.
2.18.6 电子文献
[序号] 主要责任者.电子文献题名[文献类型/载体类型].[发表或更新日期或引用日期].获取和访问路径.
[1] 姚伯元.毕业设计规范化管理与培养学生综合素质[EB/OL].
[2005-02-02].http:///.
2.18.7 专利文献
[序号] 专利所有者.专利题名:专利国别.专利号[P],日期.
[1] 姜锡洲.一种温热外敷药制备方案:中国专利.881056078[P], 1983-08-12.
2.18.8 国际、国家标准
[序号] 责任者.标准代号 标准名称[S].出版地:出版者,出版年.
[1] 全国文献工作标准化技术委员会第七分委员会.GB/T 5795-1986 中国标准书号[S].北京:中国标准出版社,1996.
2.18.9 析出文献
[序号] 析出文献责任者.析出题名[文献类型]//原文献责任者.专著题名.出版地:出版者,出版年:起页-止页.
[1] 罗云.安全科学理论体系的发展及趋势探讨[M]//白春华,何学秋,吴宗之.21世纪安全科学与技术的发展趋势.北京:科学出版社,2000:1-5.
2.18.10 学位论文、论文集、报告
[序号] 主要责任者.文献题名[文献型].出版地:出版者,出版年.
[1] 张筑生.微分半动力系统的不变集[D].北京:北京大学数学研究所,1983.
[2] 辛希孟.信息技术与信息服务国际研讨会论文集:A集[C].北京:中国社会科学出版社,1994.
[3] 冯西桥.核反应堆压力管道与压力容器的LBB分析[R].北京:清华大学核能技术设计研究院,1997.
附:参考文献著录中的文献类型代码
本系统主要完成对图书仓库的库存管理,包括图书入库、出库、库存,员工信息,供应商信息以及密码管理等六个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改、报表等功能。
系统的核心是入库、库存和出库三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成入库或出库操作时系统会自动地完成库存的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。
系统采用microsoft office中的access 2000来设计数据库,并使用当前优秀的开发工具—delphi 6.0 ,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。
论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
关键字:数据库,sql语言,delph 6,数据库组件,仓库管理
目 录
第一章 引言 ……………………………………………………………………………1
1.1 课题来源 ……………………………………………………………………1
1.2 开发工具的选择 ……………………………………………………………2
1.3 所做的主要工作 ……………………………………………………………3
第二章 数据库概论 ……………………………………………………………………4
2.1 数据库的发展 ………………………………………………………………4
2.1.1 数据库的发展 …………………………………………………………4
2.1.2 数据库阶段的特点 ……………………………………………………5
2.1.3 数据库技术 ……………………………………………………………6
2.2 数据库理论基础 ……………………………………………………………7
2.2.1 数据库模型 ……………………………………………………………7
2.2.2 数据库体系结构 ……………………………………………………10
2.2.3 数据的独立性 ………………………………………………………11
2.2.4 范式 …………………………………………………………………11
2.3 sql语言基础 ……………………………………………………………13
2.3.1 sql简介 ……………………………………………………………13
2.3.2 sql查询 ……………………………………………………………13
2.3.3 sql数据更新 ………………………………………………………14
第三章数据库开发工具 ……………………………………………………………16
3.1 delphi 6.0 简介 ……………………………………………………………16
3.2 delphi 6.0 控件 ……………………………………………………………17
3.2.1 ado数据访问组件 …………………………………………………17
3.2.2 数据控制类datacontrol ……………………………………………18
3.2.3 数据访问类dataaccess ……………………………………………18
3.2.4 sql语言在delphi中的应用 ………………………………………19
3.3 access 简介 ………………………………………………………………21
第四章 系统总体设计 ………………………………………………………………23
4.1 系统需求分析 ……………………………………………………………23
4.2 系统概要设计 ……………………………………………………………25
4.2.1 系统结构设计 ………………………………………………………25
4.2.2 数据库设计 …………………………………………………………27
4.2.2.1 er图设计 ……………………………………………………27
4.2.2.2 数据库表格设计………………………………………………29
4.3系统详细设计………………………………………………………………34
第五章 系统应用程序设计 …………………………………………………………37
5.1 系统窗体模块组成…………………………………………………………37
5.2 数据模块窗体设置…………………………………………………………38
5.3 主窗体功能模块的实现……………………………………………………39
5.4 入库、出库窗体模块的实现………………………………………………43
5.5 查询功能的实现……………………………………………………………51
5.6 系统登陆窗体模块的实现…………………………………………………52
5.7 用户管理功能的实现………………………………………………………54
5.7.1 用户管理主窗体 ……………………………………………………54
5.7.2 密码修改窗体模块的实现 …………………………………………54
5.7.3 用户注册窗体模块的实现 …………………………………………55
5.7.4 用户注销窗体模块的实现 …………………………………………57
结束语 …………………………………………………………………………………59
致谢 ……………………………………………………………………………………60
参考文献 ………………………………………………………………………………61
第一章 引 言
§1.1 课题来源
随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。与此同时,为了管理大量的图书,图书仓库也大量的出现,仓库的管理问题也就提上了日程。随着图书的大量增加,其管理难度也越来越大,如何优化仓库的日常管理也就成为了一个大众化的课题。
在计算机飞速发展的今天,将计算机这一信息处理利器应用于仓库的日常管理已是势必所然,而且这也将为仓库管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益。主要体现在:
极大提高了仓库工作人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。
基于仓库管理的全面自动化,可以减少入库管理、出库管理及库存管理中的漏洞,可以节约不少管理开支,增加企业收入。
仓库的管理的操作自动化和信息的电子化,全面提高了仓库的管理水平。
随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统已变得十分心要。
入库、库存、出库还是现在企业图书仓库管理的常规基本模式,虽然,最近又出现了很多新的管理模式,如:基于零库存思想的沃尔玛特管理方式,但这些新的思想在
第二章 数据库概论
§2.1 数据库的发展
数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着world wide web(/yingyongwengao/" target="_blank" title="">应用超越具有早期应用特点的简单的。同时,internet技术提供了一种向用户数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性。
数据库的设计和开发及包括艺术有包括工程。理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。
数据库的目的是帮助人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工作、员工、学生、电话之类的项,或其它数据量较大、需要密起关注的事务。最近,由于数据库的普及,数据库技术已经被应用到了新的领域,诸如用于internet的数据库或用于公司内联网的数据库。数据库也被越来越多地应用于生成和维护多媒体应用程序上。
计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储器的容量、存储速率直接影响到数据管理技术的发展。从1956年生产出第一台计算机到现在,存储器的发展,为数据库技术提供了良好的物质基础。
使用计算机以后,数据处理的速度和规模,无论是相对于手工方式,还是机械方式,都有无可比拟的优势。通常在数据处理中,计算是比较简单的而数据的管理却比较复杂。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据管理技术的优劣,将直接影响数据处理的效率。
2.1.1 数据库的发展
数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。
人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性 ,数据不一致性以及数据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术。
20世纪60年代末发生的三件大事,层次模型ims系统的推出、关于网状模型dbtg报告的发表以及关于关系模型论文的连续发表标志着数据管理技术进入数据库阶段。进入70年代以后,数据库技术得到迅速发展,开发了许多有效的产品并投入运行。数据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的管理。
当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高效率,开始时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索引,形成倒排文件系统。但这并不能最终解决问题。在20世纪60年代末,磁盘技术取得重要进展,具有数百兆容量和快速存取的磁盘陆续进入市场,成本也不高,为数据库技术的产生提供了良好的物质条件。
2.1.2 数据库阶段的特点
(1)减少数据的重复(redundancy can be reduced)
当在一个非数据库系统当中,每一个应用程序都有属于他们自己的文件,由于无法有系统建立的数据,因此常常会造成存储数据的重复与浪费。例如:在一家公司当中,人事管理程序与工资管理程序或许都会使用到职员与部门的信息或文件,而我们可以运用数据库的方法,把这两个文件整理起来,以减少多余的数据,过度地占用存储空间。
(2)避免数据的不一致(inconsistency can avoid)
本项的特色,可以说是延伸前项的一个特点,要说明这样的一个现象,我们可以从下面这个实例来看:若是在同一家公司当中,职员甲在策划部门工作,且职员甲的记录同时被存放在数据库的两个地方,而数据库管理系统却没有对这样重要的情况加以控制,当其中一条数据库被修改时,便会造成数据的不一致,但是,对于一个健全的数据库管理系统而言,将会对这样的情况加以控制,但有时并不需要刻意消除这种情形,应当视该数据库的需求与效率来决定。
(3)数据共享(data shared)
对于数据共享的意义,并不是只有针对数据库设计的应用程序,可以使用数据库中的数据,对于其他撰写好的应用程序,同样可以对相同数据库当中的数据进行处理,进而达到数据共享的目的。
(4)强化数据的标准化(standard can be enforced)
由数据库管理系统,对数据做出统筹性的管理,对于数据的格式与一些存储上的标准进行控制,如此一来,对于不同的环境的数据交换(data interchange)上将有很大的帮助,也能提高数据处理的效率。
(5)实践安全性的管理(security restriction can be applied)
通过对数据库完整的权限控制,数据库管理者可以确认所有可供用户存取数据的合法途径渠道,并且可以事先对一些较重要或关键性的数据进行安全检查,以确保数据存取时,能够将任何不当损毁的情形降至最低。
(6)完整性的维护(integrity can be maintained)
所谓完整性的问题,就是要确认某条数据在数据库当中,是正确无误的。正如(2)所述,若是无法控制数据的不一致性,便会产生完整性不足的问题,所以,我们会发现,当数据重复性高的时候,数据不完整的情形也会增加,当然,若是数据库的功能完整,将会大大地提高数据完整性,也会增加数据库的维护能力与维护简便性。
(7)需求冲突会获得平衡(conflicting requirements can be balance)
在一个较大型的企业当中,用户不同的需求,往往会造成系统或数据库在设计上的困扰,但是一个合适的数据库系统,可以通过数据库管理员的管理,将会有效地整理各方面的信息,对于一些较重要的应用程序,可以适时地提供较快速的数据存取方法与格式,以平衡多个用户在需求上的冲突。
上述七个方面构成了数据库系统的主要特征。这个阶段的程序和数据间的联系可用下图表示: 2.1.3 数据库技术
从文件系统发展到数据库系统是信息处理领域的一个重大变化。在文件系统阶段,人们关注的中心问题是系统功能的设计,因而程序设计处于主导地位,数据只起着服从程序需要的作用。在数据库方式下,信息处理观念已为新体系所取代,数据占据了中心位置。数据结构的设计成为信息系统首先关心的问题,而利用这些数据的应用程序设计则退居到以既定的数据结构为基础的外围地位。
目前世界上已有数百万个数据库系统在运行,其应用已经深入到人类社会生活的各个领域,从企业管理、银行业务、资源分配、经济预测一直到信息检索、档案管理、普查统计等。并在通信网络基础上,建立了许多国际性的联机检索系统。我国20世纪90年代初在全国范围内装备了12个以数据库技术为基础的大型计算机系统,这些系分布在邮电、计委、银行、电力、铁路、气象、民航、情报、公安、军事、航天和财税等行业。
数据库技术还在不断的发展,并且不断地与其它计算机技术相互渗透。数据库技术与网络通信技术相结合,产生了分布式数据库系统。数据库技术与面向对象技术相结合,产生了面向对象数据库系统。
在数据库技术中有四个名词,其概念应该分清。
(1)数据库(database,db):db是统一管理的相关数据的集合。db能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。
(2)数据库管理系统(database management system,dbms):dbms是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问db的方法,包括db的建立、查询、更新及各种数据控制。dbms总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型dbms。
(3)数据库系统(database system,dbs):dbs是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
(4)数据库技术:这是一门研究数据库的结构、存储、管理和使用的软件学科。数据库技术是操作系统的文件系统基础上发展起来的。而dbms本身要在操作系统的支持下才能工作。数据库不仅用到数据结构的知识,而且丰富了数据结构的内容。在关系数据库中要用到集合论、数理逻辑的理论。因此,数据库技术是一门综合性较强的学科。
§2.2数据库理论基础
2.2.1 数据库模型
从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。至60年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。
模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型” 。
目前广泛作用的数据模型可分为两种类型。
一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型” 。要领模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这一其中著名的模型是“实体联系模型” 。
另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。 这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型” 。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。
(1)层次模型。用树型结构表示实体类型及实体间联系的数据模型。树的结点是记录类型,每个非根结点有且只有一个父结点。上一层记录类型和下一层记录类型间联系是1∶n联系。
层次模型的特点是记录之间的联系通过指针实现,查询效率较高。但层次模型有两个缺点:一是只能表示1∶n联系,虽然有多种辅助手段实现了m∶n联系,但都较复杂,用户不易掌握,二是由于树型结构层次顺序的严格和复杂,引起数据的查询和更新操作也很复杂,因此,编写应用程序也很复杂。
(2)网状模型。用有向图结构表示实体类型及实体间联系的数据模型。。1969年dbtg报告提出的数据模型是网状模型的主要代表。有向图中的结点是记录类型,有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系是1∶n联系。
网状模型的特点:记录之间联系通过指针实现,m∶n联系也容易实现(每个m∶n联系可拆成两个1∶n联系),查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。由于层次系统和网状系统的应用程序编制比较复杂,因此,从20世纪80年代中期起,其市场已被关系系统所取代。但是使用这两种模型建立起的许多数据库仍然在正常运转,只是在外层加了个关系数据库语言的接口。网状模型有许多成功的产品,20世纪70年代的产品大部分网状系统,例如,honeywell公司的ids/ⅱ、hp公司的image/3000、burroughs公司的dmsⅱ、umivac公司的dms1100、cullinet公司的idms、cimcom公司的total等
(3)关系模型。关系模型的主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。sql语言是关系数据库的标准化语言,已得到了广泛的应用。20世纪70年代对关系数据库的研究主要集中在理论和实验系统的开发方面。80年代初才形成产品,但很快得到广泛的应用和普及,并最终取代了层次、网状数据库产品。现在市场上典型的关系dbms产品有db2、oracle、sybase、informix和微机型产品foxpro、access等。
关系模型和网状、层次模型的最大区别是:关系模型用表格数据而不是通过指针链来表示和实现实体间联系。关系模型的数据结构简单、易懂。只需用简单的查询语句就可对数据库进行操作。
关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。关系模型已是一个成熟的有前途的模型,已得到广泛应用。
(4)面向对象模型。目前,关系数据库的使用已相当普遍,但是,现实世界中仍然存在着许多含有复杂数据结构的应用领域,例如,cad数据、图形数据等,而关系模型在这方面的处理能力就显得力不从心。因此,人们需要更高级的数据库技术来表达这类信息。面向对象的概念最早出现在程序设计语言中,随后迅速渗透到计算机领域的每一个分支。面向对象数据库是面向对象概念与数据库技术相结合的产物。
面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样的普及程度。
2.2.2 数据库体系结构
数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部级(external)。这个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级别”,最早是在1971年通过的dbtg报告中提出,后来收入在1975年的美国ansi/sparc报告中。虽然现在dbms的产品多种多样,在不同的操作系统支持下工作,但是大多数系统在总的体系结构上都具有三级模式的结构特征。从某个角度看到的数据特性称为“数据视图”(data view)。
外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。
概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。
内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。
数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给dbms去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。
三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,dbms在三级结构之间提供两个层次的映象(mappings):外模式/模式映象,模式/内模式映象。此处模式是概念模式的简称。
2.2.3 数据的独立性
由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。
(1)物理数据独立性
如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式,当然,对于外模式和应用程序的影响更小,这样,我们称数据库达到了物理数据独立性。
(2)逻辑数据独立性
如果数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独立性。
现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,例如,对外模式的数据更新受到限制等。
2.2.4 范式
建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立db的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。
在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:
在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。
表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。
在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。
在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
第一范式(first normal form,简称1st nf)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1st nf实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1st nf。
第二范式(second normal form,简称 2nd nf)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。例如,在图l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functional dependence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。
第三范式(third normal form,简称 3rd nf)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了 2nd nf的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。
§2.3 sql语言基础
2.3.1 sql简介
用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言——sql。
sql 的全称是structured query language,即结构化查询语言。sql语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ansi采用sql语言作为关系数据库系统的标准语言,后被国际化标准组织(iso)采纳为国际标准。sql语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。例如关系数据库产品db2、oracle等都实现了sql语言。同时,其它数据库产品厂家也纷纷推出各自的支持sql的软件或者与sql的接口软件。这样sql语言很快被整个计算机界认可。
sql语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。sql语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。sql语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。
sql语言可以完成许多功能,例如:
查询数据
在数据库表格中插入、修改和删除记录
建立、修改和删除数据对象
控制对数据和数据对象的存取
确保数据库的一致性和完整性等
2.3.2 sql查询
数据查询是关系运算理论在sql语言中的主要体现,select 语句是sql查询的基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以sql为基础的关系数据库中,使用的最多的就是select查询语句。
select语句的完整句法如下:
select 目标表的列名或列表达式序列
from 基本表和(或)视图序列
[where 行条件表达式]
[group by 列名序列]
[having 组条件表达式]
[order by列名 [asc│deac]…]
我在select语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部分使用的是模糊查询,所以大量的使用了模式匹配符like(判断值是否与指定的字符通配格式相符)。在包含like的查询语句中可以使用两个通配符:%(百分号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符not、and、or(用于多条件的逻辑连接),谓词all以及保留字distinct等等。做为select语句还有很多的使用方法,这里就不再叙述。
2.3.3 sql数据更新
使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。
数据插入
往数据库的基本表中插入数据使用的是insert语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:
insert into 基本表名(列表名)values(元组值)
数据删除
往数据库的基本表中删除数据使用的是delete语句,其句法如下:
delete from 基本表名 [where 条件表达式]
在些作一点说明,删除语句实际上是“select * from 基本表名 [where 条件表达式]”和delete操作的结合,每找到一个元组,就把它删除。此外,delete语句只能从一个基本表中删除元组,where子句中条件可以嵌套,也可以是来自几个基本表的复合条件。
数据修改
当需要修改基本表中元组的某些列值时,可以用update语句实现,其句法如下:
update基本表名
set列名=值表达式[,列名=值表达式…]
[where条件表达式]
在delphi中使用sql语句是很方便的,一般来说,都是通过tquery组件来使用sql语言的。有一点要进行说明,虽然通过tquery组件来使用sql语言很方便,但考虑到自己对不同组件的理解程度、个人习惯以及其它各个方面,在本系统中我采用的是ado组件来对数据库进行操作。最简单的方法比如在tadoquery组件的sql属性中就可以键入sql语句,至于详细的使用方法在后面进行介绍。
第三章 数据库开发工具
§3.1 delphi 6.0 简介
delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。在delphi中,每一个类的祖先都是tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为tobject类。这样,按照面向对象编程的基本思想,就使得用户可用tobject类这个类型代替任何其它类的数据类型。实际上在delphi的类库中,tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。
凡是做过程序开发的人都知道从来没有单纯的数据应用程序,也就是说,数据库应用程序必须和用户界面(可以是图形界面,也可以是命令接口)元素相结合,只讲界面或只讲数据库本身都构不成数据库应用程序,因而用delphi 6.0开发数据库应用程序就隐含着界面开发。delphi6中的vcl组件可用图3-1来说明。组件在delphi程序的开发中是最显眼的角色。大家知道,在编写程序时一般都开始于在组件面板上选择组件并定义组件间的相互作用。但也有一些组件不在组件面板上,例如tform和tapplication(典型的非可视组件)。组件是tcomponents派生出来的子类,可以流的形式存放在dfm文件中,具有事件和publish属性。
窗口组件类是窗口化的可视化组件类,在delphi的类库中占有最大的份额。在实际编程中,窗口组件类的对象都有句柄,可以接受输入焦点和包含其它组件。
图形组件与窗口组件并列,是另一大类组件。图形组件不是基于窗口的,因而不能有窗口句柄,不能接受输入焦点和包含其它组件。从图8-43中可以看出,图形组件的基类是tgraphiccontrol,在实际编程中,它们必须寄生于它们的宿主——窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些和鼠标活动相关的事件。图形控件最典型的例子是tlabel和tspeedbutton。由此可以看出图形组件的功能很弱,有读者会问图形组件的用处何在呢?其实使用图形组件的最大好处在于节省资源,正是因为它们的功能较弱,所以使用的系统资源就要少。在一个应用程序中,如果能在不影响其功能的前提下合理大量地使用图形组件,将会大减少程序对系统资源的消耗。
非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的(除各种对话框组件之外,事实上有人认为对话框组件不能归入非可视组件,应该是另一种介于可视与非可视之间的组件)。
§3.2 delphi 6.0 控件
用delphi6开发数据库应用,重点是和各种数据库组件打交道,当然也要使用其它的一些组件,现在就我在系统设计中所使用的重要组件给与简单介绍。
3.2.1 ado数据访问组件
ado数据对象(active data objects)实际是一种提供访问各种数据类型的链接机制。ado设计为一种极简单的格式,通过odbc的方法同数据库接口中,可以使用任何一种odbc数据源,即不止适合于sql server、oracle、access等数据库应用程序,也适合于excel表格、文本文件、图形文件和无格式的数据文件。ado是基于ole-db之上的技术,因此ado通过其内部的属性和方法提供统一的数据访问接口方法。ado使您的客户端应用程序能够通过ole db提供访问和操作在数据库服务器中的数据。ado支持用于建立c/s和web的应用程序的主要功能。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ado同时具有远程数据服务(rds)功能,通过rds可以在一次往返过程中实现将数据从服务器移动到客户端应用程序和web页、在客户端对数据进行处然后将更新结果返回服务器的操作。
delphi 6.0继续对microsoft的ado访问能力的支持。这种能力是通过一组新组件实现的,这些组件是在企业版的ado组件页中,在组件面版的ado页上可以找到这些组件。利用在前面章节提到的tdataset抽象类,ado组件可以不通过bde而直接实现ado连接。这意味着只需要很少的代码就可以实现该连接并且性能得到提高。
利用ado数据访问组件,可以只使用ado结构与数据库取得联系并对其中的数据进行操作,而在这些过程中完全不需要使用bde。大多数的ado连接和数据集组件都是与基于bde的连接和数据集组件相类似的。tadoconnection组件与基于bde的应用程序中的tdatabase组件类似。tadotable与ttable,tadoquery与tquery,以及tadostoreproc和tstoredproc之间都具有这种类似的对应关系。使用这些ado组件的方式与我们常使用的数据访问组件(基于bde)都有许多相同之处。ttadodataset没有直接的bde对应组件,但它提供了许多与ttable和tquery相同的功能。同样,tadocommand也没有相对应的bde组件,它是在delphi/ado环境中完成特定功能的组件。delphi 6.0通过ado数据集访问组件,可以不借助bde数据引擎而是通过微软的oledb来访问更为广泛的数据库中的数据。ado数据集访问组件与常用的数据访问组件是并列的关系。
在系统中我主要使用的是adotablet和adoquery两个组件。
3.2.2 数据控制类datacontrol
数据控制类负责数据库数据的显示,并把用户对数据的修改传回。这里的绝大多数组件,如dbtext, dbedit, dbmemo, dbimage, dblistbox, dbcombobox, dbcheckbox, dbradiogroup, dblookuplistbox, dblookupcombox, dbctrgrid的功能和对应的非数据感知组件相同,如tedit框,tradiogroups单选按钮组等,只不过在显示数据库数据时要用而已。
在系统中主要使用数据网格控件dbgrid和数据库导航器控件dbnavigator。
3.2.3 数据访问类dataaccess
数据库应用系统中数据访问是一个首要问题,包括单用户和 c/s系统,都必须联系一些数据库和数据表文件。delphi 6 提供了专门用于数据访问的基类控件。主要包括数据源控件datasource、客户数据集控件clientdataset、数据集提供器控件datasetprovider等等。
tdatabase:当一个基于bde的数据库应用程序需要一个永久数据库连接时,需要定制向一个数据库服务器的连接时,需要事务控制和特殊的数据库别名时就得用到tdatabase对象。特别是当连接到一个远程的sql数据库服务器时,如果要利用bde进行数据库事务处理,那么,tdatabase对象的威力就体现出来了。在一个应用程序中为每一个数据库连接显示的声明tdatabase对象要根据需要而定,不是必需的。对一个数据库连接,如果没有显示的声明并实例化tdatabase对象,系统就会产生一个带有默认属性的tdatabase对象。
tdatasource对象用于在dataset对象(包括tquery,tstoredproc,ttable等)和数据感知组件之间提供一个连接的纽带,以便在窗体上显示数据库中的数据,在数据库中导航定位与编辑数据集中的数据。如果一个dataset对象中的数据想在数据感知组件中显示和修改,它就必须和tdatasource对象相联系。同样,一个数据感知组件如果想和数据源相联系以便显示和操纵数据,就必须以tdatasource对象为中介。
用delphi6作数据库应用开发概括来说如下:先利用数据存取组件和实际的数据库建立连接,并用tsession对象和tdatabase对象管理这些连接。然后以tdatasource对象为中介,用数据感知组件向用户显示数据库的内容并接受用户的查询和修改等操作。
3.2.4 sql语言在delphi中的应用
在delphi中使用sql语言非常方便,一般来说,都是通过tquery组件来使用sql语言的。可以在tquery组件的sql属性中设置sql语句。设计程序时,在该组件的属性对话框中选择sql属性,单击带省略号的按钮,就可以打开string list editor对话框,然后我们就可以在对话框中添加sql语句。还可以使用delphi的sql builder来自动生成sql语句,这样可以避免手工编写sql而可能造成的语法错误。
静态sql语句在程序设计时便已固定下来,它不包含任何参数和变量。
动态sql语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数,例如下面的语句是一条动态sql语句:
select * from students where studentcode =: studentcode;
其中的变量studentcode便是一个参数变量,它由一个冒号引导,在程序运行过程中,必须要为该参数赋值,该条sql语句才能正确执行,每次运行应用程序时可以为该参数变量赋予不同的值。为参数赋值有三种方法:
①根据参数在sql语句中出现的顺序,设置tquery部件的params属性值为参数赋值。
②直接根据sql语句中各参数的名字,调用parambyname方法来为各参数赋值。
③将tquery部件的datasource属性设置为另一个数据源,这样将另一个数据源中与当前tquery部件的sql语句中的参数名相匹配的字段值赋给其对应的参数。利用这种方法也能实现所谓的连接查询,创建主要—明细型数据库应用。
在程序运行过程中,要想设置tquery部件的sql属性,必须首先调用close方法,关闭tquery部件,然后再调用clear方法清除sql属性中现存的sql命令语句, 最后再调用add方法为sql属性设置新的sql命令语句。例如:
query1.close {关闭query1)
query1.sql.clear {清除sql属性中的sql命令语句}
query1.sql.add(‘select * from students‘);
query1.sql.add(‘ where name ="lucy" ‘);
在为tquery部件设置sql属性时调用close方法总是很安全的,如果tquery部件已经被关闭了,调用close方法时不会产生任何影响。在应用程序中为sql属性设置新的sql 命令语句时,必须要调用clear方法以清除sql属性中现存的sql命令语句,如果不调用clear方法,便调用add方法向sql属性中设置sql命令语句,那么新设置的sql命令语句会追加在现存sql命令语句后面, 在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。
在这里要特别注意的,一般情况下tquery部件的sql属性只能包含一条完整的sql语句,它不允许被设置成多条sql语句。当然有些数据库服务器也支持在tquery部件的sql属性中设置多条sql语句,只要数据库服务器允许这样,我们在编程时可以为 sql 属性设置多条sql语句。
在为tquery部件设置完sql属性的属性值之后,也即编写好适当的sql程序之后,可以有多种方式来执行sql程序。
在设计过程中,设置完tquery部件的sql属性之后将其active属性的值置为true, 这样便可以执行sql属性中的sql程序,如果应用中有与tquery部件相连的数据浏览部件( 如tddgrid tdbedit等)那么在这些数据浏览部件中会显示sql程序的执行结果。
在应用程序运行过程中,通过程序调用tquery部件的open方法或execsql 方法可以执行其sql属性中的sql程序。open方法和execsql方法是不一样的。open方法只能用来执行sql语言的查询语句(select命令), 并返回一个查询结果集,而execsql方法还可以用来执行其它常用的sql语句(如insert, update, delete等命令),例如:
query1.open (这样会返回一个查询结果集)
如果调用open方法,而没有查询结果时,会出错。此时应该调用execsql 方法来代替open方法。如:
query1.execsql (没有返回结果)
当然在设计应用程序时,程序设计人员是无法确定tquery部件中的sql 语句是否会返回一个查询结果的。对于这种情况应当用try…except模块来设计程序。在 try 部分调用open方法,而在except部分调用excesql方法,这样才能保证程序的正确运行。
delphi中用adoquery来使用sql语句同样十分方便。在adoquery组件中首先通过connectionstring属性值来联接数据源,然后就通过双击sql…属性值来写入sql语句。在delphi中调用数据库,就可以调用adoquery组件,通过修改其中的sql…属性中的sql语句来实现对数据库的各项操作。
值得注意的是,adoquery组件只有在激活的情况下才可以被正确地使用,这样就提出了一个问题,也就是说,在每次修改adoquery组件的sql…属性时都必须先行进行关闭,待清除掉sql…中所有的sql语句后才可以添加新的sql语句。而且,在每一次修改完成以后,还应该记得重新将adoquery激活。其它的使用方法与ttquery有许多的相似之处。
§3.3 access 简介
建立一个数据库我们有多种选择,现在市场上有各种各样的数据库,而且每一种数据库都有其自身的特点,不能说哪一种更好,只能在其中寻找一种能更好地适应系统需求、更好地满足用户的要求以及适应开发人员的习惯。在本系统中,做为图书仓库管理系统是一个比较小的应用系统,它所产生和处理的数据量也比较小。因此,没有必要使用像sql server和oracle这样的大型数据库。我首先想到的数据库是borland公司的paradox数据库。另外,microsoft office中的access数据库在计算机上的应用比较普及,是开发小型数据库系统的比较理想的选择,所以,在本系统中我选择了access数据库。
access做为一个数据库管理系统,它被集成在microsoft office中。access数据库处理的基本结构,采取关系型数据库模式。与其他的数据库系统相比,access更加简单易学,一个普通的计算机用户可以很快地掌握它。access 2000的功能十分强大,利用它可以方便地实现对信息保存、维护、查询、统计、打印、交流、,而且它可以十分方便地与office其他组件交流数据,这些功能对一个一般用户而言已经足够了。
第四章 系统总体设计
软件系统的总体设计大约要经历可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试以及维护等七个阶段。可行性分析和项目开发计划在前面已经叙述,下面所要做的是进行软件需求分析,概要设计和详细设计。编码过程将在下一节论述,而测试和维护过程不在本文叙及。
§4.1 系统需求分析
在经过前一阶段的分析之后,我确定了我的开发课题为图书仓库管理。现在所要做的是要准确定义系统必须做什么以及系统必须具备的功能。
软件需求分析中我采用结构化分析方法(structured analysis,简称sa),sa是面向数据流进行需求分析的方法,像所有的软件分析方法(如面向对象分析方法、idef方法等等)一样,sa也是一种建模活动,它使用简单易读的符号,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘满足功能要求的软件模型。
在系统中我采用数据流图(dfd)这种半形式化的描述方式表达需求。它是一种功能模型,以图形的方式描绘数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能。它有四种基本图形符号:
:箭头,表示数据流;
〇:圆或椭圆,表示加工;
:双杠,表示数据存储;
:方框,表示数据的源点或终点。
为了表达较为复杂问题的数据处理过程,用一张数据流图是不够的,要按照问题的层次结构进行逐步分解,并以一套分层的数据流图反映这种结构关系。在这里我一共使用了三层数据流图,即顶层图,0层图和1层图(也是底层图)。
在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统,它的输入流是该系统的输入数据了,输出流是该系统的输出数据;底层流图是指其加工不需要再做分解的数据流图,中间层流图表示对其上层父图的细化,它的每一步加工可能继续细化成子图。
经过对系统的分析首先得到系统的顶层dfd,如下: 一步细化得到系统的0层dfd,如下:
再进一步细化每一个数据加工功能,得到系统的1层dfd图。
在这里只给出有关入库管理和出库管理的1层数据流图,它们是系统的关鍵部分,也是主要的部分。通过以上对数据流图的分析之后,我们已大体地了解了系统的功能和目标,接下来所要做的就是系统功能模块的划分和数据库的设计,也就是系统的概要设计。
§4.2 系统概要设计
在软件需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。首先,我们需要描述的是系统的总的体系结构。
4.2.1 系统结构设计
系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。
将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
在系统的概要设计中我采用结构化设计(structure design,简称sd),sd以需求分析阶段产生的数据流图dfd为基础,按一定的步骤映射成软件结构。我首先将整个系统化分为几个小问题,小模块,在系统中,我设计了用户管理、库存管理、入库管理、出库管理、员工管理和供应商管理6个小模块。然后,进一步细分模块,添加细节。比如,用户管理我又将其分为用户注册、用户注销、密码修改;库存管理分为库存记录查询、库存记录修改、库存记录打印等等。
以下就是系统的结构图:(在这里为了表达方便我将结构图分开来表达。)
在得到系统的第一层功能模块图后,经过进一步地细化,得一系统的子功能模块图:
4.2.2 数据库设计
在信息世界中,信息从客观事物出发流经数据库,通过决策机构最后又回到客观世界,信息的这一循环经历了三个领域:信息世界,数据世界,现实世界。现实世界的事物反映到人的头脑中,人的大脑对它有个认识过程,经过分析(选择、命名、分类等)进入信息世界。这些信息再进一步加工、编码,然后进数据世界,而软件系统的开发工作需要考虑这两个方面的问题,也就是要考虑系统开发所需要的数据,以及如何对这些数据进行操作。这两个问题贯穿了整个软件系统的开发过程,这也就是数据库的设计问题,软件设计的一个核心。
4.2.2.1 er图设计
在系统设计的开始,我首先考虑的是如何用数据模型来数据库的结构与语义,以对现实世界进行抽象。目前广泛使用的数据模型可分为两种类型,一种是独立于计算机系统的“概念数据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中我采用“实体联系模型”(er模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。er模型直接从现实世界抽象出实体类型及实体间联系,然后用er图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。但er模型只能说明实体间语义的联系,不能进一步说明详细的数据结构,它只是数据库设计的第一步。
er图是直观表示概念模型的工具,它有四个基本成分:
矩形框,表示实体类型(考虑问题的对象)。
菱形框,表示联系类型(实体间的联系)。
椭圆形框,表示实体类型和联系类型的属性。对于关键码的属性,在属性名下划一横线。
直线,联系类型与其涉及的实体类型之间以直线连接。
本系统为图书仓库管理,主要管理图书的入库、出库以及库存等事项。仓库根据需要可以查询图书供应商的信息,同时还需要了解在入库和出库中员工的参与情况。依据仓库管理的实际情况,考虑了多方面的因素以后,确定系统的er图如下:
(为了表达的方便,在这里我没有在一张图上表达出所有的关系,而是用一张总体er图,和几张实体属性关系图来表达数据库的结构。)
在该数据库中,我设计了三个实体,分别是库存、员工和供应商以及两个联系类型入库和出库。在本系统中库存是核心,也是基本,没有了库存其它的也就没有什么意义了。员工记录的添加是考虑到责任问题,也就是说,在仓库管理的实际运用中,出现了责任不清的现象,特别是由于仓库的进出图书数量都比较大时产生了一系列问题,所以在设计数据库时,我特别考虑到这一点,加入了员工记录这一实体。供应商信息的添加主要出于对图书来源问题的思考。通过添加供应商信息可以比较清楚地了解图书的进货渠道,从图书的质量到供应商的信誉都可以进行了解,同时可以为以后的图书进购提供一定有用的信息。
入库联系类型将库存信息、供应商信息和员工信息联系在一起,可以方便地实现三个实体之间的联接,而出库联系类型则将库存信息和员工信息较好地联接起,同时这两个联系类型又都具有各自特有的属性。
下面就是各实体及联系类型的属性图:(带#号的属性为关键字段)4.2.2.2 数据库表格设计
在完成系统的er图之后,需要将er模型转化为关系模型,也就是说,要设计出数据库所需要的表格。在这里,我选用的是关系数据库。因为关系数据库中的二维表格可以很清楚地描述数据之间的联系。
在这里不得不提到一个概念——范式。其实在上一节的er图设计中,已经运用了范式的思想,不仅如此,在数据库的表格设计中更离不开范式的思想,它是数据库设计的基础,如果不注意这个问题将会导致一系列问题的出现。
我在系统中定义的表格都严格地按照范式的思想和要求去完成,数据库中的所有表格都达到了三范式的要求。根据系统er图,针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下六张表格,分别是库存信息表,入库信息表,出库信息表,员工信息表,供应商信息表和密码信息表。通过对这六张表格的操作可以较好地完成系统设计的各项功能,六张表格之间有着不同程度的联系。(说明:在以下数据表中,k代表主键,#代表外键,字段值不为空。)
bookrecord 表(库存信息表)
字段名称 数据类型 说明
k bookid 数字 图书编号
bookname 文本 图书名
author 文本 作者
publisher 文本 出版社
pubdate 日期/时间 出版日期
price 货币 价格
booktype 文本 图书类型
number1 数字 库存数量
addation 文本 备注
图4.13 库存信息表
库存信息表主要用于记录仓库中现存放的所有图书的详细信息,包括图书编号、书名、作者、出版社、图书类型等有关图书的各类信息,它即是该数据库的主表,也是系统主界面的主要内容。
在该表中图书编号是主键,它按图书入库的先后次序来编写,每当有图书入库,系统自动给出图书编号,这样我们按图书编号来查找图书是比较方便的。考虑到编号比较难于记忆,所以使用了出版社和图书类型两个字段,在系统中我提供了出版社和图书类型的分类查找,而且全部采用自动生成,每当系统中有新的出版社类型和图书类型,弹出菜单会自动添中新类型,这样就可以比较方便地实现按出版社和按图书类型查找。此外,库存数量也是一个比较关键的字段,该字段是在系统初始化时就给定的,每当有图书入库或出库操作,系统就会自动修改图书的库存数量,以保持数据的一致性。做为备注有一点说明,我的数据库中备注的数据类型是文本,而不是备注类型,主要考虑到该字段的长度并不大,而且在delphi中文本数据类型的处理也比较方便一点。
employee 表(员工信息表)
字段名称 数据类型 说明
k employeeid 数字 员工编号
employeename 文本 员工姓名
sex 文本 性别
borndate 日期/时间 出生日期
grade 文本 职称
workdate 日期/时间 工作日期
telephone 文本 联系电话
address 文本 联系地址
图4.14 员工信息表
员工信息表主要用于记录有关员工的各类信息,包括姓名、职称、出生日期、联系电话、联系地址等。它主要用来为系统提供员工的有关信息,因为在系统中,入库和出库操作均与员工有着一定的联系,在查询入库信息和出库信息时,有时需要查找有关此项记录有关的员工信息,在系统中我是通过入库记录与员工记录(出库记录和员工记录)之间的联接查询来完成的。另外,作为一个仓库也有必要了解其所属员工的一些基本情况,以便查询。
shopkeeper 表(供应商信息表)
字段名称 数据类型 说明
k shopkeeperid 数字 供应商编号
shopkeepername 文本 供应商姓名
address 文本 地址
postno 数字 邮编
officephone 文本 办公电话
homephone 文本 住宅电话
email 文本 e-mail
paytype 文本 付款方式
图4.15 供应商信息表
供应商信息表主要用于记录有关供应商的各类信息,包括姓名、地址、电话、付款方式等。它主要用来为系统提供供应商的有关信息,在系统中入库记录是与供应商记录相联系的,通过入库记录可以查找相关的供应商信息。在供应商信息中,考虑当实际情况,我特别加入了email和付款方式这两个字段,因为在当今信息世界中,多种多样的通讯方式和多种多样的付款方式是必然的,是数据库中必须与以记录。
inrecord 表(入库信息表)
字段名称 数据类型 说明
k inid 数字 入库编号
# bookid 数字 图书编号
# employeeid 数字 员工编号
# shopkeeperid 数字 供应商编号
number 数字 入库数量
buydate 日期/时间 入库日期
图4.16 入库信息表
outrecord 表(出库信息表)
字段名称 数据类型 说明
k outid 数字 出库编号
# bookid 数字 图书编号
# employeeid 数字 员工编号
number2 数字 出库数量
outdate 日期/时间 出库日期
图4.17 出库信息表
入库信息表主要用于记录有关入库的详细信息,包括入库数量、入库日期以及图书、员工、供应商三方的编号,以便查询。出库信息表主要用于记录有关出库的详细信息,包括出库数量、出库日期以及图书、员工的编号。出库信息表和入库信息表一样,其实它们都属于联系类型,系统通过这两个表可以联接上其它的表为用户提供多种条件的联接查询。值得提出的一点是入库记录和出库记录的添加不仅仅是单表操作,由于它们都与库存记录相联系,所以,无论您是添中入库记录还是添加出库记录,都必须同时修改库存记录,以保持数据的一致性,否则将引发系统出错而这些我都让其在系统中自动完成。无论您是添加入库记录,还是添加出库记录,系统都将自动修改库存中图书的数量,而且,在您出库的数量大于库存数量时,系统还会自动提示错误,这样就可以防止一定错误的发生。
在入库信息表和出库信息表中我还定义了几个外键,它提供了一种表示几个关系联系的方法。比如,系统中通过在入库信息表中定义的外键 bookid、employeeid和shopkeeperid可以将库存信息表、员工信息表和供应商信息表联系在一起,从而方便地实现联接查询,而且,引入外键的定义是实体完整性约束的一个主要方面。
key 表(密码信息表)
字段名称 数据类型 说明
k keyname 文本 用户姓名
keyno 文本 用户密码
图4.18 密码信息表
密码信息表主要用于记录所有的用户名和用户密码。它是在用户登陆时用来确定用户和密码的正确性,以防止非法用户登陆。
通过以上设计已经完成了系统的概要设计,当我们有了系统的功能模块图和数据库之后,就需要着手去实现每一个模块,为每一个功能设计程序流程图,这也就是系统的详细设计。
§4.3 系统详细设计
在前面的概要设计中,已将系统划分为多个模块,并将它们按照一定的原则组装起来,同时确定了每个功能及模块之间的外部接口。现在所要做的就是确定每个模块具体执行过程,也可以说是“过程设计”。
在处理过程设计时我采用的是结构化程序设计(简称sp)方法。需要指出的是系统的详细设计并不是指具体的编程序,而是将概要设计阶段产生的系统功能模块图细化成很容易产生程序的图纸。因此详细设计的结果基本决定了最终程序的质量。为软件的质量,延长软件的生存期,软件的可测试性、可维护性提供重要的保障。详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。
由前一阶段产生的系统功能模块图,我为系统的主要部分设计了如下程序流程图:通过以上步骤,基本上完成了对整个系统的总体设计,接下来所要做的就是软件的编码工作。系统总体设计的好坏直接影响着下一步工作,只有在这一阶段设计出好的模块图和程序流程图,才能更有利于编码,产生好的软件系统。
第五章 系统应用程序设计
§5.1 系统窗体模块组成
§5.2 数据模块窗体的设置
在编写数据库应用程序时,经常要遇到这样的情况,即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工件,而且要保证这些数据源的确是相同的也需花一番功夫。那么,能不能将这些数据源集中管理,最好是做成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身呢?数据模块(datamodule)是解决这个问题最好的答案。简单说来,数据模块是用来集中管理数据源的一个窗体,该窗体可被需要的地方随时引入。
图5.2给出了本程序的数据模块(datamoduleform)窗体图,除报表窗体外所有的数据存取组件和数据源组件都在此数据模块中进行了定义。值得一提的是,设置了数据库database组件,该组件引入了系统所需的唯一的数据库tsxs,database组件的databasename属性设置为tsckgl。tsxs数据库已在odbc配置程序中进行了设置。其他的数据存取组件都是基于此数据库组件创建的,这样做的好处是,当数据库的别名或者其他信息改变之后,只需修改tdatabase组件的aliasname属性即可。
另外,在本系统的数据模块窗体图中,我大多采用的aodquery组件而没有采用bde组,这主要是基于对ado组件的了解。在delphi的学习中我对ado组件了解的更加清楚,使用也较bde更为熟练,而且,ado组件的功能也较bde更为强大,所以在这里大多采用ado组件来进行数据库联接。同时我也使用了bde组件中的table,因为在某些时候bde有着其自身特有的优越性。 主窗体功能模块的实现
file://主窗体程序代码
public file://在程序的起始部分,定义快捷按钮点击事件
procedure popup1handler(sender:tobject);
procedure popup2handler(sender:tobject);
**********************************************************************
procedure tmainform.popup1handler(sender: tobject);
begin file://快捷按钮1(点“按出版社分类”按钮产生)的点击事件
with datamoduleform.mainquery do
begin file://打开数据模块窗体的mainquery,对bookrecord表进行操作
close; file://关闭mainquery
sql.clear; file://清除sql属性中的sql命令语句
sql.add(‘select * from bookrecord where publisher=:pub‘); file://添加新的sql语句
parameters.parambyname(‘pub‘).value:=(sender as tmenuitem).caption;
open; file://重新打开mainquery
end;
end;
**********************************************************************
procedure tmainform.speedbutton1click(sender: tobject);
var s1,s2,s3,s4,s5 :string; file://设立5个变量以方便实现模糊查询
begin file://主窗口库存查询按钮事件
with datamoduleform.mainquery do
begin
close;
sql.clear;
sql.add(‘select * from bookrecord‘);
sql.add(‘where bookid like :bookid and bookname like :name and author like :author and publisher like :pub and booktype like :booktype‘);
file://使用like语句来实现模糊查询
if edit1.text<>‘‘ then s1:=‘%‘+edit1.text+‘%‘ else s1:=‘%‘;
parameters.parambyname(‘bookid‘).value:=s1; file://给变量s1赋值
if edit2.text<>‘‘ then s2:=‘%‘+edit2.text+‘%‘ else s2:=‘%‘;
parameters.parambyname(‘name‘).value:=s2; file://给变量s2赋值
if edit3.text<>‘‘ then s3:=‘%‘+edit3.text+‘%‘ else s3:=‘%‘;
parameters.parambyname(‘author‘).value:=s3; file://给变量s2赋值
if edit4.text<>‘‘ then s4:=‘%‘+edit4.text+‘%‘ else s4:=‘%‘;
parameters.parambyname(‘pub‘).value:=s4; file://给变量s2赋值
if edit5.text <>‘‘ then s5:=‘%‘+edit5.text+‘%‘ else s5:=‘%‘;
parameters.parambyname(‘booktype‘).value:=s5; file://给变量s2赋值
open;
if fieldvalues[‘bookid‘]=null file://判断是否找到记录
then begin
messagedlg(‘没有找到你所需要的记录!‘,mtinformation,[mbok],0);
edit1.text:=‘‘;edit2.text:=‘‘;edit3.text:=‘‘;edit4.text:=‘‘;edit5.text:=‘‘;
close;
sql.clear;
sql.add(‘select * from bookrecord‘); file://这里相当于一个刷新功能
open;
end;end;
end;
**********************************************************************
procedure tmainform.speedbutton3click(sender: tobject);
begin file://库存表刷新按钮事件
with datamoduleform.mainquery do
begin
close;
sql.clear;
sql.add(‘select * from bookrecord‘);
open;
end;
end;
**********************************************************************
procedure tmainform.speedbutton11click(sender: tobject);
var popupitem:tmenuitem;
begin file://自动生成快捷按钮1的内容
with datamoduleform.bookquery do
begin file://从数据库中选择出版社类型
close;
sql.clear;
sql.add(‘select distinct publisher from bookrecord‘);
open;
popupmenu1:=tpopupmenu.create(self); file://自动生成快捷菜单
popupmenu1.autohotkeys:=mamanual; file://自定义热键
while not eof do
begin file://根据出版社内容生成菜单子项
popupitem:=tmenuitem.create(self);
popupitem.caption:=fieldbyname(‘publisher‘).asstring;
popupmenu1.items.add(popupitem);
popupitem.onclick:=popup1handler; file://确定菜单子项的点击事件
next;
end; end;
popupmenu1.popup(384,67); file://在指定位置显示快捷菜单1
end;
**********************************************************************
procedure tmainform.formactivate(sender: tobject);
begin file://系统初始化,在进入mainform时自动添加数据源
mainform.dbgrid1.datasource:=datamoduleform.mainsource;
mainform.dbnavigator1.datasource:=datamoduleform.mainsource;
mainform.dbgrid2.datasource:=datamoduleform.empsource;
mainform.dbnavigator2.datasource:=datamoduleform.empsource;
mainform.dbgrid3.datasource:=datamoduleform.shopsource;
mainform.dbnavigator3.datasource:=datamoduleform.shopsource;
mainform.dbgrid4.datasource:=datamoduleform.insource;
mainform.dbnavigator4.datasource:=datamoduleform.insource;
mainform.dbgrid5.datasource:=datamoduleform.outsource;
mainform.dbnavigator5.datasource:=datamoduleform.outsource;
end;
**********************************************************************
procedure tmainform.formcreate(sender: tobject);
begin file://系统初始化,定义界面大小,以适应不同分辩率
width:=800;height:=600;
end;
**********************************************************************
procedure tmainform.timer1timer(sender: tobject);
begin file://在状态栏显示时间
statusbar1.panels[2].text:=datetostr(date);
statusbar1.panels[4].text:=timetostr(time);
end;
§5.4 入库、出库窗体模块的实现
图5.4 系统入库管理窗体
图5.5 系统出库管理窗体
procedure tinoutform.speedbutton4click(sender: tobject);
begin file://入库管理查找按钮事件
with datamoduleform.bookquery do file://入库查询处理
begin
close;
sql.clear;
sql.add(‘select * from bookrecord where bookid=:bookid‘);
parameters.parambyname(‘bookid‘).value:=edit13.text;
open;
if fieldvalues[‘bookid‘]<>null
then
begin
edit1.text:=‘‘;
edit1.readonly:=true;edit1.color:=clmenu;
edit6.text:=fieldvalues[‘bookname‘]; file://显示图书名
edit6.readonly:=true;edit6.color:=clmenu; file://设置显示框不可更改属性
edit7.text:=fieldvalues[‘author‘];
edit7.readonly:=true;edit7.color:=clmenu;
edit8.text:=fieldvalues[‘publisher‘];
edit8.readonly:=true;edit8.color:=clmenu;
edit9.text:=fieldvalues[‘pubdate‘];
edit9.readonly:=true;edit9.color:=clmenu;
edit10.text:=fieldvalues[‘price‘];
edit10.readonly:=true;edit10.color:=clmenu;
edit11.text:=fieldvalues[‘booktype‘];
edit11.readonly:=true;edit11.color:=clmenu;
edit12.text:=fieldvalues[‘number1‘];
edit12.readonly:=true;edit12.color:=clmenu;
if fieldvalues[‘addation‘]<>null
then edit25.text:=fieldvalues[‘addation‘]
else edit25.text:=‘‘;
edit25.readonly:=true;edit25.color:=clmenu;
end
else
begin file://在没有查找到的情况下,清空所有显示框
edit1.readonly:=false;edit1.text:=‘‘;edit1.color:=clmenu;
edit6.readonly:=false;edit6.text:=‘‘;edit6.color:=clmenu;
edit7.readonly:=false;edit7.text:=‘‘;edit7.color:=clmenu;
edit8.readonly:=false;edit8.text:=‘‘;edit8.color:=clmenu;
edit9.readonly:=false;edit9.text:=‘‘;edit9.color:=clmenu;
edit10.readonly:=false;edit10.text:=‘‘;edit10.color:=clmenu;
edit11.readonly:=false;edit11.text:=‘‘;edit11.color:=clmenu;
edit12.readonly:=false;edit12.text:=‘‘;edit12.color:=clmenu;
edit25.readonly:=false;edit25.text:=‘‘;edit25.color:=clmenu;
messagedlg(‘没有找到你所需要的记录!‘,mtinformation,[mbok],0);
edit13.text:=‘‘;edit13.setfocus;
end;
end;
with datamoduleform.inquery do file://自动入库编号的获取
begin
close;
sql.clear;
sql.add(‘select * from inrecord where inid>=all(select inid from inrecord)‘);
open; file://找到入库编号中最大的一个
edit26.readonly:=false;
edit26.text:=fieldvalues[‘inid‘]+1; file://最大的入库编号加1形成新的入库编号
edit26.readonly:=true;edit26.color:=clmenu; file://设置编号的不可更改性
end;
end;
**********************************************************************
procedure tinoutform.speedbutton1click(sender: tobject);
var s:integer;
begin file://入库管理添加按钮事件
if edit1.text<>null
then messagedlg(‘请输入完整的入库信息和图书信息,然后单击确定按钮。‘,
mtinformation,[mbok],0)
else begin
if (edit2.text=‘‘) or (edit3.text=‘‘) or (edit4.text=‘‘) or (edit5.text=‘‘)
then begin
messagedlg(‘请输入完整的入库信息!‘,mtinformation,[mbok],0);
edit2.setfocus;
end
else begin
with datamoduleform.inquery do file://将找到的图书信息显示
begin
close;
sql.clear;
sql.add(‘insert into inrecord values(:inid,:bookid,:empid,:shopid,
:number,:indate)‘); file://向入库信息表中插入记录
parameters.parambyname(‘inid‘).value:=edit26.text; file://向edit框取值
parameters.parambyname(‘bookid‘).value:=edit13.text;
parameters.parambyname(‘empid‘).value:=edit2.text;
parameters.parambyname(‘shopid‘).value:=edit3.text;
parameters.parambyname(‘number‘).value:=edit4.text;
parameters.parambyname(‘indate‘).value:=edit5.text;
execsql;
end;
edit12.readonly:=false;
s:=strtoint(edit12.text)+strtoint(edit4.text); file://计算入库后库存图书数量
edit12.text:=inttostr(s); file://将修改后的库存图书数量显示
edit12.readonly:=true;
with datamoduleform.bookquery do file://修改库存记录中图书数量
begin
close;
sql.clear;
sql.add(‘update bookrecord set number1=:number where
bookid=:bookid‘);
parameters.parambyname(‘number‘).value:=s;
parameters.parambyname(‘bookid‘).value:=edit13.text;
execsql; file://提交sql语句
messagedlg(‘记录已成功添加!‘,mtinformation,[mbok],0);
edit13.setfocus;
end;
end;
end;
end;
**********************************************************************
procedure tinoutform.speedbutton2click(sender: tobject);
begin file://入库管理确定按钮事件
if (edit2.text=‘‘) or (edit3.text=‘‘) or (edit4.text=‘‘) or (edit5.text=‘‘)
or (edit6.text=‘‘) or (edit7.text=‘‘) or (edit8.text=‘‘) or (edit9.text=‘‘)
or (edit10.text=‘‘) or (edit11.text=‘‘) or (edit25.text=‘‘)
then begin file://判断输入信息的完整性
messagedlg(‘请输入所需的全部入库信息!‘,mtinformation,[mbok],0);
edit2.setfocus;
end
else
begin
with datamoduleform.inquery do file://入库信息添加
begin
close;
sql.clear;
sql.add(‘insert into inrecord values(:inid,:bookid,:empid,:shopid,
:number,:indate)‘); file://向入库信息表中插入记录
parameters.parambyname(‘inid‘).value:=edit26.text;
parameters.parambyname(‘bookid‘).value:=edit1.text;
parameters.parambyname(‘empid‘).value:=edit2.text;
parameters.parambyname(‘shopid‘).value:=edit3.text;
parameters.parambyname(‘number‘).value:=edit4.text;
parameters.parambyname(‘indate‘).value:=edit5.text;
execsql;
end;
with datamoduleform.bookquery do
begin
close;
sql.clear; file://在完成入库信息的添加后,修改库存记录
sql.add(‘insert into bookrecord values(:bookid,:bookname,:author,
:publisher,:pubdate,:price,:booktype,:number,:addration)‘);
parameters.parambyname(‘bookid‘).value:=edit1.text;
parameters.parambyname(‘bookname‘).value:=edit6.text;
parameters.parambyname(‘author‘).value:=edit7.text;
parameters.parambyname(‘publisher‘).value:=edit8.text;
parameters.parambyname(‘pubdate‘).value:=edit9.text;
parameters.parambyname(‘price‘).value:=edit10.text;
parameters.parambyname(‘booktype‘).value:=edit11.text;
parameters.parambyname(‘number‘).value:=edit4.text;
parameters.parambyname(‘addration‘).value:=edit25.text;
execsql;
end;
messagedlg(‘记录添加成功!‘,mtinformation,[mbok],0);
end;
end;
**********************************************************************
procedure tinoutform.speedbutton11click(sender: tobject);
begin file://新书入库按钮事件
edit13.text:=‘‘;edit13.color:=clmenu;
with datamoduleform.inquery do file://自动入库编号的获取
begin
close;
sql.clear;
sql.add(‘select * from inrecord where inid>=all(select inid from inrecord)‘);
open;
edit26.text:=fieldvalues[‘inid‘]+1;
edit26.readonly:=true;edit26.color:=clmenu;
end;
with datamoduleform.bookquery do file://自动图书编号的获取
begin
close;
sql.clear;
sql.add(‘select * from bookrecord where bookid>=all(select bookid from bookrecord)‘); file://找到库存图书编号中最大的一个
open;
edit1.readonly:=false;
edit1.text:=fieldvalues[‘bookid‘]+1; file://显示自动生成的图书编号
edit1.readonly:=true;edit1.color:=clmenu;
end;
edit2.text:=‘‘;edit3.text:=‘‘;edit4.text:=‘‘;edit5.text:=‘‘;
edit6.readonly:=false;edit6.text:=‘‘;edit6.color:=clwindow;
edit7.readonly:=false;edit7.text:=‘‘;edit7.color:=clwindow;
edit8.readonly:=false;edit8.text:=‘‘;edit8.color:=clwindow;
edit9.readonly:=false;edit9.text:=‘‘;edit9.color:=clwindow;
edit10.readonly:=false;edit10.text:=‘‘;edit10.color:=clwindow;
edit11.readonly:=false;edit11.text:=‘‘;edit11.color:=clwindow;
edit12.readonly:=false;edit12.text:=‘‘;edit12.color:=clmenu;
edit25.readonly:=false;edit25.text:=‘‘;edit25.color:=clwindow;
end;
procedure tinoutform.speedbutton22click(sender: tobject);
var s:integer;
begin file://出库管理确定按钮事件
if (edit24.text=‘‘) or (edit27.text=‘‘) or (edit28.text=‘‘)
then begin
messagedlg(‘请输入完整的出库信息!‘,mtinformation,[mbok],0);
edit24.setfocus;
end
else begin
if edit27.text>edit21.text file://检查出库数量是否小于库存数量
then begin
messagedlg(‘库存中的图书数量不够!‘,mtinformation,[mbok],0);
edit27.text:=‘‘;edit27.setfocus;
end
else begin
with datamoduleform.outquery do
begin
close;
sql.clear;
sql.add(‘insert into outrecord values(:outid,:bookid,:empid,
:number,:outtime)‘); file://添加出库记录
parameters.parambyname(‘outid‘).value:=edit23.text;
parameters.parambyname(‘bookid‘).value:=edit14.text;
parameters.parambyname(‘empid‘).value:=edit24.text;
parameters.parambyname(‘number‘).value:=edit27.text;
parameters.parambyname(‘outtime‘).value:=edit28.text;
execsql;
end;
edit21.readonly:=false;
s:=strtoint(edit21.text)-strtoint(edit27.text); file://计算出库后库存图书数量
edit21.text:=inttostr(s); file://显示出库后库存图书数量
edit21.readonly:=true;
with datamoduleform.bookquery do
begin file://修改库存图书数量
close;
sql.clear;
sql.add(‘update bookrecord set number1=:number where bookid=:bookid‘);
parameters.parambyname(‘number‘).value:=s;
parameters.parambyname(‘bookid‘).value:=edit14.text;
execsql;
end;
messagedlg(‘出库记录添加成功!‘,mtinformation,[mbok],0);
edit14.text:=‘‘;edit14.setfocus;
end;
end;
end;
§5.5 查询功能的实现
查询功能包括员工信息查询,供应商信息查询,入库信息查询和出库信息查询。由于每一个功能的实现都差不太多,而且其窗体也差不太多,所以在这里只给出员工信息查询窗体及其源代码。
图5.6 员工信息查询窗体
procedure tfindempform.speedbutton1click(sender: tobject);
var s1,s2,s3 :string;
begin file://员工记录查询窗体查找按钮事件
with datamoduleform.empquery do
begin
close;
sql.clear;
sql.add(‘select * from employee‘);
sql.add(‘where employeeid like :empid and employeename like :name and grade like :grade‘); file://实现模糊查询功能
if edit1.text<>‘‘ then s1:=‘%‘+edit1.text+‘%‘ else s1:=‘%‘;
parameters.parambyname(‘empid‘).value:=s1;
if edit2.text<>‘‘ then s2:=‘%‘+edit2.text+‘%‘ else s2:=‘%‘;
parameters.parambyname(‘name‘).value:=s2;
if edit3.text<>‘‘ then s3:=‘%‘+edit3.text+‘%‘ else s3:=‘%‘;
parameters.parambyname(‘grade‘).value:=s3;
open;
if fieldvalues[‘employeeid‘]<>null
then findempform.close file://在找到记录的情况下关闭查找窗口
else
begin
messagedlg(‘没有找到你所需要的记录!‘,mtinformation,[mbok],0);
edit1.text:=‘‘;edit2.text:=‘‘;edit3.text:=‘‘;edit1.setfocus;
close; sql.clear;
sql.add(‘select * from employee‘); file://刷新员工信息窗口
open;
end; end;
end;
§5.6 系统登陆窗体模块的实现
由于系统登陆窗体中有一幅彩图,在这里不便给出,而只给出了系统的实现。
var keyname: string; file://定义了一个全局变量,在key2中有调用
procedure tkeyform.speedbutton1click(sender: tobject);
var s:string; file://登陆窗口登陆按钮事件
begin
if (edit1.text=‘‘) then begin
messagedlg(‘清输入登陆姓名和密码!‘,mtinformation,[mbok],0);
edit1.setfocus;
end
else begin
datamoduleform.keytable.active:=true;
if not datamoduleform.keytable.locate(‘keyname‘,edit1.text,[])
file://判断登陆名是否存在
then begin
messagedlg(‘登陆名错误,请重新输入!‘,mtinformation,[mbok],0);
edit1.text:=‘‘; edit1.setfocus;
end
else begin
with datamoduleform.keyquery do
begin
close; sql.clear;
sql.add(‘select * from key where keyname=:keyname‘);
parameters.parambyname(‘keyname‘).value:=edit1.text;
open;
s:=fieldvalues[‘keyno‘];
end;
if s<>edit2.text file://判断登陆密码是否正确
then begin
messagedlg(‘登陆密码错误,请重新输入!‘,mtinformation,[mbok],0);
edit2.text:=‘‘; edit2.setfocus;
end
else begin
keyname:=edit1.text;
keyform.hide;
mainform.show;mainform.windowstate:=wsmaximized;
end; end; end;
end;
§5.7 用户管理功能的实现
5.7.1 用户管理主窗体
图5.7 用户管理主窗体
5.7.2 密码修改窗体模块的实现
图5.8 密码修改窗体
procedure tkey2form.speedbutton1click(sender: tobject);
begin file://密码修改窗口修改按钮事件
if (edit1.text=‘‘)or(edit2.text=‘‘)or(edit3.text=‘‘)
then begin
messagedlg(‘请输入完整的信息。‘,mtinformation,[mbok],0);
edit1.setfocus;
end
else begin
if not datamoduleform.keytable.locate(‘keyno‘,edit1.text,[])
then begin
messagedlg(‘原密码输入错误,不能修改新密码!‘,mtinformation,[mbok],0);
edit1.text:=‘‘;edit2.text:=‘‘;edit3.text:=‘‘;edit1.setfocus;
end
else begin
if edit2.text<>edit3.text
then begin
messagedlg(‘两次密码输入不同,请重新输入新密码!‘,mtinformation,[mbok],0);
edit2.text:=‘‘;edit3.text:=‘‘;edit2.setfocus;
end
else begin file://在数据库中修改密码
with datamoduleform.keyquery do
begin
close; sql.clear;
sql.add(‘update key set keyno=:keyno where keyname=:keyname‘);
parameters.parambyname(‘keyname‘).value:=keyname;
parameters.parambyname(‘keyno‘).value:=edit2.text;
execsql;
messagedlg(‘密码修改成功!‘,mtinformation,[mbok],0);
key2form.close;
end; end; end; end;
end;
5.7.3 用户注册窗体模块的实现
图5.9 用户注册窗体
procedure tkey3form.speedbutton1click(sender: tobject);
begin file://用户注删窗口注删按钮事件
if (edit1.text=‘‘)or(edit2.text=‘‘)or(edit3.text=‘‘)
then begin
messagedlg(‘请输入完整的信息!‘,mtinformation,[mbok],0);
edit1.setfocus;
end
else begin
if datamoduleform.keytable.locate(‘keyname‘,edit1.text,[])
file://判断用户名是否存在,系统不允许用户名重复
then begin
messagedlg(‘用户名已存在,请输入新的用户名和密码!‘,
mtinformation,[mbok],0);
edit1.text:=‘‘;edit2.text:=‘‘;edit3.text:=‘‘;edit1.setfocus;
end
else begin
if edit2.text<>edit3.text
then begin
messagedlg(‘您输入的两个密码不相同,请重新输入!‘,mtinformation,[mbok],0);
edit2.text:=‘‘;edit3.text:=‘‘;edit2.setfocus;
end
else begin
with datamoduleform.keyquery do file://在数据库中添加该用户
begin
close;
sql.clear;
sql.add(‘insert into key values(:keyname,:keyno)‘);
parameters.parambyname(‘keyname‘).value:=edit1.text;
parameters.parambyname(‘keyno‘).value:=edit2.text;
execsql;
end;
messagedlg(‘新用户添加成功,您可以继续添加用户,或按“取消”退出。‘,mtinformation,[mbok],0);
edit1.text:=‘‘;edit2.text:=‘‘;edit3.text:=‘‘;edit1.setfocus;
end; end; end;
end;
5.7.4 用户注销窗体模块的实现
图5.10 用户注销窗体
procedure tkey4form.speedbutton1click(sender: tobject);
var s:string;
begin file://用户注销窗口注销按钮事件
if (edit1.text=‘‘)or(edit2.text=‘‘)
then messagedlg(‘请输入完整的信息!‘,mtinformation,[mbok],0)
else begin
if not datamoduleform.keytable.locate(‘keyname‘,edit1.text,[])
file://判断用户名是否存在,用户名必须存在,才可以删除
then begin
messagedlg(‘您所输入的用户名不存在,请重新输入或按“取消”退出。‘,
mtinformation,[mbok],0);
edit1.text:=‘‘;edit2.text:=‘‘;edit1.setfocus;
end
else begin
with datamoduleform.keyquery do
begin
close;
sql.clear;
sql.add(‘select * from key where keyname=:keyname‘);
parameters.parambyname(‘keyname‘).value:=edit1.text;
open;
s:=fieldvalues[‘keyno‘];
end;
if s<>edit2.text file://判断该用户名下的密码是否正确
then begin
messagedlg(‘您所输入的密码不正确,请重新输入或按“取消”退出。‘,
mtinformation,[mbok],0);
edit2.text:=‘‘;edit2.setfocus;
end
else begin file://从数据库中删除该用户
with datamoduleform.keyquery do
begin
close;
sql.clear;
sql.add(‘delete from key where keyname=:keyname‘);
parameters.parambyname(‘keyname‘).value:=edit1.text;
execsql;
end;
messagedlg(‘用户已成功删除,您可以继续删除用户,或按“取消”退出。‘,
mtinformation,[mbok],0);
edit1.text:=‘‘;edit2.text:=‘‘;edit1.setfocus;
end; end; end;
end;
结束语
本系统是一个面向小型图书企业,具有一定实用性的数据库信息管理系统。它主要完成对图书仓库的一系列管理,包括入库、出库、库存以及员工和供应商信息管理。本系统采用当前流行的面向对象的开发工具—delphi来完成整个系统的设计,在数据库的设计上利用了access的便利性和实用性。
本系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成,系统可以自动识别用户不同的输入。在图书入库、出库和库存三者之间建立了良好的链接关系,某一部分地修改均会自动引发系统对与其相关的部分进行连锁修改。在用户管理方面,系统较好地实现了用户注册,用户注销和密码修改等各项功能。
系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关delphi许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解delphi的强大功能,而且还存在着许多不足之处。如:
受开发条件和开发时间的限制,本系统只利用了本地数据库access,它同应用程序处于同一系统中,能存储的数据量也有一定限制,并没有发挥出delphi其数据库方面的优势;
报表打印功能尚不够全面完善,不能实现动态报表;
在一些数据输入时没有及时的进行数据格式校验,不能保证数据输入的绝对正确性。
由于时间关系,系统功能实现不够完善,使用不是很方便,比如,没有实现多条记录的连锁删除和添加以及数据的导入功能。
这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善。
通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。
考 文 献
[1] 郑荣贵、黄平、谷会东,delphi 6.0数据库开发与应用,中科多媒体电子出版社,2002
[2] 伍俊良,delphi 6控件应用实例教程,北京希望电子出版社,2002
[3] 卢国俊,delphi 6数据库开发,电子工业出版社,2002