面向对象课程设计(濮)
《面向对象程序设计》课程设计

《面向对象程序设计》课程设计在当今数字化的时代,计算机程序设计的重要性日益凸显。
而面向对象程序设计作为一种重要的编程范式,在软件开发中发挥着关键作用。
本次课程设计旨在深入探究面向对象程序设计的原理、方法和应用,培养学生的编程思维和实践能力。
一、课程目标1、掌握面向对象的基本概念,如类、对象、封装、继承和多态等。
2、学会使用面向对象的方法进行问题分析和程序设计。
3、能够运用常见的编程语言(如 Java、C++等)实现面向对象的程序。
4、培养团队合作精神和解决实际问题的能力。
二、课程内容1、面向对象的基本概念类与对象的定义和关系封装的实现和意义继承的概念和分类(单继承、多继承)多态的表现形式(重载、覆盖)2、面向对象的设计原则单一职责原则开放封闭原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则3、常用的设计模式创建型模式(工厂方法模式、抽象工厂模式、单例模式等)结构型模式(适配器模式、桥接模式、装饰器模式等)行为型模式(策略模式、责任链模式、观察者模式等)4、编程语言的实践选择一种主流的编程语言(如 Java 或 C++),进行实际的编程练习。
完成从简单的控制台应用程序到复杂的图形用户界面应用程序的开发。
三、课程实施1、理论教学通过课堂讲解、案例分析和讨论,让学生理解面向对象程序设计的基本概念和原理。
2、实践教学安排实验课程,让学生在实际操作中掌握编程语言的使用和面向对象程序的开发。
布置课程设计项目,要求学生以小组形式完成一个具有一定规模和复杂度的应用程序。
3、教学资源提供相关的教材、参考书籍和在线资源,方便学生自主学习。
利用在线教学平台,发布教学资料、作业和答疑。
四、课程考核1、平时成绩包括考勤、课堂表现、作业完成情况等。
2、实验成绩根据实验报告和实验项目的完成情况进行评定。
3、课程设计成绩从项目的需求分析、设计方案、代码实现、测试结果和团队协作等方面进行综合评价。
五、课程设计项目示例以“学生管理系统”为例,介绍面向对象程序设计的应用。
面向对象课程设计报告

面向对象课程设计报告一、引言面向对象课程设计是计算机科学与技术专业的一门重要课程,通过设计和实现一个完整的面向对象程序,培养学生的面向对象设计思维和编程能力。
本报告旨在介绍我所设计的面向对象课程设计,包括设计背景、需求分析、设计方案、实现细节和测试验证等内容。
二、设计背景本次面向对象课程设计的背景是设计一个学生信息管理系统。
随着教育事业的发展,学校中的学生数量不断增加,学生信息的管理越来越复杂。
传统的学生信息管理方式已经无法满足现代教育管理的需求,需要采用更加高效和智能的信息管理系统。
三、需求分析学生信息管理系统需要具备以下功能:1. 学生信息维护:包括学生基本信息的录入、修改和删除等操作。
2. 成绩管理:包括成绩录入、查询和统计等功能。
3. 课程管理:包括课程信息的录入、查询和修改等操作。
4. 成绩报表生成:根据学生成绩生成报表,方便教师和学校进行评估和分析。
5. 权限管理:不同用户有不同的权限,需要进行用户和权限管理。
四、设计方案根据需求分析,我设计了以下类:1. Student类:表示学生信息,包含学生id、姓名、性别、年龄等属性。
2. Course类:表示课程信息,包含课程id、名称、教师等属性。
3. Grade类:表示学生成绩,包含学生id、课程id、分数等属性。
4. User类:表示系统用户,包含用户id、用户名、密码等属性。
5. Report类:表示成绩报表,包含学生id、课程id、平均分等属性。
6. System类:表示学生信息管理系统,包含各种操作方法。
五、实现细节1. 数据存储:使用数据库来存储学生信息、课程信息、成绩信息和用户信息等数据。
2. 数据库设计:根据类的属性设计数据库表结构,每个类对应一个表,表中的字段对应类的属性。
3. 系统界面:设计一个图形界面,方便用户进行操作,包括学生信息录入、成绩查询、课程管理等功能。
4. 系统功能实现:根据需求设计各个功能的实现方法,包括学生信息维护、成绩管理、课程管理等操作。
面向对象课程设计

面向对象 课程设计一、课程目标知识目标:1. 让学生掌握面向对象编程的基本概念,如类、对象、属性、方法等;2. 使学生了解面向对象编程的特点,如封装、继承、多态等;3. 帮助学生理解面向对象编程在实际应用中的优势。
技能目标:1. 培养学生运用面向对象编程思想进行问题分析、设计和解决问题的能力;2. 让学生熟练使用面向对象编程语言(如Java、C++等)编写简单的程序;3. 提高学生在团队项目中运用面向对象技术进行协作的能力。
情感态度价值观目标:1. 培养学生对计算机科学的兴趣和热爱,增强其学习动力;2. 培养学生具备良好的编程习惯,注重代码规范和可读性;3. 培养学生面对编程挑战时的积极态度和解决困难的信心。
课程性质:本课程为计算机科学学科的一门核心课程,旨在帮助学生建立面向对象的编程思想,提高编程技能。
学生特点:学生已具备一定的编程基础,具有一定的逻辑思维能力,但面向对象编程概念尚不熟悉。
教学要求:结合学生特点,通过讲解、实践和案例分析,使学生在理解面向对象编程基本概念的基础上,能够运用所学知识解决实际问题。
教学过程中注重培养学生的动手能力和团队协作能力,提高其编程兴趣和自信心。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. 面向对象基本概念:类、对象、属性、方法、构造函数等;教材章节:第一章 面向对象编程基础2. 面向对象特性:封装、继承、多态;教材章节:第二章 面向对象特性3. 面向对象设计原则:单一职责、开闭原则、里氏替换原则等;教材章节:第三章 面向对象设计原则4. 面向对象编程语言:以Java为例,介绍类与对象的定义、方法的使用、继承与多态的实现;教材章节:第四章 Java面向对象编程5. 面向对象编程实例分析:分析并实现一个简单的面向对象程序,如学生管理系统;教材章节:第五章 面向对象编程实例6. 面向对象编程实践:通过团队项目,培养学生运用面向对象技术进行协作和解决问题的能力;教材章节:第六章 面向对象编程实践教学内容安排和进度:第1周:面向对象基本概念;第2周:面向对象特性;第3周:面向对象设计原则;第4周:Java面向对象编程;第5周:面向对象编程实例分析;第6-8周:面向对象编程实践。
复旦 面向对象程序设计 课程大纲

复旦面向对象程序设计课程大纲面向对象程序设计是计算机科学与技术专业的一门重要课程,主要教授面向对象编程的基本概念、原则和技术,帮助学生掌握面向对象程序设计的方法和技巧。
本课程旨在培养学生分析和解决问题的能力,提高其编程水平和设计能力,为其今后的软件开发工作做好基础准备。
一、课程简介1. 课程名称:面向对象程序设计2. 授课对象:计算机科学与技术专业的学生3. 先修课程:基本程序设计4. 学时安排:理论课程+实践课程5. 授课目标:培养学生面向对象程序设计的基本能力和方法二、课程内容1. 面向对象编程的基本概念2. 面向对象程序设计的原则3. 类和对象的概念及使用4. 继承与多态的实现5. 接口和抽象类的应用6. 异常处理机制7. 泛型编程8. 集合类的使用9. IO流的应用10. GUI编程基础三、教学方法1. 理论课程:讲授基本概念、原则和技术2. 实践课程:编程实践,提高学生的实际操作能力3. 课程作业:设计和实现小型项目,锻炼学生的综合能力4. 课程实验:进行编程实验,巩固学生的理论知识四、课程评估1. 平时成绩:课堂表现、作业完成情况2. 期中考试:考察学生对课程知识的掌握程度3. 期末考试:考核学生的综合能力和实际应用能力4. 课程设计:设计和实现一个小型项目,综合应用课程所学知识五、教学参考书目1. 《Java面向对象程序设计》2. 《C++面向对象程序设计》3. 《Python面向对象程序设计》4. 《C#面向对象程序设计》5. 《面向对象程序设计实践》六、课程考核标准1. 学生应能掌握面向对象程序设计的基本概念和技术2. 学生应能设计和实现一个小型项目,展示其面向对象程序设计的能力3. 学生应能灵活运用面向对象编程的方法和技巧解决实际问题4. 学生应能理解和应用面向对象程序设计的原则和规范面向对象程序设计课程旨在培养学生的逻辑思维能力、编程实践能力和团队合作能力,为其未来的软件开发工作打下坚实的基础。
面向对象方法课程设计

面向对象方法课程设计一、教学目标本课程的教学目标是使学生掌握面向对象的基本概念和方法,能够运用面向对象的思想分析和设计问题,具备一定的软件设计能力。
1.了解面向对象的基本概念,如对象、类、继承、封装、多态等。
2.掌握面向对象的程序设计方法,能够运用面向对象的思想解决实际问题。
3.能够使用面向对象的编程语言(如Java、C++等)进行程序设计。
4.具备分析问题、设计类和对象的能力,能够编写结构清晰、可维护的代码。
情感态度价值观目标:1.培养学生的团队合作意识,能够积极参与小组讨论和项目开发。
2.培养学生对软件工程的热爱和敬业精神,提高他们对编程工作的认识和兴趣。
二、教学内容本课程的教学内容主要包括面向对象的基本概念、面向对象的程序设计方法、类的创建和对象的使用、继承和多态的运用等。
具体的教学大纲如下:1.面向对象的基本概念:介绍对象、类、封装、继承、多态等基本概念,使学生了解面向对象的基本思想。
2.面向对象的程序设计方法:讲解如何使用面向对象的思想分析和设计问题,如何将面向对象的概念应用到实际的编程中。
3.类的创建和对象的使用:介绍如何创建类和对象,如何通过类的属性和方法实现对对象的操作。
4.继承和多态的运用:讲解继承的概念和作用,如何通过继承实现代码的复用;介绍多态的原理和应用,使学生能够灵活运用多态解决问题。
三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解面向对象的基本概念和程序设计方法,使学生掌握相关知识。
2.讨论法:学生进行小组讨论,分享对面向对象的理解和应用经验,提高学生的团队合作能力。
3.案例分析法:分析实际项目中的面向对象设计案例,使学生了解面向对象在实际工作中的应用。
4.实验法:安排编程实验,让学生动手实践,巩固面向对象程序设计的技能。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
面向对象程序设计课程教案

面向对象程序设计课程教案现代计算机科学领域中,面向对象程序设计(Object-oriented programming, OOP)被广泛应用于软件开发中。
作为一种软件设计范式,面向对象程序设计以对象作为程序的基本构建单元,通过组合对象、继承、封装等机制,使得软件开发更加高效、可维护和可重用。
本文旨在设计一份面向对象程序设计课程的教案,以帮助学生更好地理解和运用面向对象程序设计的原理和方法。
一、课程概述面向对象程序设计课程旨在帮助学生掌握面向对象程序设计的基本概念、原则和设计方法,培养学生的面向对象程序设计思维,提高其软件开发的能力。
通过该课程的学习,学生将能够熟练运用面向对象程序设计语言,设计和实现简单的面向对象程序。
二、教学目标1. 理解面向对象程序设计的基本概念,包括类、对象、继承、多态等。
2. 掌握面向对象程序设计的设计原则和模式,如单一职责原则、开放封闭原则、工厂模式等。
3. 能够使用面向对象程序设计语言进行程序设计和开发,含糊创建类、封装属性和方法、定义继承关系。
4. 培养学生良好的软件设计思维和团队合作能力,提高软件开发的效率和质量。
三、教学内容1. 面向对象程序设计概述1.1 面向对象程序设计的基本概念1.2 面向对象程序设计语言概述1.3 面向对象程序设计与其他编程范式的比较2. 面向对象程序设计原则2.1 单一职责原则2.2 开放封闭原则2.3 里氏替换原则2.4 接口隔离原则2.5 依赖倒置原则3. 面向对象程序设计的基本技术3.1 类和对象的定义3.2 封装和信息隐藏3.3 继承和多态3.4 抽象类和接口3.5 异常处理和错误处理4. 面向对象程序设计模式4.1 创建型模式(工厂模式、单例模式等)4.2 结构型模式(适配器模式、装饰器模式等)4.3 行为型模式(观察者模式、策略模式等)四、教学方法1. 理论讲授与案例分析相结合,引导学生深入理解面向对象程序设计的原理和方法。
面向对象培训课程设计

面向对象培训课程设计一、教学目标本课程的教学目标是让学生掌握面向对象编程的基本概念、原理和应用,培养学生独立思考、解决问题的能力,提高学生的编程技能和软件开发素养。
具体分为以下三个部分:1.知识目标:(1)理解面向对象编程的基本概念,如类、对象、封装、继承、多态等。
(2)熟悉常用编程语言的面向对象特性,如Java、C++、Python等。
(3)掌握面向对象编程的常用设计原则和设计模式。
2.技能目标:(1)能够运用面向对象编程思想编写简单的程序。
(2)具备分析问题、设计类和对象的能力。
(3)熟练使用面向对象编程语言进行软件开发。
3.情感态度价值观目标:(1)培养学生对编程的兴趣和热情,提高学生自主学习的积极性。
(2)培养学生团队合作精神,提高学生沟通与协作能力。
(3)培养学生具有良好的职业道德,树立正确的软件开发观念。
二、教学内容本课程的教学内容主要包括以下几个部分:1.面向对象编程基本概念:类、对象、封装、继承、多态等。
2.常用编程语言的面向对象特性:Java、C++、Python等。
3.面向对象编程的设计原则:单一职责原则、开闭原则、里氏替换原则等。
4.面向对象编程的设计模式:工厂模式、单例模式、观察者模式等。
5.面向对象编程的实际应用:软件开发流程、项目实战等。
三、教学方法本课程采用多种教学方法相结合,以提高学生的学习兴趣和主动性:1.讲授法:讲解基本概念、原理和设计模式。
2.案例分析法:分析实际项目案例,让学生了解面向对象编程在实际应用中的重要性。
3.实验法:让学生动手编写代码,培养实际编程能力。
4.讨论法:分组讨论问题,培养学生团队合作和沟通能力。
四、教学资源本课程所需教学资源包括:1.教材:选用权威、实用的教材,如《Java核心技术》、《C++ Primer》等。
2.参考书:提供丰富的参考书籍,以便学生深入研究。
3.多媒体资料:制作精美的PPT、教学视频等,辅助学生理解。
4.实验设备:提供计算机、编程环境等,让学生动手实践。
面向对象程序课程设计

面向对象程序课程设计一、课程目标知识目标:1. 让学生掌握面向对象程序设计的基本概念,如类、对象、封装、继承和多态;2. 使学生能够运用所学知识,设计并实现简单的面向对象程序;3. 帮助学生理解面向对象程序设计中常用的设计原则和模式,如单一职责、开闭原则等。
技能目标:1. 培养学生运用面向对象思想分析问题、解决问题的能力;2. 提高学生编写面向对象程序代码的能力,养成良好的编程习惯;3. 培养学生运用调试工具进行程序调试的能力,提高程序的正确性和稳定性。
情感态度价值观目标:1. 培养学生对计算机科学的兴趣,激发学习动力;2. 培养学生具备团队协作精神,能够在项目中发挥个人优势,共同完成任务;3. 引导学生认识到面向对象程序设计在软件开发中的重要性,树立正确的软件工程观念。
分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 能够描述面向对象程序设计的基本概念和特点;2. 能够运用类和对象编写简单的程序;3. 能够运用继承和多态解决实际问题;4. 能够遵循设计原则和模式进行程序设计;5. 能够通过团队协作完成一个面向对象程序设计项目。
二、教学内容本章节教学内容依据课程目标,结合教材,主要包括以下几部分:1. 面向对象程序设计基本概念:介绍类、对象、属性、方法、封装、继承和多态等基本概念,使学生建立面向对象编程的思维模式。
2. 类与对象:讲解如何定义类、创建对象,以及如何使用类和对象进行编程。
3. 继承与多态:通过实例分析,使学生理解继承的原理和实现方式,掌握多态性的概念和应用。
4. 设计原则与模式:介绍单一职责、开闭原则等设计原则,以及常用的设计模式。
5. 实践项目:安排一个面向对象程序设计的实践项目,让学生将所学知识应用于实际项目中。
具体教学安排如下:1. 第1-2课时:面向对象程序设计基本概念;教材章节:第1章 面向对象程序设计概述2. 第3-4课时:类与对象;教材章节:第2章 类与对象3. 第5-6课时:继承与多态;教材章节:第3章 继承与多态4. 第7-8课时:设计原则与模式;教材章节:第4章 设计原则与模式5. 第9-10课时:实践项目;教材章节:第5章 实践项目三、教学方法针对本章节内容,采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:对于面向对象程序设计的基本概念、原理和设计原则等理论知识,采用讲授法进行教学。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南师范大学工程与设计学院面向对象系统课程设计课题名称: 学生考试系统姓名:濮湘华学号: 2011180532专业:计算机科学与技术指导老师:目录1、需求分析 (3)2、系统设计 (3)3、数据库设计 (6)4、关键模块设计 (10)5、课程设计心得 (31)【课程设计名称】:学生考试系统【学习内容】:学习数据库的概念模型的设计、数据库的使用、C++的面向对象的学习,VC数据库连接。
一、需求分析根据学生考试的特点和学校的实际情况,以考试流程为基础,从专业角度出发,提供科学有效的考试模式。
考试时采用系统自动从数据表中选题的方式,评卷时通过核对考生答案与正确答案得出考生的分数。
二、系统设计2.1系统功能结构学生考试系统功能结构图如图所示。
2.2 系统预览学生考试系统主要由登陆界面、试题界面、及考试成绩管理等模块组成,学生考试管理系统主窗口用于考生选题答题操作,考试结果信息模块用于对考生的答题结果进行评分。
登陆界面:主窗口界面:考试结果窗口界面:试题管理模块用于增添考试科目,并可以添加、修改和删除试题,如图4所示;学生成绩查询模块用于查询考生的考试成绩,如下图成绩管理:2.2 学生考试系统流程二、数据库设计1、数据库概念设计根据前面介绍的需求分析和系统设计规划出本系统中使用的数据库实体对象分别为用户信息实体、科目信息实体、试题信息实体、试题答案信息实体、答案暂存信息实体和考试结果信息实体等。
(1)用户信息实体用户信息实体包括用户编号、用户名、密码、密码提示问题、答案、真实姓名、年龄、性别、联系电话、用户权限、身份证号和注册日期。
用户信息实体E-R图,如下图所示。
用户实体:(2)科目信息实体科目信息实体包括科目ID和科目名称。
科目信息实体E-R图,如下图(3)试题信息实体试题信息实体包括试题ID、试题内容、试题答案、试题分数和科目ID。
试题信息实体E-R图,如下图(4)试题答案信息实体试题答案信息实体包括试题ID、A选项答案、B选项答案、C选项答案和D选项答案。
试题答案信息实体E-R图,如下图(5)答题暂存信息实体答题暂存信息实体包括题号、试题内容、考生答案、考生得分和考生ID。
答题暂存信息实体E-R图,如下图(6)考试结果信息实体考试结果信息实体包括起始时间、截止时间、考试科目、考试成绩和学生编号。
考试结果信息实体E-R图,如下图2、数据库逻辑表用户信息表主要用于记录用户注册信息、账号信息及密码,保障只有合法用户才能登录系统。
该表的结构如图注册后信息:(2)考试科目表(subject)考试科目表主要用于记录要考试的科目信息。
该表的结构如图(3)试题信息表(test)试题信息表主要用于存放各科目考试题信息。
该表的结构如下图(4)试题答案信息表试题答案信息表主要用于存放试题的答案选项。
该表的结构如图(5)答题信息暂存表答题信息暂存表主要用于暂时存储考生在考试过程中的答题信息(6)考试结果信息表考试结果信息表主要用于存储考生考试的时间、科目、成绩等信息三、关键模块设计1、注册模块设计注册过程中要用户登记身份证信息,在用户注册的同时系统将自动对身份证信息进行验证,验证身份证信息要从身份证号位数、出身年月、用户性别等资料进行验证。
代码如下:if(m_IDcard.GetLength() != 18){AfxMessageBox("输入身份证号码无效");return;}else{int num=0;char ch;for(int i=0;i<17;i++){ch = m_IDcard.GetAt(i);if(ch>47 && ch<58)num++;}if(i==17){ch = m_IDcard.GetAt(i);if((ch>47 && ch<58) || (ch==88 || ch==120)) / num++;}if(num != 18){AfxMessageBox("输入身份证号码无效");return;}else{CString syear = m_IDcard.Mid(6,4);int year = atoi(syear);CString smonth = m_IDcard.Mid(10,2);int month = atoi(smonth);CString sday = m_IDcard.Mid(12,2);int day = atoi(sday);BOOL leap;if(month<1||month>12){AfxMessageBox("输入身份证号码无效");return;}switch(month){case 1: case 3: case 5: case 7: case 8: case 10: case 12:if(day<0 || day>31){AfxMessageBox("输入身份证号码无效");return;}break;case 4: case 6: case 9: case 11:if(day<0 || day>30){AfxMessageBox("输入身份证号码无效");return;}break;case 2:if(year % 4 == 0){if(year % 100 != 0)leap = TRUE;else if(year % 400 == 0)leap = TRUE;elseleap = FALSE;}elseleap = FALSE;if(leap)if(day<0 || day>29){AfxMessageBox("输入身份证号码无效"); //提示return;}elseif(day<0 || day>28){AfxMessageBox("输入身份证号码无效"); //提示错误信息return;}break;}}}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////单击“注册”按钮后系统自动将用户所填入的数据一一添加进数据表中,从而达到注册的目的。
代码如下:UpdateData();if(m_UserName.IsEmpty()){AfxMessageBox("请输入用户名");return;}if(m_Passwd.IsEmpty()){AfxMessageBox("请输入密码");return;}if(m_Passwd!=m_PasswdRepeat){AfxMessageBox("两次输入密码不一致,请重新输入");return;}u if(m_QuestionCombo.GetCurSel()==-1||m_QuestionCombo.GetCurSel()==0) // {AfxMessageBox("请选择密码提示问题");return;}if(m_Answer.IsEmpty()){AfxMessageBox("请输入提示问题的答案");return;}if(m_RealName.IsEmpty()){AfxMessageBox("请输入真实姓名");return;}v m_QuestionCombo.GetLBText(m_QuestionCombo.GetCurSel(),str);CString sex;if(radio==0)sex.Format("");if(radio==1)sex.Format("男");if(radio==2)sex.Format("女");CTime time;time=CTime::GetCurrentTime();CString nowtime=time.Format("%Y-%m-%d");int id;try{m_AdoConn.OnInitADOConn();//打开数据库连接CString sql="select*from register where username='"+m_UserName+"'";m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);if(!m_pRs->adoEOF){AfxMessageBox("用户名已存在");return;}else{sql.Format("select studentid from register");m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql); /if(m_pRs->adoEOF)id=1001;else{m_pRs->MoveLast();id=atoi((_bstr_t)m_pRs->GetCollect("studentid"));id+=1; }//向注册信息表中插入用户名、密码、提示问题、答案等信息sql.Format("insert into register(username,[password],question,answer,name,\age,sex,phone,studentid,power,login_date)values('%s','%s','%s','%s','%s',\%d,'%s',%d,%d,'学生','%s')",m_UserName,m_Passwd,str,m_Answer,m_RealName,m_Age,\sex,m_Phone,id,nowtime);m_AdoConn.ExecuteSQL((_bstr_t)sql);m_AdoConn.ExitConn();AfxMessageBox("注册成功"); //提示注册成功CDialog::OnCancel();CLOGIN dlg; //定义一个登录类实例dlg.DoModal();//打开登录窗口}}catch(...){AfxMessageBox("操作失败");return;}2、登陆窗口模块设计BOOL CLOGIN::OnInitDialog(){CDialog::OnInitDialog();m_TypeList.SetCurSel(1);CenterWindow();DWORD dwStyle = AW_CENTER;HINSTANCE hInst = LoadLibrary("User32.DLL");typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));MYFUNC* AnimateWindow;AnimateWindow=(MYFUNC *)::GetProcAddress(hInst,"AnimateWindow");AnimateWindow(this->m_hWnd,1000,dwStyle);FreeLibrary(hInst);return TRUE;}void CLOGIN::OnButtonCancel(){DWORD dwStyle = AW_CENTER;HINSTANCE hInst = LoadLibrary("User32.DLL");typedef BOOL(WINAPI MYFUNC(HWND,DWORD,DWORD));MYFUNC* AnimateWindow;AnimateWindow=(MYFUNC *)::GetProcAddress(hInst,"AnimateWindow");AnimateWindow(this->GetSafeHwnd(),700,AW_HIDE|dwStyle);FreeLibrary(hInst);CDialog::OnCancel();}UpdateData();CString str;m_TypeList.GetLBText(m_TypeList.GetCurSel(),str);if(m_UserName.IsEmpty()){AfxMessageBox("用户名不能为空");return;}if(m_UserPasswd.IsEmpty()){AfxMessageBox("密码不能为空");return;}CString sql="select*from register where username='"+m_UserName+"' and [password]='"+m_UserPasswd+"' andpower='"+str+"'";try{_RecordsetPtr m_pRs;ADOConn m_AdoConn; //定义一个数据库连接类变量m_AdoConn.OnInitADOConn();//连接数据库m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql); //获if(m_pRs->adoEOF){sql="select*from register where username='"+m_UserName+"'"; //如果为空判断是否存在此用户m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql); //获if(!m_pRs->adoEOF){if(m_UserPasswd!=(char*)(_bstr_t)m_pRs->GetCollect("password")){if(MessageBox("密码错误,是否找回密码?","提示",MB_YESNO)==IDYES) //提示找回密码{CFind dlg;=m_UserName;CDialog::OnCancel();dlg.DoModal();}}else{if(str!=(char*)(_bstr_t)m_pRs->GetCollect("power")){AfxMessageBox("权限错误");return;}}}else{if(MessageBox("用户名不存在,是否注册?","提示",MB_YESNO)==IDYES) //提示注册{CDialog::OnCancel();CRegister dlg;dlg.m_UserName=m_UserName;dlg.DoModal();}elseCDialog::OnCancel();}}else{if(str=="教职工"){CDialog::OnCancel();CBack dlg;dlg.DoModal();}elseCDialog::OnOK();}m_AdoConn.ExitConn();}用于打开数据库连接,在函数中添加如下代码。