首页 > 其他分享 >EECS 183项目分析

EECS 183项目分析

时间:2024-03-26 11:01:38浏览次数:17  
标签:EECS 项目 代码 像素 183 cpp 项目分析

EECS 183项目4:酷派图片p4酷图片
EECS 183项目4:CoolPics
项目截止时间:2024年3月22日星期五晚上11:59直接自动标记链接在这个项目中,您将创建一个程序,读取形状的描述,绘制形状,并将结果保存到文件中。您将使用表示不同的形状。在这里以下是学生在上学期创作的一些图像示例:EECS 183项目4:酷派图片|p4酷派图片2/28通过完成此项目,您将学会:使用多个类开发应用程序将C++程序划分为源文件和头文件从具有多行格式的文件中读取程序输入为类编写测试用例编写给定声明的成员函数存根您将运用在讲座中学到的以下技能:第13讲使用流的失败状态来检测输入格式从进入失败状态的流中恢复使用流读取和写入文件第14讲使用类编写代码编写和使用默认构造函数和非默认构造函数第15讲
将类和成员函数声明和定义放在正确的文件中在适当的地方访问课程的公共和私人部分编写和使用getter和setter函数定义和使用多个非默认构造函数
第16讲创建和使用包含作为其他类实例的成员变量的类第17讲EECS 183项目4:酷派图片|p4酷派图片/28重载运算符«和运算符»以允许类被读取和写入流为用类结构化代码编写测试用例入门
Starter文件
使用此链接下载入门文件,并在IDE中使用它们创建项目。您将使用以下文件:文件角色你要做什么
pics.cpp应用程序驱动程序在此处编写代码并提交
test.cpp测试用例在此处编写代码并提交
圆形.cpp,颜色.cpp,
图形.cpp,线条.cpp,
Point.cpp、Rectangle.cpp、,
三角形.cpp
成员功能
定义
在此处编写代码并提交Circle.h,Color.h,Graphics.h,直线.h,点.h,矩形.h,三角形.h类声明不要修改!形状.h,形状.cpp提供的支持密码请勿修改!bmp.h,实用程序.h提供的支持密码请勿修改!txt文件要生成的输入图片将这些作为测试的输入图片.pp
.bmp文件从.txt文件输出使用这些测试
pics.cpp的输出
我们建议按以下顺序编写代码:
1.test.cpp(在开发每个类时进行)
2.点.cppEECS 183项目4:酷派图片|p4酷派图片
3.颜色.cpp
4.图形.cpp
5.线路.cpp
6.三角形.cpp
7.圆圈.cpp
8.矩形.cpp
9.图片
写入函数存根第一次尝试运行启动代码时,您会看到许多编译错误。他们会看如下所示。这些错误是由于大多数类成员函数缺少函数定义造成的。在里面在EECS 183之前的项目中,为您提供了每个项目的所有必要功能项目给出了函数定义的外壳,您必须完成它们的实现。对于这个项目,您将需要完成函数定义的所有外壳。这必须为所有类完成,才能编译代码。每个功能存在对函数的任何调用,声明就必须具有相应的函数定义。这被称为函数存根。必须为每个函数定义编写所有存根在Visual Studio或Xcode中创建项目后立即执行。Point类非默认构造函数的函数存根如下所示,并且出现在文件Point.cpp中Point类checkRange函数的函数存根如下所示:
矩形.obj:错误LNK2001:未解析的外部符号“public:__thiscall
点::点(int,int)“(??0点@@QAE@HHZ
1.
2.
3.
点::点(int xVal,int yVal){
//执行
}
1.
2.
3.
4.
5.
6.
int点::checkRange(int val){
//执行
//to do-替换为正确的返回语句
返回val;
}

提交和分级在此处将您的代码提交给签名者。您每天收到4次提交,并且您的总体成绩最好提交的内容视为您的分数。您将提交11个文件,这些文件必须名为Circle.cpp,颜色.cpp、图形.cpp、线条.cpp、图片.cpp、点.cpp、矩形.cpp、三角形.cpp,test.cpp、data1.txt和data2.txtdata1.txt和data2.txt文件可以包含您想要的任何内容。他们会帮助你在test.cpp中为文件I/O编写测试用例。您可以将data1.text与已添加的形状一起使用阅读test.cpp和data2.txt来测试写作。正确性(60分)。您的代码在多大程度上实现了我们的规格?您的代码在多大程度上符合我们的规范,并且不受漏洞?测试(10分)。在test.cpp中编写一个测试套件,暴露autorader上的错误。风格(10分)。你的代码写得好到什么程度?您的代码在多大程度上可读性?有关一些提示,请参阅项目风格准则和EECS 183风格指南!
如果您在3月20日(星期三)晚上11:59之前提交,您将在项目的正确性部分。如果您在3月21日(星期四)晚上11:59之前提交,您将获得项目正确部分的2.5%额外信贷与合作伙伴合作对于项目3和项目4,您可以选择与另一名当前在EECS 183注册。尽管如果您愿意,欢迎您单独工作,但我们鼓励您考虑为项目4合作。如果你想要一个合伙伴,但不认识班上的任何人,我们如果你想找人,鼓励你使用广场上的“搜索队友”帖子!一旦找到合作伙伴,请确保将搜索标记为“完成”。为进一步的提醒,伴侣关系被定义为两个人。我们鼓励您提供帮助相互交流,并用英语(或其他人类语言)讨论项目,但不要与除您的合作伙伴以外的任何人共享项目代码。要在autorader上注册合作伙伴关系,请转到项目的autorader链接,然后选择“发送群邀请”。然后,通过输入他们的提示时发送电子邮件。他们将在注册后收到确认,并且必须接受合作伙伴可以提交邀请之前。你必须选择是否在提交之前,请在autorader上注册一个群组。如果选择选项独自工作,你将无法在项目后期与合作伙伴一起工作。如果是合伙企业注册后需要更改,您可以提交管理请求。EECS 183项目4:酷派图片|p4酷派图片6/28出于亲笔签名的目的,代 写EECS 183合作伙伴将被视为一名学生,您将在每天提交的10份文件之外,不得收到额外的提交文件。如果您决定与合作伙伴合作,请务必查看与搭档如果您选择晚些时候上班,并且您正在合作伙伴关系中工作,请查看每个合伙人将收取多晚天数的文件。协作策略我们希望学生们相互学习,相互学习,我们鼓励你们合作。我们也希望鼓励你在需要帮助时伸出援手。我们鼓励你:在理解讲座或实验室中涵盖的课程概念方面给予或接受帮助。与其他学生一起练习和学习,为评估或考试做准备。咨询其他学生以更好地理解项目规范。讨论与项目相关的一般设计原则或想法。帮助其他人了解编译器错误或如何调试部分代码。为了澄清最后一项,你可以查看其他学生的代码来帮助他们了解他们的代码是怎么回事。你不允许告诉他们写什么
他们的代码,并且您不允许复制他们的工作以在您自己的解决方案中使用。如果你是不确定是否允许您的合作,请通过管理表格联系课程工作人员在你做任何事情之前。们将帮助您确定您的想法是否符合精神EECS 183的合作。以下行为被视为违反《荣誉准则》:把别人的工作当成自己的工作。从他人的解决方案中复制或派生部分代码。
协作编写代码,使您的解决方案具有可识别的相似性。与他人共享您的代码,以便在编写代码时用作资源。接受他人的帮助来编写代码。如果将测试用例作为解决方案的一部分提交,则与其他人共享测试用例。以任何方式共享您的代码,包括以任何形式(例如公共GitHub存储库或个人网站)。完整的合作政策可以在教学大纲中找到。建议的时间表EECS 183项目4:酷派图片|p4酷派图片7/28对于这个项目,您将实现各种各样的类。你将大约在如果在每个日期之前你已经为其编写了测试、实现了测试并提交给了autorader,请安排每个指定的类。
3月13日,星期三:编写所有函数存根,可以在本地编译您的项目。
3月15日,星期五:Point.cpp
3月16日,星期六:Color.cpp,Graphics.cpp
3月17日,星期日:Line.cpp,Triangle.cpp
3月18日,星期一:Circle.cpp,Rectangle.cpp,你吃了很多糖果:)
3月20日,星期三:pics.cpp和任何最终调试。今天最后提交5%
额外的学分!月22日,星期五:项目到期。在今天11:59之前向签名者提交您的最后意见下午。解决方案概述你在这个项目中的任务是编写一个可以读取.txt数据文件的程序,处理数据,并为相应的图像创建和写入.bmp文件。在计算机2D图形中,通常在坐标系中表示图像,从这个意义上讲,图像只是比特的映射。对于更大的图像,您只需要一个更大的网格,对于更丰富多彩的图像,每个像素需要更多的位,以便存储更多信息许多文件格式支持“24位颜色”,这意味着它们用24表示像素位(24个零和1)。
24位BMP使用其中的8位表示像素颜色中的红色数量,8位表示像素颜色中的绿色数量,以及表示像素颜色中蓝色数量的8位。
由此发展出了色彩的RGB表示法。顺便说一句,同样的表示是用于web上HTML和CSS中的颜色。如果感兴趣,请查看由于像素中的每种颜色(红、绿、蓝)都由8位表示,此可能有2=256该颜色的值,范围从0到255。一种颜色的值为0意味着“没有颜色”,而255的值意味着“很多这种颜色”。“所以,如果你想表示一个像素
纯蓝色,红色的值为0,绿色的值为零,蓝色的值为255。在网络上——以及本次讨论的其余部分——而不是用小数表示数字0-255,我们使用等效的十六进制数字00-FF,并且可以定义颜色具有这些十六进制值的24位三元组(例如,ff0000是红色,ffffff是白色使用十六进制(即十六进制)进行颜色描述的说明。由于文件只是一个比特序列,我们可以通过顺序放置每个24来创建图像文件表示像素中颜色的位。这(几乎)就是BMP(位图)文件的结构。首先,它包含一些“元数据”,即有关文件的一般信息,如格式、宽度和图像的高度。此元数据以两个数据的形式存储在文件的开头结构称为“头文件”(不要与C++头文件混淆)。别担心页眉中到底应该包含什么(除了图像的宽度和高度);工作人员拿走了小心将它们写入文件。紧跟在标题后面的是位图中的图像表示(即像素的集合)。每个像素存储为三元组(红色、绿色和蓝色值各1个字节)。
然而,BMP将这些三元组向后存储(即,作为BGR),蓝色为8位,后面跟着8位表示绿色,后面跟着8位表示红色。因此,如果我们将上面的黑白笑脸转换为红色,每个白色像素将由三元组(255255255)或中的ffffff表示十六进制,并且每个红色像素将由(0,0255)或类似的0000ff表示十六进制。我们得到现在,我来谈谈填充。事实证明,如果每行中的像素不是4的倍数。例如,m.bmp是11像素宽乘8像素高。

标签:EECS,项目,代码,像素,183,cpp,项目分析
From: https://www.cnblogs.com/simplesky/p/18096113

相关文章

  • EECS 1720简单线程探索
    LAB6::探索和使用鼠标事件、键事件和简单线程(计时器)先决条件-实验室1-5实验室资源:JavaAPI:https://docs.oracle.com/javase/8/docs/api/JavaSwing:https://docs.oracle.com/javase/tutorial/uiswing/components/index.html**事件/事件处理程序接口的Swing层次结构提醒。步骤1:......
  • NMEA 0183协议消息内容解析(HTZN TTL / HT1818Z3G5L)
    1.简单介绍​ HT1818Z3G5L(HTZNTTL)基于杭州中科微电子AT6558D芯片所打造的一款GPS+BDS北斗+GLONASS格洛纳斯卫星定位授时导航模块,该模块采用3.3V供电,串口TTL接收NMEA0183协议消息。​ NMEA0183协议的消息内容大致可分为两种,定位与时间消息、卫星状态消息,这里我们主要介绍一......
  • LCR 183. 望远镜中最高的海拔(双端队列)
    科技馆内有一台虚拟观景望远镜,它可以用来观测特定纬度地区的地形情况。该纬度的海拔数据记于数组 heights ,其中 heights[i] 表示对应位置的海拔高度。请找出并返回望远镜视野范围 limit 内,可以观测到的最高海拔值。示例1:输入:heights=[14,2,27,-5,28,13,39],limit=......
  • CF1833G Ksyusha and Chinchilla 题解
    首先,若\(n\bmod3\neq0\),则一定无解。考虑\(n\bmod3=0\)的情形:首先肯定是先进行一遍树形dp,求出树上每个节点\(x\)的子树大小\(size_x\)。若当前节点的\(size\)值\(=3\),则说明需要切断当前节点于其父节点的连边,使得其子树成为一个大小为\(3\)的单独连通块。......
  • P9183 [USACO23OPEN] FEB B 题解
    由于只需要考虑相邻的位置,所以每一段连续的F是互不影响的,可以分别进行考虑。而连续的一段F又可以分成两类:靠边的和被夹在中间的。靠边的F段较为简单,假定有\(c\)个F,不难发现只要让EB交错出现就可以达到最少次数,而让所有的F都变成最近的非F就可以达到最多次数\(c......
  • Codeforces 1830C Hyperregular Bracket Strings
    考虑到区间的限制\([l,r]\)就是要求\([l,r]\)里的字符会在\([l,r]\)里找到匹配。假设还有个区间\([l',r']\)满足\(l\lel'\ler\ler'\),能够发现限制变成了\([l,l'),[l',r],(r,r']\)这\(3\)个区间内的字符能在对应区间内找到匹配。继续,假设\(l\lel'\le......
  • CF1832B Maximum Sum 题解
    【题目描述】给定一个长度为\(n\)的数列,其中每个元素互不相同,进行\(k\)次操作,每次可以选择删除序列中最小的两个数或最大的一个数。求操作后剩余数的和的最大值。【思路】我们构造一组数据:首先我们看到题目中的一句话:每次可以选择删除序列中最小的两个数或最大的一个数。......
  • CF1832B Maximum Sum 题解
    【题目描述】给定一个长度为\(n\)的数列,其中每个元素互不相同,进行\(k\)次操作,每次可以选择删除序列中最小的两个数或最大的一个数。求操作后剩余数的和的最大值。【思路】我们构造一组数据:首先我们看到题目中的一句话:每次可以选择删除序列中最小的两个数或最大的一个数。......
  • SciTech-EECS-PCB电路板设计-使用KiCad进行PCB设计的基本流程
    使用KiCad进行PCB设计的基本流程,2024-02-2314:04KiCad是一款强大的开源PCB设计软件,其设计的大体流程包括:原理图设计及导出网表文件,PCB布局和布线,导出Gerber文件及制板;以下是使用KiCad进行PCB设计的基本步骤:0.安装KiCad:首先,你需要安装KiCad软件。KiCad官方网站下载......
  • 「杂题乱刷」洛谷 P1831
    题目链接一道简单数位dp题。多设一个支点和力矩和然后套板子就做完了。参考代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++.h>usingnamespacestd;#definemapunordered_m......