C项目实践
- 格式:pdf
- 大小:619.20 KB
- 文档页数:52
计算机程序设计C程序设计教案第一篇:计算机程序设计基础一、课程概述计算机程序设计是计算机科学与技术专业的重要课程之一,它主要是通过讲解计算机程序设计的基础知识、方法和技巧,培养学生的程序设计能力和计算机应用能力,从而使学生能够熟练掌握C语言,为其今后的专业学习以及职业发展打下坚实的基础。
二、主要内容本课程主要涉及以下内容:1. C语言基础知识:常量、变量、数据类型、运算符等;2. 控制结构:条件语句、循环语句等;3. 函数:函数的定义、调用、返回值等;4. 数组:一维数组、多维数组等;5. 指针:指针的定义、使用、指针与数组等;6. 文件操作:文件的读写操作等。
三、教学目标1. 熟练掌握C语言的基础知识,能够独立编写简单的C程序;2. 理解掌握C语言的控制结构,能够使用条件语句、循环语句等进行程序设计;3. 熟练掌握函数的定义、调用、返回值等知识,能够编写简单的函数;4. 具备一定的数组使用能力,能够编写简单的数组应用程序;5. 熟练掌握指针的定义、使用、指针与数组等知识,能够编写简单的指针应用程序;6. 了解文件操作的基本知识,能够进行文件读写操作。
四、教学方法1. 授课法:授课老师通过讲解授课,向学生讲解C语言的基础知识、方法和技巧;2. 编程实践法:在课堂上,通过编写小程序来帮助学生理解和掌握知识;3. 课堂讨论法:通过讨论经典例题,帮助学生理解和掌握知识;4. 课程设计法:在课程设计中,通过设计、开发并实现一些小应用系统,来帮助学生更好地将所学知识应用到实际中。
五、教学评估方式1. 平时表现评估:包括作业完成情况、课堂参与情况、考勤情况等;2. 考试评估:学习期末将组织一次考试,将学生平时的学习情况作为重要考评基础;3. 课程设计评估:学习期末,将限定时间内完成的小应用系统作为课程设计的评估方式。
六、教学建议1. 建议学生在学习过程中注重实践,通过编写越来越复杂的程序来逐步掌握所学知识;2. 建议学生在平时多进行思考和探索,掌握自主学习的方法;3. 建议学生积极参与课堂,多与老师和同学互动,及时解决疑惑和问题。
c语言活动策划书3篇篇一C 语言活动策划书一、活动背景C 语言作为一种广泛使用的编程语言,具有重要的学习和应用价值。
为了提高学生对C 语言的兴趣和掌握程度,特举办此次 C 语言活动。
二、活动目的1. 增强学生对 C 语言的理解和应用能力。
2. 培养学生的编程思维和解决问题的能力。
3. 促进学生之间的交流与合作。
三、活动时间和地点时间:[具体日期]地点:[详细地点]四、活动对象[参与活动的具体对象,如学生、爱好者等]五、活动内容1. C 语言基础知识讲座邀请专业教师或行业专家进行 C 语言基础知识的讲解,包括语法、数据类型、控制结构等。
2. 编程实践项目组织学生参与实际的编程项目,通过实践加深对 C 语言的理解和应用。
3. C 语言竞赛举办 C 语言编程竞赛,激发学生的竞争意识和创新能力。
4. 交流与分享设置交流环节,让学生分享自己在学习 C 语言过程中的经验和心得。
六、活动流程1. 活动开场:介绍活动背景和目的,欢迎参与者。
2. 知识讲座:进行 C 语言基础知识讲座。
3. 实践项目:学生分组进行编程实践项目。
4. 竞赛环节:开展 C 语言竞赛。
5. 交流分享:学生分享经验和心得。
七、活动宣传1. 在学校官网、社交媒体等平台发布活动通知。
2. 张贴宣传海报,宣传活动时间、地点和内容。
3. 邀请相关专业教师和学生组织进行宣传推广。
八、活动预算1. 讲座费用:[X]元2. 竞赛奖品费用:[X]元3. 宣传费用:[X]元4. 其他费用:[X]元总预算:[X]元九、注意事项1. 活动现场提供必要的技术支持和指导。
2. 确保活动的公平性和公正性。
3. 注意活动安全,避免因编程错误导致的意外情况。
篇二C 语言活动策划书一、活动背景C 语言作为一种广泛使用的编程语言,具有重要的地位。
为了提高学生对 C 语言的兴趣和掌握程度,促进学生之间的交流与合作,特举办此次 C 语言活动。
二、活动目的1. 增强学生对 C 语言的理解和应用能力。
《C语言程序设计》课程思政教学案例一、课程概述《C语言程序设计》是一门重要的计算机科学专业课程,旨在培养学生掌握C语言的基本语法、数据类型、控制结构、函数和指针等基础知识,并能够运用C语言进行程序设计。
本课程不仅注重学生编程技能的培养,还强调在课程中融入思政元素,引导学生树立正确的价值观和人生观。
二、思政元素融入1. 爱国主义教育在课程中介绍C语言的发展史,让学生了解我国在计算机科学领域的成就,激发他们的民族自豪感和自信心。
同时,引导学生关注国家计算机技术的发展,培养他们的爱国情怀。
2. 诚信教育在讲解代码编写规范时,强调诚信的重要性。
引导学生树立诚信为本的观念,在编程过程中保持诚实、严谨的态度,避免抄袭和作弊行为。
3. 团队合作意识在课程中组织小组讨论、项目合作等活动,培养学生之间的团队协作精神。
引导学生学会尊重他人、倾听他人意见,共同解决问题,培养他们的团队意识和沟通能力。
4. 创新精神在讲解算法设计和程序优化时,鼓励学生发挥创新思维,探索新的编程技术和方法。
引导学生树立敢于创新、勇于尝试的观念,培养他们的创新意识和实践能力。
5. 职业素养教育在课程中强调编程工作的重要性,介绍软件开发行业的职业要求和规范。
引导学生树立正确的职业观念,培养他们的责任感和使命感,为他们将来从事编程工作打下基础。
三、教学环节设计1. 课堂互动环节在课堂中组织学生讨论编程过程中的实际问题,鼓励学生发表自己的见解和思路。
通过师生互动、生生互动的方式,培养学生的思考能力和表达能力。
同时,引导学生树立谦虚好学、勇于探索的精神。
2. 项目实践环节在课程中安排多个项目实践任务,要求学生以小组为单位完成。
引导学生分工合作,共同解决问题,培养他们的团队合作精神和沟通能力。
同时,鼓励学生在实践中不断创新,提高他们的实践能力和创新意识。
3. 课堂展示环节在课堂展示环节中,要求学生展示自己的项目成果或个人作品。
引导学生自信地表达自己的创意和思路,培养他们的自信心和表现能力。
课表制作 c 语言课表是学生生活中必不可少的一部分,它规划了学生一周的学习安排和课程内容。
C语言课程作为计算机科学专业的基础课程之一,对于学生的学习和发展至关重要。
下面是一份关于C语言课程的课表,希望能够帮助学生更好地安排自己的学习时间。
一、C语言课程简介C语言是一种通用的编程语言,广泛应用于计算机科学和软件开发领域。
本课程将重点介绍C语言的基本语法和编程技巧,帮助学生掌握C语言的基础知识和编程能力。
二、课程安排1. 课程名称:C语言基础上课时间:周一上午8:00-10:00授课教师:王老师上课地点:教学楼101室2. 课程名称:C语言实践上课时间:周二下午2:00-4:00授课教师:李老师上课地点:实验室B3023. 课程名称:数据结构与算法上课时间:周三上午10:00-12:00授课教师:张老师上课地点:教学楼201室4. 课程名称:C语言项目实践上课时间:周四下午4:00-6:00授课教师:刘老师上课地点:实验室B3015. 课程名称:操作系统原理上课时间:周五上午9:00-11:00授课教师:陈老师上课地点:教学楼301室三、课程内容1. C语言基础课程将介绍C语言的基本语法、数据类型、运算符、控制结构等内容。
学生将通过理论讲解和实践练习,掌握C语言的基础知识和编程技巧。
2. C语言实践课程将通过实际项目案例,帮助学生应用C语言解决实际问题。
学生将通过编写代码,实现简单的程序功能,并进行调试和优化。
3. 数据结构与算法课程将介绍常见的数据结构和算法,包括栈、队列、链表、树、图等内容。
学生将学习如何利用这些数据结构和算法解决实际问题。
4. C语言项目实践课程将组织学生进行团队项目开发,学生将运用所学的C语言知识,完成一个完整的软件项目,并进行演示和评审。
5. 操作系统原理课程将介绍操作系统的基本原理和工作原理,包括进程管理、内存管理、文件系统等内容。
学生将深入了解操作系统的运行机制和管理方法。
2021年c语言程序设计实践心得1000字范文学习C语言的初期重点要放在掌握语言的语法和规定上,一定要养成良好的编程习惯,整理了c语言程序设计实践心得1000字范文,希望能帮助到您。
c语言程序设计实践心得1000字范文一C语言是一种结构化语言,是大部分编程语言的基础,C语言学好了,以后的JA V A,C#以及更多的编程语言才有可能学好。
下面就跟南宁达内一起,要学好C语言必须了解的四点:1、课前认真预习,把下一节要上的内容先自己看一遍,把不懂的地方打个标记,等上课的时候可以请教老师。
理解书上的例子,搞懂每个语句的含义,用法。
看完后尝试着不看例子自己编写程序,编完以后再跟书上进行比较,看自己的程序还有哪方面的不足,再进行改正。
想要真正学好C 语言光看书是不够的,一定要自己多动手。
2、上课认真听讲积极思考,提高上课效率。
老师上课讲述的都是课程的重点和难点,听好课程可以达到"事半功倍"的目的。
3、课后复习。
把每天的上课内容回家再温习一遍,独立完成课后的作业,如果有时间,最好能找点课外书籍、课外习题什么的来巩固所学的内容。
4、主动上机,多多实践,提高动手能力。
通过上机实践来验证所学的理论,通过在机器上查找错误来巩固概念,通过提高上机能力来促进理论学习,开阔编程思路,提高反映速度,提高分析问题解决问题的能力,锻炼心理素质,提高心理承受能力。
学习C语言的初期重点要放在掌握语言的语法和规定上,一定要养成良好的编程习惯,平时写程序注意语法规范格式控制,格式规范了,出了错误也容易找到出错的地方,这是C语言的基础;后期的重点要转移到掌握编程的思路和基本算法上来。
课后多做习题,找一些经典例子尝试自己编写,写程序切忌半途而费,想到一个思路,就要按自己思路把它写完,就算错了,也可以让自己了解为什么这样做会错?错在哪里?会出什么结果?以后自己也很难在这个地方犯同样的错误。
当学到一个新的知识点,就试着把它运用到以前做的习题上,不但巩固了以前学的内容,也更加能加强新知识的理解。
7月C语言学习社会实践报告【标题】7月C语言学习社会实践报告【引言】在本次暑假期间,我参加了一项社会实践活动,进行了C语言的学习。
通过这次实践,我深入了解了C语言的基本知识和应用场景,并运用所学知识完成了一些小项目。
本报告旨在总结我在实践中的收获和体会,对于其他学习者进行参考和借鉴。
【目标】通过参加社会实践,系统学习C语言,并应用所学知识完成小项目。
【具体内容】1. 学习过程1.1 制定学习计划:根据C语言的基本教材和实践项目要求,制定了一个详细的学习计划,包括每天的学习时间和学习内容。
1.2 学习基本语法:通过阅读教材及相关教程,掌握了C语言的基本语法规则,理解了变量、数据类型、运算符等概念。
1.3 编写简单程序:通过编写一些简单的程序来巩固所学知识,如计算器、猜数字等小项目。
2. 实践项目2.1 学生成绩管理系统:根据实际需求,编写了一个简单的学生成绩管理系统,能够实现学生信息的录入、查询和修改。
2.2 游戏开发:参考教材中的案例,实现了一个简单的小游戏,玩家需要通过键盘操作控制角色完成任务。
2.3 文件处理:利用C语言的文件处理功能,实现了一个文件复制程序,能够将指定文件复制到指定目录。
3. 收获与体会3.1 掌握了C语言的基本语法和编程思想,能够独立编写简单的程序。
3.2 了解了C语言的应用场景,如系统开发、游戏开发等,对于今后的学习和就业有了更清晰的目标。
3.3 实践中遇到的问题,如编译错误、逻辑错误等,锻炼了我的问题解决能力和调试技巧。
【结论】通过本次社会实践,我对C语言的基础知识和应用有了深入了解,并成功应用所学知识完成了一些小项目。
在今后的学习和工作中,我将继续深化对C语言的学习,并希望能够进一步掌握其高级特性和应用。
C语言学习社会实践报告
社会实践活动题目:C 语言学习活动
社会实践日期:2022 年 5 月 15 日
地点:某某中学
活动内容:
1. 活动介绍:本次社会实践活动是由某某中学计算机社团组织的 C 语言学习活动,旨在帮助学生们了解和学习 C 语言编程知识,提升其编程能力和逻辑思维能力。
2. 活动安排:
- 上午:编程导师介绍 C 语言基础知识和语法规则,学生们跟随导师完成简单的编
程练习。
- 下午:学生们根据实际情况,自行组队完成一个小型编程项目,展示并分享成果。
3. 收获与感受:
- 学生们通过活动学习了 C 语言编程知识,掌握了基本的编程技能,增强了对编程
的兴趣和自信心。
- 参与者们有机会与其他同学合作,体验团队合作的重要性,培养了沟通和协作能力。
- 通过实践的方式巩固了课堂学习的知识,加深了对编程的理解和掌握。
结语:本次 C 语言学习活动不仅帮助学生们提升了技能,增强了团队合作能力,还为
他们未来的学习和发展打下了坚实的基础。
通过参与此类实践活动,学生可以更好地
把理论知识转化为实际应用能力,培养综合素质,提高竞争力。
机器人类型:C 类 (可编程控制的空中飞行器 (飞行机器人))。
在参与活动完成任务的整体过程中,任何时候都要切记安全第一,人的生命是最宝贵的。
1. 使用交流电的工具及设备在使用前需进行安全检查,发现有问题或不符合安全要求时,一律不使用。
不用湿手接触带电工具或电源插座,不使用质量低劣或有问题的电源接线板。
2. 带电工具长时间不用时应切断电源,电池充电过程须注意通风散热。
3. 提前明确交流电源总开关的位置及关闭方法。
若发生触电事故,应立即切断电源并采取相应的急救措施。
4. 谨慎使用工具,使用电烙铁、热熔胶枪或其他发热元器件时,注意不触及高温发热部分,以免烫伤。
使用刀具等锐利工具时,注意做好防护,避免伤及自身或他人。
(三) 飞行安全1. 飞行器为旋翼结构时,调试以及飞行过程中,在场所有人员必须佩戴护目镜等防护用品,女生长发须扎起或藏于防护帽内。
2. 飞行时尽量避免他人围观并提醒他人远离飞行区域。
3. 提交的视频文件里,在场的所有人员均应佩戴防护用品。
没有相应防护措施时,将被认作具有安全隐患,结果视为无效。
整个任务由场地搭建和项目任务两部分组成。
飞行机器人的飞行动作必须由程序控制自主完成,在执行任务过程中如果动用遥控设备来操作则视为任务失败。
( 一) 场地搭建图 1 飞行场地搭建平面示意图图 2 飞行场地搭建侧视示意图1. 根据上面示意图及具体尺寸要求,在相对平坦的场地 (如地面、台面) 上完成任务场地的搭建,所有线条可采用宽约 1.5cm 的黑色电工胶带粘贴,其余材料及重量不限。
场地搭建需要学生全程参与,允许他人提供部分帮助。
2. 任务边框用胶带粘贴成边长约为 500cm×300cm 的长方形。
3. 起飞区用胶带粘贴成边长约为40cm 的正方形。
4. 任务区用胶带粘贴围成边长约为 200cm 的正方形,正方形中再由胶带粘贴形成米字形。
任务点分别是米字形的 8 个顶点、中心点和 6 个障碍物点,须如图所示在各点附近明显加以标注,引导飞行用的二维码或其他标记不能将标注字母遮盖。
c语言实习心得体会作为一个计算机科学与技术专业的学生,我在大学期间选择了参加一次C语言实习。
通过这次实习,我深刻地体会到了学习和应用C 语言的重要性,提高了自己的编程能力,同时也增加了对计算机底层原理的理解。
在这篇文章中,我将分享我在C语言实习中的体会和心得。
实习的第一天,我们首先进行了一些关于C语言的基础知识的学习。
这些基础知识包括了C语言的语法规则、数据类型、运算符、流程控制等。
通过这些学习,我对于C语言的基本语法和使用有了一个较全面的了解。
同时,老师也教给了我们如何使用C语言进行简单的程序设计,如如何编写一个求和的程序、如何编写一个判断素数的程序等。
这些小程序的编写对于我们理解C语言的逻辑以及动手能力的提升非常有帮助。
在实习过程中,我们还学习了C语言的高级特性,如指针、结构体和动态内存分配等。
指针作为C语言非常重要的一个概念,掌握了指针的使用,我们可以更加灵活地操作内存,提高程序的效率。
在学习指针的过程中,我意识到了指针的重要性和使用的灵活性,通过运用指针,我们可以更好地解决一些问题,并且提高程序的性能。
而学习结构体的过程中,我对于数据的组织和管理有了更深入的理解,这对于将来的工作和学习中都是非常有帮助的。
在实习过程中,我们还学习了C语言的文件操作和输入输出。
文件操作是C语言非常常用的一个功能,通过文件操作,我们可以读取和保存数据,实现数据的长期存储和传输。
在学习文件操作时,我意识到了数据的重要性和安全性。
在实际的应用中,我们经常需要将数据存储到文件中,通过文件操作,我们可以实现数据的读取和保存。
而对于输入输出的学习,提高了我们程序的灵活性和可扩展性。
在以后的编程工作中,我相信这些知识会发挥非常重要的作用。
除了上述的基础知识学习,我们在实习过程中还进行了一些实际的编程练习和项目开发。
这些练习和项目开发对于我们提高编程能力和实践能力非常有帮助。
通过实际的编程练习,我们可以将之前学习的知识运用到实际的项目中,更好地理解和掌握这些知识。
C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。
学生可按要求(如总学分不能少于20学分)选课。
课程信息维护,如录入、修改、删除等,课程信息用文件保存。
课程信息浏览?输出。
学生选课功能。
查询功能包括:按学分、课程性质、学生等查询。
统计功能。
统计各门课程的选修人数。
本系统要有通用性、界面美观、操作方便。
要考虑系统安全。
课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。
管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。
输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。
第8章 项目实践—工资管理系统本章要点1. 系统需求分析2. 系统功能设计过程8.1系统需求分析工资管理是一个企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。
所以在信息化的今天,工资管理系统在企业或单位中起着举足轻重的作用。
本工资管理系统需要完成以下任务:(1) 能够持久化存储员工信息。
员工信息由两部分组成:员工的基本信息和员工工资信息。
员工基本信息包括员工工号、员工姓名,员工工资信息包括基本工资、奖金、扣款、应发工资、税款、实发工资。
奖金和扣款由财务人员直接指定,应发工资=基本工资+奖金-扣款,税款为应发工资的12%,实发工资=应发工资-税款。
(2) 能够增加、删除、修改员工信息。
(3) 能够按照员工工号或姓名查找对应的员工的信息,并将查找到的员工信息以指定的报表形式输出。
(4) 能够对员工按照工资进行指定方式的排序,并将排序结果以报表形式输出。
(5) 能够按照工资级别进行员工信息统计,将不同档次工资的人数进行报表输出。
8.2 系统设计8.2.1 功能模块设计根据需求描述,工资管理系统由:数据维护模块、查询模块、编辑模块、统计模块、排序模块、打印模块6大功能模块组成,如图8-1所示。
(1) 数据维护模块:数据维护模块包括数据加载和数据保存两个功能。
数据加载完成从外部文件加载员工信息(以下简称记录)到内存,数据保存完成将内存中的员工信息保存到外部文件的工作。
数据维护模块完成了系统数据的持久化保存。
在此工资管理系统中,记录以二进制形式存储在数据文件中。
系统的数据也可以通过编辑模块中的新增功能来添加。
(2) 查询模块:查询模块主要完成在信息中查找满足相关条件的记录。
在此工资管理12系统中,用户可以按照员工工号或姓名进行查找。
若找到该记录,则以表格形式打印出此记录的信息。
(3) 编辑模块:编辑模块主要完成对记录的维护。
包括修改、删除、新增功能。
编辑操作时,只是修改内存中的数据记录,一般而言,系统进行了这些操作之后,需要将数据存入源数据文件中。
(4) 统计模块:统计模块主要完成将实发工资按照等级进行人数统计,并将统计结果以报表形式输出。
统计标准存放在外部的配置文件中,系统可以对配置文件进行编辑,设置统计标准。
(5) 排序模块:排序模块完成员工记录按照指定方式进行排序,并将排序功能进行报表输出,本系统实现采用实发工资的升序作为排序标准。
(6) 打印模块: 打印模块负责系统数据报表输出,它实现将记录信息以表格形式在屏幕上或者文件中打印出来。
8.2.2 系统总体框架工资管理系统的数据保存在外部文件中,名称为zggz.dat ,采用二进制方式输入和输出;统计报表和员工工资报表输出到文件时,报表文件名由用户确定;统计标准保存在外部的配置文件standard.txt 中。
系统的总体框架如图8-2所示。
图8-2 系统总体框架图8-1 系统功能模块图38.2.3 类设计本系统采用面向对象思想进行设计,系统功能通过类来描述。
系统定义了类CEmployee 描述员工工资的属性和操作。
为了使系统功能易于扩展,对系统功能采用类似Windows 的菜单的管理方式,系统功能大都作为菜单项实现。
定义了接口IMenuAction 描述菜单项的功能。
每个实现具体系统功能(如,修改、查询等)的类都直接从IMenuAction 派生。
另定义一个从IMenuAciton 派生的类CMenuBar 描述可以包含子菜单的菜单类。
一个CMenuBar 对象可以管理多个IMenuAction 的派生类。
类CGZReport 实现员工工资报表的输出功能。
CStaticsReport 实现统计信息报表输出功能。
系统详细类结构如图8-3所示。
图8-3 系统类层次关系8.2.4 类功能员工工资管理系统中所有的功能通过类来描述和实现。
下面详细介绍系统中类的主要的属性和功能。
1.CEmployee描述员工信息。
类结构如图8-4所示。
图8-4 类CEmployeeSEmployee 是一个结构类型,m_data 存放员工的信息。
之所以采用一个单独的结构类4型来描述员工信息,是因为,一个类对象的存储单元中除了对象成员外,还可能包含其他隐含的内存单元,如虚表指针的存储单元等。
这样在以二进制进行对象内容的输入时,会造成对象存储单元被破坏。
例如,若is 为输入流对象,o 为某对象,则采用二进制从is 中输入数据到o 时,采用“is.read(&o, sizeof(o));”,则o 中除了数据成员外的其他存储单元也被覆盖,造成o 被破坏。
结构类型的变量不会存在上述的问题。
SEmployee 的定义如图8-5所示。
图8-5 结构SEmployeeMAX_ID_LEN 和MAX_NAME_LEN 为系统定义的全局int 型变量。
功能:(1)bool readFromFile(ifstream &ifs) 从输入流ifs 中读入员工信息。
(2)bool writeToFile(ofstream &ofs) 将员工信息输出到输出流ofs 中。
2.IMenuActionIMenuAction 描述了所有菜单项的功能。
类结构如图8-6所示。
图8-6 类IMenuAction每个菜单项有两个属性key 和caption。
caption 是菜单项的标题,key 是菜单项对应的按键。
只有当用户输入和key 相同的字符串时,才可能执行该菜单的功能。
功能:(1) virtual void action() 实现菜单项的功能。
外部调用action 来执行该菜单的功能。
每个派生类都要在action5中实现自己的功能。
3. CMenuLoadData实现数据加载,将系统的数据从外部文件zggz.dat 读入到内存中,内存中数据存放在vector<CEmployee*>类型的集合对象中。
类结构如图8-7所示。
图8-7 类CMenuLoadData功能:(1) void load()实现了数据加载的操作,action 函数会调用该load 成员函数。
4. CMenuSaveData实现数据保存,将内存中的数据保存到外部文件zggz.dat 中。
类结构如图8-8所示。
图8-8 类CMenuSaveData功能:(1) void save()实现了数据保存的操作,被action 函数调用。
5.CMenuSearch实现按照姓名和工号查询功能,并将查询的结果进行报表输出。
内部使用CGZReport 类的功能。
类结构如图8-9所示。
图8-9 类CMenuSearch功能:(1) void search()实现查询功能,被action 函数调用。
6.CMenuAddNew实现添加新员工的功能。
新添加的员工信息存放在内存的中,用户应该调用数据保存6的功能(由CMenuSaveData 类实现)将添加的数据保存到外部文件。
类结构如图8-10所示。
图8-10 类CMenuAddNew功能:(1) void add()实现添加新员工的功能,被action 函数调用。
7.CMenuDelete实现了删除员工信息的功能。
该类实现删除指定工号或者姓名的员工的信息,只是删除了内存中的员工信息,必须要调用数据保存的功能(由CMenuSaveData 类实现)才能够实际反映到持久化存储设备中。
类结构如图8-11所示。
图8-11 类CMenuDelete功能:(1) void del()实现了删除员工的功能,被action 函数调用。
8.CMenuEdit实现了编辑员工信息的功能。
该类可以编辑指定工号或者姓名的员工的信息,只是编辑内存中的员工信息,必须要调用数据保存的功能(由CMenuSaveData 类实现)才能够实际反映到持久化存储设备中。
类结构如图8-12所示。
图8-12 类CMenuEdit功能:(1) void edit()实现编辑员工的功能,被action 函数调用。
79.CSort_ASC_SFGZ实现员工工资按照实发工资进行升序排序。
并能够将排序结果进行报表(调用CGZReport 类的功能)输出。
类结构如图8-8所示。
图8-8 类CSort_ASC_SFGZ功能:(1) void sort(vector<CEmployee*> *m_pve)实现员工工资排序,action 函数会调用该函数。
m_pve 指向内存中的系统数据。
排序后,内存中员工记录的顺序将发生改变。
10.CMenuStatics对员工工资信息进行统计。
统计时按照存放在standard.txt 文件中的工资分段值统计出各段的员工人数。
例如,若standard.txt 文件中的内容如下:800 2000 5000则系统将统计出:小于8000、大于等于800并且小于2000、大于等于2000并且小于5000、大于等于5000各段的员工人数。
类结构如图8-14所示。
图8-14 类CMenuStaticsm_standard 保存从standard.txt 文件中读入的用于统计的分段的工资值。
功能:(1) void statics()实现统计功能。
action 函数调用该函数。
(2) int lessThan(int v, VPEMPLOYEE *m_pve)实现统计m_pve 指向的员工数据集合中实发工资小于v 的人数。
返回符合条件的人数。
VPEMPLOYEE 通过“typedef vector<CEmployee*> VPEMPLOYEE;”定义。
(3) int between(int l, int r,VPEMPLOYEE *m_pve)实现统计m_pve 指向的员工数据集合中实发工资小于r 并且大于等于l 的人数。
返回8符合条件的人数。
(4) int greaterEqualThan(int r, VPEMPLOYEE *m_pve)实现统计m_pve 指向的员工数据集合中实发工资大于等于r 的人数。
返回符合条件的人数。
(5) void readStandard()从standard.txt 文件中将统计等级的值读入保存到m_standard 中。
11.CMenuEditStandard编辑用于统计的工资分段值,用户可以修改用于统计的工资分段值。
类结构如图8-15所示。
图8-15 类CMenuEditStandard功能:(1)string readStandard()从standard.txt 中读入统计工资分段值,并作为字符串返回。
(2)void edit()实现分段值的编辑,被action 函数调用。
12.CMenuBar可以带有子菜单的菜单项。