• 444.50 KB
  • 2022-05-17 13:10:50 发布

基于C++的企业考勤管理系统的设计与开发毕业论文

  • 110页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
本科毕业论文格式要求一、论文的结构与要求毕业设计(论文)包括以下内容(按顺序):本科论文包括封面、目录、标题、内容摘要、关键词、正文、注释、参考文献等部分。如果需要,可以在正文前加“引言”,在参考文献后加“后记”。论文一律要求打印,不得手写。1.目录目录应独立成页,包括论文中全部章、节和主要级次的标题和所在页码。2.论文标题论文标题应当简短、明确,有概括性。论文标题应能体现论文的核心内容、法学专业的特点。论文标题不得超过25个汉字,不得设置副标题,不得使用标点符号,可以分二行书写。论文标题用词必须规范,不得使用缩略语或外文缩写词(通用缩写除外,比如WTO等)。3.内容摘要内容摘要应扼要叙述论文的主要内容、特点,文字精练,是一篇具有独立性和完整性的短文,包括主要成果和结论性意见。摘要中不应使用公式、图表,不标注引用文献编号,并应避免将摘要撰写成目录式的内容介绍。内容摘要一般为200个汉字左右。4.关键词关键词是供检索用的主题词条,应采用能够覆盖论文主要内容的通用专业术语(参照相应的专业术语标准),一般列举3——5个,按照词条的外延层次从大到小排列,并应出现在内容摘要中。5.正文正文一般包括绪论(引论)、本论和结论等部分。正文字数本科不少于6000字,专科一般不少于5000字,正文必须从页首开始。*绪论(引论)全文的开始部分,不编写章节号。一般包括对写作目的、意义的说明,对所研究问题的认识并提出问题。*本论是全文的核心部分,应结构合理,层次清晰,重点突出,文字通顺简练。*结论是对主要成果的归纳,要突出创新点,以简练的文字对所做的主要工作进行评价。结论一般不超过500个汉字。正文一级及以下子标题格式如下:一、;(一);1.;(1);①。6.注释注释是对所创造的名词术语的解释或对引文出处的说明。注释采用脚注形式,用带圈数字表示序号,如注①、注②等,数量不少于10个,脚注少于10个的论文为不合格论文。7.参考文献参考文献是论文的不可缺少的组成部分,是作者在写作过程中使用过的文章、著作名录。参考文献应以近期发表或出版的与法学专业密切相关的学术著作和学术期刊文献为主,数量不少于6篇,参考文献少于6篇的论文成绩评定为不合格。产品说明、技术标准、未公开出版或发表的研究论文等不列为参考文献,有确需说明的可以在后记中予以说明。二、打印装订要求论文必须使用标准A4打印纸打印,一律左侧装订,并至少印制3份。页面上、下边距各2.5厘米,左右边距各2.2厘米,并按论文装订顺序要求如下:1.封面封面包括《广西广播电视大学关于毕业设计(论文)评审表》(封面、附录4)、《学生毕业设计(论文)评审表》(封2)、《广西广播电视大学关于毕业设计(论文)答辩申报表》(封3、附录5)。2.目录目录列至论文正文的三级及以上标题所在页码,内容打印要求与正文相同。目录页不设页码。3.内容摘要摘要标题按照正文一级子标题要求处理,摘要内容按照正文要求处理。4.关键词索引关键词与内容摘要同处一页,位于内容摘要之后,另起一行并以“关键词:”开头(采用黑体),后跟3~5个关键词(采用宋体),词间空1字,即两个字节,其他要求同正文。5.正文正文必须从内容提要页开始,并设置为第1页。页码在页末居中打印,其他要求同正文(如正文第5页格式为“―5―”)。论文标题为标准三号黑体字,居中,单倍行间距;论文一级子标题为标准四号黑体字,居中,20磅行间距;正文一律使用标准小四号宋体字,段落开头空两个字,行间距为固定值20磅;正文中的插图应与文字紧密配合,文图相符,内容正确,绘制规范。插图按章编号并置于插图的正下方,插图不命名,如第二章的第三个插图序号为“图2—3”,插图序号使用标准五号宋体字;正文中的插表不加左右边线。插表按章编号并置于插表的左上方,插表不命名,如第二章的第三个插表序号为“表2—3”,插表序号使用标准五号宋体字。6、参考文献按照GB7714—87《文后参考文献著录规则》规定的格式打印,内容打印要求与论文正文相同。参考文献从页首开始,格式如下:(1)著作图书文献序号作者《书名》,出版地:出版者,出版年份及版次(第一版省略)如:[4]劳凯声《教育法论》,南京:江苏教育出版社,2001(2)译著图书文献序号作者《书名》,出版地:出版者,出版年份及版次(第一版省略)(3)学术刊物文献序号作者《文章名》,《学术刊物名》,年卷(期)如:[5]周汉华《变法模式与中国立法法》,《中国社会科学》,2000(1)(4)学术会议文献序号作者《文章名》,编者名,会议名称,会议地址,年份,出版地,出版者,出版年(5)学位论文类参考文献序号作者《学位论文题目》,学校和学位论文级别,答辩年份(6)西文文献著录格式同中文,实词的首字母大写,其余小写。参考文献作者人数较多者只列前三名,中间用逗号分隔,多于三人的后面加“等”字(西文加“etc.”)。学术会议若出版论文集者,在会议名称后加“论文集”字样;未出版论文集者省去“出版者”、“出版年”项;会议地址与出版地相同的省略“出版地”,会议年份与出版年相同的省略“出版年”。三、毕业设计(论文)装袋要求毕业设计(论文)是专业教学的重要内容,必须规范管理,统一毕业设计(论文)材料装袋要求:1、论文稿本。经指导的提纲,一稿、二稿和装订好的正稿。2、过程记录表。包括指导教师指导记录表,学生毕业设计(论文)评审表(答辩过程记录表)等;3、相关材料。法专业要求的其他材料,如法学社会调查报告等。中国环境教育立法研究内容摘要摘要:目前,我国学术界对环境教育立法问题的研究还处于起步阶段,有关环境教育的法律规范也很不完善,影响和限制了我国环境教育的大力推行和良好普及,实质上是制约了我国解决环境问题的能力和可持续发展的进程。本文从环境问题的现状入手,阐释了环境教育立法的必要性和可行性,介绍了其他国家和地区的环境教育立法实践,在总结国内外先进经验的基础上,提出了对我国环境教育立法的构想。以期通过加强教育立法的途径,实现我国环境教育的普及,为改善解决我国环境问题的能力和可持续发展的进程创造条件。关键词:环境问题环境教育环境教育立法一、环境问题、环境教育与环境教育立法(一)环境问题马克思说:“人靠自然界生活,这就是说,自然界是为了不致死亡而必须不断与之交往。所谓人的肉体生活和精神生活同自然界相联系,也就等于说自然界同自身相联系,因为人是自然界的一部分。”生存与发展是人类社会最基本的主题。在人类与环境不断地相互影响和作用中,环境问题始终是伴随着人类的活动产生和发展的。不幸的是,在相当长的时期内,人类过分强调了作为自然主人的一面,夸大了人的主观能动性作用,忽视甚至忘却自然界的惩罚。环境问题并非始于今日,早在200年前的第一次工业革命时期就产生了环境问题。到了本世纪50年代,环境事件不断出现和加剧。到了70~80年代则出现了全球性的环境危机。目前全球人口正以每年9000万的速度增长,预计到21世纪中期,世界人口将达到100亿。人口无节制地增长,给地球的生态环境和有限的自然资源带来了沉重的压力。联合国列出了威胁人类生存的全球十大环境问题:全球气候变暖;臭氧层的损耗和破坏;酸雨蔓延;水资源危机;生物多样性减少;大气污染;有毒有害化学物质污染与危险废物越境转移;森林面积锐减;土地荒漠化;海洋污染。随着我国社会经济的迅速发展,环境保护与经济发展之间的矛盾日益凸显。20世纪最后几年有三件震撼国人的大事足以说明我国环境问题的严重性,已显示出环境破坏给人类带来的灾难性的报复。一是1997年创纪录(227天)的黄河断流;二是1998年的长江大水灾;三是2000年波及北京等地的频繁的沙尘暴。专家指出了目前困扰中国环境的十大问题。1、大气污染问题2004年我国二氧化硫排放量为1995万吨,居世界第一位。据专家测算,要满足全国天气的环境容量要求,二氧化硫排放量要在现有基础上至少削减40%。此外,2004年中国烟尘排放量为1165万吨,工业粉尘的排放量为1092万吨。大气污染是中国目前面临的第一大环境问题。2、水环境污染问题中国七大水系的污染程度依次是:辽河、海河、淮河、黄河、松花江、珠江、长江,其中,42%的水质超过3类标准(不能做饮用水源),全国有36%的城市河段为劣质5类水质,丧失使用功能。大型淡水湖泊(水库)和城市湖泊水质普遍较差,75%以上的湖泊富营养化加剧,主要由氮、磷污染引起。3、垃圾处理问题中国全国工业固体废物年产生量达8.2亿吨,综合利用率约为46%。全国城市生活垃圾年产生量为1.4亿吨,达到无害化处理要求的不到10%。塑料包装物和农膜导致的白色污染已蔓延全国各地。(二)环境教育与环境问题的关系1、环境教育的发展历程环境教育的起源,一直可以追溯到19世纪末20世纪初的自然研究(NaturalStudy)。当时在学校开展自然研究的基本目的是教育学生通过亲身观察和参与,了解和评价自然环境。到20世纪上叶,人们认识到保护生态和自然环境的重要性,保护运动(Conservationmovement)在社会中形成,学校教育在自然研究的基础上引入了自然保护的教育内容,这就是环境教育的萌芽。(1)国外环境教育的发展历程1972年在瑞典首都斯德哥尔摩召开的“世界人类环境会议”是环境教育发展的一个里程碑。为了响应斯德哥尔摩会议的第96条建议,联合国教科文组织和联合国环境规划署于1975年颁布了国际环境教育计划(IEEP),其目的是在环境教育领域内,促进经验和信息的交流、研究和实验、人员培训、课程和相应教材的开发及国际合作。1975年,在前南斯拉夫的贝尔格莱德召开的国际环境教育会议,通过了《贝尔格莱德宪章:环境教育的全球纲领》。该宪章根据环境教育的性质和目标,指出环境教育是“进一步认识和关心经济、社会、政治和生态在城乡地区的相互依赖性;为每一个人提供获得保护环境的知识和价值观、态度、责任感和技能;创造个人、群体和整个社会行为的新模式。”此后,《贝尔格莱德宪章》成为世界各国制定环境教育纲要与章程的重要依据之一。而环境教育的普及对环境相关法律的立法、执法都可起到相当大的辅助作用。大力开展环境教育,使环境意识特别是环境保护法律意识深入人心,使人们认识到环境问题不仅是社会问题,更是可以涉及到每个人切身利益和法律责任、社会责任的问题,认识到环境问题和法律责任的关系,更好地使环境保护法律成为预防环境问题发生的利剑,这样可以达到依法治理环境和人们自觉保护环境的目的。二、中国环境教育立法的必要性和可行性(一)中国环境教育立法的必要性当一种社会关系需要用立法来调整,说明这种社会关系的重要性。中国环境教育专门立法是否必要,则完全取决于以下前提:(1)环境教育的重要性;(2)环境教育立法对社会经济发展的重要作用。五、结论21世纪是环境世纪,公众的环境意识通过环境教育来建立。根据我国人口多,地区经济水平差异大,公民受教育程度不一的现状,要使公众的环境保护意识提高到一个比较高的水平,实现社会——经济——环境的协调发展,尽早达到国家的可持续发展目标,构建和谐社会,通过立法机关制定完善的、具有可操作性的《环境教育法》不失为一个有效的方法。希望对促进我国环境教育法律体系的建立提供一些有益的参考。识和关心经济、社会、政治和生态在城乡地区的相互依赖性;为每一个人提供获得保护环境的知识和价值观、态度、责任感和技能;创造个人、群体和整个社会行为的新模式。”此后,《贝尔格莱德宪章》成为世界各国制定环境教育纲要与章程的重要依据之一。而环境教育的普及对环境相关法律的立法、执法都可起到相当大的辅助作用。大力开展环境教育,使环境意识特别是环境保护法律意识深入人心,使人们认识到环境问题不仅是社会问题,更是可以涉及到每个人切身利益和法律责任、社会责任的问题,认识到环境问题和法律责任的关系,更好地使环境保护法律成为预防环境问题发生的利剑,这样可以达到依法治理环境和人们自觉保护环境的目的。二、中国环境教育立法的必要性和可行性(一)中国环境教育立法的必要性当一种社会关系需要用立法来调整,说明这种社会关系的重要性。中国环境教育专门立法是否必要,则完全取决于以下前提:(1)环境教育的重要性;(2)环境教育立法我国环境教育法律体系的建立提供一些有益的参考。4 本科毕业论文格式要求一、论文的结构与要求毕业设计(论文)包括以下内容(按顺序):本科论文包括封面、目录、标题、内容摘要、关键词、正文、注释、参考文献等部分。如果需要,可以在正文前加“引言”,在参考文献后加“后记”。论文一律要求打印,不得手写。1.目录目录应独立成页,包括论文中全部章、节和主要级次的标题和所在页码。2.论文标题论文标题应当简短、明确,有概括性。论文标题应能体现论文的核心内容、法学专业的特点。论文标题不得超过25个汉字,不得设置副标题,不得使用标点符号,可以分二行书写。论文标题用词必须规范,不得使用缩略语或外文缩写词(通用缩写除外,比如WTO等)。3.内容摘要内容摘要应扼要叙述论文的主要内容、特点,文字精练,是一篇具有独立性和完整性的短文,包括主要成果和结论性意见。摘要中不应使用公式、图表,不标注引用文献编号,并应避免将摘要撰写成目录式的内容介绍。内容摘要一般为200个汉字左右。4.关键词关键词是供检索用的主题词条,应采用能够覆盖论文主要内容的通用专业术语(参照相应的专业术语标准),一般列举3——5个,按照词条的外延层次从大到小排列,并应出现在内容摘要中。5.正文正文一般包括绪论(引论)、本论和结论等部分。正文字数本科不少于6000字,专科一般不少于5000字,正文必须从页首开始。*绪论(引论)全文的开始部分,不编写章节号。一般包括对写作目的、意义的说明,对所研究问题的认识并提出问题。*本论是全文的核心部分,应结构合理,层次清晰,重点突出,文字通顺简练。*结论是对主要成果的归纳,要突出创新点,以简练的文字对所做的主要工作进行评价。结论一般不超过500个汉字。正文一级及以下子标题格式如下:一、;(一);1.;(1);①。6.注释注释是对所创造的名词术语的解释或对引文出处的说明。注释采用脚注形式,用带圈数字表示序号,如注①、注②等,数量不少于10个,脚注少于10个的论文为不合格论文。7.参考文献参考文献是论文的不可缺少的组成部分,是作者在写作过程中使用过的文章、著作名录。参考文献应以近期发表或出版的与法学专业密切相关的学术著作和学术期刊文献为主,数量不少于6篇,参考文献少于6篇的论文成绩评定为不合格。产品说明、技术标准、未公开出版或发表的研究论文等不列为参考文献,有确需说明的可以在后记中予以说明。二、打印装订要求论文必须使用标准A4打印纸打印,一律左侧装订,并至少印制3份。页面上、下边距各2.5厘米,左右边距各2.2厘米,并按论文装订顺序要求如下:1.封面封面包括《广西广播电视大学关于毕业设计(论文)评审表》(封面、附录4)、《学生毕业设计(论文)评审表》(封2)、《广西广播电视大学关于毕业设计(论文)答辩申报表》(封3、附录5)。2.目录目录列至论文正文的三级及以上标题所在页码,内容打印要求与正文相同。目录页不设页码。3.内容摘要摘要标题按照正文一级子标题要求处理,摘要内容按照正文要求处理。4.关键词索引关键词与内容摘要同处一页,位于内容摘要之后,另起一行并以“关键词:”开头(采用黑体),后跟3~5个关键词(采用宋体),词间空1字,即两个字节,其他要求同正文。5.正文正文必须从内容提要页开始,并设置为第1页。页码在页末居中打印,其他要求同正文(如正文第5页格式为“―5―”)。论文标题为标准三号黑体字,居中,单倍行间距;论文一级子标题为标准四号黑体字,居中,20磅行间距;正文一律使用标准小四号宋体字,段落开头空两个字,行间距为固定值20磅;正文中的插图应与文字紧密配合,文图相符,内容正确,绘制规范。插图按章编号并置于插图的正下方,插图不命名,如第二章的第三个插图序号为“图2—3”,插图序号使用标准五号宋体字;正文中的插表不加左右边线。插表按章编号并置于插表的左上方,插表不命名,如第二章的第三个插表序号为“表2—3”,插表序号使用标准五号宋体字。6、参考文献按照GB7714—87《文后参考文献著录规则》规定的格式打印,内容打印要求与论文正文相同。参考文献从页首开始,格式如下:(1)著作图书文献序号作者《书名》,出版地:出版者,出版年份及版次(第一版省略)如:[4]劳凯声《教育法论》,南京:江苏教育出版社,2001(2)译著图书文献序号作者《书名》,出版地:出版者,出版年份及版次(第一版省略)(3)学术刊物文献序号作者《文章名》,《学术刊物名》,年卷(期)如:[5]周汉华《变法模式与中国立法法》,《中国社会科学》,2000(1)(4)学术会议文献序号作者《文章名》,编者名,会议名称,会议地址,年份,出版地,出版者,出版年(5)学位论文类参考文献序号作者《学位论文题目》,学校和学位论文级别,答辩年份(6)西文文献著录格式同中文,实词的首字母大写,其余小写。参考文献作者人数较多者只列前三名,中间用逗号分隔,多于三人的后面加“等”字(西文加“etc.”)。学术会议若出版论文集者,在会议名称后加“论文集”字样;未出版论文集者省去“出版者”、“出版年”项;会议地址与出版地相同的省略“出版地”,会议年份与出版年相同的省略“出版年”。三、毕业设计(论文)装袋要求毕业设计(论文)是专业教学的重要内容,必须规范管理,统一毕业设计(论文)材料装袋要求:1、论文稿本。经指导的提纲,一稿、二稿和装订好的正稿。2、过程记录表。包括指导教师指导记录表,学生毕业设计(论文)评审表(答辩过程记录表)等;3、相关材料。法专业要求的其他材料,如法学社会调查报告等。中国环境教育立法研究内容摘要摘要:目前,我国学术界对环境教育立法问题的研究还处于起步阶段,有关环境教育的法律规范也很不完善,影响和限制了我国环境教育的大力推行和良好普及,实质上是制约了我国解决环境问题的能力和可持续发展的进程。本文从环境问题的现状入手,阐释了环境教育立法的必要性和可行性,介绍了其他国家和地区的环境教育立法实践,在总结国内外先进经验的基础上,提出了对我国环境教育立法的构想。以期通过加强教育立法的途径,实现我国环境教育的普及,为改善解决我国环境问题的能力和可持续发展的进程创造条件。关键词:环境问题环境教育环境教育立法一、环境问题、环境教育与环境教育立法(一)环境问题马克思说:“人靠自然界生活,这就是说,自然界是为了不致死亡而必须不断与之交往。所谓人的肉体生活和精神生活同自然界相联系,也就等于说自然界同自身相联系,因为人是自然界的一部分。”生存与发展是人类社会最基本的主题。在人类与环境不断地相互影响和作用中,环境问题始终是伴随着人类的活动产生和发展的。不幸的是,在相当长的时期内,人类过分强调了作为自然主人的一面,夸大了人的主观能动性作用,忽视甚至忘却自然界的惩罚。环境问题并非始于今日,早在200年前的第一次工业革命时期就产生了环境问题。到了本世纪50年代,环境事件不断出现和加剧。到了70~80年代则出现了全球性的环境危机。目前全球人口正以每年9000万的速度增长,预计到21世纪中期,世界人口将达到100亿。人口无节制地增长,给地球的生态环境和有限的自然资源带来了沉重的压力。联合国列出了威胁人类生存的全球十大环境问题:全球气候变暖;臭氧层的损耗和破坏;酸雨蔓延;水资源危机;生物多样性减少;大气污染;有毒有害化学物质污染与危险废物越境转移;森林面积锐减;土地荒漠化;海洋污染。随着我国社会经济的迅速发展,环境保护与经济发展之间的矛盾日益凸显。20世纪最后几年有三件震撼国人的大事足以说明我国环境问题的严重性,已显示出环境破坏给人类带来的灾难性的报复。一是1997年创纪录(227天)的黄河断流;二是1998年的长江大水灾;三是2000年波及北京等地的频繁的沙尘暴。专家指出了目前困扰中国环境的十大问题。1、大气污染问题2004年我国二氧化硫排放量为1995万吨,居世界第一位。据专家测算,要满足全国天气的环境容量要求,二氧化硫排放量要在现有基础上至少削减40%。此外,2004年中国烟尘排放量为1165万吨,工业粉尘的排放量为1092万吨。大气污染是中国目前面临的第一大环境问题。2、水环境污染问题中国七大水系的污染程度依次是:辽河、海河、淮河、黄河、松花江、珠江、长江,其中,42%的水质超过3类标准(不能做饮用水源),全国有36%的城市河段为劣质5类水质,丧失使用功能。大型淡水湖泊(水库)和城市湖泊水质普遍较差,75%以上的湖泊富营养化加剧,主要由氮、磷污染引起。3、垃圾处理问题中国全国工业固体废物年产生量达8.2亿吨,综合利用率约为46%。全国城市生活垃圾年产生量为1.4亿吨,达到无害化处理要求的不到10%。塑料包装物和农膜导致的白色污染已蔓延全国各地。(二)环境教育与环境问题的关系1、环境教育的发展历程环境教育的起源,一直可以追溯到19世纪末20世纪初的自然研究(NaturalStudy)。当时在学校开展自然研究的基本目的是教育学生通过亲身观察和参与,了解和评价自然环境。到20世纪上叶,人们认识到保护生态和自然环境的重要性,保护运动(Conservationmovement)在社会中形成,学校教育在自然研究的基础上引入了自然保护的教育内容,这就是环境教育的萌芽。(1)国外环境教育的发展历程1972年在瑞典首都斯德哥尔摩召开的“世界人类环境会议”是环境教育发展的一个里程碑。为了响应斯德哥尔摩会议的第96条建议,联合国教科文组织和联合国环境规划署于1975年颁布了国际环境教育计划(IEEP),其目的是在环境教育领域内,促进经验和信息的交流、研究和实验、人员培训、课程和相应教材的开发及国际合作。1975年,在前南斯拉夫的贝尔格莱德召开的国际环境教育会议,通过了《贝尔格莱德宪章:环境教育的全球纲领》。该宪章根据环境教育的性质和目标,指出环境教育是“进一步认识和关心经济、社会、政治和生态在城乡地区的相互依赖性;为每一个人提供获得保护环境的知识和价值观、态度、责任感和技能;创造个人、群体和整个社会行为的新模式。”此后,《贝尔格莱德宪章》成为世界各国制定环境教育纲要与章程的重要依据之一。而环境教育的普及对环境相关法律的立法、执法都可起到相当大的辅助作用。大力开展环境教育,使环境意识特别是环境保护法律意识深入人心,使人们认识到环境问题不仅是社会问题,更是可以涉及到每个人切身利益和法律责任、社会责任的问题,认识到环境问题和法律责任的关系,更好地使环境保护法律成为预防环境问题发生的利剑,这样可以达到依法治理环境和人们自觉保护环境的目的。二、中国环境教育立法的必要性和可行性(一)中国环境教育立法的必要性当一种社会关系需要用立法来调整,说明这种社会关系的重要性。中国环境教育专门立法是否必要,则完全取决于以下前提:(1)环境教育的重要性;(2)环境教育立法对社会经济发展的重要作用。五、结论21世纪是环境世纪,公众的环境意识通过环境教育来建立。根据我国人口多,地区经济水平差异大,公民受教育程度不一的现状,要使公众的环境保护意识提高到一个比较高的水平,实现社会——经济——环境的协调发展,尽早达到国家的可持续发展目标,构建和谐社会,通过立法机关制定完善的、具有可操作性的《环境教育法》不失为一个有效的方法。希望对促进我国环境教育法律体系的建立提供一些有益的参考。识和关心经济、社会、政治和生态在城乡地区的相互依赖性;为每一个人提供获得保护环境的知识和价值观、态度、责任感和技能;创造个人、群体和整个社会行为的新模式。”此后,《贝尔格莱德宪章》成为世界各国制定环境教育纲要与章程的重要依据之一。而环境教育的普及对环境相关法律的立法、执法都可起到相当大的辅助作用。大力开展环境教育,使环境意识特别是环境保护法律意识深入人心,使人们认识到环境问题不仅是社会问题,更是可以涉及到每个人切身利益和法律责任、社会责任的问题,认识到环境问题和法律责任的关系,更好地使环境保护法律成为预防环境问题发生的利剑,这样可以达到依法治理环境和人们自觉保护环境的目的。二、中国环境教育立法的必要性和可行性(一)中国环境教育立法的必要性当一种社会关系需要用立法来调整,说明这种社会关系的重要性。中国环境教育专门立法是否必要,则完全取决于以下前提:(1)环境教育的重要性;(2)环境教育立法我国环境教育法律体系的建立提供一些有益的参考。4 摘要随着现代科学技术的发展,越来越多的公司和企业对职工的考勤都实行了信息化管理,使用计算机系统代替复杂的手工方式来管理考勤事务。考勤管理系统可以有效地管理公司员工的出勤情况,规范人事制度管理,保证公司正常的工作,是人力资源管理的重要组成部分。系统的开发主要包括后台数据库的建立,维护以及前端应用程序的开发两个方面,主要模块包括基本信息管理模块,考勤信息管理模块,统计查询模块和系统用户管理模块。系统是使用VisualC++开发语言,使用MicrosoftVisualStudio6.0作为工具软件,数据库为SQLServer2000。系统采用目前比较流行的ADO数据访问技术,并将每个数据库表的字段和操作封装到类中,它使应用程序的各个窗口都能够共享对表的操作,不需要重复编码,使程序更加易于维护,从而将面向对象的程序设计思想应用到数据库应用程序中。关键词:考勤管理;人力资源;数据库;数据访问技术Abstract4 Alongwiththedevelopmentofthemodernscienceandtechnology,moreandmorecompaniesandenterprisesimplementedtheinformationmanagementtothestaff"scheckingattendance,andusecomputersysteminsteadofthecomplexmanualwaytomanagethecheckingattendancebusiness.Thecheckingattendancemanagementsystemmayeffectivelymanagethestaff"sgoingoutondutysituation,Standardpersonnelsystemmanagement,Guaranteesthecompanynormalwork.ItistheimportantpartofhumanresourcesmanagementThedevelopmentofthissystemmainlyincludestwoaspects:theestablishmentofthebackstagedatabaseandthedevelopmentofthefront-sideapplication.Thissystemcontainsfollowingseveralmodules:thebasicinformationmanagementmodule,theattendanceinformationmanagementmodule,thestatisticalinquirymoduleandthesystemuseradministrationmodule.VisualC++andSQLServer2000areusedinthedevelopmentofthesystem.ThesystemusesthepopularADOtechnology,andencapsulatesthefieldsandtheoperationsofeachtableintosomeclasses.Itcausestheoperationwhichtheapplicationprocedureeachwindowallcansharesynchronizestables.Ithasnotrepeatcodes,andmakestheapplicationtobeeasiertomaintain.Bythisway,theideaofobject-orientedprogrammingwillbeappliedinthedatabaseapplication.Keywords:Attendancemanagement;Humanresources;Database;Dataaccesstechnology4 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:      学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日 指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日 评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日 教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日4 目录摘要2第1章概述11.1企业考勤管理系统意义1企业考勤系统的应用背景11.3企业考勤系统基于的技术种类1第2章系统的可行性研究12.1技术可行性分析1经济可行性分析12.3操作运行可行性分析1第3章系统分析13.1系统需求分析1用户工作流程13.1.2功能需求13.2性能需求13.3全局分析1第4章系统软件设计14.1系统设计预览14.1.1系统设计目标与功能结构14.1.2业务流程图展示14.2数据库设计14.2.1数据库分析14.3公共类的设计14.3.1CADOconnection类14.3.2CADODataSet类14.4统主体窗的设计14.5系统模块设计14.5.1用户登入模块设计14.5.2用户管理模块设计14.5.3部门管理模块设计14.5.4人员信息管理模块14.5.5考勤管理模块设计14.5.6考勤汇总查询模块设计1第5章总结与展望1参考文献14 附录1致谢14 第1章概述1.1企业考勤管理系统意义考勤管理是企事业单位经营的重要环节,加强考勤管理,严肃考勤制度是企事业单位搞好各项经营管理工作的前提与保障.科学地管理考勤不仅可以保证各项经营管理计划得以落实,而且有利于提高工作学习效率.长期以来,很多单位沿袭人工方式进行考勤管理,每个单位都有专门负责考勤登记的人员.即便如此科学准确地管理考勤也绝非易事,原因主要在于考勤涉及人员、班种、请假等诸多因素,每日考勤统计工作量极大等.利用计算机管理考勤不仅能使管理人员从繁重的考勤管理工作中解脱出来,而且能够使考勤管理工作更加科学化,规范化,智能化.随着计算机技术的高速发展,正在改变着整个世界的经济,也改变着企业的管理.顺应信息技术发展的潮流,作为企业信息化的核心部分,选择先进的,符合国际标准的考勤系统,不仅可以有效提高企业管理,协作与监控员工的出勤效率,更可以为企业进一步信息化建设奠定良好的基础.利用计算机实现企业人事考勤管理势在必行。本系统结合企业实际考勤管理制度,经过实际的需求分析,采用功能强大的VisualC++6.0作为开发工具,开发出来的企业考勤管理系统。其一,可以将考勤事务交给基本部门处理,交个每个员工自己处理,交给系统自动处理,用IT技术推动人事考勤管理的变革。其二,新的考勤系统的实施,不仅把HR人员从考勤的具体事务中解放出来,而且也推动了全员对人事管理的参与和互动.HR人员的可以把工作重心可以放在服务员工、支持公司管理层的战略决策上,放在公司最重要的资产—84 员工和员工的集体智慧的管理上等核心业务上来。在此讨论的考勤管理系统的开发,旨在探索一种新的考勤模式.通过这种新的模式,为企业的传统考勤模式创造一种新的概念,提高考勤工作效率和标准化水平。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成日常的员工签到,出勤修改,出勤查询,用户维护,员工维护,以及系统配置等功能.经过实际使用证明,本文所设计的系统可以满足企业进行日常的员工考勤管理方面的需要。1.1企业考勤系统的应用背景随着计算机在国内外的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。企业员工考勤信息管理是企业信息管理的重要部分。面对大量的人事考勤信息,采用人力处理将浪费大量的时间、人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的员工信息管理软件进行自动化处理具有较大的社会现实意义。同时,人事考勤管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,开发应用简单,不失一般性。人事考勤管理系统的特点是从人事考勤管理的角度出发,用集中的数据库将几乎所有与人事考勤相关的数据统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得人事考勤管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人事考勤规划和政策.作为计算机应用的一部分,使用计算机对考勤信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。84 考勤管理系统就是把分散的企事业单位的考勤信息实行统一、集中、规范的收集管理,建立分类编号管理、电脑存储查询以及防火、防潮、防蛀、防盗等现代化、专业化的管理系统,为企事业单位和职工解除后顾之忧。企业考勤管理系统为企事业单位提供信息咨询、信息检索、信息存取等服。本考勤管理系统基本上能够满足现代企业考勤管理需求。信息录入项目齐全、完整、系统。现代考勤管理系统灵活使用表格对各种信息分门别类,组成企业考勤管理系统,可以方便地查询、阅读、修改、交流和重复使用。1.1企业考勤系统基于的技术种类基于Client/Server结构的远程电脑考勤系统,PB和SQLServer结合开发出两层C/S结构的远程电脑考勤系统。该系统采用条码扫描的形式,在Client端采集考勤数据,在Server端综合汇总,汇总的数据除供管理者查询以做决策的依据外,还可直接将其传至公司的财务系统,作为薪金发放的重要参考。在论述远程电脑考勤系统实例的同时,还从系统环境,前台应用程序的设计,后台数据库的设计,系统数据库的安全,系统网络的安全等方面给出了开发两层次C/S结构应用系统、一般方法和技巧,具有一定的参考价值。基于VB/SQLServer的管理系统的实现——智能化考勤系统设计,VB作为一种面向对象的可视化编程工程,具有简单易学、灵活方便和易于扩充的特点.与后端的SQLServer相结合,VB能够提供一个高性能的客户机/服务器方案.主要讲述在软件工程原理指导下,考勤管理方案的设计,该系统服务端采用了MircosoftSQLServe2000,客户端采用VisualBasic编程,通过微软的ADO控件调用服务器端的相关数据,实现数据的分布式管理.84 基于ASP.NET的考勤管理系统的设计与实现,考勤管理系统是企事业单位实现员工考勤自动化管理的重要设施.本文详细讨论了某公司考勤管理系统的系统功能、系统结构的设计和关键技术实现的过程.用ASP.NET开发的该系统具有操作简便、界面友好、灵活、实用和安全等特点.84 第1章系统的可行性研究1.1技术可行性分析为达到技术的可行支持在程序设计开发之前,首要确定运用什么工具来开发,必须考量运用怎样的形式才能达到最好的效果。1991年微软公司推出VisualBasic,是基于BASIC的可视化的程序设计语言。既继承了其先辈的BASIC所有的程序设计简单易用的特点,其程序也采用了面向对象,事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视界面设计方法。VB的多种功能特点体现于:具有面向对象的可视化设计工具,应用面向对象的程序设计方法,把程序和数据封装起来视为一个对象,每个对象都是可逆的。程序员在设计时只需要根据现有界面设计的要求,直接在屏幕上画出窗口,菜单,按扭等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅编写针对对象要完成哪些功能的程序,因而程序设计的效率可提高很多。事件驱动的编程机制的运用,事件驱动是非常适合图形用户界面的编程方式。传统的编程方式是一种面向过程,按程序事先设计的流程运行。但在图形用户界面的应用程序中,用户的动作即事件掌握着程序的运行流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,各个动作之间不一定有联系。这样的应用程序代码较短,使得程序既易于编写又易于维护。明确提供了易学易用的应用程序集成开发环境在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件,在Windows中运行,使用户在友好的开发环境中工作。结构化的程序设计语言,VB具有丰富的数据类型、众多的内部函数和结构化程序结构,而且简单易学。支持多种数据库系统的访问,利用数据控件或ODBC能够访问的数据库系统有,MicrosoftAccess、Btrieve84 、dBASE、MicrosoftFoxPro和Paradox等,也可以访问MicrosoftExcel、Lotus1-2-3等多种电子表格。OLE技术在于VB的核心就是其对对象的链接与嵌入(OLE)的支持,利用OLE,VB能够开发集声音、图像、动画、字处理、Web等对象于一体的应用程序。Active技术发展了原有的OLE技术,它使开发人员摆脱了特定语言的束缚。可方便地使用标准的Active部件,调用标准的接口,实现特定的功能。完备的help联机帮助功能,与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可随时方便地得到所需的帮助信息,VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获得大量的示例代码,为用户的学习和使用提供了捷径。基于以上关于VisulBasicC++强大功能和易操作性的介绍,我们将采用其作为本次考勤系统的前台开发工具。SQLServer2000是Microsoft公司推出的数据库管理系统,它继承了SQLServer7.0在数据库软件设计和引擎方面的优势,同时增加了读多新的功能,使用更加方便,完全支持Web应用,而且更具可靠性和稳定性。我们选择SQLServer2000作为后台支持,大家都知道,SQLServer2000对一些企业级用户来说是个福音,它在存储大容量数据、保证数据的安全性、维护数据的完整性都有着极其出色的一方面。它还具有自动高效的机制以及运行分布式处理等优点。这种关系型数据库管理系统能够满足各种类型数据库的单独开发和其他商业应用程序开发的需要。使用SQLServer2000我们可以很方便的建立数据库,可以将所建立的数据库很好的和VB结合起来。84 1.1经济可行性分析考勤系统的面向主体用户群是企业,而企业在运营过程中准求的在范围内的尽量少的成本下实现最大的产出,已达到最高的性价比。以企业员工的数量可满足考勤系统的容量与需求,因此只需在配备定量的服务器的条件下,增加考勤机和IC卡即可。考勤系统运行的环境采用操作系统WINDOWS系统,系统开发工具,以及后台数据库均无需购买。因此实施此考勤系统无需硬件资金投入,若想将管理系统全面投入运行,所需资金投入也只需日常维护与技术支持等必须费用。所以,实施考勤系统在经济上是可行的,将考勤系统全面投入运行,在经济上也是可行的。1.2操作运行可行性分析信息化考勤系统是考勤管理模式的发展方向,以现代化信息技术完成考勤工作,可以提高工作效率和工作质量,迎合现代化企业发展管理的需求,也是与国际社会流行趋势相吻合的。企业管理制度的齐全与稳定,提供了企业创新发展的基础。企业计算机设备齐全,网络完善,有良好的机房和技术人员。企业DBA对微机操作熟练,完全可以掌握系统的使用和维护。因此,考勤系统的操作运行是可行的。第2章系统分析2.1系统需求分析84 需求分析是系统开发必要环节,也是重中之重;需求过程研究业务工作,以期设计出有助于业务工作的更加完善的系统。作为该过程的结果,需求规格说明书是对系统的功能和行为完整的描述。系统设计将来自于需求和分析的抽象规格说明转变为面向真实世界的设计。一旦构建完成,该系统就会投入使用,同时会不可避免地产生更多的新需求。同时,需求过程与分析活动之间有相当程度的重叠,分析建模对于设定工作的范围和其他一些事来说是必要的,所以我们利用分析模型来描述需求过程,随着开发工作的继续,分析活动在工作中占的比例将变得越来越大,直到所有需求都已知。1.1.1用户工作流程登陆——运行——更新(删除)——查询系统开发主要有以下五个模块组成:在系统模块中实现了,登录与运行功能。在维护模块中实现了,对数据库更新与删除的功能。在查询模块中实现了,条件模糊查询功能。能够清楚的让使用者了解本系统,并帮助使用者如何更好的使用本系统3.1.2用户业务需求(1)该管理软件将对企业人事考勤档案进行管理和统计,对部门信息、员工信息、考勤数据、考勤信息进行管理和统计。(2)该管理软件将根据用户的需要对个人信息进行查询,并能打印详细信息。(3)该管理软件将为用户提供账号管理工具,以便用户对账号进行管理,具体为添加用户、删除用户、修改用户密码。(4)该管理软件提供企业人员管理,能够对企业员工的分类管理,新员工的加入以及员工删除,修改进本信息等功能。84 1.1.1功能需求基于系统需求分析,该系统需要实现以下基本功能:用户管理:管理系统操作人员,设置操作人员口令和权限。在满足不同系统用户的操作需求的基础上,提高系统的安全性。人事考勤管理:完成企业对员工个人考勤信息(包括员工的基本档案和在职信息)的管理及相关操作。操作员进行员工考勤信息录入及更改,其中包括员工的基本信息、工作部门、工作流程,要求对这些员工档案信息可以进行新增、修改、删除操作,同时可以进行查询和浏览操作。该模块是本系统的重点,用户可以通过该模块为单位建立一个比较完整的人事考勤系统,同时可以对数据进行查看。基础数据管理:维护人事管理相关的一些基础数据。主要包括以下功能:(1)部门类别设置:维护企业中设立的部门类别信息;(2)职工类型设置:维护当前企业职工与企业的关系的类别信息;(3)职务类别设置:维护企业中设立的职务类别信息;(4)职工资类别设置:维护企业中设立的工资类别信息;(5)称类别设置:维护企业职工的职称类别信息;人事变动管理:对于人事上的变动调整进行管理,对人员考勤的信息进行更新(如:员工职务、员工职称、员工性质等的变动)考勤管理:考勤管理可帮助公司完成时间管理记录员工上下班、加班、出缺勤时间,并可将数据连至薪资计算系统处理,以便作薪资结算。企业还可根据此考勤系统查询企业内各时段的员工出缺勤状况,作管理方面的分析。提供了全面的考勤管理。数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。84 1.1性能需求(1)硬件环境在最低配置的情况下,系统的性能往往不尽如人意,现在的硬件性能已经相当出色,且价格也很便宜,因此通常给服务器端配置高性能硬件。处理器:InterPentiumII266MX或更高内存:64MB硬盘空间:2GB显卡:SVGA显示适配器(2)软件环境操作系统:Windows98/ME/2000/NT数据库:MSQ1.2全局分析用户需要输入用户名和密码进入人事考勤管理系统,对人事考勤管理系统的部门、员工的基本信息进行维护和管理。在考勤管理模块中录入员工当天的考勤信息,同时可对年、月、员工进行查询。还可以通过考勤汇总查询对员工某月的考勤记录进行汇总,计算出员工月工作天数,早退、迟到的天数等。UseCase是对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列.在该UseCase图中只有顶层图,主要是考虑到考勤管理系统体积不大,做成一个顶层图会使得各用例间的关系更清晰.具体关系如图所示.84 图3-1考勤管理系统顶层UseCase全局分析84 第1章系统软件设计1.1系统设计预览1.1.1系统设计目标与功能结构人事考勤管理系统以实现员工日常出勤信息管理为设计目标,加以强大的数据库管理功能,可以方便对考勤信息进行管理,大大地提高了人事部门的日常工作效率。本系统在设计时应满足以下几点:采用人机对话的操作方式,信息查询灵活、方便、快捷、准确、数据存储安全可靠。对考勤信息的操作简单,可以方便的进行添加、修改、和删除,可以录入员工信息、部门信息。对员工的考勤信息可按月进汇总计算,对用户输入的数据,系统进行严格的数据检查,尽可能排除人为的错误。系统最大限度的实现了易维护性和易操作性。统运行稳定、安全可靠。人事考勤系统功能结构如图4-1所示。图4-1人事考勤系统功能结构84 1.1.1业务流程图展示图4-2人事考勤系统业务流程图1.2数据库设计1.2.1数据库分析人事考勤管理系统使用了MicrosoftSQLSever2000数据库来满足系统的要求,数据库名称为tb_person,在数据库中创建4张表用于存储各种不同的信息,如图4-2所示图4-2数据库中的标2数据库逻辑结构设计下面给出人事考勤管理系统数据库中的主要表的表结构。Tab_User(管理员信息表):用于保存管理员的信息,如图4-3所示84 Tab_Dept(部门信息表):用于记录部门的信息情况,如图4-4所示Tab_Employees(员工信息表):用于保存公司员工信息,如图4-5所示Tab_check(考勤信息表):记录员工每天的考勤信息,如图4-6所示1.1公共类的设计本系统是使用ADO连接数据库的,为了能更方便地在程序中使用ADO建立数据库连接与数据表的操作,就在公共类中对系统中所使用的ADO操作进行了封装。在该系统中建立了ADO的两个公共类CADOConnection和CADODataSet,这两个类定义在ADO.h头文件中,实现ADO.cpp文件中。1.1.1CADOconnection类CADOConnection类是用来连接数据库的,实现了对_Connection接口的封装,CADOConnection类在头文件中的定义如下:#import"msado15.dll"no_namespacerename("EOF,"adoEOF")classCADOConnection{private:StaticvoidInitADO();StaticvoidUnInitADO();protected:_ConnectionPtrm_Connection;public:BOOLIsOpen();84 _ConnectionPtrGetConnection();CstringGetSQLConstr(CStringIP,CStringDBName);BOOLOpen(CStringConStr);CADOConnection();Virtual~CADOConnection();};CADOConnection*GetConnection();CADOConnection类的实现代码如下:定义两个全局变量ConCount和g_Connection,ConCount变量是一个整型变量,用起来记录在工程中所创建的CADOConnection类的实例个数。在构造方法中当此变量为0时调用CoInitialize函数实现OLE的初始化。在析构方法中当此变量为0时调用CoUninitialize方法取消OLE的初始化。IntConCount=0;CADOConnectiong_Connection;GetConnection函数是一个全局函数,用于返回全局数据库连接对象的指针,代码如下:CADOConnection*GetConnection(){Return&g_Connection;}CADOConnection方法是析构函数,用于初始化OLE和创建_Connection接口的指针实例,代码如下:CADOConnection::CADOConnection()84 {InitADO();m_Connection.CreateInstance("ADODB.Connection");}~CADOConnection方法是析构函数,用于取消OLE初始化和释放_Connection接口的指针,代码如下:CADOConnection::CADOConnection(){If(IsOpen());m_Connection->Close();m_Connection=NULL;UnInitADO();}InitADO方法是一个静态方法,用于初始化OLE,代码如下:VoidCADOConnection::InitADO(){If(ConCount++==0)CoInitialize(NULL);};UnInitADO方法是一个静态方法,用于取消OLE的初始化,代码如下:voidCADOConnection::UnInitADO(){if(~ConCount==0)84 CoUninitialize();};Open方法通过指定的数据库连接字符串与SQL数据库建立连接,代码如下:BOOLCADOConnection::Open(CStringConStr){if(IsOpen())m_Connection->Close();m_Connection->Open((_bstr_t)ConStr,","adModeUnknown);returnIsOpen();}GetSQLConStr方法用来生成与数据库连接所需要的连接字符串,代码如下:CStringCADOConnection::GetSQLConStr(CStringIP,CStringDBName){CStringStr;Str.Format("Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=%s;DataSource=%s",DBName,IP);returnStr;}GetConnection方法用于返回_Connection接口指针,代码如下:_ConnectionPtrCADOConnection::GetConnection(){returnm_Connection:}84 IsOpen方法用来判断当前数据库连接对象与数据库的连接状态,代码如下:BOOLCADOConnection::IsOpen(){longState;m_Connection->get_State(&State);if(State==adStateOpen)returntrue;returnfalse;}1.1.1CADODataSet类CADODataSet类是用来存储数据的数据集类,该类实现了_Recordset接口的实例,该类在头文件中的定义如下:classCADODataSet{protected:_RecoedsetPtrm_DataSet;CADOConnection*m_Connectionpublic:voidDelete();intGetRecordNo();voidmove(intnIndex);voidSave();84 voidSetFieldValue(CStringFieldName,_variant_tValue);voidAddNew();BOOLNext();FieldsPtrGetFields();intGetRecordCount();voidSetConnetion(CADOConnection*pCon);BOOLOpen(CStringSQLStr);CADODataSet();virtual~CADODataSet();private:BOOLIsOpen();};CADODataSet方法为记录集实现类的构造方法,在该方法中实现记录集接口对象的创建,代码如下:CADODataSet::CADODataSet(){m_DataSet.CreateInstance("ADODB.Recordset");}~CADODataSet类为记录集实现类的构造方法,在该方法中实现记录集的关闭与接口的释放,代码如下:CADODataSet::~CADODataSet(){84 if(IsOpen())m_DataSet->Close();m_DataSet=NULL;m_Connection=NULL;}SetConnection方法用来设置记录集所连接的数据库连接类的对象,代码如下:voidCADODataSet::SetConnection(CADOConnection*pCon){m_Connection=pCon;}GetRecordCount方法用来获取记录集中数据的数量,实现代码如下:intCADODataSet::GetRecordCount(){if(IsOpen())returnm_DataSet->GetRecordCount();elsereturn0;}Open方法通过SQL查询语句打开数据集,实现代码如下:BOOLCADODataSet::Open(CStringSQLStr){if(IsOpen)m_DataSet->Close();84 }IsOpen方法用来判断数据集是否处于打开状态,实现代码如下:BOOLCADODataSet::IsOpen(){longState;m_DataSet->get_State(&State);if(State==adStateOpen)returntrue;returnfalse;}GetFields方法用来获取记录集中字段的集合,实现代码如下:FieldsPtrCADODataSet::GetFields(){returnm_DataSet->GetFields();}Next方法将记录指针下移一位,实现代码如下:BOOLCADODataSet::Next(){if(m_DataSet->adoEOF)retuenfalse;m_DataSet->MoveNext();returntrue;}84 AddNew方法用于记录集中添加一个新行,实现代码如下:voidCADODataSet::AddNew(){m_DataSet->AddNew();}SetFieldValue方法用来向记录集中指定的字段赋值,实现代码如下:voidCADODataSet::SetFieldValue(CStringFieldName,_variant_tValue0){m_DataSet->PutCollect((_bstr_t)FieldName,Value);}Save方法用来保存对记录集中所做的任何数据更改,实现代码如下:voidCADODataSet::Save(){m_DataSet->Upsate();}Move方法将记录集的当前指针移动到指定的索引位置,实现代码如下:voidCADODataSet::Move(intnIndex){m_DataSet->MoveFirst();m_DataSet->Move(nIndex);}GetRecordNo方法用来获取记录集中的当前行号,实现代码如下:intCADODataSet::GetRecordNO()84 {returnm_DataSet->AbsolutePositon;}Delete方法用来删除记录集中的当前行,实现代码如下:voidCADODataSet::Delete(){m_DateSet->Delete(adAffectCurent);}1.1统主体窗的设计人事考勤系统主窗口由菜单和客户区域组成,其中,客户区域显示了一幅位图,主窗体效果如图4-3所示。主窗体设计步骤如下:(1)启动VisualC++6.0,选择File/New命令,打开New窗口,如图4-4所示。(2)在New窗口左方的列表视图中选择MFCAppWizard[exe]选项,在Projectname编辑框中输入工程名称,在Location编辑框中设置工程保存的路径。单击OK按钮进入MFCAppWizard-Step1窗口,如图4-5所示。(3)单击Finish按钮完成工程的创建。(4)向工程中导入一幅位图资源。(5)创建一个菜单资源,并设置各个菜单项的ID和名称。(6)通过类向导向主窗口添加菜单项的单击事件。84 1.1系统模块设计1.1.1用户登入模块设计用户登入模块是所有管理系统所应具备的基础模块之一,该模块实现了用户使用系统的检验工作,使没有权限的用户不能使用该系统,增加了系统的安全性。用户登入界面如图4-6所示。用户登录窗体是整个系统中创建并显示的第一个窗体,所以该窗体应在主窗体创建前创建并显示。在登录窗体创建的同时应该创建数据库连接。这些操作都应在程序类的初始化方法中实现,该方法名为InitInstance,代码如下:BOOLCPersonApp::InitInstance(){AfxEnableControlContainer();#ifdef_AFXDLLEnable3dControls();#elseEnable3dControlsStatic();#endifLoadSkin();BOOLbCon=GetConnection()->Open(GetConnection()->GetSQLConStr("127.0.0.1","tb_person"));CLoginDialoglogindlg;84 if(logindlg.DoModal()!=IDOK)returnfalse;CPersonDlgdlg;m_pMainWnd=&dlg;intnResponse=dlg.DoModal();if(nResponse==IDOK){}elseif(nResponse==IDCANCEL){}returnFALSE;}创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGOGIN,将对话框标题改为“登入”。想对话框中添加两个静态文本控件、一个编辑框控件、一个列表框控件和两个按钮控件。分别设置两个按钮的Caption属性为“确定”和“取消”。在窗体的初始化方法中创建用户表的数据集,并将用户名添加到列表控件中,实现代码如下:84 BOOLCLoginDialog::OnInitDialog(){CDialog::OnInitDialog();m_DataSet.SetConnection(GetConnection());m_DataSet.Open("Select*FromTab_User");intcount=m_DataSet.GetRecordCount();for(inti=0;iItem[L"UserName"]->Value);m_DataSet.Next();}m_UserList.SetCurSel(0);returnTRUE;}在“确定”按钮的事件中实现用户名和密码的检证,实现代码如下:voidCLoginDialog::OnLogin(){CStringsql,user,pass;m_UserList.GetWindowText(user);m_passWord.GetWindowText(pass);84 sql.Format("Select*Fromtab_userWhereUserName="%s"andPassWord="%s"",user,pass);m_DataSet.Open(sql);if(m_DataSet.GetRecordCount()==1){::SetUserName(user);this->OnOk();}elseAfxMessageBox;}1.1.1用户管理模块设计用户管理模块实现了对系统登录用户的添加、修改和删除操作。用户管理模块的界面如图4-7所示。在用户管理模块中使用CListCtrl控件显示用户信息,当对某一记录进行编辑或删除操作时必须获取一个与记录对应的标识,所以在对用户列表进行添加时利用列表视图控件SetItemData方法将记录集对应的行号添加到每一行对应的数据中。当对记录进行修改时即可通过获取对应的行号对数据集中的数据进行修改。获取数据时使用列表视图控件中的GetItemData方法.84 创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGUSER,将对话框标题改为“用户管理”。向对话框中添加一个列表视图控件和4个按钮控件。列表视图控件的变量为m_grid,分别设置按钮控件的Caption属性为“添加”、“修改”、“删除”和“退出”。定义UpdateGrid方法,用来更新列表视图中显示的用户信息,实现代码如下:voidCUserManage::UpdateGrid(){m_DataSet.Open("Select*Fromtab_User");m_grid.DeleteAllItems();for(int=0;iItem[L"UserName"]->Value);intno=m_DataSet.GetRecordNo();m_grid.SetItemData(i,no);m_DataSet.Next();}}向对话框中添加OnInitDialog方法,在对话框的初始化方法中添加列表视图控件应显示的列头,并在下拉列表视图控件中添加数据,代码如下:BOOLCUserManage::OnInitDialog(){84 CDialog::OnInitDialog();m_grid.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_grid.InsertColumn(0,"用户名");m_grid.SetColumnWidth(0,150);m_DataSet.SetConnection(::GetConnection());UpdateGrid();returnTRUE;}在“添加”按钮事件中弹出“用户编辑”窗体,输入用户名后单击“确定”按钮,实现对用户的添加,代码如下:voidCUserManage::OnAppend(){CUserEdituseredit;if(useredit.DoModal()==IDOK){m_DataSet.AddNew();m_DataSet.SetFieldValue("UserName",(_bstr_t)useredit.name);m_DataSet.Save();UpdateGrid();}84 }在“修改”按钮事件中弹出“用户编辑”窗体,输入用户名后单击“确定”按钮实现对用户的修改,代码如下:voidCUserManage::OnEdit(){CUserEdituseredit;intno=m_grid.GetItemData(m_grid.GetSelectionMark());m_DataSet.move(no-1);useredit.name=(char*)(_bstr_t)m_DataSet.GetFields()->Item[L"UserName"]->Value;if(useredit.DoModal()==IDOK){m_DataSet.SetFieldValue("UserName",(_bstr_t)useredit.name);m_DataSet.Save();UpdateGrid();}}在“删除”按钮的单击事件中获取当前记录进行删除操作,代码如下:voidCUserManage::OnDelete(){if(MessageBox("是否删除此记录!","提示",84 MB_YESNO|MB_ICONWARNING)==IDYES){intno=m_grid.GetItemData(m_grid.GetSelectionMark());m_DataSet.move(no-1);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();}}1.1.1部门管理模块设计部门管理记录了部门间的层次结构和部门信息,所以通常部门管理窗体中对于部门的显示是使用树列表显示的。部门管理界面如图4-8所示。由于部门通常都是存在层次级别的,所以在设计数据表结构时应至少创建3个字段,即“编号”、“父编号”和名称。而在程序中显示部门信息时也根据“父编号”作为查询条件不断地查找下一级的部门。在本系统中,由于部门信息通常不会太多,所以可以用嵌套的方式将部门信息一次性地读入树列表视图控件中,实现代码如下:voidCDeptManage::GetNode(HTREEITEMpNode,intnPid){84 HTREEITEMnode;CADODataSetDataSet;DataSet.SetConnection(::GetConnection());CStringstr;str.Format("Select*Fromtab_Deptwherepid=%d,nPid");DataSet.Open(str);intcount=DataSet.GetRecordCount();intID;_variant_tvalue;for(inti=0;iItem["DeptName"]->Value,pNode);value=(_vaiant_t)DataSet.GetFields()->Item["ID"]->Value;ID=value.intVal;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();}}84 创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGDEPT,将对话框标题改为“部门管理”。向对话框中添加一个树列表控件、4个按钮控件,分别设置按钮控件的Caption属性为“添加”、“修改”、“删除”和“退出”。定义GetNode方法用来按层次关系获取部门表中的所有数据,并添加到树列表控件中。该方法由UpdateDept方法进行调用,实现代码如下:voidCDeptManage::UpdateDept(){m_tree.DeleteAllItems();GetNode(TVI_ROOT,0);}voidCDeptManage::GetNode(HTREEITEMpNode,intnPid){HTREEITEMnode;CADODataSetDataSet;DataSet.SetConnection(::GetConnection());CStringstr;str.Format("Select*Fromtab_Deptwherepid=%d",nPid);DataSet.Open(str);intcount=DataSet.GetRecordCount();intID;84 _variant_tvalue;for(inti=0;iItem["DeptName"]->Value,pNode);value=(_variant_t)DataSet.GetFields()->Item["ID"]->Value;ID=value.intVal;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();}}当单击“添加”按钮时将弹出部门编辑窗体,输入部门信息后单击“确定”按钮将添加一个新的部门,代码如下:voidCDeptManage::OnAdd(){CDeptEditdeptedit;if(deptedit.DoModal()==IDOK){HTREEITEMpNode=m_tree.GetSelectedItem();intpID;if(deptedit.isroot)84 pID=0;elsepID=m_tree.GetItemData(pNode);CADODataSetdataset;dataset.SetConnection(::GetConnection());dataset.Open("Selecttop1*Fromtab_Dept");dataset.AddNew();dataset.SetFieldValue("DeptName",(_variant_t)deptedit.name);dataset.SetFieldValue("memo",(_variant_t)deptedit.memo);dataset.SetFieldValue("PID",(long)pID);dataset.Save();UpdateDept();}}当单击“修改”按钮时将弹出部门编辑窗体,输入部门信息后单击“确定”按钮将添加一个新的部门,代码如下:voidCDeptManage::OnEdit(){CDeptEditdeptedit;deptedit.visible=false;HTREEITEMpNode=m_tree.GetSelectedItem();84 if(pNode==0)return;intpID=m_tree.GetItemData(pNode);CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("Select*Fromtab_Deptwhereid=%d",pID);dataset.Open(str);deptedit.name=(char*)(_bstr_t)dataset.GetFields()->Item[L"DeptName"]->Value;deptedit.memo=(char*)(_bstr_t)dataset.GetFields()->Item["memo"]->Value;if(deptedit.DoModal()==IDOK){dataset.SetFieldValue("DeptName",(_variant_t)deptedit.name);dataset.SetFieldValue("memo",(_variant_t)deptedit.memo);dataset.Save();UpdateDept();}}当单击“删除”按钮时将删除当前选中的节点,代码如下:voidCDeptManage::OnDelete(){HTREEITEMpNode=m_tree.GetSelectedItem();if(pNode==0)84 return;if(MessageBox("是否删除此记录!","提示",MB_YESNO|MB_ICONWARNING)==IDYES){intpID=m_tree.GetItemData(pNode);CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("Select*Fromtab_Deptwhereid=%d",pID);dataset.Open(str);dataset.Delete();dataset.Save();UpdateDept();}}1.1.1人员信息管理模块人员信息管理模块根据部门分类显示,同时可对人员信息进行维护。人员信息管理界面如图4-9所示。84 在人员信息管理界面中可以看到,左侧是部门信息,右侧是人员信息。当选中某一部门信息分类时右侧的人员信息会根据选中的部门进行人员信息的分类显示。这一操作主要是通过数列表视图控件中的OnSelchanged事件完成的,当树列表中的选中节点发生改变时就会触发该事件,实现代码如下:voidCPersonManage::OnSelchangedTreedept(NMHDR*pNMHDR,LRESULT*pResult){NM_TREEVIEW*pNMTreeView=(NM_TREEVIEW*)pNMHDR;m_DeptID=m_tree.GetItemData(pNMTreeView->itemNew.hItem);UpdatePerson();*pResult=0;}创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGPERSON,将对话框标题改为“人员信息管理”。向对话框中添加两个群组控件、一个树列表视图控件、一个列表视图控件和4个按钮控件。分别设置按钮的Caption属性为“添加”、“修改”、“删除”和“退出”。添加GetNode方法获取部门表中的数据信息添加到树列表视图控件中。该方法由UpdateDept方法调用,实现代码如下:voidCPersonManage::UpdatePerson(){m_list.DeleteAllItems();CADODataSetDataSet;DataSet.SetConnection(::GetConnection());CStringstr;84 if(m_DeptID==-1)str.Format("Select*Fromtab_Employees");elsestr.Format("Select*Fromtab_EmployeeswhereDept=%d",m_DeptID);DataSet.Open(str);intcount=DataSet.GetRecordCount();intn=0;_variant_tvalue;for(inti=0;iItem["Emp_Id"]->Value);value=DataSet.GetFields()->Item["AutoID"]->Value;m_list.SetItemData(n,value,lVal);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Emp_NAME"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Sex"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Nationality"]->Value);84 m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Birth"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Political_Party"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Culture_Level"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Marital_Condition"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Id_Card"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Office_phone"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Mobile"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["HireDate"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Duty"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Memo"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Files_Keep_Org"]->Value);m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Hukou"]->Value);84 m_list.SetItemText(n,index++,(_bstr_t)DataSet.GetFields()->Item["Family_Place"]->Value);n++;DataSet.Next();}}添加OnInitDialog方法,用于初始化人员信息管理界面中的数据。在该方法中显示部门信息、人员信息,代码如下:BOOLCPersonManage::OnInitDialog(){CDialog::OnInitDialog();m_DeptID=-1;UpdateDept();inti=0;m_list.InsertColumn(i,"人员编号");m_list.SetColumnWidth(i++,80);m_list.InsertColumn(i,"人员名称");m_list.SetColumnWidth(i++,100);84 m_list.InsertColumn(i,"性别");m_list.SetColumnWidth(i++,50);m_list.InsertColumn(i,"民族");m_list.SetColumnWidth(i++,50);m_list.InsertColumn(i,"出生日期");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"政治面貌");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"文化程度");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"婚姻状况");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"身份证号");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"办公电话");84 m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"手机电话");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"到岗日期");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"职务");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"备注");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"家庭住址");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"档案所在地");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"户口所在地");m_list.SetColumnWidth(i++,100);84 m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);UpdatePerson();returnTRUE;}单击“添加”按钮,弹出人员编辑窗体,输入人员信息后单击“保存”按钮实现人员信息添加,代码如下:BOOLCPersonManage::OnInitDialog(){CDialog::OnInitDialog();m_DeptID=-1;UpdateDept();inti=0;m_list.InsertColumn(i,"人员编号");m_list.SetColumnWidth(i++,80);m_list.InsertColumn(i,"人员名称");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"性别");84 m_list.SetColumnWidth(i++,50);m_list.InsertColumn(i,"民族");m_list.SetColumnWidth(i++,50);m_list.InsertColumn(i,"出生日期");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"政治面貌");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"文化程度");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"婚姻状况");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"身份证号");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"办公电话");m_list.SetColumnWidth(i++,100);84 m_list.InsertColumn(i,"手机电话");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"到岗日期");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"职务");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"备注");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"家庭住址");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"档案所在地");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"户口所在地");m_list.SetColumnWidth(i++,100);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);84 UpdatePerson();returnTRUE;}单击“修改”按钮,弹出人员编辑窗体,输入人员信息后单击“保存”按钮实现人员信息修改,代码如下:voidCPersonManage::OnEdit(){if(m_list.GetSelectionMark()==-1)return;intid=m_list.GetItemData(m_list.GetSelectionMark());CPersonEditpersonedit;CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("select*fromtab_Employeeswhereautoid=%d",id);dataset.Open(str);personedit.m_id=(char*)(_bstr_t)dataset.GetFields()->Item["Emp_Id"]->Value;personedit.m_name=(char*)(_bstr_t)dataset.GetFields()->Item["Emp_NAME"]->Value;personedit.m_sex=(char84 *)(_bstr_t)dataset.GetFields()->Item["Sex"]->Value;personedit.m_nationality=(char*)(_bstr_t)dataset.GetFields()->Item["Nationality"]->Value;CStringbirth=(char*)(_bstr_t)dataset.GetFields()->Item["Birth"]->Value;if(!birth.IsEmpty()){//设置日期数据intyy=atoi(birth.Left(4));intmm=atoi(birth.Mid(6,2));intdd=atoi(birth.Mid(9,2));CTimetbirth(yy,mm,dd,0,0,0);personedit.m_birth=tbirth;}personedit.m_farty=(char*)(_bstr_t)dataset.GetFields()->Item["Political_Party"]->Value;personedit.m_culture=(char*)(_bstr_t)dataset.GetFields()->Item["Culture_Level"]->Value;personedit.m_marital=(char*)(_bstr_t)dataset.GetFields()->Item["Marital_Condition"]->Value;personedit.m_card=(char*)(_bstr_t)dataset.GetFields()->Item["Id_Card"]->Value;personedit.m_office=(char84 *)(_bstr_t)dataset.GetFields()->Item["Office_phone"]->Value;personedit.m_mobile=(char*)(_bstr_t)dataset.GetFields()->Item["Mobile"]->Value;CStringhire=(char*)(_bstr_t)dataset.GetFields()->Item["HireDate"]->Value;if(!hire.IsEmpty()){//设置日期数据intyy=atoi(hire.Left(4));intmm=atoi(hire.Mid(6,2));intdd=atoi(hire.Mid(9,2));CTimethire(yy,mm,dd,0,0,0);personedit.m_hire=thire;}personedit.m_duty=(char*)(_bstr_t)dataset.GetFields()->Item["Duty"]->Value;personedit.m_memo=(char*)(_bstr_t)dataset.GetFields()->Item["Memo"]->Value;personedit.m_files=(char*)(_bstr_t)dataset.GetFields()->Item["Files_Keep_Org"]->Value;personedit.m_hukou=(char*)(_bstr_t)dataset.GetFields()->Item["Hukou"]->Value;personedit.m_family=84 (char*)(_bstr_t)dataset.GetFields()->Item["Family_Place"]->Value;personedit.m_DeptData=dataset.GetFields()->Item["Dept"]->Value;if(personedit.DoModal()==IDOK){dataset.SetFieldValue("Emp_Id",(_bstr_t)personedit.m_id);dataset.SetFieldValue("Emp_NAME",(_bstr_t)personedit.m_name);dataset.SetFieldValue("Sex",(_bstr_t)personedit.m_sex);dataset.SetFieldValue("Nationality",(_bstr_t)personedit.m_nationality);dataset.SetFieldValue("Birth",(_bstr_t)personedit.m_birth.Format("%Y-%m-%d"));dataset.SetFieldValue("Political_Party",(_bstr_t)personedit.m_farty);dataset.SetFieldValue("Culture_Level",(_bstr_t)personedit.m_culture);dataset.SetFieldValue("Marital_Condition",(_bstr_t)personedit.m_marital);dataset.SetFieldValue("Id_Card",(_bstr_t)personedit.m_card);dataset.SetFieldValue("Office_phone",(_bstr_t)personedit.m_office);84 dataset.SetFieldValue("Mobile",(_bstr_t)personedit.m_mobile);dataset.SetFieldValue("HireDate",(_bstr_t)personedit.m_hire.Format("%Y-%m-%d"));dataset.SetFieldValue("Duty",(_bstr_t)personedit.m_duty);dataset.SetFieldValue("Memo",(_bstr_t)personedit.m_memo);dataset.SetFieldValue("Files_Keep_Org",(_bstr_t)personedit.m_files);dataset.SetFieldValue("Hukou",(_bstr_t)personedit.m_hukou);dataset.SetFieldValue("Family_Place",(_bstr_t)personedit.m_family);dataset.SetFieldValue("dept",personedit.m_DeptData);dataset.Save();UpdatePerson();}}单击“删除”按钮实现当前选中的人员信息记录删除的操作,代码如下:voidCPersonManage::OnDelete(){if(MessageBox("是否删除此记录!","提示",84 MB_YESNO|MB_ICONWARNING)==IDYES){if(m_list.GetSelectionMark()==-1)return;intid=m_list.GetItemData(m_list.GetSelectionMark());CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("select*fromtab_Employeeswhereautoid=%d",id);dataset.Open(str);dataset.Delete();dataset.Save();UpdatePerson();}}1.1.1考勤管理模块设计考勤管理模块将所有人员当天的考勤信息录入到该模块中,并且可以根据年、月和已录入的考勤记录进行查询。考勤管理界面如图4-10所示。84 在进行程序设计时日期型数据可以使用字符串的形式存入日期类型的数据库字段中,但字符串类型的日期数据要想转换成日期类型的数据就必须自己实现其转换功能。在该模块中实现了字符串形式的日期和时间分别转换成日期类型的数据。GetTimeForStr方法用来将字符串形式的时间转换成日期类型,实现代码如下:CTimeCCheckManage::GetTimeForStr(CStringtimestr){inth,m,s;if(timestr.GetLength()<8)timestr="0"+timestr;h=atoi(timestr.Left(2));m=atoi(timestr.Mid(3,2));s=atoi(timestr.Right(2));CTimeresult(2000,1,1,h,m,s);returnresult;}GetDateForStr方法用来将字符串类型的日期值转换成日期类型的数据,实现代码如下:CTimeCCheckManage::GetDateForStr(CStringdatestr){inty,m,d;y=atoi(datestr.Left(4));m=atoi(datestr.Mid(5,2));d=abs(atoi(datestr.Right(2)));84 CTimeresult(y,m,d,8,0,0);returnresult;}在该模块中还实现了一个时间相减的方法,在这个方法中实现相减都是转换成秒后进行减法计算的,然后再将秒转换成对应的时间类型数据,实现代码如下:CTimeCCheckManage::DecTime(CTimeone,CTimetwo){intyy,mm,dd,h,s,m,onetemp,twotemp;yy=2000;//one.GetYear();//-two.GetYear();mm=1;dd=1;onetemp=one.GetSecond()+one.GetMinute()*60+one.GetHour()*60*60;twotemp=two.GetSecond()+two.GetMinute()*60+two.GetHour()*60*60;if((onetemp-twotemp)<0){h=m=s=0;}else{h=(onetemp-twotemp)/60/60;m=((onetemp-twotemp)-h*60*60)/60;84 s=((onetemp-twotemp)-h*60*60)-m*60;}CTimetime(yy,mm,dd,h,m,s);returntime;}创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGCHECK,将对话框标题改为“考勤管理”。向对话框中添加一个复选框控件、3个静态文本框控件、3个下拉列表框控件、4个按钮控件和一个列表视图控件。设置复选框的Caption属性为“显示全部”。分别设置文本框的Caption属性为“年”、“月”和“员工”,分别设置按钮的Caption属性为“添加”、“修改”、“删除”和“退出”。添加UpdateList方法,用于更新显示人员的考勤信息,实现代码如下:voidCCheckManage::UpdateList(){this->UpdateData();CStringstr;if(m_check)str.Format("Select*Fromtab_check");else{CStringStarttime,EndTime;Starttime=m_yy+"-"+m_mm+"-1";84 EndTime.Format("DATEADD(month,1,"%s")",Starttime);if(m_emp=="(全部)")str.Format("Select*Fromtab_checkwherecheckdatebetween"%s"and%s",Starttime,EndTime);elsestr.Format("Select*Fromtab_checkwherename="%s"andcheckdatebetween"%s"and%s",m_emp,Starttime,EndTime);}CADODataSetdataset;dataset.SetConnection(::GetConnection());dataset.Open(str);m_list.DeleteAllItems();for(inti=0;iItem["autoid"]->Value;m_list.InsertItem(i,"");m_list.SetItemData(i,data);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["name"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["ondutytime"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["offdutytime"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["ontime"]->Value);84 m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["offtime"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["leave"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["onleave"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["offleave"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["latetime"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["leaveearly"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["memo"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["checkdate"]->Value);dataset.Next();}}向对话框中添加OnInitDialog方法,在对话框初始化时设置列表视图控件的表头和列宽度,以及查询条件选择控件的设置,实现代码如下:BOOLCCheckManage::OnInitDialog(){CDialog::OnInitDialog();inti=0;m_list.InsertColumn(i,"人员姓名");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"上班时间");84 m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"下班时间");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"上班考勤时间");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"下班考勤时间");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"请假类别");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"请假起始时间");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"请假结束时间");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"迟到时间");m_list.SetColumnWidth(i++,100);84 m_list.InsertColumn(i,"早退时间");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"备注");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"考勤日期");m_list.SetColumnWidth(i++,130);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_check=true;this->UpdateData(false);intcuryear,curmonth;CTimetime(CTime::GetCurrentTime());curyear=time.GetYear();curmonth=time.GetMonth();charvalue[10];for(inty=2000;y<2100;y++){_itoa(y,value,10);m_cyy.InsertString(y-2000,value);84 }m_cyy.SetCurSel(curyear-2000);for(intn=1;n<=12;n++){_itoa(n,value,10);m_cmm.InsertString(n-1,value);}m_cmm.SetCurSel(curmonth-1);CADODataSetdataset;dataset.SetConnection(::GetConnection());dataset.Open("Select*Fromtab_Employees");m_cemp.InsertString(0,"(全部)");for(intindex=1;index<=dataset.GetRecordCount();index++){m_cemp.InsertString(index,(_bstr_t)dataset.GetFields()->Item["emp_name"]->Value);dataset.Next();}m_cemp.SetCurSel(0);UpdateList();84 returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}添加OnAdd方法,用于向考勤信息表中添加员工的日考勤数据,实现代码如下:voidCCheckManage::OnAdd(){CCheckEditcheckedit;if(checkedit.DoModal()==IDOK){CStringtime;CStringstr="Selecttop1*Fromtab_check";CADODataSetdataset;dataset.SetConnection(::GetConnection());dataset.Open(str);dataset.AddNew();dataset.SetFieldValue("name",(_bstr_t)checkedit.m_name);dataset.SetFieldValue("checkdate",(_bstr_t)checkedit.m_datecheck.Format("%Y-%m-%d"));84 dataset.SetFieldValue("ondutytime",(_bstr_t)checkedit.m_timeonduty.Format("%H:%M:%S"));dataset.SetFieldValue("offdutytime",(_bstr_t)checkedit.m_timeoffduty.Format("%H:%M:%S"));dataset.SetFieldValue("ontime",(_bstr_t)checkedit.m_timeon.Format("%H:%M:%S"));dataset.SetFieldValue("offtime",(_bstr_t)checkedit.m_timeoff.Format("%H:%M:%S"));dataset.SetFieldValue("leave",(_bstr_t)checkedit.m_leave);dataset.SetFieldValue("onleave",(_bstr_t)checkedit.m_timeonleave.Format("%H:%M:%S"));dataset.SetFieldValue("offleave",(_bstr_t)checkedit.m_timeoffleave.Format("%H:%M:%S"));dataset.SetFieldValue("memo",(_bstr_t)checkedit.m_memo);CTimelatetime=DecTime(checkedit.m_timeon,checkedit.m_timeonduty);time.Format("%d:%d:%d",latetime.GetHour(),latetime.GetMinute(),latetime.GetSecond());84 dataset.SetFieldValue("latetime",(_bstr_t)time);CTimeleaveearly=DecTime(checkedit.m_timeoff,checkedit.m_timeoffduty);time.Format("%d:%d:%d",leaveearly.GetHour(),leaveearly.GetMinute(),leaveearly.GetSecond());dataset.SetFieldValue("leaveearly",(_bstr_t)time);dataset.Save();UpdateList();}}添加OnEdit方法,用于编辑考勤信息表中员工的日考勤数据,实现代码如下:voidCCheckManage::OnEdit(){if(m_list.GetSelectionMark()==-1)return;intid=m_list.GetItemData(m_list.GetSelectionMark());CCheckEditcheckedit;CStringstr;str.Format("Select*Fromtab_checkwhereautoid=%d",id);CADODataSetdataset;84 dataset.SetConnection(::GetConnection());dataset.Open(str);checkedit.m_name=(char*)(_bstr_t)dataset.GetFields()->Item["name"]->Value;checkedit.m_timeonduty=GetTimeForStr((char*)(_bstr_t)dataset.GetFields()->Item["ondutytime"]->Value);checkedit.m_timeoffduty=GetTimeForStr((char*)(_bstr_t)dataset.GetFields()->Item["offdutytime"]->Value);checkedit.m_timeon=GetTimeForStr((char*)(_bstr_t)dataset.GetFields()->Item["ontime"]->Value);checkedit.m_timeoff=GetTimeForStr((char*)(_bstr_t)dataset.GetFields()->Item["offtime"]->Value);checkedit.m_leave=(char*)(_bstr_t)dataset.GetFields()->Item["leave"]->Value;checkedit.m_timeonleave=GetTimeForStr((char*)(_bstr_t)dataset.GetFields()->Item["onleave"]->Value);checkedit.m_timeoffleave=GetTimeForStr((char*)(_bstr_t)dataset.GetFields()->Item["offleave"]->Value);checkedit.m_memo=(char*)(_bstr_t)dataset.GetFields()->Item["memo"]->Value;checkedit.m_datecheck=GetDateForStr((char*)(_bstr_t)dataset.GetFields()->Item["checkdate"]->Value);84 if(checkedit.DoModal()==IDOK){CStringtime;dataset.SetFieldValue("name",(_bstr_t)checkedit.m_name);dataset.SetFieldValue("checkdate",(_bstr_t)checkedit.m_datecheck.Format("%Y-%m-%d"));dataset.SetFieldValue("ondutytime",(_bstr_t)checkedit.m_timeonduty.Format("%H:%M:%S"));dataset.SetFieldValue("offdutytime",(_bstr_t)checkedit.m_timeoffduty.Format("%H:%M:%S"));dataset.SetFieldValue("ontime",(_bstr_t)checkedit.m_timeon.Format("%H:%M:%S"));dataset.SetFieldValue("offtime",(_bstr_t)checkedit.m_timeoff.Format("%H:%M:%S"));dataset.SetFieldValue("leave",(_bstr_t)checkedit.m_leave);dataset.SetFieldValue("onleave",(_bstr_t)checkedit.m_timeonleave.Format("%H:%M:%S"));84 dataset.SetFieldValue("offleave",(_bstr_t)checkedit.m_timeoffleave.Format("%H:%M:%S"));dataset.SetFieldValue("memo",(_bstr_t)checkedit.m_memo);CTimelatetime=DecTime(checkedit.m_timeon,checkedit.m_timeonduty);time.Format("%d:%d:%d",latetime.GetHour(),latetime.GetMinute(),latetime.GetSecond());dataset.SetFieldValue("latetime",(_bstr_t)time);CTimeleaveearly=DecTime(checkedit.m_timeoffduty,checkedit.m_timeoff);time.Format("%d:%d:%d",leaveearly.GetHour(),leaveearly.GetMinute(),leaveearly.GetSecond());dataset.SetFieldValue("leaveearly",(_bstr_t)time);dataset.Save();UpdateList();}}添加OnDelete方法,用于删除当前选择的考勤记录,实现代码如下:84 voidCCheckManage::OnDelete(){if(MessageBox("是否删除此记录!","提示",MB_YESNO|MB_ICONWARNING)==IDYES){if(m_list.GetSelectionMark()==-1)return;intid=m_list.GetItemData(m_list.GetSelectionMark());CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr;str.Format("select*fromtab_checkwhereautoid=%d",id);dataset.Open(str);dataset.Delete();dataset.Save();UpdateList();}}1.1.1考勤汇总查询模块设计84 考勤汇总查询模块用于日常录入的员工考勤信息根据时间范围和人员进行汇总查询,并显示员工的出勤天数、迟到天数、请假天数等。考勤汇总界面如图4-10所示。在该模块中汇总查询时通过SQL语句来实现的,这个汇总查询主要通过一些SQL子句组成一个SQL汇总查询语句。这些子句分别用来获取员工工作总天数、迟到总天数、早退总天数、病假总天数和事假总天数。在进行天数计算时将每天的考勤时间转换成秒,先计算所使用的总秒数,最后再根据总秒数计算出天数。考勤汇总查询的SQL语句如下:CStringstr,temp,where,datestr,StartDate,EndDate;StartDate=m_yy+"-"+m_mm+"-1";EndDate.Format("DATEADD(month,1,"%s")",StartDate);datestr.Format("between"%s"and%s",StartDate,EndDate);//*/temp+="selectemp.emp_name,ROUND(isnull(works.workday,0),2)";temp+="workday,ROUND(isnull(lates.lateday,0),2)lateday,";temp+="ROUND(isnull(leaveearlys.leaveearlyday,0),2)leaveearlyday,";temp+="ROUND(isnull(bjdays.bjday,0),2)bjday,ROUND(isnull(sjdays.sjday,0),2)sjday";temp+="fromtab_Employeesemp";temp+="leftjoin";84 temp+="(selectsum(DATEDIFF(second,ontime,offtime))/60.0/60.0/8.0";temp+="asworkday,nameFromtab_checkwherecheckdate%sgroupbyname)";temp+="worksonemp.emp_name=works.name";temp+="leftjoin";temp+="(select(sum(DATEPART(Hour,latetime))*60*60+";temp+="sum(DATEPART(minute,latetime))*60+sum(DATEPART(second,latetime)))";temp+="/60.0/60.0/8.0aslateday,nameFromtab_checkwherecheckdate";temp+="%sgroupbyname)latesonemp.emp_name=lates.name";temp+="leftjoin";temp+="(select(sum(DATEPART(Hour,leaveearly))*60*60+";temp+="sum(DATEPART(minute,leaveearly))*60+sum(DATEPART(second,leaveearly)))";temp+="/60.0/60.0/8.0asleaveearlyday,nameFromtab_checkwhere";temp+="checkdate%sgroupbyname)leaveearlysonemp.emp_name";temp+="=leaveearlys.name";temp+="leftjoin";temp+="(selectisnull(sum(DATEDIFF(second,onleave,offleave))";temp+="/60.0/60.0/8.0,0)asbjday,nameFromtab_checkwhere";84 temp+="leave="病假"andcheckdate%sgroupbyname)";temp+="bjdaysonemp.emp_name=bjdays.name";temp+="leftjoin";temp+="(selectisnull(sum(DATEDIFF(second,onleave,offleave))";temp+="/60.0/60.0/8.0,0)assjday,nameFromtab_checkwhere";temp+="leave="事假"andcheckdate%sgroupbyname)";temp+="sjdaysonemp.emp_name=sjdays.name";temp+="%s";//*/创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGCHECKSUM,将对话框标题改为“考勤汇总查询”。想对话框中添加3个静态文本框控件、3个下拉列表框控件、一个按钮控件和一个列表视图控件。分别设置文本框的Caption属性为“年”、“月”和“员工”,设置按钮的Caption属性为“退出”。添加UpdateList方法,用于更新考勤汇总查询的数据,实现代码如下:voidCCheckSum::UpdateList(){m_list.DeleteAllItems();this->UpdateData();CADODataSetdataset;dataset.SetConnection(::GetConnection());CStringstr,temp,where,datestr,StartDate,EndDate;84 StartDate=m_yy+"-"+m_mm+"-1";EndDate.Format("DATEADD(month,1,"%s")",StartDate);datestr.Format("between"%s"and%s",StartDate,EndDate);//*/temp+="selectemp.emp_name,ROUND(isnull(works.workday,0),2)";temp+="workday,ROUND(isnull(lates.lateday,0),2)lateday,";temp+="ROUND(isnull(leaveearlys.leaveearlyday,0),2)leaveearlyday,";temp+="ROUND(isnull(bjdays.bjday,0),2)bjday,ROUND(isnull(sjdays.sjday,0),2)sjday";temp+="fromtab_Employeesemp";temp+="leftjoin";temp+="(selectsum(DATEDIFF(second,ontime,offtime))/60.0/60.0/8.0";temp+="asworkday,nameFromtab_checkwherecheckdate%sgroupbyname)";temp+="worksonemp.emp_name=works.name";temp+="leftjoin";temp+="(select(sum(DATEPART(Hour,latetime))*60*60+";temp+="sum(DATEPART(minute,latetime))*60+sum(DATEPART(second,latetime)))";temp+="/60.0/60.0/8.0aslateday,nameFromtab_checkwhere84 checkdate";temp+="%sgroupbyname)latesonemp.emp_name=lates.name";temp+="leftjoin";temp+="(select(sum(DATEPART(Hour,leaveearly))*60*60+";temp+="sum(DATEPART(minute,leaveearly))*60+sum(DATEPART(second,leaveearly)))";temp+="/60.0/60.0/8.0asleaveearlyday,nameFromtab_checkwhere";temp+="checkdate%sgroupbyname)leaveearlysonemp.emp_name";temp+="=leaveearlys.name";temp+="leftjoin";temp+="(selectisnull(sum(DATEDIFF(second,onleave,offleave))";temp+="/60.0/60.0/8.0,0)asbjday,nameFromtab_checkwhere";temp+="leave="病假"andcheckdate%sgroupbyname)";temp+="bjdaysonemp.emp_name=bjdays.name";temp+="leftjoin";temp+="(selectisnull(sum(DATEDIFF(second,onleave,offleave))";temp+="/60.0/60.0/8.0,0)assjday,nameFromtab_checkwhere";temp+="leave="事假"andcheckdate%sgroupbyname)";temp+="sjdaysonemp.emp_name=sjdays.name";temp+="%s";//*///84 where.Format("whereemp.emp_name="%s"",m_emp);if(m_emp=="(全部)")str.Format(temp,datestr,datestr,datestr,datestr,datestr,"");elsestr.Format(temp,datestr,datestr,datestr,datestr,datestr,where);//*/dataset.Open(str,adLockUnspecified);for(inti=0;iItem["emp_name"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["workday"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["lateday"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["leaveearlyday"]->Value);84 m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["bjday"]->Value);m_list.SetItemText(i,n++,(_bstr_t)dataset.GetFields()->Item["sjday"]->Value);dataset.Next();}//*/}向对话框中添加OnInitDialog方法,在对话框初始化时设置列表视图控件的表头和列宽度,以及汇总查询条件选择控件的设置,实现代码如下:BOOLCCheckSum::OnInitDialog(){CDialog::OnInitDialog();inti=0;m_list.InsertColumn(i,"人员姓名");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"工作总天数");m_list.SetColumnWidth(i++,100);84 m_list.InsertColumn(i,"迟到总天数");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"早退总天数");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"病假总天数");m_list.SetColumnWidth(i++,100);m_list.InsertColumn(i,"事假总天数");m_list.SetColumnWidth(i++,100);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);intcuryear,curmonth;CTimetime(CTime::GetCurrentTime());curyear=time.GetYear();curmonth=time.GetMonth();charvalue[10];for(inty=2000;y<2100;y++){_itoa(y,value,10);84 m_cyy.InsertString(y-2000,value);}m_cyy.SetCurSel(curyear-2000);for(intn=1;n<=12;n++){_itoa(n,value,10);m_cmm.InsertString(n-1,value);}m_cmm.SetCurSel(curmonth-1);CADODataSetdataset;dataset.SetConnection(::GetConnection());dataset.Open("Select*Fromtab_Employees");m_cemp.InsertString(0,"(全部)");for(intindex=1;index<=dataset.GetRecordCount();index++){m_cemp.InsertString(index,(_bstr_t)dataset.GetFields()->Item["emp_name"]->Value);dataset.Next();}m_cemp.SetCurSel(0);84 UpdateList();returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}84 第1章总结与展望考勤管理系统的开发过程,历经调研、系统分析、系统设计、系统实施以及开发文档的编写.整个过程遵循以UseCase为驱动的、体系构架为核心的面向对象分析和设计过程.在调研阶段,通过与部分企业的交流沟通和网络的综合搜索,了解目标系统的业务,挖掘其具体需求,最终整理出系统需求和拟建系统的模型.系统分析阶段,根据调研阶段整理出的文档,确定系统UseCase和活动者,描述各个UseCase,形成详细报告,定义系统构架.在此基础上,划分各个UseCase的开发迭代顺序,并按照这个顺序对每一个UseCase做近一步的分析并形成相关文挡.这个阶段的工作结束后,整个系统的大概框架浮现出来.系统设计阶段,根据系统分析阶段的工作成果,确定系统内核心元素,引入外围元素,优化经过系统分析得来的框架内的组织结构.在近一步的设计工作中,将引入的外围元素与系统内的核心元素关联起来,完成外围元素对核心元素的支撑作用.在更进一步的设计工作中,对系统核心元素进行更加详细的刻画,用以指导系统实施阶段的工作.至此,整个系统的框架已经清晰化.系统实施阶段,以分析设计阶段的工作成果为指导,选择开发工具,设定系统运行环境,进行编码工作,制定系统测试计划,进行系统测试.相关文档编写,该阶段工作主要是制定系统维护计划,编写系统使用说明,对系统综合性能的评价.历经以上几个阶段,系统开发完毕,主要成果有考勤管理系统.本系统操作简便快捷,系统界面美观.新的考勤管理系统的实施,不仅把HR人员从考勤的具体事务中解放出来,而且也推动了全员对人事管理的参与和互动.HR人员的可以把工作重心可以放在服务员工、支持公司管理层的战略决策上,放在公司最重要的资产—员工和员工的集体智慧的管理上等核心业务上来.系统基本满足了考试业务和系统的目标需求,但还有一些不足之处有待完善,由于本人网络知识的不足,导致了系统弱化了对网络的依赖,84 此次毕业设计,使我把以往在书本上学到的知识应用于实践,充分的体会到了一个软件开发的全过程,对此,使我收益非浅.对于系统的不足之处,在今后的学习生活中,会进一步改善和加强.(没有标注的地方请用格式刷查看)84 参考文献[1]郝建华,江修富,许斌.GMSK调制解调的数字实现方法[J].装备指挥技术学院学报,2002,第13卷,第6期:91-93.[2]娄莉.GMSK数字调制的仿真与分析[J].现代电子技术,2004,第18期:66-68.[3]李振华,谢军,王宇.GMSK全数字调制[J].空间电子技术,2002,第2期:23-28.[4]樊昌信,张甫翊,徐炳祥,吴成柯.通信原理[M].北京市:国防工业出版社,2001.[5]求是科技,CPLD、CPLD应用开发技术与工程实践[M].北京市:人民邮电出版社,2005.[6]StephenPrata,C++PrimerPlus中文版(第五版)[M].北京市:人民邮电出版社,2005.[7]宋大雷,张东来,徐殿国,王炎.IEEE1284标准介绍[J].电子计算机与外部设备,第22卷,第1期,21-23.[8]徐宏慧,高有行.IEEE1284并口协议分析[J].计算机工程与设计,2002,第23卷,第9期,11-14.[9]姚放吾.IEEE1284并行接口标准与应用[J].计算机应用,2001,第21卷,第1期,52-54.[10]张晨燕,吕淑琴.增强型并行口(EPP)设计原理[J].石家庄经济学院学报,2000,第23卷,第6期,647-650.[11]SenjyuT,TakaraH,UezatoK.One-Hour-Aheadloadforecastingusingneuralnetwork[J].IEEETrans.onPowerSystems,2002,17(1),113-118.[12]VapnikVN.Thenatureofstatisticallearningtheory[M].NewYork:Springer,1999.84 附录(1)设计实验用板(2)设计原理图 学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。学位论文作者(本人签名):年月日学位论文出版授权书本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。论文密级:□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)作者签名:_______导师签名:______________年_____月_____日_______年_____月_____日 独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:二〇一〇年九月二十日 毕业设计(论文)使用授权声明本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:二〇一〇年九月二十日 致谢时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。最后,我要特别感谢我的导师赵达睿老师、和研究生助教熊伟丽老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:      学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日 指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日 评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日 教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日 学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。学位论文作者(本人签名):年月日学位论文出版授权书本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。论文密级:□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)作者签名:_______导师签名:______________年_____月_____日_______年_____月_____日 独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:二〇一〇年九月二十日 毕业设计(论文)使用授权声明本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:二〇一〇年九月二十日 致谢时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。最后,我要特别感谢我的导师***老师、和研究生助教***老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 致谢这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。即将结束*大学习生活,我感谢****大学提供了一次在农大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。本科生毕业设计(论文)规范化要求第一部分学生应遵守以下规范要求一、毕业设计论文说明1.毕业设计论文独立装订成册,内容包括:(1)封面(题目、学生姓名、指导教师姓名等)(2)中、外文内容摘要(3)正文目录(含页码) (1)正文(开始计算页码)(2)致谢(3)参考文献(4)附录2.中、外文内容摘要包括:课题来源,主要设计,实验方法,本人主要完成的成果。要求不少于400汉字,并译成外文。3.毕业设计论文页数为45页-50页。4.纸张要求:毕业设计说明书(论文报告)应用标准B5纸单面打字成文。5.文字要求:文字通顺,语言流畅,无错别字。6.图纸要求:毕业设计图纸应使用计算机绘制。图纸尺寸标注应符合国家标准。图纸应按“规范”叠好。7.曲线图表要求:所有曲线、图表、流程图、程序框图、示意图等不得徒手画,必须按国家规定标准或工程要求绘制。8.参考文献、资料要求:参考文献总数论文类不少于10篇、,应有外文参考文献。文献应列出序号、作者、文章题目、期刊名、年份、出版社、出版时间等。二、外文翻译1.完成不少于2万印刷符的外文翻译。译文不少于5千汉字。2.译文内容必须与题目(或专业内容)有关,由指导教师在下达任务书时指定。 3.译文应于毕业设计中期2月底前完成,交指导教师批改。4.将原文同译文统一印成B5纸规格装订成册,原文在前,译文在后。三、形式审查5月15日前,将毕业设计论文上交指导教师,审查不合格者,不能参加答辩。四、准备答辩答辩前三天,学生要将全部材料(包括光盘、论文)统一交指导教师。关于毕业论文格式的要求为方便统一、规范论文格式,现将学院的相关要求做如下强调、补充:1.基本要求纸型:B5纸(或16开),单面打印;页边距:上2.54cm,下2.54cm,左2.5cm,右2.5cm;页眉:1.5cm,页脚1.75cm,左侧装订正文字体:汉字和标点符号用“宋体”,英文和数字用“TimesNewRoman”,字号小四;图号1-1,指第1章第1个图在图的前部要有文字说明(如图1-1所示)表号3-5,指第3章第5个表在表的前部要有文字说明(如表3-5所示)图、表的标注字体大小是五号宋体行距:固定值20;页码:居中、小五、底部。2.封面格式封皮:大连理工大学城市学院(二号、黑体、居中)本科生毕业设计(论文)(二号、黑体、居中) 学院:(四号、黑体、居中、下划线:电子与自动化学院)专业:(四号、黑体、居中、下划线、专业名字之间无空格)学生:(四号、黑体、居中、下划线,名字是2个字的中间空1个字、3个或3个以上字的中间无空格)指导教师:(四号、黑体、居中、下划线,名字是2个字的中间空1个字、3个或3个以上字的中间无空格,两位指导教师的中间用顿号“、”)完成日期:(四号、黑体、居中、下划线,如:2009年5月25日)(注意:5个下划线两端也是对齐的,单倍行距)内封:大连理工大学城市学院本科生毕业设计(论文)(四号、黑体)题目(二号、黑体、居中);总计毕业设计(论文)页(五号、宋体)表格表(五号、宋体)插图幅(五号、宋体)(注意:页数正常不少于40页,优秀论文原则上不少于45页)3.中外文摘要中文摘要:标题“摘要”(三号、黑体、居中、中间空1个字)正文(不少于400字)关键词(五号、黑体):3-5个主题词(五号),中间用分号“;”隔开。外文摘要(另起一页):标题“Abstract”(三号、黑体、居中)正文(必须用第三人称)关键词:Keywords(五号、黑体):3-5个主题词(五号)与中文关键词对应,中间用分号“;”隔开。4.目录标题“目录”(三号、黑体、居中);章标题(四号、黑体、居左);节标题(小四、宋体);页码(小四、宋体);二、三级目录分别缩近1和2个字;四级目录不在“目录”中体现,在正文中也不是单独一行,可以黑体(没有句号),然后空2个字接正文;注意:正文中每章开头要另起一页;“目录”下方中间的页码和摘要一样统一用罗马字,顺接摘要的。 摘要目录加页眉5.论文正文页眉:论文题目(居中、小五、黑体);章标题(三号、黑体、居中);节标题(四号、黑体、居左);正文程序用“TimesNewRoman”,字号小四;6.参考文献标题:“参考文献”(小四、黑体、居中)参考文献的著录,按文稿中引用顺序排列,并注意在文内相应位置用上标标注,如:……的函数。示例如下:(字体为五号、宋体)期刊类:[序号]作者1,作者2,……作者n。文章名。期刊名(版本),出版年,卷次(期次)。页次图书类:[序号]作者1,作者2,……作者n。书名。版本。出版地:出版者,出版年。页次会议论文集:[序号]作者1,作者2,……作者n。论文集名。出版地:出版者,出版年。页次网上资料:[序号]作者1,作者2,……作者n。文章名。网址。发表时间7.其它量和单位的使用:必须符合国家标准规定,不得使用已废弃的单位(如高斯(G和Gg)、亩、克分子浓度(M)、当量能度(N)等)。量和单位不用中文名称,而用法定符号表示。图表及公式:插图宽度一般不超过10cm,表名(小四)置上居中,图名(小四)置下居中。标目中物理量的符号用斜体,单位符号用正体,坐标标值线朝里。标值的数字尽量不超过3位数,或小数点以后不多于1个“0”。如用30Km代替30000m,用5µg代替0.005mg等,并与正文一致。图和表的编号从前至后顺序排列,图的编号及说明位于图的下方,居中;表的编号及说明位于表的上方,居中。公式编号加圆括号,居行尾。图表中的字体不应大于正文字体。注意:图表标题中的数字也是“TimesNewRoman”。8.论文依次包括:封皮、内封、中文摘要、英文摘要、目录、正文、结论、致谢、参考文献、(附录),不要落项。9.注意:上面没有说“加粗”的“黑体”,均为“黑体不加粗”。补充:1.答辩要求:自述15分钟,回答问题10分钟,自述要求使用PPT 答辩内容:1).论文题目2).设计内容3).设计方案4).如何完成设计工作原理软件或硬件设计制作调试安装5).存在不足,今后努力的方向6).致谢3.最后上交学生装订好的论文、光盘、记录表、成绩单4.光盘里的文件夹命名为:学号_姓名_年级专业班级文件夹里包括的文件有:论文、ppt、英文翻译1)论文的文件名格式:学号_姓名_年级专业班号_题目(论文)_完成日期doc2)ppt的文件名格式:学号_姓名_年级专业班号_题目(ppt)_完成日期ppt3)英文翻译的文件名格式:学号_姓名_年级专业班号_题目(英文翻译)_完成日期doc例如:答辩问题5个,侧重总体思路一个软件或硬件一个翻译一个其他2个