2022年C课程总结报告参考 .pdf





《2022年C课程总结报告参考 .pdf》由会员分享,可在线阅读,更多相关《2022年C课程总结报告参考 .pdf(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程总结报告课程名称:C+开发技术学生学号:学生姓名:专业:班级:2017 年月日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 33 页 - - - - - - - - - - 目录第一部分课程学习概述 .1第二部分课后程序设计介绍 .411.概述 .41.1程序的基本功能 .41.2其它功能 .41.3扩展功能 .42课题分析 .52.1会员登入系统模块即SYSTEMHEAD静态全局函数模块 .52.2查询功能模块即SEARCH函数模块 .52.3职务信息匹配及处理模块即SYSTEMBOD
2、Y静态全局函数模块模块4 .52.4循环控制模块即WHILE(1)模块 .53详细设计 .63.1类声明 .63.2系统简略流程图 .73.3会员登入系统模块即SYSTEMHEAD静态全局函数模块 .83.4查询功能模块即SEARCH函数模块 .93.5职务信息匹配及处理模块即SYSTEMBODY静态全局函数模块 .103.6循环控制模块即WHILE(1)模块 .104程序设计总结 . 114.1完成情况 . 114.2遇到的问题及解决 . 11参考文献 .13附录 .14精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - -
3、 - - -第 2 页,共 33 页 - - - - - - - - - - 第一部分课程学习概述上学期我们学习的 Java 和这学期学习的 C+一样都是面向对象的,虽然 C+也可以面向过程设计。在说面向对象之前我们先做个比较。一,传统开发方式存在问题1.软件重用性差重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。2.软件可维护性差软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、 一致的配置成分组成。 在软件开发过程中, 始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。实践证明, 用传统方法开发出来
4、的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。3.开发出的软件不能满足用户需要用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系往往不能真正满足用户的需要。用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较差,这是因为结构化方法的本质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,这样一层一层的分解下去, 直到仅剩下若干个容易实现的子处理功能为止,然后用相应的工具来描述各个最低层的处理。因此,结构化方法是围绕实现处理功能的“ 过程” 来构造系统的。然
5、而,用户需求的变化大部分是针对功能的,因此,这种变化对于基于过程的设计来说是灾难性的。用这种方法设计出来的系统结构常常是不稳定的,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。二,面向对象的基本概念1.对象对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则,计划或事件。2.对象的状态和行为对象具有状态,一个对象用数据值来描述它的状态。对象还有操作, 用于改变对象的状态, 对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。3.类具有相同或相似性质的对象的抽象
6、就是类。因此,对象的抽象是类,类的具精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 33 页 - - - - - - - - - - 体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象, 用操作名和实现该操作的方法来描述。3.类的构造在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般 -具体结构关系,整体 -部分结构关系。一般 具体结构称为分类结构, 也可以说是 “ 或” 关系,或者
7、是 is a 的关系。整体 部分结构称为组装结构,它们之间的关系是一种“ 与” 关系,或者是 has a 的关系。4.消息和方法对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明, 参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。三、面向对象的特征1.对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命
8、期中,它的标识都不改变,不同的对象不能有相同的标识。2.抽象性。分类性是指将具有一致的数据结构(属性)和行为 (操作)的对象抽象成类。一个类就是这样一种抽象, 它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。3.继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。 在定义和实现一个类的时候, 可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。在类层次中,子类只继承一个父类的数据结构和方
9、法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、 类的创建工作量, 增加了代码的可重性。采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 33 页 - - - - - - - - - - 的特性能够共享,提高了软件的重用性。4.多态性 (多形性 ) 多态性是指相同的操作或函数、过程可作用于多
10、种类型的对象上并获得不同的结果。 不同的对象, 收到同一消息可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 33 页 - - - - - - - - - - 第二部分课后程序设计介绍1.概述本程序设计是 C+开发技术课程的后继实践考核环节,学好C+语言就必须坚持用面向对象的思维方式分析问题、解决问题,最好的方法是仿照教材编写 C+实际应用程序。此次程序设计的题目及要求:
11、实现一个简单的工资管理系统。1.1 程序的基本功能系统的主要功能是计算职工当月工资并存档。公司内有5 种不同类型的职工:技术人员、销售人员、文秘、技术经理和销售经理,他们的工资计算方式各不相同。1.2 其它功能将工资信息存入salary.txt 文件中,工资信息包含雇员编号、姓名、职务、月份、月收入。 Info.txt文件中只存留一些信息及会员最后进入系统时输入的数据,最多含有编号、姓名、职务、月份的信息。1.3 扩展功能采用了会员制度,并将登入信息及编号、密码存入number.txt 文件中。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 -
12、- - - - - - - - -第 6 页,共 33 页 - - - - - - - - - - 2 课题分析通过对课题的深入分析, 我将这个课题分为以下几个模块,深入详细得剖析它们。2.1 会员登入系统模块即systemhead 静态全局函数模块程序运行后,先进行会员选择判断。为减少会员重新注册,通过输入两次编号及密码, 增加繁琐度。 同时在一定的方面上, 又方便忘记密码的会员。通过密码匹配,雇员的工资信息这一隐私得到了很好的保障。2.2 查询功能模块即search 函数模块首先,从 info.txt 中提取编号, 与 salary.txt中的编号进行匹配, 匹配成功,输出工资信息,直到文
13、件!indata.eof()=0。. 2.3 职务信息匹配及处理模块即systembody 静态全局函数模块模块 4 从 info.txt 中提取职务信息, 用 switch 语句进行匹配, 据匹配情况调用不同的函数进行输入、处理、显示并以增加方式记录到salary.txt中。2.4 循环控制模块即while(1)模块为了更加方便使用, 尽量改善系统, 实现 search函数及 systembody函数功能,在 search函数及 systembody函数模块的基础上加了一些必要的语句,并增加了外层循环控制。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载
14、名师归纳 - - - - - - - - - -第 7 页,共 33 页 - - - - - - - - - - 3 详细设计作为一个面向对象程序设计,我们不得不先从类的声明开始设计,而后是一个整体的流程图做框架。最后在从小的模块结构着手。3.1 类声明class SalesManager: public Salesman, public Manager public: SaleaManager(float x=0.02); void countSalary( ); ; class TechManager: public Technician, public Manager private:
15、float gradeBonus; int grade; public: TechManager(float x=1000 ); void setgrade(float x); void countSalary( ); ; class Secretary: public Employee private: float fixedSalary; float bonus; public: Secretary(float x=4000); void setbonus(float x); void countSalary( ); ; class Salesman: public Employee pr
16、otected: float salesnum; double getRate; public: salesman(float x=0.05); void setsalesnum(float x); void countSalary( ); ; 图3.1 类声明class Manager protected: float fixedSalary; public: Manaer(float x=6000); void countSalary( ); ; class Technician: public Employee private: float workHour; float hourSal
17、ary; public: technician(float x=36);void setHour(float x); void countSalary( ); class Employee protected: int number; char name25; int status; int month; float salary; public: void info(); void search(); virtual void countSalary(); void recordinfo(); void recordSalary(); ; 精品资料 - - - 欢迎下载 - - - - -
18、- - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 33 页 - - - - - - - - - - 3.2 系统简略流程图假结束再次输入图 3.2 职工工资管理系统简略流程图否是是否会员输入编号及密码开始注册检验?假真选择?0 查询信息1 输入姓名、职务、月份真显示职务代码分析工资记录在salary.txt 处理 1 处理 2 处理 3 处理 4 输入 1 输入 2 输入 3 输入 4 处理 5 输入 5 记录编码姓名职务月份至info.txt 从 info.txt 提取职务代码优点:一个入口,一个出口!精品资料 - - - 欢迎下载 - - -
19、 - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 33 页 - - - - - - - - - - 3.3 会员登入系统模块即systemhead 静态全局函数模块清空 info.txt 并将编号存入到info.txt 中图 3.3 登入系统模块详细流程图否是否会员输入编号及密码打开 name.txt 并输出编号及密码匹配?关闭 name.txt 否是以增加方式打开name.txt 并输入编号及密码关闭 name.txt .输入编号及密码精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 -
20、- - - - - - - - -第 10 页,共 33 页 - - - - - - - - - - 3.4 查询功能模块即search 函数模块1 0 否是输出 info.txt 中的职务信息将 info.txt 的编号与salary.txt 中的编号进行匹配是否打开 info.txt !indata.eof() ?图 3.4 查询功能模块以默认方式打开info.txt 以默认方式打开salary.txt 从文件 info.txt 中提取编号并关闭文件输出“以上是你的工资信息!”关闭 salary.txt 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载
21、名师归纳 - - - - - - - - - -第 11 页,共 33 页 - - - - - - - - - - 3.5 职务信息匹配及处理模块即systembody 静态全局函数模块3.6 循环控制模块即while(1)模块图 3.5 systembody 函数模块以默认方式打开info.txt 提取 info.txt 中的职务信息switch 语句进行职务匹配调用不同函数进行数据处理及显示图 3.6 循环控制模块即while(1) 模块1 0 2 输入选择操作查询功能模块Info 及 recordinfo 调用systembody 调用选择?结束精品资料 - - - 欢迎下载 - - -
22、 - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 33 页 - - - - - - - - - - 4 程序设计总结4.1 完成情况本次程序设计的所有功能基本完成,并且扩展功能也成功的实现!可执行文件能正常执行指令并运行!4.2 遇到的问题及解决图 4.2.1 错误Error 权Desktopmain.o(.data$_vt$8Employee+0 xc):main.cpp: undefined reference to Employee:countSalary(void) 错误:没有定义Employee 类中的 countSalar
23、y 函数!改正:将原先的“virtual void countSalary();”改为 ” virtual void countSalary()”精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 33 页 - - - - - - - - - - 图 4.2.2 错误错误分析:(会员板块中)提示: “数字 1 表示是!其他键表示否! ” ,但定义的选择变量为整型。加上我当时输入字符p。改正:“其他键表示否! ”改为 ” 数字 0 表示否 ” 。输入时按提示进行输入即可!图 4.2.3 错误调试分
24、析:错误发生在systemhead静态全局函数内的文件输入循环模块中!改正:将以nocreate 方式即 ” ifstream indata(d:number.txt ,ios:nocreate); “ 该为默认打开方式即“number.txt);”。图 4.2.4 错误调试分析: 错误发生在调用systembody 静态全局函数前后的while 循环模块中, 很有可能是数据存取混乱造成的。改正:systemhead静态全局函数内“ofstream outdata(d:info.txt,ios:trunc);”改为先清后在以默认方式输入!且将存取整型编号的变量类型从字符型改为整型。图 4.2.
25、5 错误错误:后面莫名其妙的跟着一个提示语句指令。分析调试:当语句指令是基类info 函数内的语句,很有可能是循环控制出现了一些问题。改正:见程序源代码!精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 33 页 - - - - - - - - - - 参考文献1下面给出几个参考文献的 格式参考2匿名,不知道,非常多计算机实用教程北京:XX 大学出版社, 2004,123234 3美 Donis SomethingVisual X# 2008 技术内幕北京: YYY 大学出版社,2007,56
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C课程总结报告参考 2022 课程 总结报告 参考

限制150内