diff options
616 files changed, 23234 insertions, 0 deletions
@@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +<https://www.gnu.org/licenses/>. diff --git a/C++/2D Arrays/2D Arrays.cpp b/C++/2D Arrays/2D Arrays.cpp new file mode 100644 index 0000000..d18f148 --- /dev/null +++ b/C++/2D Arrays/2D Arrays.cpp @@ -0,0 +1,44 @@ +// Name: msglm +// Date: Nov 25th 2022 +// Program Name: 2D Arrays +// Description: + + +#include <iostream> +#include <string> +using namespace std; + +//classes +class Person { + public: + string movies[2][4]; + void getMovies() { + cout << "Enter your favorite movies: \n"; + for(int x = 0; x < 2; x++) { + for(int y = 0; y < 4; y++) { + cout << "This will be going in position: (" << x << "," << y << ")\n"; + getline(cin,movies[x][y]); + } + } + } + void output() { + for(int x = 0; x < 2; x++) { + for(int y = 0; y < 4; y++) { + cout << movies[x][y] << endl; + } + } + } +}; + +int main() { + Person person; + person.getMovies(); + person.output(); +} +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/2D Arrays/INSTRUCTIONS b/C++/2D Arrays/INSTRUCTIONS new file mode 100644 index 0000000..924f32d --- /dev/null +++ b/C++/2D Arrays/INSTRUCTIONS @@ -0,0 +1,32 @@ +HW4: 2D Arrays +Due November 29th, 2022 before midnight +50 Points +2D Arrays are only introduced in this course. You will use them in data structures instead. Therefore, this assignment is meant to let you become familiar with the concept before you move onto that class. +In this assignment, you will watch the videos about 2D Arrays. Then, you will write a program that does the following: + + Write a program using 2D Arrays that will store information from a user where they enter their favorite movie names. It is up to you to decide how many movie names will be entered + Output the information entered back onto the screen + +Assignment Notes: + + This program will be written in an OOP environment using functions where possible + Use functions to get the data and to output the data + Keep the program short! This is not meant to be a big assignment. :D + You can look up information about 2D arrays if you need additional examples, but please, no copy/paste! Copy/paste = 0/50 + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If your program is not object-oriented, you will receive a 0/50(OOP is requred for this assignment) + If your work is late (within 48 hours of the due date), you will lose 25 points + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/50 + If you submit a file type I cannot open, such as .sln, you will receive a 0/50. You will be able to resubmit for credit, but you will lose points (depending on how late it is) + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + diff --git a/C++/ArrayExamples/ArrayExamples.cpp b/C++/ArrayExamples/ArrayExamples.cpp new file mode 100644 index 0000000..119a709 --- /dev/null +++ b/C++/ArrayExamples/ArrayExamples.cpp @@ -0,0 +1,73 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +const int ARRAY_SIZE = 5; + +int main() { + //Variable declaration + int num[ARRAY_SIZE]; //Declaring array size + int maxIndex; + int minIndex; + int sum = 0; + + //Program title and description for the user + + cout << "Array Example : This program will sho whow to declare, init, and raverse through \n an array. and find largest, smallest, sum, and average value.\n"; + + //get ints from user to initialize + for (int i = 0 ; i < ARRAY_SIZE; i++) { + cout << "Enter Value " << i+1 << ": " << endl; + cin >> num[i]; + } + cout << endl; + + //Check input by printing to the console + for (int i = 0 ; i < ARRAY_SIZE; i++) { + cout << "num[" << i << "]= " << num[i] << endl; + } + + //Find largest value + maxIndex = 0; + for (int i = 0; i < ARRAY_SIZE; i++) { + if(num[maxIndex] < num[i]) { + maxIndex = i; + } + } + cout << "Largest Value: " << num[maxIndex] << endl; + + //Find smallest value + minIndex = 0; + for (int i = 0; i < ARRAY_SIZE; i++) { + if(num[minIndex] > num[i]) { + minIndex = i; + } + } + cout << "Largest Value: " << num[minIndex] << endl; + + float average; + //Find sum and average + for (int i = 0; i < ARRAY_SIZE; i++) { + sum = sum + num[i]; + } + average = sum/ARRAY_SIZE; + + cout << "Sum: " << sum << endl; + cout << "Average: " << average << endl; +} + + /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/ArraySearchExample/ArraySearchExample.cpp b/C++/ArraySearchExample/ArraySearchExample.cpp new file mode 100644 index 0000000..ce686e9 --- /dev/null +++ b/C++/ArraySearchExample/ArraySearchExample.cpp @@ -0,0 +1,66 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +const int ARRAY_SIZE = 7; + +int main() { + //Variable Declaration + int list[ARRAY_SIZE] = {45, 12, 27, 12, 45, 12, 38}; + int num; + bool isFound = false; + int count_num = 0; + + //Program Title + cout << "Searching an Array" << endl << endl; + + // Ask the user for input num + cout << "What integer would you like to search for?\n"; + cin >> num; + + for ( int i = 0; i < ARRAY_SIZE; i++ ) { + if (list[i] == num) { + isFound = true; + break; + } + } + + if (isFound) { + cout << "The number " << num << " is in the list " << endl; + } else { + cout << "The number " << num << " is not in the list" << endl; + } + + //Print number of time s a number is found in the list + for ( int i = 0; i < ARRAY_SIZE; i++ ) { + if (list[i] == num) { + count_num++; + } + } + cout << "The number " << num << " is in the list " << count_num << " times"; + + //Print the location where the number is found in the list + cout << "\nThe number is in locations: " << endl; + + for (int i = 0; i < ARRAY_SIZE; i++ ) { + if (list[i] == num) { + cout << "list[" << i << "] " << endl; + } + } +} + + /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Arrays/Files, Functions and Arrays bloatless version.cpp b/C++/Arrays/Files, Functions and Arrays bloatless version.cpp new file mode 100644 index 0000000..963feef --- /dev/null +++ b/C++/Arrays/Files, Functions and Arrays bloatless version.cpp @@ -0,0 +1,78 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <fstream> +#include <string> +using namespace std; + +// Named constants +int ARR_SIZE = 50; //Personally, i'd pass this as an env var or a flag + +int main() { + + //Variable declaration + string tmpArr[ARR_SIZE]; //Probably could pass through the file first to get the size first and declare this, but that's past this program's scope. + int epoch = 0; //both counts up and is the length of the array. + + //Vars necessary to invert an array + int start = 0; + string tmp; + int end = 0; + + //It's a shame this isn't STDIN and STDOUT + ifstream inFile; + ofstream outFile; + + // User input + if (inFile) { + + inFile.open("in.txt"); + outFile.open("out.txt"); + + //Read the line, put it at the epoch in the array, also check if EOF. if EOF, abort. + while(getline(inFile, tmpArr[epoch]) && inFile.peek() != EOF) { + cout << tmpArr[epoch] << endl; + outFile << tmpArr[epoch] << endl; + epoch = epoch + 1; + } + + //Epoch is assumed to be the length of the variable at this point, so will use accordingly + end = epoch; + + //exchange the positions of the first and last var in an array while slowly moving to the center + //i.e + //on first pass of the while look will turn [1, 2, 3, 4] into [4, 2, 3, 1] + //and the second will turn [4, 3, 2, 1] + // + //I opted to use this algorithm to not create any more data + while (start < end) { + tmp = tmpArr[start]; + tmpArr[start] = tmpArr[end]; + tmpArr[end] = tmp; + start = start + 1; + end = end - 1; + } + //finally, output the reversed array and dump it into a file + for(int i=0;i<epoch+1;i++) { + cout << tmpArr[i] << endl; + outFile << tmpArr[i] << endl; + } + + return 0; + } else { + cout << "ERROR. Input File doesn't exist!"; + return 1; + + } +} +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Arrays/Files, Functions and Arrays.cpp b/C++/Arrays/Files, Functions and Arrays.cpp new file mode 100644 index 0000000..2ce808a --- /dev/null +++ b/C++/Arrays/Files, Functions and Arrays.cpp @@ -0,0 +1,111 @@ +// Name: msglm +// Date: August 25th 2022 +// Program Name: Files, Functions and Arrays +// Description: Create a program that reads in an unknown number of ATU class names (such as Programming 2) from an input file (see explanation of unknown number below). Then, output those class names to both the screen and an output file - output once in the order in which the data was read in from the file and again in reverse order. + + + +#include <iostream> +#include <fstream> +#include <string> +using namespace std; + +// Named constants +const int ARR_SIZE = 50; //Personally, i'd pass this as an env var or a flag + + +//Global Variable declaration +// +//Usually this is bad practice, but the function requirement for this has forced me to partake in this +//I could have done some mess with passing by reference, but every function was assumed to share the same data +//(I wrote it all in main first and then fragmented it), so this is the best way I could find to reach requirement +// +//Something like this should never reach production ever. + +string tmpArr[ARR_SIZE]; //Probably could pass through the file first to get the size first and declare this, but that's past this program's scope. +int epoch {}; //both counts up and is the length of the array. + +//Vars necessary to invert an array +int start {}; +string tmp; +int arrEnd {}; //Conflicts with namespace, hence the name + +//It's a shame this isn't STDIN and STDOUT +ifstream inFile; +ofstream outFile; + + +//Functions are pretty unncessary for this code and overcomplicate more than they help +//The original code for this before I split it into 5 functions was a cute little 40 SLOC thing. + +bool fileFound(string location) { + ifstream testFile; + testFile.open(location); + + if (testFile) { + return true; + } else { + return false; + } +} + +void orderArray() { + //Read the line, put it at the epoch in the array, also check if EOF. if EOF, abort. + while(getline(inFile, tmpArr[epoch]) && inFile.peek() != EOF) { + epoch = epoch + 1; + } + +} + +void displayNormalOrderArray() { + int i = 0; + while(i<epoch){ + cout << tmpArr[i] << endl; + outFile << tmpArr[i] << endl; + i++; + } + +} + +void reverseOrderArray() { + //the skip of the last digit is purposeful, the other loop covers it + for(int i=epoch;i>=0;i--) { + cout << tmpArr[i] << endl; + outFile << tmpArr[i] << endl; + } +} + +void closeFiles() { + inFile.close(); + outFile.close(); +} + +int main() { + + //Var assignments + + // User input + if (fileFound("in.txt")) { + + inFile.open("in.txt"); + orderArray(); + outFile.open("out.txt"); + displayNormalOrderArray(); + reverseOrderArray(); + closeFiles(); + + return 0; + + } else { + cout << "ERROR. Input File doesn't exist!"; + return 1; + + } +} +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Arrays/bloat b/C++/Arrays/bloat Binary files differnew file mode 100755 index 0000000..e39fad8 --- /dev/null +++ b/C++/Arrays/bloat diff --git a/C++/Arrays/bloatless b/C++/Arrays/bloatless Binary files differnew file mode 100755 index 0000000..98d671b --- /dev/null +++ b/C++/Arrays/bloatless diff --git a/C++/Arrays/in.txt b/C++/Arrays/in.txt new file mode 100644 index 0000000..f00c965 --- /dev/null +++ b/C++/Arrays/in.txt @@ -0,0 +1,10 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 diff --git a/C++/Arrays/instructions b/C++/Arrays/instructions new file mode 100644 index 0000000..d09b59d --- /dev/null +++ b/C++/Arrays/instructions @@ -0,0 +1,36 @@ + +Project 1: Files, Functions and Arrays +Due: Friday, August 26th, 2022 before midnight +100 Points +Problem Statement: +Create a program that reads in an unknown number of college-name class names (such as Programming 2) from an input file (see explanation of unknown number below). Then, output those class names to both the screen and an output file - output once in the order in which the data was read in from the file and again in reverse order. +Step-by-step instructions: + + Create an array variable to store string values. Make this array variable so it can store up to 50 values in it. When declaring that array variable, use a constant int to allocate the size. + Create an input file variable to read in the class name data. Create an output file variable to store output + Use a loop of your choice to read in an unknown number of values from your input file and store that data into the array variable you created in step 1 (unknown number values: this means the number of data items stored in the file size is not static. It can change each time the program executes) + Use getline to read in string values from your input file so you may capture values with spaces in them + After reading in the class names from the input file and storing them into your array variable, output them to both the screen and an output file in the original order and again in reverse order + Use functions to do the following: + Check to see if the file was found + Read in the class names + Output the class names to the screen in the original order + Output the class names in reverse order + Close the files + +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +***NOTE*** Here is an explanation of unknown number of records - Example: Let's say we want to read in from an input file the names of students attending class each class day. The number of students attending class varies because students sometimes miss class. Therefore, we do not know how many names will be read into our program when we take roll. Therefore, we need to build our system to handle this issue. In the assignment I asked you to create, you do not know how many class names will be inside of the input file. It could be 2 or 5 or 20. We don't know. So, you will need to write you program to handle this problem. Ths is simply using a while loop to read until the end of file is reached. I discuss how to do this in the video lectures on files. The only real problem is if the number of records read in from the input file exceeds the the array allocation. Example: string classNames[10]; and I try to read in 20 class names. This is not possible. To prevent this issue, you need to set your allocation to a value that likely be higher so this issue does not occur. +If you are stuck, no worries. I will help in class and through email. +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If you do not use functions, you will use 10 points per missing function (50 points possible) + If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none) + If your program is late (within 48 hours of the due date), you will lose 25 points + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the severity + If your program stops working when I run it, you will lose points. The amount depends on the severity of the error + If your program is identical to another student's work, I will contact both students for a conference where you may both receive a 0/100 for your project + If your program looks like a a professional programmer wrote it, I will contact you to determine if you did indeed write the program or copy off of the internet, you may receive a 0/100 for copying + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + diff --git a/C++/Arrays/out.txt b/C++/Arrays/out.txt new file mode 100644 index 0000000..80c0dcc --- /dev/null +++ b/C++/Arrays/out.txt @@ -0,0 +1,19 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 diff --git a/C++/Ch6Practice1/Ch6Practice1.cpp b/C++/Ch6Practice1/Ch6Practice1.cpp new file mode 100644 index 0000000..4623714 --- /dev/null +++ b/C++/Ch6Practice1/Ch6Practice1.cpp @@ -0,0 +1,97 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +//Function header (probably should be in a header file) +int civi_to_mili(int startTime, string meridian); +int mili_to_civi(int startTime, string &meridian); + +// Named constants + +int main() { + + //Variable declaration + int hour; + int minute; + int choice; + string meridian; + int trueHour; + //Program title and description for the user + cout << "Title: Military-To-Civilian time converter" << endl << "Description: converts military to civilian time and vice-versa" << endl; + do { + + // User input + cout << "Enter the hour" << endl; + cin >> hour; + + cout << "Enter the minute" << endl; + cin >> minute; + trueHour = hour; + + cout << "AM or PM? (either works if military time)" << endl; + cin >> meridian; + + if (!cin) { + cin.clear(); + cin.ignore(100, '\n'); + } + + } while (!cin); + + do { + cout << "1. Convert Civi to Mili\n"; + cout << "2. Convert Mili to Civi\n"; + cout << "3. Print current time\n"; + cout << "4. Exit\n"; + cout << "Choice: \n"; + cin >> choice; + if (choice == 1) { + trueHour = civi_to_mili(trueHour, meridian); + cout << "\033[2J\033[1;1H"; + cout << "time: \n"; + cout << trueHour << ":" << minute << " " << meridian << endl; + } else if (choice == 2) { + trueHour = mili_to_civi(trueHour, meridian); + cout << "\033[2J\033[1;1H"; + cout << "time: \n"; + cout << trueHour << ":" << minute << " " << meridian << endl; + } else if (choice == 3) { + cout << "\033[2J\033[1;1H"; + cout << "time: \n"; + cout << trueHour << ":" << minute << " " << meridian << endl; + } else { + return 0; + } + } while (cin); +} + +int civi_to_mili(int startTime, string meridian) { + if (meridian == "PM"){ + return startTime + 12; + } else { + return startTime; + } +} +int mili_to_civi(int startTime, string &meridian) { + if (startTime > 12){ + meridian = "PM"; + return startTime-12; + } else { + meridian = "AM"; + return startTime; + } +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Circle/Circle.cpp b/C++/Circle/Circle.cpp new file mode 100644 index 0000000..11bb9e3 --- /dev/null +++ b/C++/Circle/Circle.cpp @@ -0,0 +1,32 @@ +// Name: msglm +// Introduction: Circle Program +// Description: Program to compute and output the area/circumference of a circle by inputting a radius. + +#include <iostream> +#include <string> +#include <numbers> +#include <cmath> +using namespace std; +int main() { + float inputRadius; + string measurement; + const double pi = 3.14; + + cout << "Please Input the Desired Radius for your Circle: "; + cin >> inputRadius; + + cout << "What measurement would you like to use?: "; + cin >> measurement; + + cout << "Radius: " << inputRadius << measurement << endl; + cout << "Circumference: " << 2*pi*inputRadius << measurement << endl; + cout << "Area: " << pi*pow(inputRadius, 2) << measurement << endl; + +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Cube/Cube.cpp b/C++/Cube/Cube.cpp new file mode 100644 index 0000000..b66a240 --- /dev/null +++ b/C++/Cube/Cube.cpp @@ -0,0 +1,25 @@ +// Name: msglm +// Introduction: Cube Program +// Description: A program that will find the surface area and volume of a cube. + + +#include <iostream> +#include <cmath> +using namespace std; +int main() { + float sideLength; + float sideArea; + + sideLength = 6.0; //A good program would allow user input via command line arguments. + cout << "Cube Surface Area Is: " << 6*pow(sideLength, 2) << " Cubed Inches \n"; + cout << "Cube Volume Is: " << pow(sideLength, 3) << " Cubed Inches \n"; + + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/DoWhileLoopPractice/DoWhileLoopPractice.cpp b/C++/DoWhileLoopPractice/DoWhileLoopPractice.cpp new file mode 100644 index 0000000..d6bc9aa --- /dev/null +++ b/C++/DoWhileLoopPractice/DoWhileLoopPractice.cpp @@ -0,0 +1,67 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + int i; + int score; + int choice; + + // Example 1 + cout << "Do While Loop Example 1" << endl; + + i = 11; + + do { + cout << i << " " << endl; + i = i + 5; + } while( i <= 30 ); + + cout << "Out of the Loop!" << endl << endl; + + //Example 2 + + cout << "Do While Loop Example 2" << endl; + + do { + cout << "Enter a score between 0 and 50" << endl; + cin >> score; + cout << endl; + + if(score < 0 || score > 50) { + cout << "It is an invalid input" << endl; + } + } while (score < 0 || score > 50); + cout << "That was a valid input" << endl; + + cout << "Do While Loop Example 3" << endl; + + cout << "Menu Options" << endl << endl; + cout << "1 - Option 1" << endl; + cout << "2 - Option 2" << endl; + cout << "3 - Option 3" << endl; + + do { + cout << "Enter your choice:" << endl; + cin >> choice; + } while(choice<1||choice>3); + cout << "Your choice is: " << choice << endl; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/DoWhileLoopPractice/NestedLoop-TriangleDrawing/NestedLoop-TriangleDrawing.cpp b/C++/DoWhileLoopPractice/NestedLoop-TriangleDrawing/NestedLoop-TriangleDrawing.cpp new file mode 100644 index 0000000..70f43ce --- /dev/null +++ b/C++/DoWhileLoopPractice/NestedLoop-TriangleDrawing/NestedLoop-TriangleDrawing.cpp @@ -0,0 +1,36 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + + int i, j; + cout << "Nested loop practice - drawing triangles"; + + for (i = 1; i <= 5; i++) { + + for (j = i ; j <=i ; j++) + cout << "*"; + cout << endl; + } + + +} + + /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Earnings/Earnings.cpp b/C++/Earnings/Earnings.cpp new file mode 100644 index 0000000..fd1ca98 --- /dev/null +++ b/C++/Earnings/Earnings.cpp @@ -0,0 +1,43 @@ +// Name: msglm +// Introduction: Earnings +// Description: a program that will determine how much an employee earned in a given time period + + +#include <iostream> +#include <string> +using namespace std; +int main() { + + string name; + double payRate; + int hours; + + cout << "What is your name?: "; + + //Get the full name of the user + getline(cin, name); + + //Obtain payrate + cout << "What is your payrate (per hour)?: "; + cin >> payRate; + + //Obtain hours worked + cout << "How many hours have you worked?: "; + cin >> hours; + + //Output calculated information. payRate*hours is a standard equation + cout << "Name: " << name << endl; + cout << "Pay rate: " << "$" << payRate << endl; + cout << "Hours Worked: " << hours << endl; + cout << "Earnings: " << "$" << payRate*hours << endl; + + return 0; + +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/ExamAverage/Based/ExamAverage.cpp b/C++/ExamAverage/Based/ExamAverage.cpp new file mode 100644 index 0000000..b189b94 --- /dev/null +++ b/C++/ExamAverage/Based/ExamAverage.cpp @@ -0,0 +1,55 @@ +// Name: msglm +// Introduction: Exam Average +// Description: Calculates the average score between exams given exam scores. + + +#include <iostream> +#include <string> +#include <vector> +using namespace std; +int main() { + + float temporaryUserInput; + float totalScore = 0; + vector<float> testScores; + + cout << "Please input your test scores: \nWhen finished, type any non-number input: \n"; + + //While loop that tests if temporaryUserInput is not valid input; terminate if not valid + while (1) { + + //Cin that writes to temporaryUserInput + cin >> temporaryUserInput; + + //if temporaryUserInput is a number, append temporaryUserInput to testScores & loop over + if(cin.fail() && testScores.size() == 0) { + cout << "You Terminated the program without giving proper input! Shame on You! \n"; + return(1); + } else if (cin.fail()){ + //otherwise, break the loop and move on to calculating averages + break; + } else { + //This is the point where the test scores are appended to and a loop happens + testScores.push_back(temporaryUserInput); + } + } + + //for every number in the vector testScores, add that number to testScoresSum + for (int number = 0; number <= testScores.size(); number++) { + totalScore = totalScore + testScores[number]; + } + + //print the output of testScoresSum divided by the length of testScores + cout << "Your average score is: " << totalScore/testScores.size() << "%\n"; + +} + + + + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/ExamAverage/Exam Average Program - planning sheet.docx b/C++/ExamAverage/Exam Average Program - planning sheet.docx Binary files differnew file mode 100644 index 0000000..7ecf4ad --- /dev/null +++ b/C++/ExamAverage/Exam Average Program - planning sheet.docx diff --git a/C++/ExamAverage/Exam Average Program - planning sheet.odt b/C++/ExamAverage/Exam Average Program - planning sheet.odt Binary files differnew file mode 100644 index 0000000..8e56068 --- /dev/null +++ b/C++/ExamAverage/Exam Average Program - planning sheet.odt diff --git a/C++/ExamAverage/Exam Average Program - planning sheet.pdf b/C++/ExamAverage/Exam Average Program - planning sheet.pdf Binary files differnew file mode 100644 index 0000000..cd481a2 --- /dev/null +++ b/C++/ExamAverage/Exam Average Program - planning sheet.pdf diff --git a/C++/ExamAverage/ExamAverage.cpp b/C++/ExamAverage/ExamAverage.cpp new file mode 100644 index 0000000..e9a6d52 --- /dev/null +++ b/C++/ExamAverage/ExamAverage.cpp @@ -0,0 +1,35 @@ +// Name: msglm +// Introduction: Exam Average +// Description: Calculates the average score between exams given exam scores. + + + +#include <iostream> +using namespace std; +int main() { + //Doubles are more percise at the cost of memory. If someone needed to optimize, here would be the area to do so. + double scores[5]; + double totalScore = 0; + + + cout << "Input 5 test scores. \n"; + + //For 5 iterations, grab the user's input and assign it to a position in the array + for(int iteration = 0; iteration < 5; iteration++) { + cin >> scores[iteration]; + } + + //Add everything in the array together. TODO: find a better way of doing this. + for(int iteration = 0; iteration < 5; iteration++) { + totalScore = totalScore + scores[iteration]; + } + //print the output of total score divided by the test score array's size (5) in this case + cout << "Your average score is: " << totalScore/5 << "%\n"; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/ExamAverage2/ExamAverage2.cpp b/C++/ExamAverage2/ExamAverage2.cpp new file mode 100644 index 0000000..d531a6b --- /dev/null +++ b/C++/ExamAverage2/ExamAverage2.cpp @@ -0,0 +1,40 @@ +// Name: msglm +// Introduction: Exam Average +// Description: Calculates the average score between exams given exam scores. + + + +#include <iostream> +using namespace std; +const int NUMOFSCORES = 3; + +void testAverage(); + +int main() { + testAverage(); + cout << "Terminating" << endl; + return 0; +} + +void testAverage() { + double avg; + double test1; + double test2; + double test3; + cout << "Enter 3 test scores. decimals are acceptable.\n"; + cout << "Test 1\n"; + cin >> test1; + cout << "Test 2\n"; + cin >> test2; + cout << "Test 3\n"; + cin >> test3; + avg = (test1 + test2 + test3) / NUMOFSCORES; + cout << "Average test score: " << avg << endl; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Final Program/Final.cpp b/C++/Final Program/Final.cpp new file mode 100644 index 0000000..10894c3 --- /dev/null +++ b/C++/Final Program/Final.cpp @@ -0,0 +1,247 @@ +// Name: msglm +// Date: Nov 29th 2022 +// Program Name: Final Program +// Description: The last hurrah! + + +//This is it, the last time I will be touching C++ while not being paid! +//But seriously, this class has been great, especially for an online class. I'm glad you were receptive to my comments and I appreciate the feedback given. The topics, while filled with gross C++isms, is useful in the industry and im glad I got to practice and refine my skills in them (even if I disliked the content). +//For hobby projects, I'll absolutely be avoiding C++! However, this class has opened up some rabbit holes on topics to go down (such as FORTH programming and functional programming) and has let me develop my side-effect avoidant style of coding. These will surely be useful for my own hobby projects. +//Anyway, This, and the other assignment you put out, will likely be the last you ever see from me, unless you can offer me a job or something (im graduating with my associates this semseter, so i'll consider it if you can offer!). For now at least, Goodbye and have a nice life! + +#include <iostream> +#include <string> +#include <vector> +#include <iomanip> +#include "person.h" +using namespace std; + +//Classes + +class Movie : public Person { + private: + string movieName; + string boxOffice; + int year; + bool special; + public: + void set_movieName(string x) { movieName = x; } + void set_boxOffice(string x) { boxOffice = x; } + void set_year(int x) { year = x; } + string get_movieName() { return movieName; } + string get_boxOffice() { return boxOffice; } + int get_year() { return year; } + + bool chosenIsFav() { + if (movieName == get_favmov()) { + return true; + } + return false; + } +}; + +string sanitize(string userInput) { + bool insideATag = false; + bool metTheTagTerminator = false; + int beginBracketPos; + int endBracketPos; + int tagLength; + + for (int charPos=0; charPos<=userInput.length();charPos++) { + if (insideATag && metTheTagTerminator) { + + tagLength = (endBracketPos-beginBracketPos)+1; + userInput.erase(beginBracketPos, tagLength); + charPos = 0; + insideATag = false; + metTheTagTerminator = false; + } + if (userInput[charPos] == '<') { + insideATag = true; + beginBracketPos = charPos; + } + + if (userInput[charPos] == '>' && insideATag) { + metTheTagTerminator = true; + endBracketPos = charPos; + } + + + } + return userInput; +} + + +Movie getInput() { + Movie movie; + string temp; + + cout << "===Enter your information===\n"; + cout << "Please enter your first name: "; + cin >> temp; + movie.set_fname(sanitize(temp)); + + cout << "Please enter your last name: "; + cin >> temp; + cin.ignore(); + movie.set_lname(sanitize(temp)); + + cout << "Please enter your favorite movie: "; + getline(cin, temp); + movie.set_favmov(sanitize(temp)); + + cout << "Please enter the movie's name: "; + getline(cin, temp); + movie.set_movieName(sanitize(temp)); + + cout << "Please enter the movie's box office: "; + cin >> temp; + movie.set_boxOffice(sanitize(temp)); + + cout << "Please enter the movie's year of release: "; + cin >> temp; + movie.set_year(stoi(sanitize(temp))); + return movie; +} + + +vector<Movie> sort(vector<Movie> movieList, int menuOption) { + Movie temp; + switch(menuOption) { + case 1: + for (int pos = 0; pos < movieList.size() - 1; pos++) { + for (int comparePos = 0; comparePos < ((movieList.size() - 1) - pos); comparePos++) { + if(movieList[comparePos].get_movieName() > movieList[comparePos + 1].get_movieName()) { + temp = movieList[comparePos]; + movieList[comparePos] = movieList[comparePos + 1]; + movieList[comparePos + 1] = temp; + } + } + } + break; + case 2: + for (int pos = 0; pos < movieList.size() - 1; pos++) { + for (int comparePos = 0; comparePos < ((movieList.size() - 1) - pos); comparePos++) { + if(movieList[comparePos].get_year() > movieList[comparePos + 2].get_year()) { + temp = movieList[comparePos]; + movieList[comparePos] = movieList[comparePos + 1]; + movieList[comparePos + 1] = temp; + } + } + } + break; + case 3: + for (int pos = 0; pos < movieList.size() - 1; pos++) { + for (int comparePos = 0; comparePos < ((movieList.size() - 1) - pos); comparePos++) { + if(stof(movieList[comparePos].get_boxOffice()) > stof(movieList[comparePos + 1].get_boxOffice())) { + temp = movieList[comparePos]; + movieList[comparePos] = movieList[comparePos + 1]; + movieList[comparePos + 1] = temp; + } + } + } + break; + case 4: + //Display the highest grossing movie's info + for (int pos = 0; pos < movieList.size() - 1; pos++) { + for (int comparePos = 0; comparePos < ((movieList.size() - 1) - pos); comparePos++) { + if(stof(movieList[comparePos].get_boxOffice()) > stof(movieList[comparePos + 1].get_boxOffice())) { + temp = movieList[comparePos]; + movieList[comparePos] = movieList[comparePos + 1]; + movieList[comparePos + 1] = temp; + } + } + } + movieList.erase(movieList.begin(),movieList.end()-1); + break; + case 5: + //Display the lowest grossing movie's info + for (int pos = 0; pos < movieList.size() - 1; pos++) { + for (int comparePos = 0; comparePos < ((movieList.size() - 1) - pos); comparePos++) { + if(stof(movieList[comparePos].get_boxOffice()) > stof(movieList[comparePos + 1].get_boxOffice())) { + temp = movieList[comparePos]; + movieList[comparePos] = movieList[comparePos + 1]; + movieList[comparePos + 1] = temp; + } + } + } + movieList.erase(movieList.begin()+1,movieList.end()); + break; + } + return movieList; +} + +void output(vector<Movie> movieDataContainer) { + + cout << left << setw(25) << "First Name" ; + cout << left << setw(25) << "Last Name" ; + cout << left << setw(25) << "Favorite Movie" ; + cout << left << setw(25) << "Movie Name" ; + cout << left << setw(25) << "Box Office" ; + cout << left << setw(25) << "Year Released" ; + + for (Movie movie : movieDataContainer) { + cout << endl; + cout << left << setw(25) << movie.get_fname(); + cout << left << setw(25) << movie.get_lname(); + cout << left << setw(25) << movie.get_favmov(); + cout << left << setw(25) << movie.get_movieName(); + cout << left << setw(25) << movie.get_boxOffice(); + cout << left << setw(25) << movie.get_year(); + if (movie.chosenIsFav()) { + cout << left << setw(15) << "<--- This individual's chosen movie is also their favorite!"; + } + } + cout << endl; +} + + +int menuOption() { + int choice; + cout << "1. Sort by Movie Name\n"; + cout << "2. Sort by Year Released\n"; + cout << "3. Sort by Box office gross\n"; + cout << "4. Display the highest grossing movie's info\n"; + cout << "5. Display the lowest grossing movie's info\n"; + cout << "Enter Selection: "; + cin >> choice; + return choice; +} + + + + +int main() { + char finished; + vector<Movie> movieVector; + movieVector.push_back(getInput()); + movieVector.push_back(getInput()); + movieVector.push_back(getInput()); + + + //This is wrote in an uneligant way because I eliminated state when state would have been useful! + //Since everything is just data being passed around, there's no actual state that would tell if a user is finished or not + //To my knowledge, the concept of a functional Monad (https://en.wikipedia.org/wiki/Monad_(functional_programming) ) would + //have solved this problem, but I'm writing in C++ and not LISP, also I don't know LISP! + // + //Maybe I should learn LISP or Haskell. + //Wow, am I really going to be one of those functional programming nerds? + //I really should have gotten a math degere instead of an IT one + //however, the recession is looming and I need a job sooner rather than later! + while(true) { + output(sort(movieVector, menuOption())); + cout << "Are you finished working with your data (Y/n)?: "; + cin >> finished; + if (finished == 'y' || finished == 'Y') { + cout << "Acknowledged. Terminating now.\n"; + exit(0); + } + } +} +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Final Program/INSTRUCTIONS b/C++/Final Program/INSTRUCTIONS new file mode 100644 index 0000000..277f82a --- /dev/null +++ b/C++/Final Program/INSTRUCTIONS @@ -0,0 +1,50 @@ + Final Program +Due on Tuesday, November 29th before midnight (no late assignments accepted since this is the last day of class) +200 Points +Write a program that does the following: + + Create a parent class called Person and it will have the variables to store first name, last name and their favorite movie + Move the Person class into a header file (you may keep the code together until finished, then move it to a header file to make this easier) + Create a child class that inherits from the Person class called Movie. It will store the variables movie name, box office gross, and year made + Get data via the keyboard or an input file for each of the above variables. Please store at least 3 sets of data to make the program interesting + As you read in the movie name, check it for <HTML> tags and remove any found + Create a simple menu that will ask a user if they want to: + Sort on the movie name + Sort on the box office gross + Sort on the year the movie was made + Display the highest grossing movie's info + Display the lowest grossing movie's info + The menu should loop until the user is finished making choices + If the person's favorite movie matches the a movie entered, output a special message to the screen + Output to the screen each time the user makes a selection + +Assignment Notes: + + You are free to use arrays or vectors. Or, you can mix/match. It is up to you. + It will be easier if you have all of your functions in a class. This is not required though. + You can get the information via the keyboard or from an input file. Up to you. + Your variables should be in a class - Private or Protected sections. + I will be closely watching for cheating (copying from friends, online help, etc.) + +General Notes: + + Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. + Much of this code came from the midterm, so you can watch the midterm key videos to see how to write a lot of this code + I will provide limited help in the classroom and/or email. Being a final exam, I cannot help a lot. I recommend you watch the recorded lectures on Blackboard since everything I ask you to do in this exam has examples in those lectures + +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 30 points + If you do not use functions, then your program will not be OOP and you will get a 0/200 + If your program is not OOP, then you will get a 0/200 + If your program does not use inheritance, you will lose 75 points + If your program does not sort or sort properly, you will lose up to 60 points + If your program does not output a special message when a movie name matches the user's favorite movie, you will lose 20 points + If your program uses global variables, you will lose 10 points for each used + If your program does not compile (run), then I will give a grade of 0/200. But will give you the change to repair for points back (some points are better than none) + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 50 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/200 + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + diff --git a/C++/Final Program/person.h b/C++/Final Program/person.h new file mode 100644 index 0000000..2ec6b47 --- /dev/null +++ b/C++/Final Program/person.h @@ -0,0 +1,15 @@ +#include <string> +using namespace std; +class Person { + private: + string fname; + string lname; + string favmov; + public: + void set_fname(string x) { fname = x; } + void set_lname(string x) { lname = x; } + void set_favmov(string x) { favmov = x; } + string get_fname() { return fname; } + string get_lname() { return lname; } + string get_favmov() { return favmov; } +}; diff --git a/C++/Final/Final Program Instruction (1).docx b/C++/Final/Final Program Instruction (1).docx Binary files differnew file mode 100644 index 0000000..330ee70 --- /dev/null +++ b/C++/Final/Final Program Instruction (1).docx diff --git a/C++/Final/Final Program.cpp b/C++/Final/Final Program.cpp new file mode 100644 index 0000000..e257f12 --- /dev/null +++ b/C++/Final/Final Program.cpp @@ -0,0 +1,134 @@ +// Name: msglm
+// Date: 4/29/2022
+// Title: Payroll Calculator
+// Description: Takes input data from file deliminated by a space. This information is then used to calculate taxes, net, and gross pay for each person in the entry.
+
+#include <iostream>
+#include <string>
+#include <fstream>
+#include <iomanip>
+
+using namespace std;
+
+// Named constants
+int ARRAY_SIZE = 10;
+double FED_TAX=0.09;
+double STATE_TAX=0.05;
+double FICA_TAX=0.062;
+
+
+// Function prototype
+double GrossPay(double x, double y);
+double Tax(double x);
+
+// Main function--------------------------------------------------------------
+int main()
+{
+ // Declare Varibles
+ string lName[ARRAY_SIZE];
+ string fName[ARRAY_SIZE];
+ string fullName;
+ double payrate[ARRAY_SIZE];
+ double hours[ARRAY_SIZE];
+ double grossPay[ARRAY_SIZE];
+ double netPay[ARRAY_SIZE];
+ double taxesOwed[ARRAY_SIZE];
+ double totalGrossPay;
+ double totalTaxes;
+ double totalNetPay;
+
+ // Declare variables for files
+ ifstream inputFile;
+ ofstream outputFile;
+
+ // Open files
+ inputFile.open("hourlyinput.txt");
+ outputFile.open("hourlyoutput.txt");
+
+
+
+
+ // Print grogram title and description
+ cout << "Title: Payroll Calculator" << endl << "Description: Takes input data from file deliminated by a space. This information is then used to calculate taxes, net, and gross pay for each person in the entry." << endl;
+
+
+ // check to make sure input file opened
+ if (inputFile) {
+ cout << "Successfully opened file";
+ } else {
+ cout << "ERROR! File failed to open!";
+ return 1;
+ }
+
+ // Collect data from the file (Parallel Arrays)
+
+ for (int i = 0; i < ARRAY_SIZE; i++) {
+ inputFile >> fName[i] >> lName[i] >> payrate[i] >> hours[i];
+
+
+ // Calculate Gross pay for all employees and store in arrays
+ grossPay[i] = GrossPay(hours[i], payrate[i]);
+
+
+ // Calculate taxes for all employees and store in arrays
+
+ taxesOwed[i] = Tax(grossPay[i]);
+
+
+
+ // Calculate net pay for each employee and store in arrays
+
+ netPay[i] = grossPay[i] - taxesOwed[i];
+ }
+
+ // Printing payroll report to an OUTPUT FILE
+
+ outputFile << fixed << left << showpoint << setprecision(2);
+ outputFile << setw(17) << "Name" << setw(13) << "Payrate" << setw(9) << "Hours" << setw(9) << "Gross" << setw(9) << "Taxes" << setw(9) << "Net" << endl;
+ for (int i = 0; i < ARRAY_SIZE; i++) {
+ fullName = fName[i] + " " + lName[i];
+ outputFile << setw(17) << fullName << setw(13) << payrate[i] << setw(9) << hours[i] << setw(9) << grossPay[i] << setw(9) << taxesOwed[i] << setw(9) << netPay[i] << endl;
+ }
+
+ cout << "Outputted to file.";
+
+ // Print payroll statistics to the SCREEN
+
+ for (int i = 0; i < ARRAY_SIZE; i++)
+ {
+ totalGrossPay = totalGrossPay + grossPay[i];
+ totalTaxes = totalTaxes + taxesOwed[i];
+ totalNetPay = totalNetPay + netPay[i];
+ }
+ cout << "Weekly Payroll Statistics:\n\n" ;
+ cout << "Total Gross Pay: " << totalGrossPay << endl;
+ cout << "Total Taxes: " << totalTaxes << endl;
+ cout << "Total Net Pay: " << totalNetPay << endl;
+
+
+
+ // Close files
+ outputFile.close();
+ inputFile.close();
+
+
+ return 0;
+}
+
+// Function definations
+
+double GrossPay(double payRateValue, double hours)
+{
+
+return payRateValue*hours;
+
+}
+
+double Tax(double grossPayValue)
+{
+ double FICAOwed = grossPayValue * FICA_TAX;
+ double stateOwed = grossPayValue * STATE_TAX;
+ double fedOwed = grossPayValue * FED_TAX;
+ double totalTax = FICAOwed + stateOwed + fedOwed;
+ return totalTax;
+}
diff --git a/C++/Final/Final Project Grade Sheet .pdf b/C++/Final/Final Project Grade Sheet .pdf Binary files differnew file mode 100644 index 0000000..e7227f4 --- /dev/null +++ b/C++/Final/Final Project Grade Sheet .pdf diff --git a/C++/Final/hourlyinput.txt b/C++/Final/hourlyinput.txt new file mode 100644 index 0000000..cad5cdf --- /dev/null +++ b/C++/Final/hourlyinput.txt @@ -0,0 +1,10 @@ +Anders Alex 13.25 37.5
+Botch Beth 11.25 35.5
+Cross Brian 14.50 38
+Doe John 15.75 35
+Eyre Jane 20.00 40
+Falls Frank 18.50 39
+Gall George 17.00 25
+Hicks Heath 13.75 38
+Jacob John 15.50 33
+Ihle Ike 16.50 37
\ No newline at end of file diff --git a/C++/Final/hourlyoutput.txt b/C++/Final/hourlyoutput.txt new file mode 100644 index 0000000..491e315 --- /dev/null +++ b/C++/Final/hourlyoutput.txt @@ -0,0 +1,11 @@ +Name Payrate Hours Gross Taxes Net +Anders Alex 13.25 37.50 496.88 100.37 396.51 +Botch Beth 11.25 35.50 399.38 80.67 318.70 +Cross Brian 14.50 38.00 551.00 111.30 439.70 +Doe John 15.75 35.00 551.25 111.35 439.90 +Eyre Jane 20.00 40.00 800.00 161.60 638.40 +Falls Frank 18.50 39.00 721.50 145.74 575.76 +Gall George 17.00 25.00 425.00 85.85 339.15 +Hicks Heath 13.75 38.00 522.50 105.55 416.95 +Jacob John 15.50 33.00 511.50 103.32 408.18 +Ihle Ike 16.50 37.00 610.50 123.32 487.18 diff --git a/C++/FindLargestNumber/FindLargestNumber.cpp b/C++/FindLargestNumber/FindLargestNumber.cpp new file mode 100644 index 0000000..e03f5ac --- /dev/null +++ b/C++/FindLargestNumber/FindLargestNumber.cpp @@ -0,0 +1,39 @@ +#include <iostream> +using namespace std; + +//Function decleration/prototype +//Functions are created in order from top to bottom +double larger(double x, double y); +double threelarger(double x, double y, double z); + +int main() { + double num1, num2, num3; + cout << "find the largest of two numbers \n\n"; + cout << "enter number 1: "; + cin >> num1; + cout << "enter number 2: "; + cin >> num2; + cout << "enter number 2: "; + cin >> num3; + + answer = threelarger(num1, num2, num3); + + cout << "the largest of the three numbers you entered is: " << larger(num1,num2) << endl; + +} + +double threelarger (double x, double y) { + double max; + + if (x > y) { + max = x; + } else { + max = y; + } + + return max; +} + +double larger (double x, double y) { + return larger(x, larger(y,z)); +} diff --git a/C++/ForLoopPractice/ForLoopPractice.cpp b/C++/ForLoopPractice/ForLoopPractice.cpp new file mode 100644 index 0000000..d5b344f --- /dev/null +++ b/C++/ForLoopPractice/ForLoopPractice.cpp @@ -0,0 +1,44 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +int main() { + int i; + //Example 1 + cout << "Example 1"; + for(i=1; i<=3;i++){ + cout << "Hello!" << endl; + cout << "*" << endl; + } + //Example 2 + int num; + string name; + cout << "Out of loop"; + cout << "What is your first name? "; + cin >> name; + cout << "How many times would you like your name printed?: "; + cin >> num; + for(i=1;i <= num;i++){ + cout << name << endl; + } + + //Example 3 + for(i=0;i<=10;i=i+2){ + cout << i << " "; + } + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/GuessingGame/Guessing Game Program Instructions.docx b/C++/GuessingGame/Guessing Game Program Instructions.docx Binary files differnew file mode 100644 index 0000000..798663c --- /dev/null +++ b/C++/GuessingGame/Guessing Game Program Instructions.docx diff --git a/C++/GuessingGame/GuessingGame.cpp b/C++/GuessingGame/GuessingGame.cpp new file mode 100644 index 0000000..c1e1754 --- /dev/null +++ b/C++/GuessingGame/GuessingGame.cpp @@ -0,0 +1,89 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + +#include <cstdlib> +#include <iostream> +#include <string> +#include <iomanip> +#include <ctime> + +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + int tries; + int correctNum; + int userInput; + bool invalidInput = 0; + //Randomness + srand(time(0)); + correctNum = rand() % 100; + + //Program title and description for the user + cout << "Title: Guessing game" << endl << "Description: Makes the player choose a number between 1 and 100" << endl; + + // User input + do { + + do { + if (invalidInput) { + //Clear the input if what was inputted was non-standard + cin.clear(); + cin.ignore(100,'\n'); + invalidInput = 0; + } + + //User instruction and input + cout << "You have " << 10-tries << " number of tries left\n"; + cout << "Guess a number between 1 and 100 (inclusive): \n"; + cin >> userInput; + + //Make sure input is valid + //Reason to declare a bool for this is so that + //invalid input doesn't count as a "try" + //Without this, either the player would have to input the first number twice + //or the player would waste a try for a misclick + if (!cin || userInput > 100 || userInput < 0) { + invalidInput = 1; + } + + + + } while (!cin || userInput > 100 || userInput < 0); //If input was bad, loop over to allow it to be checked, cleared, and ignored + + + //Detection if how high or low the numbers are + if (userInput > correctNum) { + cout << "The correct number is lower than your input\n\n"; + } else if (userInput < correctNum) { + cout << "The correct number is higher than your input\n\n"; + } else { + cout << "You succeeded!\n"; + return 0; + //Exit program upon success + //I prefer not to have my cli programs ask to loop + //If I wish to play again, I will merely run the program again. + //Also it was not in the instructions + } + tries++; + } while (tries < 10); + //Fail condition + //Return code of 1 so that shell scripting can be aware if player failed the game + //maybe someone would write a tournament script for this? + //Unlikely, but possible. + cout << "You ran out of tries, you failed!\n"; + cout << "The number was: " << correctNum << endl; + return 1; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/HelloWorld/HelloWorld b/C++/HelloWorld/HelloWorld Binary files differnew file mode 100755 index 0000000..29f120d --- /dev/null +++ b/C++/HelloWorld/HelloWorld diff --git a/C++/HelloWorld/HelloWorld.cpp b/C++/HelloWorld/HelloWorld.cpp new file mode 100644 index 0000000..2b0af1e --- /dev/null +++ b/C++/HelloWorld/HelloWorld.cpp @@ -0,0 +1,6 @@ +#include <iostream> +int main() { + + std::cout << "Hello World!\nMy name is Anonymous\n"; + return 0; +} diff --git a/C++/Inheritance/INSTRUCTIONS b/C++/Inheritance/INSTRUCTIONS new file mode 100644 index 0000000..8dfab17 --- /dev/null +++ b/C++/Inheritance/INSTRUCTIONS @@ -0,0 +1,35 @@ + +Project 8: Inheritance +Due: Monday, October 31st, 2022 before midnight +100 Points +Write a program that does the following: +1. Make a parent class called person with the following variables: first name, last name, street address, city, state, zip, phone number +2. Make a child class called student that inherits from person. This class will have the following variables: GPA, major, credit hours, anticipated year of graduation +3. Move the parent class to a header file and include it into your main program +4. Get data for all of the above variables (keyboard or input file. Your choice) +5. When the user is finished updating information, output everything to the screen +Assignment Notes: + + Make variables either arrays or vectors - your choice + I expect to see functions throughout this program + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +If you are stuck, I will help you! +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If your program is not object-oriented, you will receive a 0/100 (OOP is requred for this assignment) + If your program does not use functions, you will lose up to 75 points (depending on the number of functions missing) + If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none) + If your program is late (within 48 hours of the due date), you will lose 25 points + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If you use global variables in your program, I will deduct 5 points for each used + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 + If you submit a file type I cannot open, such as .sln, you will receive a 0/100. You will be able to resubmit for credit, but you will lose up to 90 points (depending on how late it is) + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + diff --git a/C++/Inheritance/Inheritance.cpp b/C++/Inheritance/Inheritance.cpp new file mode 100644 index 0000000..3d022b4 --- /dev/null +++ b/C++/Inheritance/Inheritance.cpp @@ -0,0 +1,102 @@ +// Name: msglm +// Date: Oct-31st-2022 +// Program Name: Inheritance +// Description: Inheritance practice + +#include <iostream> +#include <fstream> +#include <string> +#include "person.h" +using namespace std; + + +//Classes +//I love it when my "cat" object can do my taxes because some incompetent intern in upstream decided to +//that the great-great-great-great-great-great-grandparent "basic" object needs that functionality +// +//I also love it when i'm programming and everything must be an object, thus making me have to inherit from 40 million parents who supply their own +//lovely genetic debt and confusion, just to do something simple (Godot and Java both do this and it makes me rage). +// +//OOP is one of those things that's entire purpose, code reuse, is annhiliated by itself once you try to use it and can be replaced by tech we had before. Any time I have the dismay of using an OOPy system, I have to reimplement half the things offered with my own implementations because the junk that's offered is burried under so much inherited cruft that it's outright impossible to use them without breaking a couple keyboards. +//Code reuse is also misnomer, people really mean "functionality reuse", which can be achieved with a mix of good data structure design and subroutines, tech that has existed since the days of the ENIAC (and theoretically from the days of Turing). +// +//Inheritance alone makes using GOTO calls feel like some revolutionary technology that made the lives of all developers easier. +class student: public person { + public: + float GPA; + string major; + int hours; + int yearOfGrad; +}; + + +//Takes in the initalized file and puts it into an object instance +student getStudent() { + student student; + string temp; + + cout << "===Enter your information===\n"; + cout << "Please enter your first name: "; + cin >> temp; + student.fname = temp; + cout << "Please enter your last name: "; + cin >> temp; + student.lname = temp; + cout << "Please enter your address: "; + cin >> temp; + student.address = temp; + cout << "Please enter your city: "; + cin >> temp; + student.city = temp; + cout << "Please enter your state: "; + cin >> temp; + student.state = temp; + cout << "Please enter your major: "; + cin >> temp; + student.major = temp; + cout << "Please enter your zip code: "; + cin >> temp; + student.zip = stoi(temp); + cout << "Please enter your phone number: "; + cin >> temp; + student.phonenum = stoi(temp); + cout << "Please enter your GPA: "; + cin >> temp; + student.GPA = stoi(temp); + cout << "Please enter your hours: "; + cin >> temp; + student.hours = stoi(temp); + cout << "Please enter your year of graduation: "; + cin >> temp; + student.yearOfGrad = stoi(temp); + return student; +} + +void out(student student) { + cout << "fname: " << student.fname << endl; + cout << "lname: " << student.lname << endl; + cout << "address: " << student.address << endl; + cout << "city: " << student.city << endl; + cout << "state: " << student.state << endl; + cout << "zip: " << student.zip << endl; + cout << "phonenum: " << student.phonenum << endl; + cout << "GPA: " << student.GPA << endl; + cout << "major: " << student.major << endl; + cout << "hours: " << student.hours << endl; + cout << "yearOfGrad: " << student.yearOfGrad << endl; + +} + + +int main() { + + out(getStudent()); +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Inheritance/person.h b/C++/Inheritance/person.h new file mode 100644 index 0000000..a9fca01 --- /dev/null +++ b/C++/Inheritance/person.h @@ -0,0 +1,12 @@ +#include <string> +using namespace std; +class person { + public: + string fname; + string lname; + string address; + string city; + string state; + int zip; + int phonenum; +}; diff --git a/C++/Intro to Object-Oriented Programming/WhatIsOOP.docx b/C++/Intro to Object-Oriented Programming/WhatIsOOP.docx Binary files differnew file mode 100644 index 0000000..8ef696e --- /dev/null +++ b/C++/Intro to Object-Oriented Programming/WhatIsOOP.docx diff --git a/C++/Introduction/Introduction.cpp b/C++/Introduction/Introduction.cpp new file mode 100644 index 0000000..d1e4013 --- /dev/null +++ b/C++/Introduction/Introduction.cpp @@ -0,0 +1,26 @@ +// Name: msglm +// Introduction: +// Description: Each student will type at least 4 lines to introduce himself. + + +#include <iostream> +using namespace std; +int main() { + + cout << "My Name is Anonymous.\n"; + cout << "I am a supporter of the Free Software Movement.\n"; + cout << "I usually code in Python, but C++ is something I've been meaning to learn\n"; + cout << "This is my third programming class I've taken.\n"; + + //printf is more readable in most cases and flows better than than a UNIX redirection based object like cout + //printf("My Name is Anonymous\n") + //As C++ borrows plenty of C, these C commands will compile too. + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/LengthInFeetPlusInchesRemainder/LengthInFeetPlusInchesRemainder.cpp b/C++/LengthInFeetPlusInchesRemainder/LengthInFeetPlusInchesRemainder.cpp new file mode 100644 index 0000000..bc95a35 --- /dev/null +++ b/C++/LengthInFeetPlusInchesRemainder/LengthInFeetPlusInchesRemainder.cpp @@ -0,0 +1,19 @@ +// Given length in inches, this program outputs the equivalent +// length in feet and remaining inch(es). +#include <iostream> +using namespace std; +int main() { +int inches; //variable to store total inches + +cout << "Enter inches and press Enter: "; +cin >> inches; +cout << endl; + +cout << inches << " inch(es) = "; //output the value of +//inches and the equal sign +cout << inches / 12 << " feet (foot) and "; //output maximum +//number of feet (foot) +cout << inches % 12 << " inch(es)" << endl; //output +//remaining inches +return 0; +} diff --git a/C++/Menu System/Instruction b/C++/Menu System/Instruction new file mode 100644 index 0000000..a8ccdc6 --- /dev/null +++ b/C++/Menu System/Instruction @@ -0,0 +1,51 @@ +Using the attached video as a guide, you will create a menu system that will mimic a self service kiosk at a restaurant. This program will do the following: + + Create a menu system that allows users to select an item from the below categories: + Drink + Appetizer + Entree + Dessert + You will use 4 separate input files (one for each category above) where you read in an unknown number of items from each file + Each input file will have the item name (string) and the item price (double) + Use a generic function to check to see if the file was found + User a generic function to get the data from each of the input files + Display the subtotal on each menu screen so the customer knows exactly how much is already owed + As the customer selects items for purchase, you will need to record the item name, price and the quantity desired inside of variables (vector or array) for output later + The customer should be able to remain in a category menu until they are ready to return to the main menu + When the customer is finished ordering, display the subtotal, tax, and total on the screen + Ask for a tip (make a suggested tip amount with 18%, 20%, 25%), then update the total with the tip amount entered + Get payment from the user and display change due to the customer + If the customer does not pay enough money, then the program should continue to ask for money until the total is paid in full + +Assignment Notes: + + Make your all of variables as private in the class to show me you understand how to do this + You may use vectors or array variables to store the employee data + Use a 10% tax rate to make the math easy + You may use functions inside of the class or outside or mixed. Your choice + Be sure to add in error checking in case someone enters a value that will break your program! Example: Tip is -1000 which means your system would pay the customer! + I expect to see functions, but I am not giving you a specific number. You should be able to determine this by yourself by now + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +If you are stuck, I will help you! +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If your program is not object-oriented, you will lose up to 100 points (OOP is the goal of this assignment) + If your program has no error checking, as mentioned above, you will lose up to 25 points + If your program does not stay in a category menu until the customer wants to leave, you will lose 10 points + If you do not use generic functions for checking to see if the file is open or for reading in the data from input files, you will lose up to 40 points + If your program does not loop from insufficient payment, you will lose up to 25 points + If your program does not use functions, you will lose up to 50 points + If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none) + If your program is late (within 48 hours of the due date), you will lose 25 points + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If you use global variables in your program, I will deduct 5 points for each used + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + diff --git a/C++/Menu System/MenuSystem.cpp b/C++/Menu System/MenuSystem.cpp new file mode 100644 index 0000000..20226a4 --- /dev/null +++ b/C++/Menu System/MenuSystem.cpp @@ -0,0 +1,255 @@ +// Name: msglm +// Date: Oct 21st, 2022 +// Program Name: Menu System +// Description: CLI, self-servicing kiosk + +#include <iostream> +#include <fstream> +#include <vector> +#include <string> +using namespace std; + +//Classes + +//I would never, ever make this an object in production +//the concept of an "Orderable" is pure data read from a file that should be acted upon, but not act. +class Orderable { + private: + string name; + double price; + public: + Orderable(double iprice, string iname) { + name = iname; + price = iprice; + } + + string get_name() {return name;} + double get_price() {return price;} +}; + + +//Structs +struct foodOrder { + string name; + double price; + int quantity; +}; + +//Implementation of Nim's readline (https://nim-lang.org/docs/io.html#readLine%2CFile) because +//I am absolutely sick of having to deal with C++'s obsession with streaming. +// +//I swear if I have to reimplement the entire Nim language in C++20 just +//to get a compiled language that doesn't increase my chance of stroke 20 fold I will + +string readline(ifstream & fileVar) { + string temp; + getline(fileVar, temp); + return temp; +} + + +void initalize(string location, ifstream & fileVar) { + fileVar.open(location); + + if (!fileVar) { + cout << "ERROR! " << location << " failed to open!"; + exit(1); + } +} + + +//Ideally, the input file should be JSON, YAML, or TOML based +//instead of pure plain text for ease of human access +//but C++ doesn't have JSON parsing library in std for some reason +vector<Orderable> encodeOrderables(ifstream & fileVar) { + string temp; + vector<Orderable> orderablesFromFile; + while(fileVar.peek() != EOF) { + //Here's something absolutely nasty that I discovered while working on this: + //when attempting to write the line + //orderablesFromFile.push_back(Orderable(readline(fileVar)), stod(readline(fileVar))); + //with the object's constructor taking the name then price parameter, I found out that + //constructors are executed from right-to-left, not left-to-right and the price would be + //read first rather than the name. + // + //This might be the case for all functions, I did not check. + // + //There is literally no good reason for this to be the case. + orderablesFromFile.push_back(Orderable(stod(readline(fileVar)), readline(fileVar))); + } + return orderablesFromFile; +} + +//Menu systems +//Wish we could do some ncurses TUI menus, but alas we're stuck with subpar prompts + +int catagoryMenu() { + int choice; + //No input validation here since the rubric doesn't call for it. + cout << "Pick a catagory\n"; + cout << "1. Drink\n"; + cout << "2. Appetizer\n"; + cout << "3. Entree\n"; + cout << "4. Dessert\n"; + cout << "5. Finish Order\n"; + cout << "Enter Selection: "; + cin >> choice; + return choice; +} + +foodOrder orderingMenu(vector<Orderable> items) { + foodOrder completeOrder; + int choice; + for(int itemPos = 0; itemPos < items.size(); itemPos++) { + cout << itemPos << ". " << items[itemPos].get_name() << " - $" << items[itemPos].get_price() << endl; + } + cout << "Enter Selection: "; + cin >> choice; + cout << "Enter Amount Desired: "; + cin >> completeOrder.quantity; + + completeOrder.name = items[choice].get_name(); + completeOrder.price = items[choice].get_price(); + + //"...you will need to record the item name, price and the quantity desired inside of variables (vector or array) for output later..." + //I am modifying this instruction a bit to use a struct instead since structs can hold multiple datatypes and play nice with functions + return completeOrder; +} + +//Who can afford to pay this much when tipping? +//I can barely afford car insurance! +double tip() { + int choice; + //No input validation here since the rubric doesn't call for it. + cout << "What percent would you like to tip?\n"; + cout << "1. 18%\n"; + cout << "2. 20%.\n"; + cout << "3. 25%.\n"; + cout << "4. Custom Amount.\n"; + cin >> choice; + switch(choice) { + case 1: + return 0.18; + break; + case 2: + return 0.20; + break; + case 3: + return 0.25; + break; + case 4: + double tip; + cout << "Enter a tip amount (decimal notation) [ex: 0.18]: "; + cin >> tip; + //Evil solution to evil users + return abs(tip); + break; + default: + cout << "ERROR: Your input was invalid, terminating"; + exit(1); + + } + return choice; + +} + +double figureTotal(vector<foodOrder> orderList) { + double subtotal; + for(int orderPos = 0; orderPos < orderList.size(); orderPos++) { + subtotal = subtotal + orderList[orderPos].price; + } + double tax = subtotal*0.1; + double total = subtotal+tax; + + //tips + cout << "===Amount Currently Due==\n"; + cout << "Subtotal: $" << subtotal << endl; + cout << "Tax: $" << tax << endl; + cout << "Total: $" << total << endl; + cout << "=========================\n"; + + + total = total + (total*tip()); + + cout << "\033[2J\033[1;1H"; + + cout << "===Amount Currently Due==\n"; + cout << "Subtotal: $" << subtotal << endl; + cout << "Tax: $" << tax << endl; + cout << "Total: $" << total << endl; + + return total; +} + +void collectDues(double amountDue) { + double paid; + while (amountDue > 0) { + cout << "Please pay for the amount owed: $" << amountDue << endl; + cout << "Enter payment: "; + cin >> paid; + amountDue = amountDue - paid; + paid = 0; + } +} + +int main() { + //File Vars & Inits + ifstream drinkFile; + ifstream appetizerFile; + ifstream entreeFile; + ifstream dessertFile; + + initalize("drink.txt", drinkFile); + initalize("appetizer.txt", appetizerFile); + initalize("entree.txt", entreeFile); + initalize("dessert.txt", dessertFile); + + //Ordering Vars + vector<Orderable> possibleDrinks = encodeOrderables(drinkFile); + vector<Orderable> possibleAppetizer = encodeOrderables(appetizerFile); + vector<Orderable> possibleEntree = encodeOrderables(entreeFile); + vector<Orderable> possibleDessert = encodeOrderables(dessertFile); + + vector<foodOrder> userOrderList; + bool ordering = true; + + //"The customer should be able to remain in a category menu until they are ready to return to the main menu" + //I assume this means that the customer should be allows to keep ordering until they're satisfied + while(ordering) { + switch(catagoryMenu()) { + case 1: + userOrderList.push_back(orderingMenu(possibleDrinks)); + break; + case 2: + userOrderList.push_back(orderingMenu(possibleAppetizer)); + break; + case 3: + userOrderList.push_back(orderingMenu(possibleEntree)); + break; + case 4: + userOrderList.push_back(orderingMenu(possibleDessert)); + break; + case 5: + ordering = false; + break; + default: + cout << "ERROR: Your input was invalid, terminating"; + exit(1); + } + + } + collectDues(figureTotal(userOrderList)); + //When the customer is finished ordering, display the subtotal, tax, and total on the screen + //Ask for a tip (make a suggested tip amount with 18%, 20%, 25%), then update the total with the tip amount entered + //Get payment from the user and display change due to the customer + //If the customer does not pay enough money, then the program should continue to ask for money until the total is paid in full + +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Menu System/appetizer.txt b/C++/Menu System/appetizer.txt new file mode 100644 index 0000000..0c7579b --- /dev/null +++ b/C++/Menu System/appetizer.txt @@ -0,0 +1,52 @@ +8c049f21d1fb66c4e7e5c22fdf0576954e240a3f6770839105758757dc9be9c180e9d53cf77cff05317590c6ebfc2719e1cd1200ff2083d3db14e198022127a0 +11.0 +9c7fcc22dfc7635140833620ace709fac99eed727f4d0440b041b42cc1b4d51bcac0a17c9a254c9da85cfc520e3593785daeaa42169d5230fdfe8b4685ea3d62 +11.1 +a8fda638e15580587f2206d170e87feef10d89ec61269bef803bfedb41226a52ce5e27f267d3e9bb764ae4dd209308000ed56cf1e8e4e4d722113baba81eca84 +11.2 +775ec870a730d4b609121e8d65ea9c1b6c9a7fd6976abb7400ea17988bb33f43f3ecb9b4d98b4e1bc910548acc6559e0883abafe21d7c5d193f80292bdee92d4 +11.3 +276985351c53204df2f86bf8f8d1a2911b47131385e0edc65f49dccacaa1fec8c865d4f4f6bbd93b9e64b402e112491451010fa6973e7f43e3826e5feccc876e +11.4 +e190395a2149615ea6055ecb33c68a0caf2aea4fe3e168b102258ed51e65c942de0042ec412812749a58b2d8b1892b33219ded8d59556b9387f0ac6ae18165c0 +11.5 +2897520db910c59b0a70cd05e2711343abb3a98e33220bc9149caac52ff32a1762b99b1b00dce9811ddfc409d4b1528b8a0d8796c7a2a01726a3350ce28c2f5d +11.6 +f77f49c403586e6d18e6b8393469b757a7388331c9cf3e145c067ae1b7591ff9262fe7293299acb667864937a092f8ab3a55b74cd4d41f1b1ec07bf9edf13f4e +11.7 +99d1bcb6d2d76d89b81fd8b321c2e1e3953e2d5feaf1792ef81a66420e70494ea5a4ea1680500cfdaa64e939d169c9ceb5d91fba3083589791864f24d4d6f095 +11.8 +50c68990cbe6cdc21e710481aa1ce96357a71f92ba17c35bf4f70a3598aaf19b1b98db85891f17d74b5d63531edacf416d85738d6842ffa6697077665e4a882d +11.9 +af5d3e5dc0752cf01cb6fc6f073e5986a148ba000cc79c181a8ee11ffb99ea4f9441ba7bb09f5c0e91a8258ad32df3903bbb2b337193e63de247487eb361b598 +11.10 +9b30d97a741781d3f28ffe1509813d79031a2bcf401fce8c019e5ec39eb2305feab41de522f06b1aeff277469d8a93a6e79e60e631dc33b7d3d49ad7fce8cde0 +11.11 +b95f4f4dd09ffedd79dfa8f0386b1b5afe259e1a2516818037139b01d15ca0b37c4c2e265c0ea7325de0de721a3d93ca3b172092fea405f7c2a7b9fb99b70373 +11.12 +2c0c8c8f16ea92ab5115e9ee0e21ab374059b40184072840244a42a9875ea0e212449ed35512c07faa0e3c205b25e901792f0e297ebbeffa07d4fcc2e17a26f1 +11.13 +1693718742c8beadbdca58455402802fdccb0357ad0880cd3322ede3782746a99fa203c67a8b3f8326c02e6091066b23e4f3061a05facbf265cd340452610f8b +11.14 +1d8c7356bce55e05a2b1abc3f7820f4d7e7eac1a27df54385f029f17b91a73bdd86fb869fd02beaf7a647e714ad6e6db5913db170535a87460ede6af61c45883 +11.15 +fe2843d1639eb7a88e88b223d31f155ad36226707988b87c82add9ea2028b4897fa4b2cdfddb249375b316c25f78323c3b771529295b95c8a1acb40208e3c861 +11.16 +a35e931885d81c913799133a0140466229db2c86b2d27a567e0e54310be57b5152993afd9f7a8d6d3d9102a6d2d0ad1725446296991c573cded4d8e4cc6406f4 +11.17 +ef27dd3fde5037cc6240856d03b42ba93b3d9691cf3bb4cc3ccf21b6515fde6cde7866f4f568a972cbe485e1951ff7cec05463b923b1c2e35a5397137d82acdb +11.18 +98d5887c2d5951ac417443462f9e00c0b0e078dd2686c37f91db912a19005c149fb15b1c6b70e96d8184c64dc2e014fa2dfbc4cce7d300519cb14678b5a20923 +11.19 +195360645b6f50ac065acb16c33e9a457c08bb667d6782d10c4f0b0754266059aac960c53262c90d4ebba96f551953116f3c5ea564a389ce55be2a4f9d7fba55 +11.20 +d5bb16c1b6e0436b37db7da2d392613a85b81bad02b00ab638e23729c17756eda0ef8f4320d269b5a048d0d47703375533a402a0ac4934c28b687440b85a3fdd +11.21 +2743af3b8492463552a5ed72d41b49a08a47409d467451408f2ba9cc4ab6f1aac30d01d103631f6bbd01742753e7b29093c94552936ccfdb1a2beb4ae2a637ba +11.22 +087515ce96a18b66a4d962a4b6728b7ed9133a60b57096df97ef845f24b373f0af7c4542171061abff4991ddf4b64f6baf9a6eba73ab10106f27c4a30ec91462 +11.23 +636c187d435a8ea2cb6b4685e841ccf23eee0eb0c7d77e36c78cdbdc16d17639368b445f4d9e25eadd142fdfd8f5747a5c1db225a00ae4f5fb2139aaeeb69b7b +11.24 +dfb78750a9bdc7eb1f7700d604542205f6d216a52a30e160679e2f5fd6963acc49520c1e94bc42c57cd7372c7a898b47b9419b9afa4aa6bf96ee9804e2b24289 +11.25 diff --git a/C++/Menu System/dessert.txt b/C++/Menu System/dessert.txt new file mode 100644 index 0000000..4f2a81c --- /dev/null +++ b/C++/Menu System/dessert.txt @@ -0,0 +1,52 @@ +961a4c6cfe00b9543dc95496bc956bcf112f9457c62195cc8cff2ecabfc72747f02df0f4589b154f5c6a1a1121d698adab39540d29dea07c52177219b904662f +11.0 +413c3158bc233d6cc604b57fb613218c99649fe8461d1e22d732e430e22bac62d334c55c09272b621f2f554026ad94938292cfd7b67e0fabf022621d0d4c6b7c +11.1 +b745e9ac1352c092fb1c0cfa34d657a99aee6bd20c87cb51d69d16e68e1723c9590188b692a89f3403505321c89c89492c70bfe9790fcd766ec2602d656fa9b5 +11.2 +c9dd1957076d178055ab58f811f33191d5457120b8bb0c41217cdd85e0e371dc79dd64584897413f6b5045c5aeeb866fbfd311c32e44cd00fff7ca347765a5c6 +11.3 +350c51abe5a7178b6a0981bac3a6c5227f5154724e402982363434a9f16fcd9813f074dc1e6190d9cdbe5f21cea5cb8bc072e54058c10a9e09f8a6ddc13f1c2b +11.4 +f1407747d6b8c676b20cc10422d589a7db426f9ad269b1f687fbab2d4e24bc7060e985201797859229f70b3a569121e967cf3159182aaaaecdf0e99906aa0e2f +11.5 +6198de2d30c5096fe27fe22283a8176284cb725bec2621c7764e1d1d3af406836f36541d76bd5a29b9684a8a6c126ea40840bbd417b1eef26ceb151fd632a4c5 +11.6 +1ec963f3d54ce51d8c373320c130424f0be89ec537deb972e36d6ab134b2cf6a3563c8c9ddaf1690e820410c3de911920289445c7e09e7fe5e32cb7cbe131b29 +11.7 +26249d443d9324c7695276d81dd178905fccecdb97711863ba7fa285588f1d8e79d4048624bd24c95b9c28af3007de124b8e3aa073072beaa2b0730dc02ec7bd +11.8 +b6282b22b01469111f2084ef2a06806d85610c33b8a5be5f391af8b0b4c7c52af754bd75b4ea09f92fe204674f33edd828e392276629d6ac6dddfb3b975f505c +11.9 +7a57fac361d99355de441933599c8164c371660d0994def88ed7ec6086762270dcc63a812059a44d528fac5db75c542f5707fe22de1673671f1c3f89b644a816 +11.10 +1b22d03a1d7fa64c0d3e66f8079e2b284d8cf3ab47feef0efd563b2a4e623c5e3bb649af2e3c1f4d6b20af9e3b4684e77f7a084b018e68f20dc0d7458e3bd900 +11.11 +a21121ebb87adfccd5db36e36a5a1fc115b87a8ab7354b913d68e613e465bca8b68521056cabe6ad2f12c47bd1042fe7ee9086423751e6f203eca279920d60b4 +11.12 +b948e2281ab6ca18fef8c7bb3869b29b7ddfea3455cfaf783fe9ff79659b00478cfa38a7e5572e0efabaf07247c2b6be580415219881495655cd2c8aad5570fb +11.13 +1513e266f1de657d6c8a328a82fdb18439bee129bf8cacdb42553cf6b587f26f8ff5c72f543d3473d0c2eafab05d94534dca281089fba5e7b85a029397a1dafd +11.14 +b4ca3519591d0b4377babaeea3ed52525ea052594f22b70d978e301075675d2ebbbbdcee96a0842f1fde01c87e20010c7fcba0c2916112ccb9ec8e2709d38f85 +11.15 +b4a62f166470023ebc50b6ea635694e0f99b38efb5a8c5ad35ea8c31e025ea909c42c56424296e97cbe15c6f84a2e52c589bddc31f56d4a70b87f9067396a739 +11.16 +0a01b800342c30aa072eca6cad2c96f4ddd1090d7869d66908770372b2ccf846a173365802a86bad0331080303dc3a35b98b4d9e564ee30a9ef1c06e9536ec7a +11.17 +1d6a02ede40f76ec3a68482fede5bc9428187d0f9e436e82a54dbee744018ee1393891f77045d0bc7bf9434bdd8183edcc8196543da86f13950e5915cd056298 +11.18 +4da492fd5d5b489c07696490420db64b60027da4da61ba8efbcf27fa19f0bfb614bc48703c34bb94463b69480700c2f26ae4e8d87768ac21035af2c2272c03dc +11.19 +aab00904b90035441e66f099a768b65ca83d7e8d30cf090d24bb00e909aec531317b1edd843a79a7851bcfe3cc2b8bf4b677da2a6c8c5f0925f3581b16f57576 +11.20 +6b9406ead3271325f40b32a3bda06c07be98258f77fe05732d546e3a9ede44e1400412c51201ee4847359dfedbfcfd5108f02f4d1dae42e5c44479cee3c5318e +11.21 +65c87cb831cdadd9658f660c601735143679b900036e7028b343b1f18c24457369033363c9dfa6d365bf2a486b5deefe4304b51ceec5fd04dfe2bb943a2d83cd +11.22 +d9f73ad9c762f19249f1ac3badd62b5cb8fd298a96cbb7c5cdc1026f9f600ef4d088cd61edf26f7650b27d234d34e30a2ccd112db9a8307810029e1feb1524e2 +11.23 +b72b9b16a36feb3b3efc5d8e57b7eae6224163ee64a7ed74c4b1b7219ad44b61073334e05a33836f0c3574284b10a2e88441ceddfffee439b4de331e806c7180 +11.24 +6cfc59c3e8d8660a09a236311220829b41d2fb0e4f87e05ca711d77be59cf7cfe6c1018ea70964ac55daf68a6db57607b3c1ff44f6b7caa399bbdc2b1a2bbf7c +11.25 diff --git a/C++/Menu System/drink.txt b/C++/Menu System/drink.txt new file mode 100644 index 0000000..0b5f339 --- /dev/null +++ b/C++/Menu System/drink.txt @@ -0,0 +1,52 @@ +56f0b7f05ccc6f2dbfb04af6165d1a7fcb7c07043d2cfbc6f1fae0edcfb8b30117eda2f7f5e04c2a31fbae837a93c81721dac9d706d3ab67cad20272d33da532 +11.0 +058e17b47f39fc4893a936f4cdb43d13175c44d8208e18bdc545f4665d97c08003d0fbeeb702cb01f19075b3ae62c45ef3404420ded3b2ca1eeb6e6ae8573e08 +11.1 +2a9c1bb9222205353ff90ff0a1deb05049414847d3385b9bdb8454917125be24f9895b6574d25652e04d07e7a2be75b78acbd09fa73c055116399a1e5020a0bf +11.2 +08c042b5fb6c5429faedc156870c5c637cab1a2e197ad0621ce626b811eb4c20840e12e0d83ec6d28b44f244ea33180fcc7d5e2aa704531a39410cb87c886980 +11.3 +f1ccd328a1b429b66610942ea459e1661a9faf9c99788025c1ed7cd280349a3a82a8c9b46f89a2a527144084d8be103612786caf1734692897b1f204bda69476 +11.4 +be08210a3a363ddf6096cd34a240e1ada1f6fdef5c75bc8b1091bf5764e5326c007833b64aff3b454ccfa6c6ed7259879ead4ca6989a97494de5a07ab28051c6 +11.5 +baf2ced1eefc9202e7b29ffd209b41028d4390f5651eb211061b91393d8464a31c702f17fe7f3e9425e06e9b850464c76eb29731c6dbba97474bdf91f25eb6d8 +11.6 +3c1c189c0837f71eac0d941c73c47abf9f28fcb5c352f7b3ed5e666d23aeb11f5170fe5e5af5369352f331c6906fd5e92150705d1591d65edbfd8473e1f51a8f +11.7 +9b7552196d9a8a14d66ce547c033c0293e4d8076de3fbff25d8903881802dbc7e02bf531b2baaa2fefef1c0a7594bf79bdfd13af9e5f5b4fb355d0171a648571 +11.8 +c0fe9a0d171f6254074aa45cb97fe20cee87760cc2ee7f8d19d3f3d87cbc1103e8f198baca012436a6c4e5ba3136281ba01e855536d36774be3b0e0f8800aecf +11.9 +6ca06062e29a97237e10094a52be11892a2185bac1957249a4e4fc2017ddd2aa360a7266b2ae7e57faa65436bd16219d5ed2621c7bdb73fb2864fd4445f8d625 +11.10 +002aa905deb001df5ef943239c562cd19d5d425a9feeb6c1a2c07cb0d73f3dfd7d8a8349ceca13be344173d0be19635207824ee6aae8af0b7a2cd543bcc7093a +11.11 +3e27e6f105f8bb292e895ec6ca6ed570676f9e6d6c77ba54f4fa723ac1a1371b5aa05bd6251880b66b4578d2055c85c279aad06b0ba195793a9a2a6e49862775 +11.12 +a537552312a4b772b396a5476ae8bd37fdf29e7c0699e899d67207b40628cf9b452075b1656dfd4beec129f0f30787db46463c53b1f8b6b2a58d1e83a11d4a57 +11.13 +b0d7843ea6aa3d82b834795d053ab58c014b840fa079852cb3a4fcfa4a9e9fd62bbcf9eaf8b864a7186b2b9a797b884076a57c525d7cc9e7318ab872e613a6ea +11.14 +32e5d43e743fac5a27eb26a695ee612985dd62127085b06ce3c60029fd40866a903602da9bbff4cb45e4722e9f728ad7bedb770386e376aac384ca94a4b9e2d5 +11.15 +25766e2c13bbc66510d0c16bcc4df49a22f195c3284ae38eb672076884639cfd387de7b323d7a71e247df1385fdddf332361d013c4e4d2229445467a8c21179b +11.16 +13c8a914be25e3cab13d455b675240d7e2c5ecc37d65515f7ac7ed3ba5bc3033799ed4ead64deda2e7a5032be1a09a1e9a01067cb93ad7523a32731f556fcad1 +11.17 +19d33012789795bb81627242127364dd10502c668ad8fc02d8bb9bee0dd3c29d40110ce01081ee7ca895b18777fc1d9756c08975f93b2dfef4514d625c430871 +11.18 +78f2c0f8483e1dfe5e77fa5bb893c52e5ee3bda65ba5824ff9b0e4bab6b1c209a3ab79ab554a0fd713a80712f0b6ee488838584a77e7ea895161756e8f6a5483 +11.19 +8e0e31a9c44e75478e2038473a35859c39734e3328be15ffafc46e1bab199adf702f38273edb61a53d753df8f1bcb9b4620fcea38db1d4b65a1e6814d5be0a10 +11.20 +1d1e2407524de257f989f87dd74afda39b446987d4cd5cbcc654f400d5f03c906c6f99ef9221ebd67407ec20aa64c6c1c1d8628de70e95a9d5a5da9837e26eff +11.21 +574fd289986ac716700171d0732fea05f24baeb2c8729d1571b8c8e28f4ec836137c1b2f71f4ad69a1db801eb05e03774e608c5814278eef8bf5221f5409d865 +11.22 +bd5f31a7a4efe171ab64f718b4424cf163516539dfa4c2b5747c94bbe024868c17c0bfcdd1282490b9c522eb14328c9d21e574789aaf41b0d615aa787dd45192 +11.23 +8a4b7cb24962c6af5dc03eed74eb454665f2100bae7ae18eca4f8f0f265f2db138de08c6f60fa17996491b37136cfc125378b25a062a2bc1b367c2b648258bfe +11.24 +874a9b179ec01c0efc6f0d07a5c7172375b845ab99ff4aa8e492f2e5df94226c302a690e8e422957dfc7226c368a7635650417295e8900e94dea1658522cd291 +11.25 diff --git a/C++/Menu System/entree.txt b/C++/Menu System/entree.txt new file mode 100644 index 0000000..b92632e --- /dev/null +++ b/C++/Menu System/entree.txt @@ -0,0 +1,52 @@ +6853f441a3a2682760675935ab4f81e48d3ecb88baee75f5cba5c524764ed971124544f8b5979dcd36d402debfb89245f77d0301e44e8b78e7057775b16d32e5 +11.0 +56c37ffd72fe2a07cf7dcb58cebae91d1bb3940b5616e28519be40d77e2f450c43e30b1cfde8de236703bdb6fb991441cd6c6ee0ec972ff35152c0c5bad4f404 +11.1 +1673977affd4c810a109d6d87d12f02c29112a0167d454dd949d77945d59176ae0bbcb0d9affe247decb817819fb8724c990ceb2aedc45e3b38cb5360f283576 +11.2 +f396b78527162dce006c9d433079f110a54162419d2487aace5a8b87eb50274b3a50b6980bef09735e9dd4ea1b8a364628b321f41f8c6e2b00078899804894a5 +11.3 +397c5a1d3a5636661fc49be7a22960238a7e9279b9365113b1f3848a07d0428d58b9dbc6733e967805b62c3b55e0d45aa009ed4be4f1b89006aea366ee8ebd79 +11.4 +75895edce9ec70c0c920cd09e05ac45a20bf4c648f58eac509b646af938c48c30007843cf294ac379604660fa863469586087ddfaa159b3f57237728aa4dcfbb +11.5 +d862a4af2352bddae02c340fb885cb124cd811ccf21317a79e370a4fc4d5709a0036b04a53db0a2c92aa2247b192fc07d50f48c956fe7310fc8b13ce6bf253a9 +11.6 +cb4dc1f761e88ffa929f703f295f78366993533ceaac9f8416e12cfb491049bb6dd106e9e769c8ca105307a7ce849990a554017d3269f54f5f23372d520b4548 +11.7 +c41931432c02006cf825a30cd1b0f3b9bdf9a0002ec5129be204bcdf0a48eceed7ef1bf2fa39e210c3d9c2df4e928f72efa666a32c64c7e3b9872ad11b3a2d26 +11.8 +87d53750655bc1ce70ee1d03a20fa3b4ef95920b4b6382dc856b707710348259237b2def1066314b19c60474b87b9ea5299d6676dbbfc1d79d0d804d3a203739 +11.9 +5849ff292f86b2367a2bd4d5b49a5dae95dbe8aeb4e6909d96f3251b7abafc8a6c4e0d95c6415f8f5f69ebb64af388449f35d343acffd8c79281083012faa1e1 +11.10 +d00893acaf2c24b98b506e2306520596112ed4f565e8f4d1b8a7792a6c1fa27fcab91bb9cfa6b61e06fbc04a081eca896eee3621d099b743e55a04a7ec73ab88 +11.11 +16bed777c21f0a8b1783f609f93bcd80e28a6e72d389069829780c05a5296079f9e7218fad422fd61a00cdaa8b79f31b151c1e203b5c6979c34a5edd8445d9c2 +11.12 +dfe14430562ec32d1b1e015cdf440260f34049f4df66a33eca732da3d6a0e1823b0a6432df4045ba730d2edc7216265d140fec4406c2180e2d1994f1020ece0a +11.13 +aa0781d483fb27899c315acacdd8d3d9e8952ae423ffdff984d00287148dd3cba8ab3acfdbef24bb6c9c9f14c56cee1f735953000db7bbdf4da84ca6d3cea4e4 +11.14 +22f86a3c7228c924b1d51c47f3631e043895cf5d3a91597c042c4f24c27ff105765b57af5186613f9f643ecdbb35a858d7cc44cb3831f29f2caef7c387e408a1 +11.15 +0ef0e7d3ce49752c4c5c82482f816ce73ada2420fb73af14ad1e375afbe529e047acb7e8c8ea1f5c979e17367b0260b8c3b411db88d8e757887fd834bd5d2e81 +11.16 +2de8a7603a1b743f80b96a2991638f2844e0406ec4772816eebe2317040dca15ddf466ff135c85f4b0fc9e6c1f382d4f2d615acbcd95f47bb9777dbaaa7a0c69 +11.17 +98edd7b1d6e050e19699ed0a3a8bf01cb7e34210da4c52455fa06c6b635334cbfd309de0b250beaa871c2bb76d21886847503ef97af6c5780b1469e39fe10f7f +11.18 +e452529f95008a1e5c9d1f258580bfdf997767033592bb3fade63653fd6f523dbc103341313b1a53ad2b034bad7922c40e0523ee1133be854ee696c96e1c0864 +11.19 +ed4f8ca33238517e3e1cd2a6fa575807329449612998a9bf1194d6c053635f63b6ff772c587e3684c2004ac54ab674bbe4f51b3cea7949783f8bdee76c7eb760 +11.20 +accf96c59b3a3bdb0f184c5e23cb506b5e24b56effb1a899a164f36d819c55ee51292cca9c9b8349074260a497070e84bc14c70456749d99c9505cef15240d10 +11.21 +2ae656dd129bbc3b3c969ef697a4b0e4eb29f451ce57bfea6753751e13990b50c8fa8dd8072b2d314cc5d4968eaae5b001663902d172639735e3a7703dc3ebb9 +11.22 +5aaf903182145b1eea3ffdb01c7295fb695dbaf98a71eb2458eadd93764a3b4f1179bcc2ae5786421218d3bfaf754b59327007ef196cb272737256fc42012147 +11.23 +10b34a21732c9a7a43b21f3b1b2c22e58a62bb15514930c226f37460afdcc4dab4fe7da722fdd90f4624f167bdb8c7abd638bfcdc3d9fa926223dd4ef54a3ae9 +11.24 +759764bea005964d266062acf2c7cb0ab10179fe5d5a050277a0c31250929e10a26e9712ac4dd7289e626432211912540648f225396a2d8270743c278db31dde +11.25 diff --git a/C++/Midterm/Instructions.txt b/C++/Midterm/Instructions.txt new file mode 100644 index 0000000..6939ed5 --- /dev/null +++ b/C++/Midterm/Instructions.txt @@ -0,0 +1,45 @@ + For your midterm project, please write a program to do the following: + + Use a struct to: + Create an array or vector variable to store a person’s favorite movie + Create an array or vector variable to store when the year that movie was released + Create an array or vector variable to store the box office gross (total amount of money) it made + Create an input file to store all of the above information. Please use at least 3 sets of data to make the program interesting + Check that the input file was found + Use a loop of your choice to read in an unknown number of records from your input file + When the program reads in a movie name, check to see if it has any <HTML> tags inside of it + Once the movie name is free of tags, store it and the other variables in your arrays or vectors + Use a simple menu where the user can sort the data on the movie name, year released or box office gross + Output the sorted movie list onto the screen + Close your input file + +Assignment Notes: + + You are free to use arrays or vectors. Or, you can mix/match. It is up to you + I expect to functions for steps: 3 - 7 + I expect to see generic functions for step 6 (sort function) and 7 (output function) + I will be closely watching for cheating (copying from friends, online help, etc.) and I will give 0/300 for cheating + There is no output file in this assignment, but if you want to use one, you are free to do so + You are free to make all variables strings for simplicity in your sort function + You are free to place any/all of your functions inside of your struct. This is not required though. You may do this or not. Your choice + For the box office gross, you can abbrev. the number to make it more manageable. Example: 100, 110, 250, etc. + +General Notes: + + Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. + Although this is a midterm, if you are stuck, I will still help you! But, not as many answers this time. Nothing here is new, so you can review the keys from your assignments to see how everything works. + +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If you do not use a struct, you will lose 25 points + If you do not use functions, you will use 20 points per missing function (80 points) + If you do not use generic functions for steps 6 and 7, you will lose 50 points (25 points each) + If your program does not compile (run), then I will give a grade of 0/300. But will give you the change to repair for points back (some points are better than none) + If you use global variables, you will lose 10 points for each global variable used + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 50 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + diff --git a/C++/Midterm/Midterm.cpp b/C++/Midterm/Midterm.cpp new file mode 100644 index 0000000..e79f58e --- /dev/null +++ b/C++/Midterm/Midterm.cpp @@ -0,0 +1,280 @@ +// Name: msglm +// Date: Oct 3rd, 2022 +// Program Name: Midterm +// Description: Read in a file, sanitize said file of html tags, output the contents in a format sorted that the user chooses. + +//90% of this is self-plagiarism, or as I like to call it, recycled +//and think, some people get really angry about reuse! +//I never understood that mentality, it's just absurd to me: +//just never transfer your copyrights and also put your code +//under a free software license and this won't be a problem. + +#include <iostream> +#include <fstream> +#include <string> +#include <vector> +#include <array> +#include <iomanip> +using namespace std; + +//Structures +// Use a struct to: +// Create an array or vector variable to store a person’s favorite movie +// Create an array or vector variable to store when the year that movie was released +// Create an array or vector variable to store the box office gross (total amount of money) it made +// +struct Person { + vector<string> favMov; + vector<string> yearReleased; + vector<string> gross; +}; + +struct Movie { + string favMov; + string yearReleased; + string gross; +}; + + +//initalizes the file + +//with the amount of times I used this function, I have to wonder +//why I don't end up making my own standard library +//or code processorsor to catconate some standard stuff +void initalize(string location, ifstream & fileVar) { + fileVar.open(location); + + if (!fileVar) { + cout << "ERROR! " << location << " failed to open!"; + exit(1); + } +} + + +//borrowed code from another assignment +// +//it's great that I made this not have any side effects +//I can just slap this down anywhere I please +string sanitize(string userInput) { + bool insideATag = false; + bool metTheTagTerminator = false; + int beginBracketPos; + int endBracketPos; + int tagLength; + + for (int charPos=0; charPos<=userInput.length();charPos++) { + if (insideATag && metTheTagTerminator) { + + //Tag length only exists because std::String.erase() doesn't accept + //a range, but rather a start and the chars to go. it's accursed. + tagLength = (endBracketPos-beginBracketPos)+1; + userInput.erase(beginBracketPos, tagLength); + charPos = 0; + insideATag = false; + metTheTagTerminator = false; + } + if (userInput[charPos] == '<') { + insideATag = true; + beginBracketPos = charPos; + } + + if (userInput[charPos] == '>' && insideATag) { + metTheTagTerminator = true; + endBracketPos = charPos; + } + + + } + return userInput; +} + + +//takes a file as input and, for every 3 lines, puts it into the movieDataContainer's vectors +//Will only run if the next line after a set of 3 is not EOF +//there is no error checking +Person orderAndAssociateIntoStruct(ifstream & fileVar) { + Person movieDataContainer; + string temp; + int oscillate = 0; + int epoch = 0; + + while(getline(fileVar, temp)) { + switch (oscillate) { + case 0: + movieDataContainer.favMov.push_back(sanitize(temp)); + oscillate++; + break; + case 1: + movieDataContainer.yearReleased.push_back(sanitize(temp)); + oscillate++; + break; + case 2: + movieDataContainer.gross.push_back(sanitize(temp)); + epoch++; + oscillate = 0; + break; + if (fileVar.peek() != EOF) { + break; + } + } + } + return movieDataContainer; +} + + +//Prints out all the data in a tabular format +void output(vector<Movie> movieDataContainer) { + + cout << left << setw(16) << "Movie Name" << " "; + cout << left << setw(16) << "Year Published" << " "; + cout << left << setw(16) << "Gross Box Office" << " "; + + for (Movie movie : movieDataContainer) { + cout << endl; + cout << left << setw(16) << movie.favMov; + cout << left << setw(16) << movie.yearReleased; + cout << left << setw(16) << movie.gross; + } + cout << endl; + } + + +//Bubble sort implementations +// +//depending on the menu option selected, this will sort by different values +//The movieList is read for all the movie structs in it, those struct's values +//are what are read when sorting happens. Depending on if the sorting deemes the values +//greater or lesser, the swapping of the movie struct itself will happen +// +//It took many hours in gdb to discover that this function had a bug due to +//movieList.size() returning 5 instead of 4 if 4 movie structs are in movieList +// +//The experience of debugging C++ seg faults is only comparable to one thing: passing a kidney stone; +//It takes 3 hours of your life away, it's painful, and by the end of it, you'll be bleeding out of places +//you never thought you could bleed out of. +// +//The only upside to debugging C++ code is that it doesn't bill your insurance... +//well, it does end up billing it later on when the blood pressure problems start setting in, but right now that's not my problem. +vector<Movie> sort(vector<Movie> movieList, int menuOption) { + Movie temp; + switch(menuOption) { + case 1: + for (int pos = 0; pos < movieList.size() - 1; pos++) { + for (int comparePos = 0; comparePos < ((movieList.size() - 1) - pos); comparePos++) { + if(movieList[comparePos].favMov > movieList[comparePos + 1].favMov) { + temp = movieList[comparePos]; + movieList[comparePos] = movieList[comparePos + 1]; + movieList[comparePos + 1] = temp; + } + } + } + break; + case 2: + for (int pos = 0; pos < movieList.size() - 1; pos++) { + for (int comparePos = 0; comparePos < ((movieList.size() - 1) - pos); comparePos++) { + if(stof(movieList[comparePos].yearReleased) > stof(movieList[comparePos + 1].yearReleased)) { + temp = movieList[comparePos]; + movieList[comparePos] = movieList[comparePos + 1]; + movieList[comparePos + 1] = temp; + } + } + } + break; + case 3: + for (int pos = 0; pos < movieList.size() - 1; pos++) { + for (int comparePos = 0; comparePos < ((movieList.size() - 1) - pos); comparePos++) { + if(stof(movieList[comparePos].gross) > stof(movieList[comparePos + 1].gross)) { + temp = movieList[comparePos]; + movieList[comparePos] = movieList[comparePos + 1]; + movieList[comparePos + 1] = temp; + } + } + } + break; + } + return movieList; +} + +//just a simple menu. returns a number because I don't feel like dealing with flags +int menuOption() { + int choice; + //No input validation here since the rubric doesn't call for it. + cout << "1. Sort by Movie Name\n"; + cout << "2. Sort by Year Released\n"; + cout << "3. Sort by Box office gross\n"; + cout << "Enter Selection: "; + cin >> choice; + return choice; +} + +//effectively inverts the person struct +//instead of being a struct with vectors in it, it's a vector with structs in it +//and those structs hold data about an individual movie +// +//This is achieved using a similar algorithm to reading in the file +vector<Movie> person2MovieList(Person person) { + + vector<Movie> personsMovieList; + int oscillate = 0; + string tempfavMov; + string tempyearReleased; + string tempGross; + + int moviePos = 0; + //Since gross and year release are associated with movie, we can assume + //that for every movie, there should be a gross and year release. + // + //If this was in production, some type of check would be ran to ensure this + while(moviePos < person.favMov.size()) { + switch (oscillate){ + case 0: + tempfavMov = person.favMov[moviePos]; + oscillate++; + break; + case 1: + tempyearReleased = person.yearReleased[moviePos]; + oscillate++; + break; + case 2: + tempGross = person.gross[moviePos]; + oscillate = 0; + personsMovieList.push_back( Movie() ); + personsMovieList[moviePos].favMov = tempfavMov; + personsMovieList[moviePos].yearReleased = tempyearReleased; + personsMovieList[moviePos].gross = tempGross; + moviePos++; + break; + } + } + return personsMovieList; + +} + +int main() { + //Variable declaration + ifstream data; + + initalize("input.txt", data); + Person organizedMovieData = orderAndAssociateIntoStruct(data); + //This current data structure makes the sorting section a nightmare. + //this is due to the lack of a hard associations between the movie's name, year of release, and gross profit + // + //I somehow must associate those three variables despite them being in an array + //Instead of using an accursed flag system to accomplish this, I will instead opt to + //just convert the data in the Person struct into a vector of Movie Structs + //this way, the order of the struct may be managed much more simply + + vector<Movie> personsMovieList = person2MovieList(organizedMovieData); + output(sort(personsMovieList, menuOption())); + + data.close(); + +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Midterm/input.txt b/C++/Midterm/input.txt new file mode 100644 index 0000000..3d5fe35 --- /dev/null +++ b/C++/Midterm/input.txt @@ -0,0 +1,93 @@ +A Bad Movie +2009 +1000 +A Mediocre Movie +2013 +2000 +A Good Movie +1963 +3000 +<html><p>A Great Movie</p></html> +<html><p>1933</p></html> +<html><p>4000</p></html> +<html><p>The Best Movie</p></html> +<html><p>2019</p></html> +<html><p>5000</p></html> +<html><p>8daf42144e1478242395</p></html> +<html><p>5277</p></html> +<html><p>17323</p></html> +<html><p>992db78074b6626d32d4</p></html> +<html><p>28144</p></html> +<html><p>18078</p></html> +<html><p>eff5f2d89c76c7db845d</p></html> +<html><p>2097</p></html> +<html><p>4657</p></html> +<html><p>5b2ab0ef7c7679608ad4</p></html> +<html><p>21667</p></html> +<html><p>22384</p></html> +<html><p>af130ea34c5fd18e5d90</p></html> +12932 +16067 +53781f8b44d59f0a785b +27052 +15023 +4fb5031d3f412c8eaa00 +5108 +19262 +e5ef1bffca4fc724bc1a +22484 +28116 +f176f40d7d95a68c505b +32107 +11837 +026b0f5819e4f3b1f896 +19896 +8728 +a0cb012372c799465445 +15028 +11357 +de61b87cde83b8a34bb0 +<p>32308</p> +22373 +5c0bf606be264bdf0c0f +22526 +30093 +0ba47d1c54af6d4f0cb6 +19016 +30532 +f7210a737c1e1ffc7c6b +25482 +22580 +8d2bdb0dc90b60deff84 +10442 +30759 +e99b69172334e6898221 +7135 +5818 +facdeb2cacd8ba502e6d +16070 +9232 +4568ec6386779c896ae2 +10475 +4969 +d4ca7742c45d8600775d +31616 +23407 +a604d311130b7bdb5d44 +21036 +25900 +b3c333742475448abd99 +5663 +26144 +ce41c8b616c312ba742c +12394 +28147 +916bcad86d3071937283 +21493 +11734 +6fafd30cb753057940bd +7217 +8621 +7c13bda784439ee8e995 +20462 +22245 diff --git a/C++/Multiple Inheritance/INSTRUCTIONS b/C++/Multiple Inheritance/INSTRUCTIONS new file mode 100644 index 0000000..7f67b29 --- /dev/null +++ b/C++/Multiple Inheritance/INSTRUCTIONS @@ -0,0 +1,43 @@ +Project 9: Multiple Inheritance +Due: Monday, November 7th, 2022 before midnight +100 Points +Using the "Dreaded Diamond" example shown in class (or one you find online), write a program that has a base class, 2 derived classes and a join class. The class names and behaviors are up to you! But, I want to see the following in your program: +1. Each class will have at least 3 variables (in the private section only please) +2. Each class will have least 1 non-trivial function (must have substance, not simple overly simple) as well as any functions needed to get/set your variables and/or anything else needed +3. The join class will use information from each of the derived classes (otherwise there is no point in doing this assignment) +4. Create only 1 object. It will be in main and be for the join class only (no reason to create an object for other classes) +5. Main should have the creation of an object and function calls. Nothing else +Program Ideas: +1. Base class of video games, then 2 derived classes: 1 for mmo and 1 for fps, join class is reviews (review video games - parental rating, star ratings, etc.) +2. Base class of person, then 2 derived classes: 1 for student and 1 for faculty, join class is tutor (create a tutor log that shows who went to the see the tutor, the name of the tutor and student, class name, date, question, etc) +3. Base class of employee, then 2 derived classes: 1 for worker and 1 for manager, join class is payroll (workers are hourly, managers are salaried. Determine the paycheck for both - just like you did in the previous assignments) +4. Base class of movies, then 2 derived classes: 1 for genre and 1 for actors, join class is boxOffice (store box office gross, year released, movie rating, etc. Then, sort on something, such as gross - just like your previous assignment) +If you don't like these ideas, that is okay. Make your own! +Assignment Notes: + + Be sure to make use virtual when inheriting from your base class! (watch the video examples to see what I mean) + Make variables either arrays or vectors - your choice + Use input file or keyboard to get data into your program - your choice + I expect to see functions throughout this program + I expect to see all variables in class private sections + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +If you are stuck, I will help you! +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If your program is not object-oriented, you will receive a 0/100 (OOP is requred for this assignment) + If your program does not use functions, you will lose up to 75 points (depending on the number of functions missing) + If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none) + If your program is late (within 48 hours of the due date), you will lose 25 points + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If you use global variables in your program, I will deduct 5 points for each used + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 + If you submit a file type I cannot open, such as .sln, you will receive a 0/100. You will be able to resubmit for credit, but you will lose up to 90 points (depending on how late it is) + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + diff --git a/C++/Multiple Inheritance/MultiInheritance.cpp b/C++/Multiple Inheritance/MultiInheritance.cpp new file mode 100644 index 0000000..4ddaf21 --- /dev/null +++ b/C++/Multiple Inheritance/MultiInheritance.cpp @@ -0,0 +1,280 @@ +// Name: msglm +// Date: Nov-7th-2022 +// Program Name: Multiple Inheritance +// Description: Toying around with inheritance by making a program that calculates the only thing worse than OOP: politics. + + +//My last project got some marks off for my parent class doing nothing, and i'll admit, that was the case! My parent class was a glorified struct and might have been a bit too sensible to be considered OOP. +//So, this time around, im going to channel my inner Java developer and make an abomination example that both fulfills the rubric AND provides some examples for why OOP should be tossed into the trash. + +#include <iostream> +#include <fstream> +#include <string> +using namespace std; + +//Classes + + +//This person class refers to only one aspect of a person: their ability to pay taxes, however, objects in reality are much more complex than this. +//I can foresee someone modifying this person class with much more, such as the ability to eat, drink, read, work, etc. and this thing "person" becoming +//more feature complete as time goes on depending on what's necessary. This isn't a bad thing, however, when combined with inheritance it leads to disaster. +// +//Even if you have a conventional subclass of person and not a strange one (i.e my company subclass), you will create a very bloated being. One of my subclasses is a +//politician. Right now, this is a sensible decision as a politician's taxes may become important in the program later on, however, if the person class keeps getting +//more and more bloated, this may become absurd. A politician eating or drinking, doesn't really matter depending on the scope of the program. If this was a small government +//simulator, it'd be unnecessary to cruft up the politician class with junk about eating if the politician class only needs certain aspects of the person class. +// +//This can be solved with intelligent programming of everything on your system, but assuming that your development team is perfect is just a bad idea and assuming you can keep track of everything going on in a big project is a worse idea. +class person { + public: + float calculateTax() { + if (alive) { + return income*taxRate; + } else { + //The dead can't pay taxes! + // + //...well they can with death tax, but + //I don't feel like thinking about that kind + //of government overreach, especially in an assignment + //meant to make fun of OOP, not the government. + return 0; + } + } + + //I don't like metaprogramming, but things like this are why it exists + void setIncome(float i) { income = i; } + void setAlive(bool i) { alive = i; } + void setTaxRate(float i) { taxRate = i; } + void setName(string i) { name = i; } + float getIncome() { return income;} + bool getAlive() { return alive;} + float getTaxRate() { return taxRate;} + string getName() { return name;} + private: + float income; + bool alive; + float taxRate; + string name; +}; + +//Some people say that the legal rights of companies encroach on the point of +//personhood, especially after Citizens United v. Federal Election Commission. +//Due to this, it's concievable that in some program, somewhere, someone will +//inheirt a company from a person despite them being very different things in reality. +// +//This serves as an example of why the class-based way of thinking can rationalize very stupid things: +//A company is not a person and doesn't act like a person by conventional reasoning, however, using +//particular and contextual reasoning, reasoning that may only exist in the programmers mind, you can +//justify incredibly stupid inheritence like this. +//Of course, this example is almost absurd, but you can see the idea here. I don't know how many times i've seen people +//attempt to make the "player" a subclass of a generic belligerent class when developing an RPG game. Every single time +//it leads to the player class being an overbloated abomination due to both being developed and added upon to account for +//niche circumstances. By the end, the player and the generic belligerent class don't even remotely resemble eachother. +class company: public virtual person { + public: + void cleverAccounting() { + if(hasAccountant) { + organizationTaxableIncome = calculateTax()*0.5; + } else if (hasLawyer) { + organizationTaxableIncome = calculateTax(); + } else { + taxDelinquent = true; + organizationTaxableIncome = calculateTax()*2; + } + } + void setHasAccountant(bool i) { hasAccountant = i; } + void setTaxDelinquent(bool i) { taxDelinquent = i; } + void setHasLawyer(bool i) { hasLawyer = i; } + void setOrganizationTaxableIncome(float i) { organizationTaxableIncome = i; } + bool getHasAccountant() { return hasAccountant;} + bool getTaxDelinquent() { return taxDelinquent;} + bool getHasLawyer() { return hasLawyer;} + float getOrganizationTaxableIncome() { return organizationTaxableIncome;} + private: + bool hasAccountant; + bool taxDelinquent; + bool hasLawyer; + float organizationTaxableIncome; + +}; + +//Now, this reasoning is conventional. A politician is a person, but this class will suffer many of the same problems the person class does by being able to be edited to maximize bloat by other programmers. If your programmers aren't editing this, then they're making subclasses that over all just make the program more confusing. Nobody wants to keep up with politician_who_can_eat_and_drink and politician_who_can_eat_and_do_taxes in their program for each niche thing. Either situation is a lose-lose long term. +class politician: public virtual person { + public: + void incomeGoesPublic() { + if (economicPopulist) { + if (getIncome() > 80000) { + publicApproval = publicApproval - 0.3; + if (publicApproval < 0.5) { + voters = voters - (voters * 0.4); + } + } + } + } + void setPublicApproval(float i) { publicApproval = i; } + void setVoters(int i) { voters = i; } + void setEconomicPopulist(bool i) { economicPopulist = i; } + float getPublicApproval() { return publicApproval;} + int getVoters() { return voters;} + bool getEconomicPopulist() { return economicPopulist;} + private: + float publicApproval; + int voters; + bool economicPopulist; + +}; + +//Now here's where we get into "abomination" territory. Some ignorant intern or coding "genius" thinks it's clever to combine some classes together that are far from related to eachother. Maybe both it's because of the functionality both classes have or because they are "related" by some sick mockery of logic and reasoning. These are unfortunately real things that happen in real code bases and, once you get to this level of inheritance and abstration, the final product is far from resembaling the original classes that spawned the whole mess. +//Just citing the examples you offered, and by no means this is not a dig at you, it's just an example of they type of mindset OOP programming puts people in, "Base class of video games, then 2 derived classes: 1 for mmo and 1 for fps, join class is reviews". Combining a MMO and an FPS conceptually does not give you a review, however, in code this may make absolute sense to do since they're just functions and variables and a review might need access to some data contained with both the FPS and MMO class. +//At this level of abstraction, the notion that object orientated programming refers to "objects" falls aparts in favor of programmer convienence. This is overall harmful to a code base because it creates a misalignment between the intent of a programming paradigm and the actual results in the code. Programmers start by making objects that actually exist and are definable and they end by making "objects" that are either not objects at all, but rather a ball of functions and data, or very strange and tangently related objects that only connect to their parent objects in code, but not actual concept. More often than not, I find this makes it where I am fighting my tools just to do what I want to when dealing with OOP systems. + +//This example goes for the latter and preserves some of the "object" aspects of OOP. A political party is an object, it has politicians, and sorta acts like a company. It's not a good connection because a politicalParty is not a person, isn't a subvariant of either a politician or a company, and instead is its own thing with its own defined behavior in reality, however, a politicalParty, in this example, can pay taxes, can have lawyers, can have accountants, can have voters, can have public approval, can be economically populist, can be subject to tax rates, can take in income, and can be alive (or active). In pure code, this object makes sense, in reality, it does not. + +//This is the crux of the problem with OOP programming. In reality, it's really not object orientated because structures in code aren't objects and can never be objects. Computers preform tasks on data, so programming should be modeled in a fashion where this is at the front of a programmer's mind. +//Computers cannot make objects. Objects are capable of being limitlessly applied and used in almost every context. I can take a real soda can and throw it, I can take a real soda can and drink it, and I can take a real soda can and shoot it into the sun. Computers are machines of data input, data processing, and data output that, at their root, use declarative operations to achieve these things. Nowhere in the structure of a computational machine is there a way to create an object that can be accessed and use in limitless ways. All possible activties must be declared before usage. This means that people are incentivized to not add unnecessary traits to the digital objects they create, at least until they drop the perception of OOP as object orientated and start viewing it as functions and data glued together again. +//This makes OOP, when executed with objects in mind, a cruel mockery of actual objects that will always fall short either in the object's usability or due to out-of-scope, overengineering of an object into an uncomprehendable disaster. The scope of an object must go beyond a program's requirements to be a true object. Anything inherit must be a direct subclass of the object that inherits all aspects of its parent (such as a politician inheriting from a person). In computing, this is just not how the system works, so you end up fighting your tools if you adhere to OOP 100%. +//When OOP is not executed with true objects in mind, it's just a bad way of grouping code and data together that makes life harder. + +class politicalParty: public politician, public company { + public: + void determinePoliticalStanding() { + if(getAlive()) { + if(getCorrupt()) { + cleverAccounting(); + } + + if(getTaxDelinquent()) { + setPublicApproval(getPublicApproval() - 0.3); + if (getPublicApproval() < 0.5) { + setVoters(getVoters() - (getVoters() * 0.4)); + cardHoldingMembers = cardHoldingMembers - (cardHoldingMembers * 0.2); + } + } + incomeGoesPublic(); + + if (getOrganizationTaxableIncome() > 10000 && getTaxDelinquent()) { + setPublicApproval(getPublicApproval() - 0.2); + if (getPublicApproval() < 0.5) { + setVoters(getVoters() - (getVoters() * 0.4)); + cardHoldingMembers = cardHoldingMembers - (cardHoldingMembers * 0.2); + } + } + + if (getVoters() >= 10000 && cardHoldingMembers > 1000 && getPublicApproval() >= 0.5) { + currentlyHoldsOffice = true; + } else { + currentlyHoldsOffice = false; + } + + + } else { + currentlyHoldsOffice = false; + } + + if (getCurrentlyHoldsOffice()) { + cout << "The political party " << getName() << " has won the election." << endl; + } else { + cout << "The political party " << getName() << " has lost the election." << endl; + } + cout << getName() << " had a total of " << getVoters() << " voters supporting it and an approval rating of " << getPublicApproval()*100 << "%\n"; + } + void setCurrentlyHoldsOffice(bool i) { currentlyHoldsOffice = i; } + void setCorrupt(bool i) { corrupt = i; } + void setCardHoldingMembers(int i) { cardHoldingMembers = i; } + bool getCurrentlyHoldsOffice() { return currentlyHoldsOffice;} + bool getCorrupt() { return corrupt;} + int getCardHoldingMembers() { return cardHoldingMembers;} + private: + bool currentlyHoldsOffice; + bool corrupt; + int cardHoldingMembers; +}; + + +politicalParty inputParty() { + politicalParty party; + string temp; + + + cout << "===Enter information about a political party===\n"; + cout << "Is this party active? (y/n): "; + cin >> temp; + if(temp == "y" || temp == "Y") { + party.setAlive(true); + } else { + party.setAlive(false); + } + + cout << "What is this party's name? "; + cin.ignore(); + getline(cin, temp); + party.setName(temp); + + cout << "What is this party's overall income? "; + cin >> temp; + party.setIncome(stof(temp)); + + cout << "Political parties in this country pay taxes.\n"; + cout << "What is the tax rate the party is subject to (as a decimal-notation percentage)? "; + cin >> temp; + party.setTaxRate(stof(temp)); + + cout << "Does this political party have an accountant (y/n)? "; + cin >> temp; + if(temp == "y" || temp == "Y") { + party.setHasAccountant(true); + } else { + party.setHasAccountant(false); + } + + cout << "Does this political party have a lawyer (y/n)? "; + cin >> temp; + if(temp == "y" || temp == "Y") { + party.setHasLawyer(true); + } else { + party.setHasLawyer(false); + } + + cout << "Is this party's policy economically populist (y/n)? "; + cin >> temp; + if(temp == "y" || temp == "Y") { + party.setEconomicPopulist(true); + } else { + party.setEconomicPopulist(false); + } + + cout << "Is this party politically corrupt(y/n)? "; + cin >> temp; + if(temp == "y" || temp == "Y") { + party.setCorrupt(true); + } else { + party.setCorrupt(false); + } + + cout << "What is the current public approval rating of the party (as a decimal-notation percentage) (50 percent approval or higher is necessary to win)? "; + cin >> temp; + party.setPublicApproval(stof(temp)); + + cout << "How many people will be voting for this party? (10k are necessary to win) "; + cin >> temp; + party.setVoters(stoi(temp)); + + cout << "How many people are members of the party (1k are necessary to win) "; + cin >> temp; + party.setCardHoldingMembers(stoi(temp)); + + return party; +} + +int main() { + politicalParty userParty = inputParty(); + userParty.determinePoliticalStanding(); +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Multiple Inheritance/diamond.png b/C++/Multiple Inheritance/diamond.png Binary files differnew file mode 100644 index 0000000..f6474e2 --- /dev/null +++ b/C++/Multiple Inheritance/diamond.png diff --git a/C++/NestedLoop-TriangleDrawing/NestedLoop-TriangleDrawing.cpp b/C++/NestedLoop-TriangleDrawing/NestedLoop-TriangleDrawing.cpp new file mode 100644 index 0000000..1ccb63a --- /dev/null +++ b/C++/NestedLoop-TriangleDrawing/NestedLoop-TriangleDrawing.cpp @@ -0,0 +1,62 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + int i; + int j; + int rows; + + //Triangle 1 + for ( i = 1; i <= 5; i++ ) { + + for (j = 1; j <= i; j++) + cout << "*"; + cout << endl; + } + + //Triangle 2 + + for ( i = 5; i >= 1 ; i-- ) { + for (j = 1; j <= i ; j++ ) + cout << "*"; + cout << endl; + } + + //Triangle 3 + do { + cout << "Enter the number of rowsI (between 2 and 20): "; + cin >> rows; + + if (rows < 2 || rows > 20) + cout << "Invalid input, try again!" << endl; + + } while(rows < 2 || rows > 20); + + for (i = 1; i <=rows; i++) { + for (j = 1; j<=i;j++) + cout << "*"; + cout << endl; + } + + + +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/NewSummerJob/NewSummerJob.cpp b/C++/NewSummerJob/NewSummerJob.cpp new file mode 100644 index 0000000..a88aadc --- /dev/null +++ b/C++/NewSummerJob/NewSummerJob.cpp @@ -0,0 +1,84 @@ +// Name: msglm +// Introduction: Summer Job Wage Calculator +// Description: a program that calculates a weekly wage, based on an hourly payrate and how many hours were worked; then calculates amounts for various categories of spending, along with how much of the weekly pay is leftover. + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; +const double tax = 0.15; +int main() { + //Rounding gets a bit gross when using floats, at the cost of memory, doubles are used. + string name; + double payRate; + double hours; + double WeeklyWage; + double shoppingPercent; + double entertainmentPercent; + double savingsPercent; + double remainder; + + //Program Information + cout << "Name: Summer Job Wage Calculator \n"; + cout << "Description: a program that calculates a weekly wage, based on an hourly payrate and how many hours were worked; then calculates amounts for various categories of spending, along with how much of the weekly pay is leftover.\n\n"; + + //Accept input via cin for hourly wages, pay rate, and name + + //getline already in use, no need to change + cout << "What is your full name?: "; + getline(cin, name); + + cout << "What is your payrate (per hour)?: "; + cin >> payRate; + + cout << "How many hours have you worked?: "; + cin >> hours; + + //Get the percentage variables + + cout << "\n===NOTE: The following prompts do not need percentage symbols===\n"; + + cout << "How much would you like to allocate to shopping?\n"; + cin >> shoppingPercent; + + cout << "How much would you like to allocate to savings?\n"; + cin >> savingsPercent; + + cout << "How much would you like to allocate to entertainment?\n"; + cin >> entertainmentPercent; + + //Convert the input to percentages + shoppingPercent = shoppingPercent/100; + entertainmentPercent = entertainmentPercent/100; + savingsPercent = savingsPercent/100; + + + //Multiply the input to create the WeeklyWage variable + //Possible memory optimization here by removing the WeeklyWage variable, but at the cost of CPU cycles. + WeeklyWage = hours*payRate; + + //Remainder will be its own var due to the more complex way to calculate it + remainder = WeeklyWage - WeeklyWage*(shoppingPercent+entertainmentPercent+savingsPercent+tax); + + //have a bunch of cout statements that do all the math + // I.e : cout << “Tax: “ << WeeklyWage*tax + + cout << fixed << setprecision(2); + cout << setw(15) << "Name:" << right << setw(5+name.length()) << name << endl; + cout << setw(15) << "Wages:" << right << setw(6) << "$" << WeeklyWage*tax << endl; + cout << setw(15) << "shopping:" << right << setw(6) << "$" << WeeklyWage*shoppingPercent << endl; + cout << setw(15) << "entertainment:" << right << setw(6) << "$" << WeeklyWage*entertainmentPercent << endl; + cout << setw(15) << "savings:" << right << setw(6) << "$" << WeeklyWage*savingsPercent << endl; + cout << setw(15) << "remainder:" << right << setw(6) << "$" << remainder << endl; + + return 0; + +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/OOP/INSTRUCTIONS b/C++/OOP/INSTRUCTIONS new file mode 100644 index 0000000..8c199c2 --- /dev/null +++ b/C++/OOP/INSTRUCTIONS @@ -0,0 +1,43 @@ + Covert your Project 5 - Structs program to be object-oriented. +Create a program that uses a class with array variables that do the following: + + Get 3 sets of employee information for the below via the keyboard - no input file this time: + First Name + Last Name + Job Title + Employee Number + Hours Worked + Hourly Wage + Number of Deductions Claimed + Determine if the employee is entitled to overtime (see videos for explanation of overtime) + Determine tax rate based on deductions claimed (see videos for explanation of deductions) + Determine gross pay, taxes withheld, and netpay + Output all information to the screen, but only output overtime if the employee has it + Determine the highest and lowest paid employees. Output the name and salary of both + +Assignment Notes: + + No structs please. Make your all of variables as private in the class to show me you understand how to do this + You may use vectors or array variables to store the employee data + You should not ask the user for their tax rate, gross pay, net pay, or taxes withheld. Your program should do this for the user. + I expect to see functions for steps 1 - 6 above + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +If you are stuck, I will help you! +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If your program is not object-oriented, you will lose up to 80 points (OOP is the goal of this assignment) + If your program does not use functions, you will lose up to 60 points (depending on the number of functions missing) + If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none) + If your program is late (within 48 hours of the due date), you will lose 25 points + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If you use global variables in your program, I will deduct 5 points for each used + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + diff --git a/C++/OOP/OOP.cpp b/C++/OOP/OOP.cpp new file mode 100644 index 0000000..76d5735 --- /dev/null +++ b/C++/OOP/OOP.cpp @@ -0,0 +1,205 @@ +// Name: msglm +// Date: Sep 29th, 2022 +// Program Name: Structs +// Description: Given an input file, output gross pay, taxes, net pay, and other financial information. + +#include <iostream> +#include <fstream> +#include <string> +using namespace std; + + +//Classes +class Employee { + private: //Hiding data from a programmer is like hiding pipes from a plumber + string fname; + string lname; + string job; + int employeeNum; + float hrsWorked; + float wage; + int deductions; + public: + + //Lines and lines of the same thing + //I'm a stickler for verbosity in code, but this is just too far + //Brings me back to my Java days + + void set_fname(string input) { + fname = input; + } + string get_fname() { + return fname; + } + + void set_lname(string input) { + lname = input; + } + string get_lname() { + return lname; + } + + void set_job(string input) { + job = input; + } + string get_job() { + return job; + } + + void set_employeeNum(int input) { + employeeNum = input; + } + int get_employeeNum() { + return employeeNum; + } + + void set_hrsWorked(float input) { + hrsWorked = input; + } + float get_hrsWorked() { + return hrsWorked; + } + + void set_wage(float input) { + wage = input; + } + float get_wage() { + return wage; + } + + void set_deductions(int input) { + deductions = input; + } + int get_deductions() { + return deductions; + } + + +}; + + +//Takes in the initalized file and puts it into an object instance +Employee serializeIntoObj() { + Employee employee; + string temp; + + //Probably the worst thing I've ever wrote + //however, I am running out of time on this assignment + //and it "just werks" + // + //I love fighting against my tools to do what I want + //"cin" has to be special and have its own little istream type + //instead of just being a function that, upon reaching a + //terminating character returns a string or a char[]. + // + //but hey, it could be worse, I could be dealing with the + //trainwreck that is BOOST + + cout << "===Enter your information===\n"; + cout << "Please enter your first name: "; + cin >> temp; + employee.set_fname(temp); + cout << "Please enter your last name: "; + cin >> temp; + employee.set_lname(temp); + cout << "Please enter your job title: "; + cin >> temp; + employee.set_job(temp); + cout << "Please enter your employee ID: "; + cin >> temp; + employee.set_employeeNum(stoi(temp)); + cout << "Please enter your number of hours worked: "; + cin >> temp; + employee.set_hrsWorked(stof(temp)); + cout << "Please enter your wage: "; + cin >> temp; + employee.set_wage(stof(temp)); + cout << "Please enter your number of deductions: "; + cin >> temp; + employee.set_deductions(stoi(temp)); + return employee; +} + +//given hours work, return the amount of overtime. +float overtime(Employee employee) { + if (employee.get_hrsWorked() > 40) { + float oTHours = employee.get_hrsWorked() - 40; + if (oTHours > 0) { + return oTHours; + } + } + return 0; +} + +//Given the deductions, return the taxrate +float taxRate(Employee employee) { + if (employee.get_deductions() <= 0) { + return 0.30; + } else if (0.30-(employee.get_deductions()*0.05) <= 0.10) { + return 0.10; + } else { + return 0.30-(employee.get_deductions()*0.05); + } +} + +//Intake the employee in question, his overtime, and then the tax rate he's subject to +// +void outputGrossTaxPay(Employee employee, float overtime, float taxRate) { + + float overtimePay = overtime*(employee.get_wage()*1.5); + float normalPay; + if (overtime > 0) { + normalPay = employee.get_wage()*40; + } else { + normalPay = employee.get_wage()*employee.get_hrsWorked(); + } + float grossPay = overtimePay + normalPay; + float withheld = taxRate*grossPay; + cout << "Employee Name: " << employee.get_fname() << " " << employee.get_lname() << endl; + cout << "Job Title: " << employee.get_job() << endl; + cout << "Employee Number: " << employee.get_employeeNum() << endl; + cout << "Hours Worked: " << employee.get_hrsWorked() << endl; + cout << "Hourly Wage: $" << employee.get_wage() << endl; + cout << "Deductions Claimed: " << employee.get_deductions() << endl; + if (overtime > 0) { + cout << "Overtime Hours: " << overtime << endl; + cout << "Overtime Pay: $" << overtimePay << endl; + } + cout << "Gross Pay: $" << grossPay << endl; + cout << "Tax Withheld: $" << withheld << endl; + cout << "Net Pay: $" << grossPay-withheld << endl; + + + +} + +int main() { + + //Variable declaration + const int ARR_SIZE = 3; + Employee readValues[ARR_SIZE]; + + + //Collect the data + for (int employeePos=0; employeePos < ARR_SIZE; employeePos++) { + readValues[employeePos] = serializeIntoObj(); + } + //Present the data + for (int employeePos=0; employeePos < ARR_SIZE; employeePos++) { + cout << "===New Employee==\n"; + outputGrossTaxPay(readValues[employeePos], overtime(readValues[employeePos]), taxRate(readValues[employeePos])); + } + + + + + +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/ParallelArray/ParallelArray.cpp b/C++/ParallelArray/ParallelArray.cpp new file mode 100644 index 0000000..b859023 --- /dev/null +++ b/C++/ParallelArray/ParallelArray.cpp @@ -0,0 +1,53 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants +const int ARRAY_SIZE = 5; + +int main() { + + //Variable declaration + string name[ARRAY_SIZE]; + int age[ARRAY_SIZE]; + + //Program title and description for the user + cout << "parallel array example " << endl << endl; + cout << "This program shows the example of parallel arrays. arrays can\n only hold data of one type. so if you want to store something\n like names and ages you must store then in different arrays\n\n this program will ask for 5 names and their corresponding\n ages and then output the results in columns " << endl << endl; + + //User input + for(int i = 0; i < ARRAY_SIZE; i++) { + cout << "Enter a name: "; + getline(cin, name[i]); + cout << "Enter the age: "; + cin >> age[i]; + + cin.ignore(); //ignores newln char after age before begin of name + } + + + //output + + //headlines + cout << "\033[2J\033[1;1H"; + cout << setw(20) << left << "Name" << setw(4) << right << "Age" << endl; + + //names/ages + for (int i = 0; i < ARRAY_SIZE; i++) { + cout << setw(20) << left << name[i] << setw(4) << right << age[i] << endl; + } +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Pointers/Pointers.cpp b/C++/Pointers/Pointers.cpp new file mode 100644 index 0000000..44a46a1 --- /dev/null +++ b/C++/Pointers/Pointers.cpp @@ -0,0 +1,87 @@ +// Name: msglm +// Date: Oct 26th 2022 +// Work Name: Pointers +// Description: an experiment in bad solutions to bad problems (but much more forgivable than other solutions) + + +////What is a pointer? +//Pointers are variables whos entire job is to point to another location of memory. + +////What are advantanges of using pointers in our programs? +//Pointers are great for causing side effects in your program, especially for dealing with IO issues. For example, I often create an ifstream variable and pass it by reference to a function that deals with the boilerplate initalization code. +// +//Pointers also tend to be used in advanced data structures like linked-lists, double linked-lists. +// +//Pointers can also be used for dynamic memory allocation +// +//Pointers are also amazing at digging out security holes, if you're interested in doing that for some reason. This is because humans are notoriously terrible at keeping track of things and tend to destroy things that shouldn't ne or forget to destroy things when they should. +//Because of this problem, humans invented the garbage collector, a program that automatically deals with that for people. This removes nasty pointer issue from your life, but at the cost of CPU cycles. +//Sometimes, that just wont cut it. No one wants to waste CPU cycles checking if something should be freed when they're running an Operating System, so people start to bring back the pointer and all of it's lovely security flaws and segmentation faults that come with it. +//Then, one day, someone invented the "Borrow Checker", a tool to help programmers ensure memory safety while still being able to use pointers. +//However, like anything shiny, new, and modern, it's actually a hellish and complex ploy made to distract man from the one true programming paradigm that would save us all from dangling pointer hell: Stack-orientated programming. +//That's right, FORTH is the solution to all problems, boot up a copy of CollapseOS (http://collapseos.org/) and start programming on the stack! +// +//jokes aside, all solutions to this problem are horrible. Garbage collection and stack-based programming seems to be the least bad, but both are still awful. Garbage collection is SLOW. Borrow checkers or code pre-processors may be the true solution in the long run, but borrow checkers are their own complex beasts of rules and pain. On top of that, the only real "borrow checker" language is Rust and Rust's syntax somehow makes me appreciate Java. + + +////How have we been using pointers in our programs already? +//Pass-by-reference may be consdiered the use of pointers, however, references are the constants of the pointer world and are different enough that most people consdier them incopatable, however, it's the closest the class has gotten so far. + +////Name and describe three differences between references and pointers +// 1. References are may not be reassigned upon being created +// 2. References must reference an datum already in existance +// 3. References cannot ever be NULL + +//Write a short program demonstrating how pointers work (use at least one function please and no copy/paste from any source, make up your own program based on what you read) + + +// Name: msglm +// Date: Oct 26th 2022 +// Work Name: Truth-To-Lies +// Description: Using pointer arithmatic and other dark magic, turn a truthful statement into a lie. + +#include <iostream> +#include <string> +using namespace std; + +int main() { + +char text[] = "Pointers are a security disaster, borrow checkers are way too complex, garbage collection is slow, and stack-orientated programming is too limited, but all these problems are merely hetrodoxical qubbling when compared to the heathenry that is OOP and its inheretence disaster."; +char *pointerText; + +pointerText = text; + +pointerText = pointerText + 1; +cout << *pointerText; +pointerText = pointerText + 34; +cout << *pointerText; +pointerText = pointerText + 30; +cout << *pointerText; +pointerText = pointerText + 5; +cout << *pointerText; +pointerText = pointerText + 16; +cout << *pointerText; +pointerText = pointerText + 5; +cout << *pointerText; +pointerText = pointerText + 28; +cout << *pointerText; +pointerText = pointerText + 4; +cout << *pointerText; +pointerText = pointerText + 1; +cout << *pointerText; +pointerText = pointerText + 34; +cout << *pointerText; +pointerText = pointerText + 13; +cout << *pointerText; +pointerText = pointerText + 13; +cout << *pointerText; +cout << "!" << endl; + +} +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Polymorphism/INSTRUCTIONS b/C++/Polymorphism/INSTRUCTIONS new file mode 100644 index 0000000..87fad1e --- /dev/null +++ b/C++/Polymorphism/INSTRUCTIONS @@ -0,0 +1,47 @@ +**NOTE** You are free to write a non-trivial program of your choice that demonstrates polymorphism (runtime or compile time or both). Or, if you cannot think of your own program idea, you may complete the below program. It is payroll again, so I wanted to give you an option to do something different so you don't become bored. +If you choose to use this program, then below are criteria: +Write a program that does the following: + + Create a class called Employee and it will store variables for first name, last name, hours worked, wage, gross pay, net pay, tax, overtime wage, overtime pay, overtime hours, and deductions + Get data via the keyboard or from an input file for first name, last name, wage, hours worked and deductions. The remaining varaibles are derived values + To demonstrate polymorphism, you will have two functions with the same name: payroll. The payroll functions will do all calculations. Except, one function will be for a manager (salaried employee) and one function will be for hourly employees + For further polymorphism practice, you will have two functions with the same name: output. These output functions will output all payroll information. One function will output manager information and one will output all hourly employee information + +Assignment Notes for the payroll program: + + Make variables either arrays or vectors - your choice + Don't forget to check for overtime! + Only output overtime for hourly employees if it exists + Managers do not have overtime since they are salaried. The get the same paycheck each pay period, so do not look for overtime for them. + If you want, you can output all information to an output file instead of the screen. Depending on how you write this program, this may make your program easier. + +Assignment Notes for custom program: + + Make variables either arrays or vectors - your choice + Your program must have at least two classes + Each class must have at least two non-trivial functions + You must demonstrate run time or compile time (or both!) polymorphism in your program + If you are not sure what to write and do not want another payroll program, try modifying your project 9 so that it uses polymorphism! Then, most of the program is written already + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +If you are stuck, I will help you! +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If your program is not object-oriented, you will receive a 0/100 (OOP is requred for this assignment) + If your program does not use functions, you will lose up to 75 points (depending on the number of functions missing) + If your program does not use polymorphism, you will lose up to 100 points since this is the point of the assignment + If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none) + If your program is late (within 48 hours of the due date), you will lose 25 points + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If you use global variables in your program, I will deduct 5 points for each used + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 + If you submit a file type I cannot open, such as .sln, you will receive a 0/100. You will be able to resubmit for credit, but you will lose up to 90 points (depending on how late it is) + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + + diff --git a/C++/Polymorphism/Polymorphism.cpp b/C++/Polymorphism/Polymorphism.cpp new file mode 100644 index 0000000..d09c2d6 --- /dev/null +++ b/C++/Polymorphism/Polymorphism.cpp @@ -0,0 +1,155 @@ +// Name: msglm +// Date: Nov-14th-2022 +// Program Name: parse CSV +// Description: parses a character-seperated value sequence. Not very robust. + +//This program is a bit less barebones and cool than I wanted, that's because, while working on the original project, I noticed my GPU fan had gone out +//and that I have been risking overheating my computer. I promptly ceased using my computer and repaired the device. This was about 50% of the way through +//completing the program. By the time I had the thing fixed, I was working on borrowed time and opted to scrap the original project for something more simple. +// +//The project in question was a small, tile-based territorial control game where AI would battle it out for control over the whole board. I had a good portion of it done, but +//still a lot more to get done. Once I got my GPU back in, I saw how much was necessary, and ditched the whole project because of time constraints. +// +//Lesson learned: never do cool things when under a deadline. + +#include <iostream> +#include <string> +#include <fstream> +using namespace std; + +class parseCSV { + public: + string input; + char delim; + string processed; + + void setdelim(char x) { + delim = x; + } + + void setdelim(string x) { + delim = x[0]; + } + + void takeInput() { + cout << "Please enter the data that you would like to be parsed\n"; + cin >> input; + } + + void takeInput(string toParse) { + input = toParse; + } + + void takeInput(ifstream & file) { + + file.open("input.txt"); + if (!file) { + cout << "ERROR! input.txt does not exist!"; + exit(1); + } + getline(file, input); + file.close(); + } + + void process() { + for(int charPos = 0; charPos < input.length(); charPos++) { + if (input.at(charPos) == delim) { + processed.push_back('\n'); + } else { + processed.push_back(input[charPos]); + } + } + + } + + void output() { + cout << processed; + } + + void output(string location) { + ofstream output; + output.open(location); + output << processed; + output.close(); + } + +}; + + +int main() { + + parseCSV parse; + int choice; + + //Taking in the data to be parsed + cout << "Would you like too...\n"; + cout << "1. Read input from a file\n"; + cout << "2. Input data manually\n"; + cout << "Enter Selection: "; + cin >> choice; + + switch (choice) { + case 1: + { + ifstream file; + parse.takeInput(file); + break; + } + case 2: + { + parse.takeInput(); + break; + } + default: + cout << "You did not give a valid input. Exiting."; + exit(1); + break; + } + + //Setting the deliminator + char temp; + cout << "Please selecte a deliminator for your file: "; + cin >> temp; + parse.setdelim(temp); + + //process the input + parse.process(); + + //Outputting + cout << "Would you like too...\n"; + cout << "1. Have the output put in a file\n"; + cout << "2. Have the output put on the screen\n"; + cout << "Enter Selection: "; + cin >> choice; + + switch (choice) { + case 1: + { + string temploc; + cout << "Where would you like to write the file?\n"; + cin >> temploc; + parse.output(temploc); + break; + } + case 2: + { + parse.output(); + break; + } + default: + { + cout << "You did not give a valid input. Exiting."; + exit(1); + break; + } + } + + +} +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Polymorphism/PolymorphismTooCool.cpp b/C++/Polymorphism/PolymorphismTooCool.cpp new file mode 100644 index 0000000..472817b --- /dev/null +++ b/C++/Polymorphism/PolymorphismTooCool.cpp @@ -0,0 +1,205 @@ +// Name: msglm +// Date: Nov-13-2022 +// Program Name: Brutal Geo-politics +// Description: A civlization game with econoimcs and power where the goal is to take every tile on the board. This version is played by the AI + + +#include <iostream> +#include <string> +#include <array> +#include <random> +#include <vector> + +using namespace std; + +//classes +class civilization { + public: + //icon will represent the civilization on the map + char icon; + //aggressiveness will represent how likely a civilization is to + //aquire territory by stealing it rather than buying it. + //higher = more likely to steal; lower = more likely to buy. + + ///AXED DUE TO TIME CONSTRAINTS + //This will control the AI for the civilizations + //float aggressiveness; + + //resources that each civlization has + int manpower; + int money; + + //The percentage of the economicOutput a civilization will take per turn from each of its territories. + float taxRate; + + void quasiConstructor(default_random_engine & randNumGen, char chosenIcon) { + icon = chosenIcon; + + uniform_real_distribution<float> percent(0.0,1.0); + aggressiveness = percent(randNumGen); + taxRate = percent(randNumGen); + } + +}; + +//structs +class tile { + public: + //The current owner of a civilization + civilization owner; + + //Dictates how much manpower is in a tile + int manpower; + float populationGrowth; + //Compliance of a tile is how docile a tile is towards its master civilization + //Compliance will lower if the master civilization is out of money or out of manpower + //Compliance will also lower if taxes are too high (see economicOutputExpectation) + //If compliance reaches zero, a revolt will happen and the current tile will become its own civilization + int compliance; + + + //The raw value of the tile; this amount of money will need to be exchanged to take a tile by purchasing + int value; + + //The value, per turn, the tile generates. + //If nobody owns the tile, the value of the tile will simply go up + //If someone does own this tile, a percentage of that tile's economicOutput will be collected + //by the master civilization in accordance with their tax rate. + float economicOutput; + + //The percentage of economicOutput a tile expects to keep + //If a tax rate goes over this amount, a tile will lower in its compliance. + float economicOutputExpectation; + + //If a tile is a core tile, it will never revolt. + //This status is reserved for the starting point of a civilization (the capital) or tiles that have been + //annhilated after failing to revolt. + bool coreTile; + + //If this tile is a wilderness tile, it has never been contacted by a civilization. + //This means no one owns it and civilizations cannot be spawned out of them (except during game start). + bool wilderness; + + //From my research, there is no good way to pass + //parameters to a constructor function that belongs to an object + //that's inside of an array. + //Because of this, the following function must be called after the object it initalized + //to be able to use a universal random number generator that doesn't involve global variables. + //I would use global variables, but I also want points, so instead we get this: + void quasiConstructor( default_random_engine & randNumGen ) { //Pass by reference because, in this instance for maximum performance + wilderness = true; + + uniform_int_distribution<int> manpowerRange(1,100000); + manpower = manpowerRange(randNumGen); + + uniform_real_distribution<float> populationGrowthRange(0.0,0.9); + populationGrowth = populationGrowthRange(randNumGen); + + uniform_int_distribution<int> economicOutputRange(1,15000); + economicOutput = economicOutputRange(randNumGen); + + value = economicOutput; + + uniform_real_distribution<float> economicOutputExpectationRange(0.0,0.9); + economicOutputExpectation = economicOutputExpectationRange(randNumGen); + } + + void claim(civilization claimant) { + if (wilderness) { + owner = claimant; + wilderness = false; + } + + } + void popGrowth() { manpower = manpower + (populationGrowth*manpower); } + //Revolt will succeed if the manpower of a tile is greater than 10% of its master's manpower + //OR + //if the economic value of a tile is greater than 10% of its master's money + //if neither of these conditions are the case and the revolt fails, the tile's population will be evicerated and the tile + //will becomine a coreTile, unable to revolt ever again. + void revolt() {} + +}; + +//functions + + +//TODO: figure out a way to pass the board without hard-coding 64 as the array size +//and without using a vector (because vectors are bloat). +//"declaration of ‘board’ as multidimensional array must have bounds for all dimensions except the first" +//there is literally zero reason for this to be the case and gives further reasoning to deprecate C/C++. +void printBoard(tile board[][64], unsigned int boardsize) { + for(int xpos=0; xpos < boardsize; xpos++) { + cout << endl; + for (int ypos = 0; ypos < boardsize; ypos++) { + if (board[xpos][ypos].wilderness) { + cout << "."; + } else { + cout << board[xpos][ypos].owner.icon; + } + } + } +} + + +int main() { + + //Create the board and all its glory + const unsigned int SIZE = 64; + const unsigned int CIVAMOUNT = 4; + bool gameGoing; + char winner; + random_device rd; + default_random_engine randNumGen(rd()); + tile playingBoard[SIZE][SIZE]; + for(int xpos = 0; xpos < SIZE; xpos++) { + for (int ypos = 0; ypos < SIZE; ypos++) { + playingBoard[xpos][ypos].quasiConstructor(randNumGen); + } + } + + //Spawning some civilizations + + //this gets to be a vector due to the stack-based situation civilizations will exist in + //civlizations can be born or die at a whim, they need to be able to be added to a stack as well. + vector<civilization> civlist; + uniform_int_distribution<int> randomSpot(0,SIZE); + + //TODO make this create CIVAMOUNT of civilizations, each with a random char representing it + civlist.push_back(civilization()); + civlist.back().quasiConstructor(randNumGen, 'R'); + playingBoard[randomSpot(randNumGen)][randomSpot(randNumGen)].claim(civlist.back()); + + civlist.push_back(civilization()); + civlist.back().quasiConstructor(randNumGen, 'U'); + playingBoard[randomSpot(randNumGen)][randomSpot(randNumGen)].claim(civlist.back()); + + civlist.push_back(civilization()); + civlist.back().quasiConstructor(randNumGen, 'J'); + playingBoard[randomSpot(randNumGen)][randomSpot(randNumGen)].claim(civlist.back()); + + //Turn system + + while (gameGoing) { + for(civilization civ : civilist) { + + } + + } + } + + + //Check for win condition (3 turns where every tile is owned by one civ) + + //output each turn to a file + printBoard(playingBoard, SIZE); + +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Polymorphism/input.txt b/C++/Polymorphism/input.txt new file mode 100644 index 0000000..3f8c45d --- /dev/null +++ b/C++/Polymorphism/input.txt @@ -0,0 +1 @@ +test,test,test diff --git a/C++/Rectangle/Rectangle.cpp b/C++/Rectangle/Rectangle.cpp new file mode 100644 index 0000000..537d44b --- /dev/null +++ b/C++/Rectangle/Rectangle.cpp @@ -0,0 +1,33 @@ +// Name: msglm +// Introduction: Rectangle Program +// Description: Program to compute and output the perimeter and area of a rectangle. + + +#include <iostream> +using namespace std; +int main() { + double length; + double width; + double area; + double perimeter; + cout << "Program to compute and output the perimeter and " + << "area of a rectangle." <<endl; + length = 6.0; + width = 4.0; + + perimeter = 2*(length+width); + + area = length*width; + cout << "length = " << length << endl; + cout << "width = " << width << endl; + cout << "perimeter = " << perimeter << endl; + cout << "area = " << area << endl; + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/RestaurantBill/RestaurantBill.cpp b/C++/RestaurantBill/RestaurantBill.cpp new file mode 100644 index 0000000..cdcc40d --- /dev/null +++ b/C++/RestaurantBill/RestaurantBill.cpp @@ -0,0 +1,55 @@ +// Name: msglm +// Introduction: Restaurant Bill Calculator +// Description: Calculates Food Bill Plus Tip and Tax. + + +#include <iostream> +using namespace std; +int main() { + + float foodBill; + char tipChoice; + + cout << "How much did your meal cost?: "; + cin >> foodBill; + + cout << "A. 10% - " << foodBill+(foodBill*0.10) << endl; + cout << "B. 15% - " << foodBill+(foodBill*0.15) << endl; + cout << "C. 20% - " << foodBill+(foodBill*0.20) << endl; + cout << "Select a Letter (case-sensitive) to pick your tipping amount: "; + cin >> tipChoice; + + switch(tipChoice){ + case 'A': + cout << "You Owe: \n" + << "Before Tax and Before Tip: " << foodBill << endl + << "After Tax and Before Tip: " << foodBill+(foodBill*0.095) << endl + << "After Tax and After Tip: " << foodBill+(foodBill*0.10) + (foodBill*0.095) << endl; + break; + case 'B': + cout << "You Owe: \n" + << "Before Tax and Before Tip: " << foodBill << endl + << "After Tax and Before Tip: " << foodBill+(foodBill*0.095) << endl + << "After Tax and After Tip: " << foodBill+(foodBill*0.15) + (foodBill*0.095) << endl; + break; + case 'C': + cout << "You Owe: \n" + << "Before Tax and Before Tip: " << foodBill << endl + << "After Tax and Before Tip: " << foodBill+(foodBill*0.095) << endl + << "After Tax and After Tip: " << foodBill+(foodBill*0.20) + (foodBill*0.095) << endl; + break; + default: + cout << "You didn't input the right letter. Remember, the letters were capitalized."; + return 1; + + } + return 0; + +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Sales Array Program/.~lock.Ch 8 Sales Array Program.docx# b/C++/Sales Array Program/.~lock.Ch 8 Sales Array Program.docx# new file mode 100644 index 0000000..73e693a --- /dev/null +++ b/C++/Sales Array Program/.~lock.Ch 8 Sales Array Program.docx# @@ -0,0 +1 @@ +,msglm,msglm-desktop,21.04.2022 00:33,file:///home/msglm/.config/libreoffice/4;
\ No newline at end of file diff --git a/C++/Sales Array Program/Ch 8 Sales Array Program.docx b/C++/Sales Array Program/Ch 8 Sales Array Program.docx Binary files differnew file mode 100644 index 0000000..bb0f1ca --- /dev/null +++ b/C++/Sales Array Program/Ch 8 Sales Array Program.docx diff --git a/C++/Sales Array Program/SalesArrayProgram.cpp b/C++/Sales Array Program/SalesArrayProgram.cpp new file mode 100644 index 0000000..6cd5e766 --- /dev/null +++ b/C++/Sales Array Program/SalesArrayProgram.cpp @@ -0,0 +1,94 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +#include <fstream> +using namespace std; + +// Named constants +const int ARRAY_SIZE = 7; + +//Func Decl +void printDailySales(double array[]); +double findTotal(double array[]); +double findMax(double array[]); +double findMin(double array[]); + +int main() { + + //Variable declaration + ifstream salesFile; + double readSales[ARRAY_SIZE]; + + //Open file + salesFile.open("daily_sales.txt"); + + //Program title and description for the user + cout << "Title: 7-day sales calculator" << endl << "Description: Takes in a file with the total income for a day segregated by a newline character. Output is a breakdown of each day's sales, the total for the week, the worst day, and the best day." << endl; + + //Reading input + for (int pos = 0; pos < ARRAY_SIZE; pos++) { + salesFile >> readSales[pos]; + } + + //Output + printDailySales(readSales); + cout << "Total: $" << findTotal(readSales) << endl; + cout << "Max: $" << findMax(readSales) << endl; + cout << "Min: $" << findMin(readSales) << endl; + return 0; +} + +//Prints the daily sales +void printDailySales(double array[]) { + cout << "Daily Sales Earned: \n"; + for (int pos = 0; pos < ARRAY_SIZE; pos++) { + cout << "Day #" << pos+1 << ": $" << array[pos] << endl; + } +} + +//Adds up total and returns it as a sum +double findTotal(double array[]){ + double sum = 0; + for (int pos = 0; pos < ARRAY_SIZE; pos++) { + sum = sum + array[pos]; + } + return sum; +} + +//Just a classic "find maximum" sorting algorithm +double findMax(double array[]){ + double max = array[0]; + for (int pos = 1; pos < ARRAY_SIZE; pos++) { + if (max < array[pos]) { + max = array[pos]; + } + } + return max; +} + +//classic find minimum sorting algorithm +double findMin(double array[]){ + double min = array[0]; + for (int pos = 1; pos < ARRAY_SIZE; pos++) { + if (min > array[pos]) { + min = array[pos]; + } + } + return min; +} + + + + + /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Sales Array Program/daily_sales.txt b/C++/Sales Array Program/daily_sales.txt new file mode 100644 index 0000000..9631979 --- /dev/null +++ b/C++/Sales Array Program/daily_sales.txt @@ -0,0 +1,7 @@ +352.12 +654.84 +123.45 +654.87 +548.26 +532.56 +456.13 diff --git a/C++/SortArrayExample1/SortArrayTemplate1.cpp b/C++/SortArrayExample1/SortArrayTemplate1.cpp new file mode 100644 index 0000000..2d13d65 --- /dev/null +++ b/C++/SortArrayExample1/SortArrayTemplate1.cpp @@ -0,0 +1,71 @@ +// Sort Array Example
+// Ch 8
+/*
+The selection sort algorithm rearranges a list by selecting an element in the list and moving it
+to its proper position. This algorithm finds the location of the smallest element in the unsorted
+portion of the list and moves it to the top of the unsorted portion of the list. The first time,
+we locate the smallest item in the entire list. The second time, we locate the smallest item in
+the list starting from the second element in the list, and so on.
+*/
+
+#include <iostream>
+
+using namespace std;
+
+// Constant declarations
+const int ARRAY_SIZE = 8;
+
+int main()
+{
+ // Variable declarations
+ int list[ARRAY_SIZE] = {16, 30, 24, 7, 62, 45, 5, 55};
+ int smallestIndex;
+ int temp;
+ // Program title and description
+ cout << "Selection Sort Example" << endl << endl;
+
+ // Output original unsorted array
+ for ( int i = 0; i < ARRAY_SIZE; i++) {
+ cout << list[i] << endl;
+ }
+ cout << endl;
+
+ // Outer FOR loop controls current location of the smallest index
+ // notice that you iterate to one LESS than the array size
+
+ for ( int i = 0; i < ARRAY_SIZE - 1; i++ ) {
+
+
+
+
+ smallestIndex = i; // Find the location of the smallest element
+ // sets smallest value to first item in array
+ // Inner FOR loop iterates through the array to compare two values
+
+ for (int currentLocation = i+1; currentLocation < ARRAY_SIZE; currentLocation++) {
+ // ...if the current value is less than the current smallest value...
+ if (list[currentLocation] < list[smallestIndex]) {
+ // ...then set the smallest value to the current value
+ smallestIndex = currentLocation;
+ }
+ }
+
+ // Move the smallest element to the beginning of the unsorted list - note 3 variables needed
+
+ temp = list[smallestIndex];
+ list[smallestIndex] = list[i];
+ list[i] = temp;
+ }
+
+ // Output sorted array
+
+ cout << "Sorted Array: " << endl;
+ for ( int i = 0; i < ARRAY_SIZE; i++) {
+ cout << list[i] << endl;
+ }
+ cout << endl;
+
+
+
+ return 0;
+}
diff --git a/C++/SortArrayExample2/SortArrayTemplate2.cpp b/C++/SortArrayExample2/SortArrayTemplate2.cpp new file mode 100644 index 0000000..38ce9f9 --- /dev/null +++ b/C++/SortArrayExample2/SortArrayTemplate2.cpp @@ -0,0 +1,76 @@ +// Sort Array Example
+// Ch 8
+/*
+ The selection sort algorithm rearranges a list by selecting an element in the list and moving it
+ to its proper position. This algorithm finds the location of the smallest element in the unsorted
+ portion of the list and moves it to the top of the unsorted portion of the list. The first time,
+ we locate the smallest item in the entire list. The second time, we locate the smallest item in
+ the list starting from the second element in the list, and so on.
+ */
+
+#include <iostream>
+
+using namespace std;
+
+// Constant declarations
+const int ARRAY_SIZE = 8;
+
+void sortArray(int list[]) {
+ // Variable declarations
+ int smallestIndex;
+ int temp;
+ // Outer FOR loop controls current location of the smallest index
+ // notice that you iterate to one LESS than the array size
+
+ for ( int i = 0; i < ARRAY_SIZE - 1; i++ ) {
+
+
+
+
+ smallestIndex = i; // Find the location of the smallest element
+ // sets smallest value to first item in array
+ // Inner FOR loop iterates through the array to compare two values
+
+ for (int currentLocation = i+1; currentLocation < ARRAY_SIZE; currentLocation++) {
+ // ...if the current value is less than the current smallest value...
+ if (list[currentLocation] < list[smallestIndex]) {
+ // ...then set the smallest value to the current value
+ smallestIndex = currentLocation;
+ }
+ }
+
+ // Move the smallest element to the beginning of the unsorted list - note 3 variables needed
+
+ temp = list[smallestIndex];
+ list[smallestIndex] = list[i];
+ list[i] = temp;
+ }
+
+ // Output sorted array
+
+ cout << "Sorted Array: " << endl;
+ for ( int i = 0; i < ARRAY_SIZE; i++) {
+ cout << list[i] << endl;
+ }
+ cout << endl;
+
+}
+
+int main()
+{
+ //var dec
+ int list[ARRAY_SIZE] = {16, 30, 24, 7, 62, 45, 5, 55};
+ // Program title and description
+ cout << "Selection Sort Example" << endl << endl;
+
+ // Output original unsorted array
+ for ( int i = 0; i < ARRAY_SIZE; i++) {
+ cout << list[i] << endl;
+ }
+ cout << endl;
+
+ sortArray(list);
+
+
+ return 0;
+}
diff --git a/C++/Sorting Data/SortingData.cpp b/C++/Sorting Data/SortingData.cpp new file mode 100644 index 0000000..252c4f5 --- /dev/null +++ b/C++/Sorting Data/SortingData.cpp @@ -0,0 +1,138 @@ +// Name: msglm +// Date: Sep 8th, 2022 +// Program Name: Sorting Data +// Description: Given a file of first and last names, sort them. + +#include <iostream> +#include <fstream> +#include <string> +using namespace std; + +//Constants +const int ARR_SIZE = 100; + +//This function takes reads a file from a +//location and turns it into a passed array +//The array and file are both passed by reference. +// +// +//Only if Stroustrup spent less time adding OOP to C +//and just made arrays and functions play nice +int read(string location, ifstream & fileVar, string (&array)[ARR_SIZE]) { + int epoch = 0; + fileVar.open(location); + + if (!fileVar) { + cout << "ERROR! " << location << " failed to open!"; + exit(1); //I am going to take the risky route and not use a return here + //Here is to hoping that Microsoft's MSVC is compliant with + //the standard C++ definition of 'exit' + // + //I have had troubles before since I use GCC + //MSVC is almost never in sync with other compilers + } + + while (getline(fileVar, array[epoch]) && fileVar.peek() != EOF) { + epoch++; + } + //Since this function has the true size of the array already, + //we can just return it for other functions use + return epoch; +} + +//Very bog standard bubble sort implementation +// +//This sorts an array that's passed by reference +// +//On another note, someone needs to make a better +//language for teaching algorithms +//they're ugly in code and horrendus in math notation +void sort(string (&array)[ARR_SIZE], int size) { + + string temp; + string * sortedArray = new string[ARR_SIZE]; + + //For every single position in an array + // + //This is what dictates how many "passes" on the array is done + for (int pos = 0; pos < size; pos++) { + //note a counter called compare position + //this counter, if it less than the size minus the current position in the array, then the counter will be added to + // + //This is where the actual comparision is done + for (int comparePos = 0; comparePos < size - pos; comparePos++) { + //so long as the compared position is less than the size of the array subtracted by the position + //check if the current position being compared is greater than the next position + //assign the currently compared position to temp, + //turn the current position into the next position + //then turn the next position in to the temp position + //this swaps array[comparePos] and array[comparePos + 1] + // + //This is where the actual swapping is done + if(array[comparePos] > array[comparePos + 1]) { + temp = array[comparePos]; + array[comparePos] = array[comparePos + 1]; + array[comparePos + 1] = temp; + } + } + } +} + + +int main() { + //Variable declaration + int choice; + string fname[ARR_SIZE]; + string lname[ARR_SIZE]; + string cname[ARR_SIZE]; + ifstream fnameFile; + ifstream lnameFile; + int fsize; + int lsize; + + //No input validation here since the rubric doesn't call for it. + cout << "1. Sort by First Name\n"; + cout << "2. Sort by Last Name\n"; + cout << "Enter Selection: "; + cin >> choice; + + //Read the files into an array and output the size of said array to a variable + fsize = read("fname.txt", fnameFile, fname); + lsize = read("lname.txt", lnameFile, lname); + + //Some cheap error checking since we have fsize and lsize + if (!fsize==lsize) { + cout << "ERROR: your first name and last name files do now have parity!"; + exit(1); + } + + //menu choices now matter + // + //I opt to go ahead and combine the names whe comparing since it's just easier to deal with + //Perhaps it would have been more efficent to do this in the "read" function, but it's a little late now + if (choice == 1) { + for(int epoch = 0; epoch < fsize+1; epoch++) { + cname[epoch] = fname[epoch] + " " + lname[epoch]; + } + sort(cname, fsize); + for(int epoch = 0; epoch < fsize+1; epoch++) { + cout << cname[epoch] << endl; + } + } else { + for(int epoch = 0; epoch < fsize+1; epoch++) { + cname[epoch] = lname[epoch] + " " + fname[epoch]; + } + sort(cname, fsize); + for(int epoch = 0; epoch < fsize+1; epoch++) { + cout << cname[epoch] << endl; + } + } +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Sorting Data/fname.txt b/C++/Sorting Data/fname.txt new file mode 100644 index 0000000..a72e2e2 --- /dev/null +++ b/C++/Sorting Data/fname.txt @@ -0,0 +1,100 @@ +James +Robert +John +Michae +David +Willia59 +Richar +Joseph +Thomas +Charle +Christ +Daniel +Matthe +Anthon +Mark +Donald +Steven +Paul +Andrew +Joshua +Kennet +Kevin +Brian +George +Timoth +Ronald +Edward +Jason +Jeffre +Ryan +Jacob +Gary +Nichol +Eric +Jonath +Stephe +Larry +Justin +Scott +Brando +Benjam +Samuel +Gregor +Alexan +Frank +Patric +Raymon +Jack +Dennis +Jerry +Tyler +Aaron +Jose +Adam +Nathan +Henry +Dougla +Zachar +Peter +Kyle +Ethan +Walter +Noah +Jeremy +Christ +Keith +Roger +Terry +Gerald +Harold +Sean +Austin +Carl +Arthur +Lawren +Dylan +Jesse +Jordan +Bryan +Billy +Joe +Bruce +Gabrie +Logan +Albert +Willie +Alan +Juan +Wayne +Elijah +Randy +Roy +Vincen +Ralph +Eugene +Russel +Bobby +Mason +Philip +Louis diff --git a/C++/Sorting Data/lname.txt b/C++/Sorting Data/lname.txt new file mode 100644 index 0000000..0767c24 --- /dev/null +++ b/C++/Sorting Data/lname.txt @@ -0,0 +1,100 @@ +Mary +Patricia +Jennifer +1 Linda +Elizabeth +0 Barbar +5 Susan +Jessica +Sarah 98 +5 Karen +4,437 Li +Nancy 96 +9 Betty +3 Margar334 +Sandra +Ashley +Kimberly +Emily 83 +Donna 82 +Michelle +6 Carol +Amanda +Dorothy +Melissa +0 Debora223 +Stephanie +Rebecca +Sharon + Laura +Cynthia +Kathleen +Amy 68 + Angela +Shirley + Anna + Brenda +Pamela +Emma 59 +Nicole + Helen + Samant626 +Katherine + Christ861 + Debra +Rachel + Caroly223 + Janet +Catherine +Maria 52 +Heather +Diane 51 +Ruth 51 +Julie 50 +Olivia +Joyce 49 +Virginia + Victor302 + Kelly +Lauren +Christina +Joan 46 +Evelyn +Judith +Megan 43 + Andrea +Cheryl +Hannah +Jacquelin410 +Martha +Gloria +Teresa +Ann 40 +Sara 40 +Madison + France109 +Kathryn +Janice +Jean 39 +Abigail +Alice 38 +Julia 37 +Judy 37 + Sophia +Grace 37 +Denise +Amber 37 +Doris 37 +Marilyn +Danielle +Beverly +Isabella +Theresa + Diana +Natalie +Brittany + Charlo576 +Marie 34 +Kayla 34 +Alexis + Lori diff --git a/C++/String Processing/String Processing.cpp b/C++/String Processing/String Processing.cpp new file mode 100644 index 0000000..4e35a80 --- /dev/null +++ b/C++/String Processing/String Processing.cpp @@ -0,0 +1,88 @@ +// Name: msglm +// Date: September 2nd, 2022 +// Program Name: HTML Parser +// Description: removes HTML from inputted string. + +//any code with /// is merely commented out debug code. + +#include <iostream> +#include <string> +using namespace std; + +//Takes input from user +string in() { + //I personally dislike C++'s streaming capabilities + //They aren't like Bash pipes and that's a blunder + //I wish I could do getline(cin, '\n') >> return; or getline(cin, '\n') | return; + string userInput; + getline(cin, userInput, '\n'); + return userInput; +} + +//processes the input data +//this is the only process in the entire program thus the +//term "proc" is accurate. We don't process data in in() or out(). +// +//How this works is it takes a string, and goes through it char-by-char, +//once it hits a < it notes its position and marks a flag +//then it does the same for the next >, marking its pos and marking a flag. +//once the < and > flags have been raised, the total +//length of the tag that was detected is calculated, and then the string itself is sliced +// +//from there a small bit of clean up is necessary, restarting +//the position counter to count from the start +//and resetting the flags. + +string proc(string userInput) { + bool insideATag = false; + bool metTheTagTerminator = false; + int beginBracketPos; + int endBracketPos; + int tagLength; + + for (int charPos=0; charPos<=userInput.length();charPos++) { + if (insideATag && metTheTagTerminator) { + ///cout << "tag found at " << beginBracketPos << " and " << endBracketPos << endl; + ///cout << "Full String:" << userInput << endl; + + //Tag length only exists because std::String.erase() doesn't accept + //a range, but rather a start and the chars to go. it's accursed. + tagLength = (endBracketPos-beginBracketPos)+1; + userInput.erase(beginBracketPos, tagLength); + charPos = 0; + insideATag = false; + metTheTagTerminator = false; + } + if (userInput[charPos] == '<') { + insideATag = true; + beginBracketPos = charPos; + } + + if (userInput[charPos] == '>' && insideATag) { + metTheTagTerminator = true; + endBracketPos = charPos; + } + + ///cout << "char pos: " << charPos << ";" << "char: " << userInput[charPos] << endl; + + } + return userInput; +} + +//Outs to screen +void out(string processedString) { + cout << "sanitized: " << processedString << endl; +} + +int main() { + //LISP called, they want their () back. + out(proc(in())); +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/StringExample/StringExample.cpp b/C++/StringExample/StringExample.cpp new file mode 100644 index 0000000..685bea1 --- /dev/null +++ b/C++/StringExample/StringExample.cpp @@ -0,0 +1,57 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + string fname; + string lname; + string wholename; + + //Program title and description for the user + // User input + cout << "enter first name: "; + cin >> fname; + cout << "enter last name: "; + cin >> lname; + wholename = fname + " " + lname; + cout << wholename; + + cout << "Length of fname: " << fname.length() << endl; + cout << "Length of lname: " << lname.length() << endl; + cout << "Length of wholename: " << wholename.length() << endl; + + cout << "Index/position of position 'u': " << wholename.find('e') << endl; + + cout << "Index/position of every character in the string: " << endl; + for( int i = 0; i < wholename.length(); i++ ) { + cout << i << " " << wholename[i] << endl; + } + + cout << "wholename from position 4 to 8 = " << wholename.substr(4,5) << endl; + + fname.clear(); + cout << "fname: " << fname << endl; + + cout << "Is first name empty?: " << fname.empty() << endl; + cout << "Is last name empty?: " << lname.empty() << endl; + + return 0; +} + + /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Structs/INSTRUCTIONS b/C++/Structs/INSTRUCTIONS new file mode 100644 index 0000000..29cba01 --- /dev/null +++ b/C++/Structs/INSTRUCTIONS @@ -0,0 +1,44 @@ + +Project 5: Structs +Due Friday, September 30th before midnight +100 Points +Create a program that uses a struct with array or vector variables that do the following: + + Get the below information: + First Name + Last Name + Job Title + Employee Number + Hours Worked + Hourly Wage + Number of Deductions Claimed + Determine if the employee is entitled to overtime (see videos for explanation of overtime) + Determine tax rate based on deductions claimed (see videos for explanation of deductions) + Determine gross pay, taxes withheld, and netpay + Output all information to the screen, but only output overtime if the employee has it + +Assignment Notes: + + You may get the data from the user via the keyboard or use an input file to read in an unknown number of records into your program. Your choice. + Also, you may also use vectors instead of arrays in your struct. Again, your choice + You should not ask the user for their tax rate, gross pay, net pay, or taxes withheld. Your program should do this for the user. + I expect to see functions for steps 1 - 5 above, however, you may combine functions if you wish to save space in your program + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +If you are stuck, I will help you! +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If your program does not use functions, you will lose up to 50 points (depending on the number of functions missing) + If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none) + If your program is late (within 48 hours of the due date), you will lose 25 points + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If your program uses global variables, I will deduct 5 points for each used + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + diff --git a/C++/Structs/Structs.cpp b/C++/Structs/Structs.cpp new file mode 100644 index 0000000..e556264 --- /dev/null +++ b/C++/Structs/Structs.cpp @@ -0,0 +1,112 @@ +// Name: msglm +// Date: Sep 29th, 2022 +// Program Name: Structs +// Description: Given an input file, output gross pay, taxes, net pay, and other financial information. + +#include <iostream> +#include <fstream> +#include <string> +using namespace std; + + +//Structures +struct Employee { + string fname; + string lname; + string job; + int employeeNum; + float hrsWorked; + float wage; + int deductions; +}; + +//Takes in the initalized file and turns it into a vector of arrays of strings +Employee serializeIntoStruct(ifstream & fileVar) { + Employee temp; + getline(fileVar, temp.fname); + getline(fileVar, temp.lname); + getline(fileVar, temp.job); + fileVar >> temp.employeeNum; + fileVar >> temp.hrsWorked; + fileVar >> temp.wage; + fileVar >> temp.deductions; + return temp; +} + +//given hours work, return the amount of overtime. +float overtime(Employee employee) { + if (employee.hrsWorked > 40) { + float oTHours = employee.hrsWorked - 40; + if (oTHours > 0) { + return oTHours; + } + } + return 0; +} + +//Given the deductions, return the taxrate +float taxRate(Employee employee) { + if (employee.deductions <= 0) { + return 0.30; + } else if (0.30-(employee.deductions*0.05) <= 0.10) { + return 0.10; + } else { + return 0.30-(employee.deductions*0.05); + } +} + +//Intake the employee in question, his overtime, and then the tax rate he's subject to +// +void outputGrossTaxPay(Employee employee, float overtime, float taxRate) { + + float overtimePay = overtime*(employee.wage*1.5); + float normalPay; + if (overtime > 0) { + normalPay = employee.wage*40; + } else { + normalPay = employee.wage*employee.hrsWorked; + } + float grossPay = overtimePay + normalPay; + float withheld = taxRate*grossPay; + cout << "Employee Name: " << employee.fname << " " << employee.lname << endl; + cout << "Job Title: " << employee.job << endl; + cout << "Employee Number: " << employee.employeeNum << endl; + cout << "Hours Worked: " << employee.hrsWorked << endl; + cout << "Hourly Wage: $" << employee.wage << endl; + cout << "Deductions Claimed: " << employee.deductions << endl; + if (overtime > 0) { + cout << "Overtime Hours: " << overtime << endl; + cout << "Overtime Pay: $" << overtimePay << endl; + } + cout << "Gross Pay: $" << grossPay << endl; + cout << "Tax Withheld: $" << withheld << endl; + cout << "Net Pay: $" << grossPay-withheld << endl; + + + +} + +int main() { + //Variable declaration + ifstream fileVar; + fileVar.open("input.txt"); + + if (!fileVar) { + cout << "ERROR! input.txt failed to open!"; + exit(1); + } + + Employee readValues = serializeIntoStruct(fileVar); + outputGrossTaxPay(readValues, overtime(readValues), taxRate(readValues)); + + + +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Structs/input.txt b/C++/Structs/input.txt new file mode 100644 index 0000000..91705a5 --- /dev/null +++ b/C++/Structs/input.txt @@ -0,0 +1,7 @@ +Anonymous +Anonymous +IT Technician +2450 +40 +14.50 +2 diff --git a/C++/StudentScoreWithLoop/studentScore.txt b/C++/StudentScoreWithLoop/studentScore.txt new file mode 100644 index 0000000..647019e --- /dev/null +++ b/C++/StudentScoreWithLoop/studentScore.txt @@ -0,0 +1,6 @@ +Indira Dutta +67.2 58.54 98.3 +Anonymous Anonymous +30.4 90.4 75.4 +Jarvis Henderson +40.3 24.5 90.4 diff --git a/C++/StudentScoreWithLoop/studentScoreWithLoop.cpp b/C++/StudentScoreWithLoop/studentScoreWithLoop.cpp new file mode 100644 index 0000000..1f59c4e --- /dev/null +++ b/C++/StudentScoreWithLoop/studentScoreWithLoop.cpp @@ -0,0 +1,63 @@ +// Name: msglm +// Date: +// Introduction: +// Description: + + +#include <iostream> +#include <string> +#include <fstream> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + ifstream inFile; + ofstream outFile; + string name; + double test1, test2, test3; + double average; + int iterator = 0; + + //Program title and description for the user + //cout << "Title: " << endl << "Description: " << endl; + + // User input + // Dealing with input/output files + inFile.open("studentScore.txt"); + outFile.open("testavg.out"); + + //Output header information + outFile << fixed << showpoint << setprecision(2); + outFile << setw(17) << left << "Name: " << setw(8) << "Test 1" << setw(8) << "Test 2" << setw(8) << "Test 3" << setw(8) << "Average" << endl; + + while (iterator < 3){ + //Reading from the file + getline(inFile, name); + inFile >> test1 >> test2 >> test3; + inFile.ignore(); + + // Calculations + average = (test1+test2+test3)/3.0; + + // Output to the screen + outFile << setw(17) << left << name << setw(8) << test1 << setw(8) << test2 << setw(8) << test3 << setw(8) << average << endl; + iterator++; + } + inFile.close(); + outFile.close(); + + cout << "Please Check testavg.out file" << endl; + + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/StudentScoreWithLoop/testavg.out b/C++/StudentScoreWithLoop/testavg.out new file mode 100644 index 0000000..8624224 --- /dev/null +++ b/C++/StudentScoreWithLoop/testavg.out @@ -0,0 +1,4 @@ +Name: Test 1 Test 2 Test 3 Average +Indira Dutta 67.20 58.54 98.30 74.68 +Anonymous Anonymous 30.40 90.40 75.40 65.40 +Jarvis Henderson 40.30 24.50 90.40 51.73 diff --git a/C++/SumOfIntegers/SumOfIntegers.cpp b/C++/SumOfIntegers/SumOfIntegers.cpp new file mode 100644 index 0000000..b917243 --- /dev/null +++ b/C++/SumOfIntegers/SumOfIntegers.cpp @@ -0,0 +1,79 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + int numOfNums; + int num; + int sum; + int iterator; + char choice; + //Program title and description for the user + cout << "Title: Sum of Integers" << endl << "Description: Takes user input and provides of sum of said input. only 2 to 10 numbers and the number must be greater than 0 but less than 1000" << endl; + + do { + + // User input + do + { + cout << "How many integers do you wish to add?: \n"; + cin >> numOfNums; + + if (!cin) { + cout << "That is not an integer. Program will terminate.\n"; + return 1; + } + + if (numOfNums < 2) { + cout << "Addition requires at least two values" << endl; + } + + if (numOfNums > 10) { + cout << "This program can only add up to 10 values" << endl; + } + } while(numOfNums < 2 || numOfNums > 10 || !cin); + + // Calculations + for(iterator=1; iterator <= numOfNums; iterator++) { + do { + cout << "Enter an integer (in a range from 0 to 1000): \n"; + cin >> num; + if (!cin) { + cout << "That is not an integer. Program will terminate.\n"; + return 1; + } + if(num<0 || num>1000){ + cout << "Invalid number. Only numbers in the range of 0 to 1000 are accepted\n\n"; + } + + }while(num < 0 || num > 1000); + sum = sum + num; + + + // Output to the screen + cout << "\nThe sumnation of " << numOfNums << " integer values you inputted is: " << sum << endl; + + cout << "Do you want to run the program again? (Y/N)" << endl; + cin >> choice; + cout << endl << endl; + } + } while(choice == 'Y' || choice == 'y'); + cout << "Terminating"; +} +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/SumOfRange/Sum of Range program instruction.docx b/C++/SumOfRange/Sum of Range program instruction.docx Binary files differnew file mode 100644 index 0000000..abc6187 --- /dev/null +++ b/C++/SumOfRange/Sum of Range program instruction.docx diff --git a/C++/SumOfRange/SumOfRange.cpp b/C++/SumOfRange/SumOfRange.cpp new file mode 100644 index 0000000..9203606 --- /dev/null +++ b/C++/SumOfRange/SumOfRange.cpp @@ -0,0 +1,87 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + int start; + int end; + int num; + int sum; + int iterator; + char choice; + //Program title and description for the user + cout << "Title: Sum of Range" << endl << "Description: Takes two inputs, a start and an end. This program adds all numbers between the start in the end (inclusive) and prints the results." << endl; + + do { + + // User input + do + { + cout << "What is your first integer? \n"; + cin >> start; + cout << "What is your last integer? \n"; + cin >> end; + + if (!cin) { + cout << "That is not an integer. Program will terminate.\n"; + return 1; + } + + + if (start < 0 || end < 0) { + cout << "Values cannot be negative" << endl; + cin.clear(); + cin.ignore(100, '\n'); + cout << "Please try again\n"; + } + + if (start > 50 || end > 50) { + cout << "You cannot numbers greater than 50" << endl; + cin.clear(); + cin.ignore(100, '\n'); + cout << "Please try again\n"; + } + + if (start >= end) { + cout << "The starting number must be less than the ending number" << endl; + cin.clear(); + cin.ignore(100, '\n'); + cout << "Please try again\n"; + } + + } while(start < 0 || end < 0 || start > 50 || end > 50 || !cin || start >= end); + + // Calculations + sum = 0; + + for(start; start <= end; start++) { + sum = start + sum; + } + + + // Output to the screen + cout << "\nThe sum is: " << sum << endl; + + cout << "Do you want to run the program again? (Y/N)" << endl; + cin >> choice; + cout << endl << endl; + } while(choice == 'Y' || choice == 'y'); + cout << "Terminating"; +} +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/SummerJob/Summer Job Program - planning sheet.docx b/C++/SummerJob/Summer Job Program - planning sheet.docx Binary files differnew file mode 100644 index 0000000..06ec803 --- /dev/null +++ b/C++/SummerJob/Summer Job Program - planning sheet.docx diff --git a/C++/SummerJob/Summer Job Program - planning sheet.odt b/C++/SummerJob/Summer Job Program - planning sheet.odt Binary files differnew file mode 100644 index 0000000..787eb0d --- /dev/null +++ b/C++/SummerJob/Summer Job Program - planning sheet.odt diff --git a/C++/SummerJob/Summer Job Program - planning sheet.pdf b/C++/SummerJob/Summer Job Program - planning sheet.pdf Binary files differnew file mode 100644 index 0000000..13ce8b6 --- /dev/null +++ b/C++/SummerJob/Summer Job Program - planning sheet.pdf diff --git a/C++/SummerJob/SummerJob.cpp b/C++/SummerJob/SummerJob.cpp new file mode 100644 index 0000000..e8459d5 --- /dev/null +++ b/C++/SummerJob/SummerJob.cpp @@ -0,0 +1,56 @@ +// Name: msglm +// Introduction: Summer Job Wage Calculator +// Description: a program that calculates a weekly wage, based on an hourly payrate and how many hours were worked; then calculates amounts for various categories of spending, along with how much of the weekly pay is leftover. + + +#include <iostream> +#include <string> +using namespace std; +int main() { + + string name; + float payRate; + float hours; + float WeeklyWage; + + //Accept input via cin for hourly wages, pay rate, and name + + cout << "What is your name?: "; + getline(cin, name); + + cout << "What is your payrate (per hour)?: "; + cin >> payRate; + + cout << "How many hours have you worked?: "; + cin >> hours; + + //Multiply the input to create the WeeklyWage variable + //Possible memory optimization here by removing the WeeklyWage variable, but at the cost of CPU cycles. + WeeklyWage = hours*payRate; + + //Print the User’s name + cout << "Name: " << name << endl; + + + //Print the Wage + cout << "Wages: " << WeeklyWage << "$" << endl; + + //have a bunch of cout statements that do all the math + // I.e : cout << “Tax: “ << WeeklyWage*0.15 + + cout << "Tax: $" << WeeklyWage*0.15 << endl; + cout << "Shopping: $" << WeeklyWage*0.20 << endl; + cout << "Entertainment: $" << WeeklyWage*0.10 << endl; + cout << "Savings: $" << WeeklyWage*0.25 << endl; + cout << "Remainder: $" << WeeklyWage*0.30 << endl; + + return 0; + +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/TakeOrderV1/.~lock.Take Order Program Instructions (v1).docx# b/C++/TakeOrderV1/.~lock.Take Order Program Instructions (v1).docx# new file mode 100644 index 0000000..708010e --- /dev/null +++ b/C++/TakeOrderV1/.~lock.Take Order Program Instructions (v1).docx# @@ -0,0 +1 @@ +,msglm,msglm-laptop,04.04.2022 12:07,file:///home/msglm/.config/libreoffice/4;
\ No newline at end of file diff --git a/C++/TakeOrderV1/Take Order Program Instructions (v1).docx b/C++/TakeOrderV1/Take Order Program Instructions (v1).docx Binary files differnew file mode 100644 index 0000000..28fa77f --- /dev/null +++ b/C++/TakeOrderV1/Take Order Program Instructions (v1).docx diff --git a/C++/TakeOrderV1/TakeOrderV1.cpp b/C++/TakeOrderV1/TakeOrderV1.cpp new file mode 100644 index 0000000..23fb08a --- /dev/null +++ b/C++/TakeOrderV1/TakeOrderV1.cpp @@ -0,0 +1,101 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + int items; + int menuNum; + char size; + string curItem; + string curSize; + float price; + //Program title and description for the user + cout << "Welcome to Anonymous's Dine and Shine" << endl << endl; + + //User Information + cout << "Menu: \n"; + cout << "1 - Burger\n"; + cout << "2 - Fries\n"; + cout << "3 - Drink\n"; + + cout << "Sizes: \n"; + cout << "S - Small $4.25\n"; + cout << "M - Medium $5.50\n"; + cout << "L - Large $7.50\n"; + + // User input + cout << "How many items would you like to buy?: "; + cin >> items; + + for (int itemNum = 1; itemNum <= items; itemNum++) { + cout << "Order Number " << itemNum << endl; + + //User input + cout << "Enter the menu number for your item: \n"; + cin >> menuNum; + cout << "Enter the size of that item: \n"; + cin >> size; + + //Price and String Output figuring + switch(menuNum) { + case 1: + curItem = "Burger"; + break; + case 2: + curItem = "Fries"; + break; + case 3: + curItem = "Drink"; + break; + default: + cout << "Invalid Entry. Terminating"; + return 1; + } + + switch(size) { + case 's': + case 'S': + curSize = "Small"; + price = price + 4.25; + break; + case 'm': + case 'M': + curSize = "Medium"; + price = price + 5.50; + break; + case 'l': + case 'L': + curSize = "Large"; + price = price + 7.50; + break; + default: + cout << "Invalid Entry. Terminating"; + return 1; + } + + cout << "For Order " << itemNum << " you ordered a " << curSize << " " << curItem << endl; + + } + //Output Prices + cout << "Sub Total: " << setprecision(3) << price << endl; + cout << "Tax: " << setprecision(3) << price*0.10 << endl; + cout << "Total: " << setprecision(3) << price+(price*0.10) << endl; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/TakeOrderV2/Take Order Program Instructions (v2).docx b/C++/TakeOrderV2/Take Order Program Instructions (v2).docx Binary files differnew file mode 100644 index 0000000..29e32de --- /dev/null +++ b/C++/TakeOrderV2/Take Order Program Instructions (v2).docx diff --git a/C++/TakeOrderV2/TakeOrderV2.cpp b/C++/TakeOrderV2/TakeOrderV2.cpp new file mode 100644 index 0000000..8aafdc2 --- /dev/null +++ b/C++/TakeOrderV2/TakeOrderV2.cpp @@ -0,0 +1,203 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + + +/* + * Not using header files for this project + * So there's no reason to define below main + */ + +/* cleans up input problems relating to invalid input + * + * This is of high utility + * I might use this function in other projects + * + * I swear I will end up writing my own input/output funcs for C++ + * I cannot stand input validation with cin and cout + */ +void fixCin() { + cin.clear(); + cin.ignore(1000, '\n'); + cout << "===ERROR: Invalid Input!===" << endl; +} + + +/* + * Main has incredibly low amounts of code repitition, thus + * splitting it up into functions would be fragmented and unmaintainable code + * + * technically, if I wished to follow the requirements to the letter, I could write something like: + * + * void TakeOrder() { + * all actual processing of code + * ... + * } + * + * int main() { + * takeOrder() + * } + * + * + * for an incredibly low SLOC count in a function + * named main, but that'd serve almost no purpose at all + * and would just pollute this codebase with an unneeded function. + * + * An explanation like this should, in spirit, achieve the purpose of the "low SLOC in main" requirement: + * showing understanding of functions and displaying an ability to use them. + */ +int main() { + + //Variable declaration + bool wrongOrder = false; + char satisfied; + char size = 's'; + float price; + int items = 0; + int menuNum = 1; + string curItem; + string curSize; + + //Program title and description for the user + cout << "Welcome to Anonymous's Dine and Shine" << endl << endl; + + //User Information + cout << "Menu: \n"; + cout << "1 - Burger\n"; + cout << "2 - Fries\n"; + cout << "3 - Drink\n"; + + cout << "Sizes: \n"; + cout << "S - Small $4.25\n"; + cout << "M - Medium $5.50\n"; + cout << "L - Large $7.50\n"; + + // User input + + //Order number handling + do { + if ( !cin ) { + fixCin(); + } + + cout << "How many items would you like to buy?: "; + cin >> items; + } while ( !cin ); + + //For the amount of items requested, offer the user the shop menu + for (int itemNum = 1; itemNum <= items; itemNum++) { + do { + //Just so the user knows what order the program is writing about + cout << "Order Number " << itemNum << endl; + + + //User input + //Menu item handling + do { + + if ( !cin || menuNum < 1 || menuNum > 3 ) { + fixCin(); + } + + cout << "Enter the menu number for your item: \n"; + cin >> menuNum; + + } while ( !cin || menuNum < 1 || menuNum > 3 ); + + + //Size of item handling + do { + + if ( !cin || !(size == 's' || size == 'S' || size == 'm' || size == 'M' || size == 'l' || size == 'L') ) { //This line is gross, there's probably a better way to do this + fixCin(); + } + + cout << "Enter the size of that item: \n"; + cin >> size; + + } while ( !cin || !(size == 's' || size == 'S' || size == 'm' || size == 'M' || size == 'l' || size == 'L') ); + + //Price and String Output figuring + + /* + * In a big project, string comparision like + * shown here would not be done at all + * instead, some form of ENUM could be used instead + * + * The only reason I went with string comparision was for + * easy debugging when developing. I would never allow + * code like this to ever touch any production branches. + */ + + + switch(menuNum) { + case 1: + curItem = "Burger"; + break; + case 2: + curItem = "Fries"; + break; + case 3: + curItem = "Drink"; + break; + default: + cout << "Invalid Entry. Terminating"; + return 1; + } + + switch(size) { + case 's': + case 'S': + curSize = "Small"; + price = price + 4.25; + break; + case 'm': + case 'M': + curSize = "Medium"; + price = price + 5.50; + break; + case 'l': + case 'L': + curSize = "Large"; + price = price + 7.50; + break; + default: + cout << "Invalid Entry. Terminating"; + return 1; + } + cout << "For Order " << itemNum << " you ordered a " << curSize << " " << curItem << endl; + cout << "Are you satisfied with this order? (Y/n): "; + cin >> satisfied; + + if (satisfied == 'n' || satisfied == 'N') { + wrongOrder = true; + } else { + wrongOrder = false; + } + + } while(wrongOrder); + + wrongOrder = false; + + } + //Output Prices + cout << "Sub Total: $" << setprecision(3) << price << endl; + cout << "Tax: $" << setprecision(3) << price*0.10 << endl; + cout << "Total: $" << setprecision(3) << price+(price*0.10) << endl; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/TakeOrderV2/instructions.txt b/C++/TakeOrderV2/instructions.txt new file mode 100644 index 0000000..6fe1592 --- /dev/null +++ b/C++/TakeOrderV2/instructions.txt @@ -0,0 +1,7 @@ +The focus of this version/iteration is error checking. All user input should be checked to ensure it is valid input! If they enter an incorrect order, your program should allow them to redo the order. So, TEST, TEST, TEST!! +When this iteration is graded, here is what I will be looking for: + + That all invalid input is caught, the user is told, and allowed to redo input + You have utilized function when needed (at least once) + Subtotal, tax, and total are still calculating correctly + Anything that stands out to me as inefficient or incorrect diff --git a/C++/Test1/BookStoreReceipt.cpp b/C++/Test1/BookStoreReceipt.cpp new file mode 100644 index 0000000..ef6d903 --- /dev/null +++ b/C++/Test1/BookStoreReceipt.cpp @@ -0,0 +1,58 @@ +// Name: msglm +// Date: Feb-14-2022 +// Program Name: Bookstore Receipt Program +// Description: a program that will calculate the price (plus tax) of a book store recieipt + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants +double const TAX = 0.0964; +double const BOOKPRICE = 5.00; +double const COPYPRICE = 1.10; +double const PENPRICE = 1.15; +double const FOLDERPRICE = 1.00; + +int main() { + + //Variable declaration + int book, copy, pen, folder; + double total; + + //Program title and description for the user + cout << "Title: Bookstore Receipt Program" << endl << "Description: a program that will calculate the price (plus tax) of a book store recieipt" << endl; + + // User input + cout << "How many books would you like?\n"; + cin >> book; + cout << "How many packs of copy paper would you like?\n"; + cin >> copy; + cout << "How many packs of pens would you like?\n"; + cin >> pen; + cout << "How many folder packs would you like?\n"; + cin >> folder; + // Calculations for the total price (Without Tax) + total = (book*BOOKPRICE + copy*COPYPRICE + pen*PENPRICE + folder*FOLDERPRICE); + // Output to the screen + cout << "Receipt: \n"; + cout << "Books: $" << book*BOOKPRICE << endl; + cout << "Packs of Copy Paper: $" << copy*COPYPRICE << endl; + cout << "Packs of Pens: $" << pen*PENPRICE << endl; + cout << "Packs of Folders: $" << folder*FOLDERPRICE << endl; + cout << "Total (Without Tax): $" << total << endl; + cout << "Total Tax: $" << total*TAX << endl; + cout << "Total (With Tax): $" << total+(total*TAX) << endl; + + + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Test1/ErrorCorrection.cpp b/C++/Test1/ErrorCorrection.cpp new file mode 100644 index 0000000..2a84c23 --- /dev/null +++ b/C++/Test1/ErrorCorrection.cpp @@ -0,0 +1,66 @@ +// Your Name: msglm
+// Date: Feb-14-2022
+// Program Title: Make Change
+// Program Description: Given any amount of change expressed in cents, this program
+// computes the number of halh-dollars, quarters, dimes, nickels, and pennies to be
+// returned, returning as many half-dollars as possible, then quarters, dimes, nickels,
+// and pennies in that order.
+
+#include <iostream>
+#include <string>
+
+//Didn't declare namespace as used
+using namespace std;
+
+// Named constants
+
+const int HALF_DOLLAR = 50;
+const int QUARTER = 25;
+const int DIME = 10;
+//Nickel missing int
+const int NICKEL = 5;
+
+int main()
+{
+
+ // Variable declaration
+ int change;
+
+ //Program title and description for the user
+ cout << "Program Title: Make Change" << endl;
+ cout << "Program Description: Given any amount of change expressed in cents, this program "
+ << "computes the number of half-dollars, quarters, dimes, nickels, and pennies to be "
+ //Missing terminating quote
+ << "returned, returning as many half-dollars as possible, then quarters, dimes, nickels,"
+ << "and pennies in that order." << endl << endl;
+
+ // User input
+ cout << "Enter change in cents: ";
+ //Variable capitalized; variables are case sensitive
+ cin >> change;
+ cout << endl;
+
+ cout << "The change you entered is: " << change << endl;
+
+ // Calculations and Output to the screen
+
+ cout << "The number of half-dollars to be returned is: " << change / HALF_DOLLAR << endl;
+ change = change % HALF_DOLLAR;
+
+ //forgot semicolon
+ cout << "The number of quarters to be returned is: " << change / QUARTER << endl;
+ change = change % QUARTER;
+ //Forgot extra <
+ cout << "The number of dimes to be returned is: " << change / DIME << endl;
+ //Variable/Constant names are case sensitive
+ change = change % DIME;
+
+ cout << "The number of nickels to be returned is: " << change / NICKEL << endl;
+ change = change % NICKEL;
+
+ //Forgot to place terminating end-quote
+ cout << "The number of pennies to be returned is: "<< change << endl;
+
+ //Never gave a return code or similar value
+ return 0;
+}
diff --git a/C++/Test2/Exam 2 Program Instruction.docx b/C++/Test2/Exam 2 Program Instruction.docx Binary files differnew file mode 100644 index 0000000..b70e121 --- /dev/null +++ b/C++/Test2/Exam 2 Program Instruction.docx diff --git a/C++/Test2/RPS.cpp b/C++/Test2/RPS.cpp new file mode 100644 index 0000000..7ca2f4b --- /dev/null +++ b/C++/Test2/RPS.cpp @@ -0,0 +1,101 @@ +// Name: msglm +// Date: +// Program Name: Rock Paper Scissors +// Description: Rock Paper Scissors + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + int playerOneChoice; + int playerTwoChoice; + string result; + string playerOneString; + string playerTwoString; + //Program title and description for the user + cout << "Title: Rock Paper Scissors" << endl << "Description: Plays a game of Rock Paper Scissors. Input must be an integer." << endl << endl; + + // User input + + cout << "Player One, Make your choice:\n"; + cout << "1. Rock \n"; + cout << "2. Paper \n"; + cout << "3. Scissors \n"; + cout << "Player One Input: "; + cin >> playerOneChoice; + + cout << "\nPlayer Two, Make your choice: \n"; + cout << "1. Rock \n"; + cout << "2. Paper \n"; + cout << "3. Scissors \n"; + cout << "Player Two Input: "; + cin >> playerTwoChoice; + + + if (playerOneChoice == playerTwoChoice){ //Draw + result = "This match is a Draw"; + } else if (playerOneChoice == 1 && playerTwoChoice == 3){ //Rock Beats Scissors + result = "Player One Victory"; + + } else if (playerOneChoice == 2 && playerTwoChoice == 1){ //Paper Beats Rock + result = "Player One Victory"; + + } else if (playerOneChoice == 3 && playerTwoChoice == 2){ //Scissors Beats Paper + result = "Player One Victory"; + } else { + //As the only winning moves and draw incurring moves have already + //be checked for player 1, we can assume a victory for two if this position is reached + result = "Player Two Victory."; + } + + //Convert the inputted number to a string for displaying back to the user + switch(playerOneChoice) { + case 1: + playerOneString = "Rock"; + break; + case 2: + playerOneString = "Paper"; + break; + case 3: + playerOneString = "Scissors"; + break; + default: + cout << "Something went terribly wrong. Your input may have problems"; + return 1; + } + switch(playerTwoChoice) { + case 1: + playerTwoString = "Rock"; + break; + case 2: + playerTwoString = "Paper"; + break; + case 3: + playerTwoString = "Scissors"; + break; + default: + cout << "Something went terribly wrong. Your input may have problems"; + return 1; + } + + //Output + cout << "\n\n\nRESULTS:\n"; + cout << "Player" << setw(15) << "Choice \n"; + cout << "Player #1:" << setw(12) << playerOneString << endl; + cout << "Player #2:" << setw(12) << playerTwoString << endl; + cout << result << endl; +} + + /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Test3/Program1.cpp b/C++/Test3/Program1.cpp new file mode 100644 index 0000000..80cde0e --- /dev/null +++ b/C++/Test3/Program1.cpp @@ -0,0 +1,65 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +int main() { + + //Variable declaration + int num; + + //Almost opted for a unsigned long long, but the imprecision with using values too high was too great. Floating point precision is king in this regard. + double output; + char again; + bool repeat = true; + + //Program title and description for the user + cout << "Title: Find Factorial" << endl << "Description: Given a non-zero number, print its factorial" << endl; + + while(repeat) { + // User input + cout << "Input the non-negative integar you'd like to find the factorial of: "; + cin >> num; + + // Calculations + if (num < 0) { + cout << "Error! The number you inputted was negative!"; + } else if (num == 0) { + output = 0; + } else { + output = 1; + for(int i = 1; i <= num; i++) { + output = i * output; + } + } + + // Output to the screen + cout << "The Factorial of " << num << " is " << fixed << setprecision(0) << output << endl; + + //Go Again + cout << "This program supports running again, would you like to run again? (y/n): "; + cin >> again; + if (again == 'y' || again == 'Y') { + repeat = true; + cout << "\033[2J\033[1;1H"; + + } else { + repeat = false; + } + + } + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Test3/Program2.cpp b/C++/Test3/Program2.cpp new file mode 100644 index 0000000..08976b0 --- /dev/null +++ b/C++/Test3/Program2.cpp @@ -0,0 +1,108 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +//Function header (probably should be in a header file) +double celsius_to_fahrenheit(double temp); +double fahrenheit_to_celsius(double temp); + +// Named constants + +int main() { + + //Variable declaration + double temp; + char format; + int choice; + //Program title and description for the user + cout << "Title: Fahrenheit-to-Celsius Converter" << endl << "Description: converts Fahrenheit to Celsius temperature and vice-versa" << endl; + do { + //If your tempurature is improper, allow fixing + if (!cin) { + cin.clear(); + cin.ignore(100, '\n'); + cout << "\033[2J\033[1;1H"; + cout << "Your temp was improper, please retry\n"; + } + + // User input + cout << "Enter the Temperature" << endl; + cin >> temp; + + cout << "Enter the format (C or F)" << endl; + cin >> format; + + //Presumptious error handling since numbers are valid characters + if (format != 'c' || format != 'C' || format != 'f' || format != 'F') { + cout << "Format is improper. Assuming Celcius.\n"; + format = 'C'; + } + + } while (!cin); + + //Display input methods for first time + cout << "1. Convert Celsius to Fahrenheit\n"; + cout << "2. Convert Fahrenheit to Celsius\n"; + cout << "3. Display Choices\n"; + + do { + //Get user choice + cout << "Choice: "; + cin >> choice; + + + if (choice == 1) { + //Ensure this is actually C, if not, do nothing + if (format == 'C' || format == 'c') { + temp = celsius_to_fahrenheit(temp); + format = 'F'; + } + + } else if (choice == 2) { + //Ensure this is actually F, if not, do nothing + if (format == 'F' || format == 'f') { + temp = fahrenheit_to_celsius(temp); + format = 'C'; + } + + } else { + //Choices in case the user forgets + cout << "1. Convert Celsius to Fahrenheit\n"; + cout << "2. Convert Fahrenheit to Celsius\n"; + cout << "3. Display Choices\n"; + } + + //Output to screen + cout << "\nIt is currently " << temp << " degrees " << format << endl; + + //Cold or Hot detection + if (( (format == 'F' || format == 'f') && temp <=32) || ( (format == 'C' || format == 'c') && temp <=0) ) { + cout << "Temperature is below freezing.\n"; + } else if (( (format == 'F' || format == 'f') && temp >= 104) || ( (format == 'C' || format == 'c') && temp >=40) ) { + cout << "Temperature is incredibly hot.\n"; + } + } while (cin); +} + +//Functions +double celsius_to_fahrenheit(double temp) { + return temp*(1.8)+32; +} + +double fahrenheit_to_celsius(double temp) { + return (temp-32)/(1.8); +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/TwoDimensionalArray/TwoDimensionalArray.cpp b/C++/TwoDimensionalArray/TwoDimensionalArray.cpp new file mode 100644 index 0000000..a96c64b --- /dev/null +++ b/C++/TwoDimensionalArray/TwoDimensionalArray.cpp @@ -0,0 +1,55 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +#include <fstream> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + double test[5][3]; + string name[5]; + int row; + int col; + ifstream inFile; + // open file + inFile.open("student_data.txt"); + + //Title and desc. + cout << "Two dimentional array example \n\n this program utilizes parallel arrays: one being an one-dimentional \n array to store student names and the other being a two-dimentional \n array to store 3 exam scores per student. the input will be read fron an external file and then be printed on the screen\n\n"; + + //Read arrays data from the file and store in both arrays + for (row=0; row < 5; row++) { + inFile >> name[row]; + for (col = 0; col < 3; col++) { + inFile >> test[row][col]; + } + } + cout << setw(10) << left << "Name" << setw(7) << right << "Test 1" << setw(7) << "Test 2" << setw(7) << "Test 3" << endl; + + for (row = 0; row < 5; row++) { + cout << setw(10) << left << name[row]; + for (col = 0; col < 3; col++) { + + cout << setw(7) << right << test[row][col]; + + } + cout << endl; + } +} + + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/TwoDimensionalArray/student_data.txt b/C++/TwoDimensionalArray/student_data.txt new file mode 100644 index 0000000..82312f9 --- /dev/null +++ b/C++/TwoDimensionalArray/student_data.txt @@ -0,0 +1,5 @@ +Amy 89 54 92
+Bob 92 88 65
+Carl 75 87 91
+Darla 98 94 90
+Eve 65 75 85
\ No newline at end of file diff --git a/C++/ValueVsReference/ValueVsReference.cpp b/C++/ValueVsReference/ValueVsReference.cpp new file mode 100644 index 0000000..cbd0aa5 --- /dev/null +++ b/C++/ValueVsReference/ValueVsReference.cpp @@ -0,0 +1,56 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +//func decl +void ValueFunctionEx(int x); +void ReferenceFunctionEx(int& x); + +// Named constants + +int main() { + + //Variable declaration + int num1; + int num2; + + //Program title and description for the user + cout << "Title: Value vs Reference Parameter" << endl << "Description: Value parameter Example" << endl; + + cout << "Enter an integer" << endl; + cin >> num1; + ValueFunctionEx(num1); + cout << "Main num1: " << num1 << endl; + + cout << "Enter an integer" << endl; + cin >> num2; + ReferenceFunctionEx(num2); + cout << "Main num1: " << num2 << endl; + + return 0; +} + +void ValueFunctionEx(int x) { + x = x * 2; + cout << "Value Parameter x: " << x << endl; +} + +void ReferenceFunctionEx(int& x) { + x = x * 2; + cout << "Value Parameter x: " << x << endl; +} + + + /*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/Vectors/Vectors.cpp b/C++/Vectors/Vectors.cpp new file mode 100644 index 0000000..67adaae --- /dev/null +++ b/C++/Vectors/Vectors.cpp @@ -0,0 +1,139 @@ +// Name: msglm +// Date: Sep 8th, 2022 +// Program Name: Vectirs +// Description: Read in a file, output the data to the screen and the student who has the highest credit hours and highest GPA. + +#include <iostream> +#include <fstream> +#include <string> +#include <vector> +#include <array> +#include <iomanip> +using namespace std; + +//initalizes the file +void initalize(string location, ifstream & fileVar) { + fileVar.open(location); + + if (!fileVar) { + cout << "ERROR! " << location << " failed to open!"; + exit(1); + } +} + +//Takes in the initalized file and turns it into a vector of arrays of strings +vector<array<string, 10>> serializeIntoVecArr(ifstream & fileVar) { + vector<array<string, 10>> studentDataContainer; + studentDataContainer.push_back(array<string, 10>()); + int student = 0; + int data = 0; + + while(getline(fileVar, studentDataContainer[student][data]) && fileVar.peek() != EOF) { + data = data + 1; + if (data == 10) { + data = 0; + student = student + 1; + //This initializes the next set of arrays + studentDataContainer.push_back(array<string, 10>()); + } + } + return studentDataContainer; +} + + +//Prints out all the data in a tabular format +void allData(vector<array<string, 10>> studentDataContainer) { + + //this code repetition is gross + //Perhaps I could have made this cleaner + cout << left << setw(25) << "First Name" << " "; + cout << left << setw(25) << "Last Name" << " "; + cout << left << setw(25) << "T-Number" << " "; + cout << left << setw(25) << "Major" << " "; + cout << left << setw(25) << "Advisor" << " "; + cout << left << setw(25) << "GPA" << " "; + cout << left << setw(25) << "Credit Hours" << " "; + cout << left << setw(25) << "Years until Graduation" << " "; + cout << left << setw(25) << "Hardest Class" << " "; + cout << left << setw(25) << "Easiest Class" << " "; + + //C++ 11 range based loops + //I wish I knew about these earlier + for (array<string, 10> student : studentDataContainer) { + cout << endl; + for (string data : student) { + cout << left << setw(25) << data << " "; + } + } + +} + + + +void highestCreditHours(vector<array<string, 10>> studentDataContainer) { + cout << "\n\nStudent with highest credit hours:\n"; + int highestStudent = 0; + int highest = 0; + + //gets the largest using only one pass through + for(int studentPos = 0; studentPos < studentDataContainer.size(); studentPos++) { + for (string data : studentDataContainer[studentPos]) { + if (data[6] > highest) { + highest = data[6]; + highestStudent = studentPos; + } + } + } + + //Outputs all the data of the largest + for (int dataPos = 0; dataPos < 10; dataPos++) { + cout << left << setw(25) << studentDataContainer[highestStudent][dataPos] << " "; + } +} + +//clone of highestCreditHours +void highestGPA(vector<array<string, 10>> studentDataContainer) { + cout << "\n\nStudent with highest GPA \n"; + int highestStudent = 0; + int highest = 0; + + for(int studentPos = 0; studentPos < studentDataContainer.size(); studentPos++) { + for (string data : studentDataContainer[studentPos]) { + if (data[7] > highest) { + highest = data[7]; + highestStudent = studentPos; + } + } + } + + for (int dataPos = 0; dataPos < 10; dataPos++) { + cout << left << setw(25) << studentDataContainer[highestStudent][dataPos] << " "; + } + +} + +int main() { + //Variable declaration + ifstream data; + + + //"Read in an unknown number of records from an input file and store that data into vector variables for the below" + // + //The data will be going into a vector, but that vector will hold arrays at a fixed size since each student's data will be fixed + //This makes accessing the data infinitely easier + initalize("input.txt", data); + vector<array<string, 10>> serializedVectorArray = serializeIntoVecArr(data); + + allData(serializedVectorArray); + highestCreditHours(serializedVectorArray); + highestGPA(serializedVectorArray); + +} + +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Vectors/input.txt b/C++/Vectors/input.txt new file mode 100644 index 0000000..a7ff2f7 --- /dev/null +++ b/C++/Vectors/input.txt @@ -0,0 +1,50 @@ +James +May +T-20425 +Information Technology +Jeff Kenney +4.0 +36 +2 +Ethics +Programming +Jennifer +May +T-22343 +Information Technology +Jeff Kenney +3.0 +26 +3 +Repiar +Programming +Anonymous +Anonymous +T-11111 +Information Technology +Megan Lastname +3.98 +30 +2 +Critical Thinking +Orientation +Epic +Fail +T-2042587 +Information Technology +Jef Kenney +2.0 +50 +2 +beingalive +fail +r +rMay +T-22143120425 +Information Technology +Jeff Kenney +2.76 +20 +3 +r +r diff --git a/C++/Vectors/instructions.txt b/C++/Vectors/instructions.txt new file mode 100644 index 0000000..a40c663 --- /dev/null +++ b/C++/Vectors/instructions.txt @@ -0,0 +1,39 @@ + Write a program that does the following: + + Read in an unknown number of records from an input file and store that data into vector variables for the below: + First Name + Last Name + T-Number + Major + Advisor Name + GPA + Credit Hours + Year expected to graduate + Hardest class taken so far + Easiet class taken so far + + Use functions for each of the below: + Function to check to see if input file was found + Function to read in data from input file + Function to output all data to screen and output file + Function to output the student's information that has the highest number of credit hours + Function to output the student's information that has the highest GPA + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. You do not need to sort the data to get the highest credit hours or GPA. There are much easier ways of doing this. +If you are stuck, I will help you! +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If you do not use functions, you will use 10 points per missing function (50 points) + If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none) + If your program is late (within 48 hours of the due date), you will lose 25 points + If your program uses global variables, you will lose 5 points for each used + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If you submit your program in a Word document, you will lose 20 points and will need to resubmit your program for grading. Please only submit .cpp files + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 + If your program looks like a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + diff --git a/C++/Videos/Chapter 5 (highlighting Do-While loop and Nested loop) 3-4-22 .mp4 b/C++/Videos/Chapter 5 (highlighting Do-While loop and Nested loop) 3-4-22 .mp4 Binary files differnew file mode 100644 index 0000000..e9b613d --- /dev/null +++ b/C++/Videos/Chapter 5 (highlighting Do-While loop and Nested loop) 3-4-22 .mp4 diff --git a/C++/Virtual Functions/INSTRUCTIONS b/C++/Virtual Functions/INSTRUCTIONS new file mode 100644 index 0000000..cbd1553 --- /dev/null +++ b/C++/Virtual Functions/INSTRUCTIONS @@ -0,0 +1,34 @@ + +HW3: Virtual Functions +Due November 29th, 2022 before midnight +50 Points +Virtual functions are only introduced in this course. You will use them in data structures instead. Therefore, this assignment is meant to let you become familiar with the concept before you move onto that class. +In this assignment, you will watch the videos about virtual functions. Then, you will answer the below questions: + + What is a virtual function? + What is the purpose of a virtual function? + Write about a real world situation where you would need to use a virtual function in a program + Write a program of your choice demonstrating how a virtual function works + +Assignment Notes: + + Look up information using any resource you wish, but you must write your answers in your own words. Copy/paste = 0/50 + Since you are writing a short program to demonstrate virtual functions, you may put answers to questions 1 - 3 as comments within your program + Short/vague answers will receive few, if any, points + +General Notes: +Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. +Grading Rubric: + + If you do not include comments at the top of the program (name, program description, date), you will lose 15 points + If your program is not object-oriented, you will receive a 0/50(OOP is requred for this assignment) + If your work is late (within 48 hours of the due date), you will lose 25 points + If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in + If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent + If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error + If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/50 + If you submit a file type I cannot open, such as .sln, you will receive a 0/50. You will be able to resubmit for credit, but you will lose points (depending on how late it is) + If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code + This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons. + + diff --git a/C++/Virtual Functions/VirtualFunctions.cpp b/C++/Virtual Functions/VirtualFunctions.cpp new file mode 100644 index 0000000..57fafca --- /dev/null +++ b/C++/Virtual Functions/VirtualFunctions.cpp @@ -0,0 +1,56 @@ +// Name: msglm +// Date: Nov 25th 2022 +// Program Name: Virtual Functions +// Description: a look into virtual functions + + +// What is a virtual function? +//Virtual fucntions are functions that can be redefined and are primarily used for runtime polymorphism. Typically, these functions are accessed via pointers. + +// What is the purpose of a virtual function? +//From what I have seen, the only utility this can serve is for situations when you making an instance of a parent class point to the child class and you need that pointer to call a standardized function within the class' children. I hope that makes sense. + +// Write about a real world situation where you would need to use a virtual function in a program +//The only time I could forsee teaching this is if it's necessary for cirriculum because, as it stands, this is a disgusting enigma of C++ that should not exist. However, to come up with a scenario, let's say this happens: +//For some reason, we are creating objects in memory in a program and later allocating them. In such as situation, we are dealing with multiple classes of somewhat related concepts, such as animals. All animals have the class "consume", which is unique per animals since animals are of different sizes and can consume different things. The pointer that we created before can then be assigned to an animal and then be used to call the specific consume function of an animal. +//However, if this is our implementation, then something has gone terribly wrong. Anything universal should be outside of an object and, any objects should be represented by data that is managed by the rest of the program. I.e, an animal should just be data about the animal, the animal itself and the animal's target is passed to a master function that will figure out what happens, and from there the function spits out what happens. If your language supports UFCS (https://en.wikipedia.org/wiki/Nim_(programming_language)#Uniform_Function_Call_Syntax), you can even pretend the master function is possessed by the animal if it makes it easier to think about. + +// Write a program of your choice demonstrating how a virtual function works + +#include <iostream> +#include <string> +using namespace std; + +//classes +class animal { + public: + int size; + virtual void consume(int targetSize) { + cout << "this function shouldn't be called, something went wrong"; + } +}; + +class pidgon : public animal { + public: + void consume(int targetSize) { + if (targetSize < size) { + cout << "target was consumed\n"; + } + } +}; + +int main() { + animal *placeholder; + pidgon seaPidgon; + placeholder = &seaPidgon; + placeholder->size = 500; + placeholder->consume(400); + +} +/* + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 ONLY as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ diff --git a/C++/Week7-Practice1/Ch3_Ex5Data.txt b/C++/Week7-Practice1/Ch3_Ex5Data.txt new file mode 100644 index 0000000..3cce547 --- /dev/null +++ b/C++/Week7-Practice1/Ch3_Ex5Data.txt @@ -0,0 +1,3 @@ +Miller Andrew 65789.87 5 +Green Sheila 75892.56 6 +Sethi Amit 74900.50 6.1 diff --git a/C++/Week7-Practice1/Ch3_Ex5Output.dat b/C++/Week7-Practice1/Ch3_Ex5Output.dat new file mode 100644 index 0000000..d45ce4a --- /dev/null +++ b/C++/Week7-Practice1/Ch3_Ex5Output.dat @@ -0,0 +1,3 @@ +Andrew Miller 69079.36 +Sheila Green 80446.11 +Amit Sethi 79469.43 diff --git a/C++/Week7-Practice1/practice1.cpp b/C++/Week7-Practice1/practice1.cpp new file mode 100644 index 0000000..136f842 --- /dev/null +++ b/C++/Week7-Practice1/practice1.cpp @@ -0,0 +1,61 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <fstream> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + ifstream inputData; + ofstream formattedData; + string last, first; + double curSal, percent, nuSal; + + //Program title and description for the user + cout << "Title: Salary Updater" << endl << "Description: Updates Salary" << endl; + + // User input + + inputData.open("Ch3_Ex5Data.txt"); + formattedData.open("Ch3_Ex5Output.dat"); + + if (inputData) { + cout << "Successfully opened file"; + } else { + cout << "ERROR: No File Provided \n"; + return 1; + } + + //TODO find a better way to do this + // Calculations + while ( true ) { + inputData >> last >> first >> curSal >> percent; + formattedData << fixed << showpoint << setprecision(2); + nuSal = curSal + (curSal * (percent/100)); + if ( !inputData.eof() ){ + formattedData << first << " " << last << " " << nuSal << " " << endl; + } else { + break; + } + } + + // Output to the screen + + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/WhileLoopPractice/WhileLoopPractice.cpp b/C++/WhileLoopPractice/WhileLoopPractice.cpp new file mode 100644 index 0000000..36eb5d0 --- /dev/null +++ b/C++/WhileLoopPractice/WhileLoopPractice.cpp @@ -0,0 +1,52 @@ +// Name: msglm +// Date: +// Program Name: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + //Example 1 + int iterator = 0; + + while( iterator <= 5 ){ + cout << iterator << endl; + iterator++; + } + + //Example 2 + cout << "output "; + iterator = 5; + while (iterator > 0) { + cout << iterator << " "; + iterator--; + } + + //Example 3 + int sentinel = 3; + int choice = 0; + while (choice != sentinel){ + cout << "Guess a number between 1 and 5\n"; + cin >> choice; + if (choice < 1 || choice > 5) { + cout << "Not a valid input, try again"; + } + cout << endl; + + } + + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/cinErrorExample/cinErrorExample output(1).docx b/C++/cinErrorExample/cinErrorExample output(1).docx Binary files differnew file mode 100644 index 0000000..7c8196b --- /dev/null +++ b/C++/cinErrorExample/cinErrorExample output(1).docx diff --git a/C++/cinErrorExample/cinErrorExamples.cpp b/C++/cinErrorExample/cinErrorExamples.cpp new file mode 100644 index 0000000..741e987 --- /dev/null +++ b/C++/cinErrorExample/cinErrorExamples.cpp @@ -0,0 +1,42 @@ +// Program: cin error examples
+// Ch 3: Input/Output
+
+// The purpose of this program is to look at some possible errors
+// that might occur if a user enters incorrect input
+
+#include <iostream>
+
+using namespace std;
+
+int main()
+{
+ int int1, int2;
+ double dbl;
+ char ch;
+
+ cout << "TESTING INPUT ERRORS" << endl;
+ cout << "Tested by: Anonymous" << endl;
+ cout << "This program is designed to read 2 integer values, followed \n";
+ cout << "by a double value, followed by a character value.\n\n";
+
+ /* INPUT FAILURE & FAIL STATE
+ An attempt to read invalid data, such as trying to put a letter into an int
+ or double, results in input failure. The input stream enters a state called
+ the "fail state." Once it enters fail state, all further I/O statements using
+ that stream are ignored. However, the program continues to execute with whatever
+ values are stored in variables and produces incorrect results.
+ */
+
+ // Run this program several times and purposely provide wrong data types
+ // to see what kind of output is produced.
+ cout << "Input, separated by spaces: ";
+ cin >> int1 >> int2 >> dbl >> ch;
+
+ // Output
+ cout << "int: " << int1 << endl;
+ cout << "int: " << int2 << endl;
+ cout << "Double: " << dbl << endl;
+ cout << "char: " << ch << endl;
+
+ return 0;
+}
diff --git a/C++/cubeSwitch/Ch 4 Cube program instructions.docx b/C++/cubeSwitch/Ch 4 Cube program instructions.docx Binary files differnew file mode 100644 index 0000000..f59110d --- /dev/null +++ b/C++/cubeSwitch/Ch 4 Cube program instructions.docx diff --git a/C++/cubeSwitch/cubeSwitch.cpp b/C++/cubeSwitch/cubeSwitch.cpp new file mode 100644 index 0000000..eef0dd6 --- /dev/null +++ b/C++/cubeSwitch/cubeSwitch.cpp @@ -0,0 +1,95 @@ +// Your Name
+// Date:
+// Program Title:
+// Program Description:
+
+#include <iostream>
+#include <string>
+#include <iomanip>
+#include <cmath>
+
+using namespace std;
+
+// Named constants
+
+int main()
+{
+
+ // Variable declaration
+ float sideLength;
+ int choice;
+
+ //Program title and description for the user
+
+ cout << "MENU TEMPLATE with SWITCH CASE" << endl << endl;
+
+ // User input
+
+ cout << "Choose the corresponding number for what task you want to complete." << endl;
+ cout << "1 - perimeter of one side " << endl;
+ cout << "2 - surface area of one side" << endl;
+ cout << "3 - surface area of the entire box" << endl;
+ cout << "4 - volume of the box." << endl;
+ cout << "Enter selected number here: ";
+ cin >> choice;
+
+ // Calculations
+
+ // Output to the screen
+
+ switch (choice)
+ {
+ case 1:
+
+ cout << "Perform task #1 : Perimeter of one side" << endl;
+
+ //Input
+ cout << "Enter the side length: ";
+ cin >> sideLength;
+
+ //Calculate and Output
+ cout << "Side Perimeter Is: " << 4*sideLength << " Cubed Inches \n";
+ break;
+
+ case 2:
+ cout << "Perform task #2 : Surface area of one side" << endl;
+
+ //Input
+ cout << "Enter the side length: ";
+ cin >> sideLength;
+
+ //Calculate and Output
+ cout << "Side Area Is: " << pow(sideLength, 2) << " Cubed Inches \n";
+ break;
+
+ case 3:
+ cout << "Perform task #3 : Surface area of the entire box" << endl;
+
+ //Input
+ cout << "Enter the side length: ";
+ cin >> sideLength;
+
+ //Calculate and Output
+ cout << "Cube Surface Area Is: " << 6*pow(sideLength, 2) << " Cubed Inches \n";
+ break;
+
+ case 4:
+ cout << "Perform task #4 : Volume of the box" << endl;
+
+ //Input
+ cout << "Enter the side length: ";
+ cin >> sideLength;
+
+ //Calculate and Output
+ cout << "Cube Volume Is: " << pow(sideLength, 3) << " Cubed Inches \n";
+
+ return 0;
+
+
+ break;
+
+ default:
+ cout << "Input error; program is terminating" << endl;
+ }
+ return 0;
+}
diff --git a/C++/getlineAndCinPractice/getLineCin.cpp b/C++/getlineAndCinPractice/getLineCin.cpp new file mode 100644 index 0000000..8f237f0 --- /dev/null +++ b/C++/getlineAndCinPractice/getLineCin.cpp @@ -0,0 +1,67 @@ +// Name: msglm +// Introduction: +// Description: + + +#include <iostream> +#include <string> +#include <iomanip> +using namespace std; +int main() { + + string name; + string major; + string favorite; + int gradyear; + int year; + float GPA; + //input + cout << "Enter Full Name: "; + getline(cin, name); + + cout << "Enter year you started college?: "; + cin >> year; + cin.ignore(); + + cout << "What is your major: "; + getline(cin, major); + + cout << "What is your anticipated graduation year?: "; + cin >> gradyear; + cin.ignore(); + + cout << "What is your GPA?: "; + cin >> GPA; + cin.ignore(); + + cout << "What is your favorite subject: "; + getline(cin, favorite); + + //output + + //system(cls); + //System calls are not portable and are a surefire way of locking your software to one system! + //System should be avoided whenever possible for security holes too as unsanitized input could allow shell commands to be executed. Not applicable in this case, but it's a bad habit to get started on. + //While this is not as nice looking, it's portable. + + cout << "\033[2J\033[1;1H"; + + cout << "Name: " << name << endl; + cout << "Year began college: " << year << endl; + cout << "Your Major: " << major << endl; + cout << "Your anticipated graduation year: " << year << endl; + cout << "Your GPA: " << GPA << endl; + cout << "Your favorite subject: " << favorite << endl; + return 0; + + + + +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/manipulatorPractice/manipulatorPractice.cpp b/C++/manipulatorPractice/manipulatorPractice.cpp new file mode 100644 index 0000000..c53a14d --- /dev/null +++ b/C++/manipulatorPractice/manipulatorPractice.cpp @@ -0,0 +1,56 @@ +// Manipulator practice
+// Ch 3: Input/Output
+// The purpose of this program is to practice using the some of the manipulators
+// covered in Ch 3: fixed, showpoint, setprecision, setw
+
+#include <iostream>
+#include <string>
+#include <iomanip> // needed to use manipulators
+
+using namespace std;
+
+int main()
+{
+ // Variable declarations
+ string name1, name2;
+ double score1, score2;
+
+ // Program title and description
+ cout << "MANIPULATOR PRACTICE" << endl;
+ cout << "The purpose of this program is to practice using the some of the\n";
+ cout << "manipulators covered in Ch 3: fixed, showpoint, setprecision, setw"
+ << endl << endl;
+
+ // User directions
+ cout << "You will be asked to enter 2 first names and a score for each.\n";
+ cout << "Then you will determine how to print the results in a \n";
+ cout << "column format." << endl << endl;
+
+ // Collect user input
+ cout << "Enter first name for student #1: ";
+ cin >> name1;
+ cout << "Enter score for student #1: ";
+ cin >> score1;
+
+ cout << "Enter first name for student #2: ";
+ cin >> name2;
+ cout << "Enter score for student #2: ";
+ cin >> score2;
+
+ // Instructions for output:
+ // Determine how to print the results in columns
+ // Use column headings to label each column
+ // Determine appropriate alignment for each column
+ // Determine which manipulators are needed to control numerical output
+
+ // Output results
+
+ //This solution doesn't really work with super long names or super long scores
+ //I don't know if this is a problem for this assignment or not
+ //If long names were important, then i'd get the length of the name, add 3 to it, and set that as what setw's value would be.
+ cout << left << setw(13) << "Name" << right << setw(13) << "Score" << endl;
+ cout << left << setw(13) << name1 << right << setw(13) << score1 << endl;
+ cout << left << setw(13) << name2 << right << setw(13) << score2 << endl;
+
+ return 0;
+}
diff --git a/C++/shapeWithFunctions/shapesWithFunctions.cpp b/C++/shapeWithFunctions/shapesWithFunctions.cpp new file mode 100644 index 0000000..f82861a --- /dev/null +++ b/C++/shapeWithFunctions/shapesWithFunctions.cpp @@ -0,0 +1,135 @@ +// Your Name : msglm
+// Date: Feb-17-2022
+// Program Title: MENU TEMPLATE with IF ELSE
+// Program Description: a program with a menu structure that will allow the user to choose an option to calculate area for a: Rectangle, Circle, and a Triangle
+
+#include <iostream>
+#include <string>
+#include <iomanip>
+#include <cmath>
+
+using namespace std;
+
+//Declare Functions
+//I'd prefer to have these as seperate files or just declaring them at the top
+
+void triangleArea();
+void circleArea();
+void rectArea();
+
+// Named constants
+
+int main() {
+
+ // Variable declaration
+ int choice;
+ char option;
+
+
+ //Program title and description for the user
+
+ cout << "MENU TEMPLATE with IF ELSE" << endl << endl;
+
+ // User input
+ do {
+ do {
+ cout << "Choose the corresponding number for what task you want to complete." << endl;
+ cout << "1 - Perform task #1 : Rectangle area" << endl;
+ cout << "2 - Perform task #2 : Circle area" << endl;
+ cout << "3 - Perform task #3 : Triangle area" << endl;
+ cout << "Enter selected number here: ";
+ cin >> choice;
+
+ if (!cin || choice<1 || choice>4) {
+ cout << "Invalid input selection\n\n";
+ //This will purge the garbage data
+ cin.clear(); //Clears error flag
+ cin.ignore(100, '\n'); //Purges 100 characters of input
+ }
+
+ } while (!cin || choice<1 || choice>4);
+ // Calculations
+
+ // Output to the screen
+
+ //This if-else statement need not exist: a switch statement would be much more optimal
+ if (choice == 1)
+ {
+ rectArea();
+ }
+ else if (choice == 2)
+ {
+ circleArea();
+ }
+ else if (choice == 3)
+ {
+ triangleArea();
+ }
+ else
+ cout << "Terminating" << endl;
+ cout << "Would you like to run again? (Y/N): ";
+ cin >> option;
+ cout << "\033c";
+ } while (option == 'Y' || option == 'y');
+
+ return 0;
+}
+
+ void rectArea() {
+ double height;
+ double width;
+ double area;
+
+ //User Input
+ cout << "Perform task #1 : Rectangle area" << endl;
+ cout << "Input the height in cm: \n";
+ cin >> height;
+
+ cout << "Input the width in cm: \n";
+ cin >> width;
+
+ //Calculation
+ area = height * width;
+
+ //Output
+ cout << "Area of the rectangle is " << area << " cm^2 \n";
+
+ }
+
+ void circleArea() {
+ cout << "Perform task #2 : Circle area" << endl;
+ double inputRadius;
+ string measurement;
+ const double pi = 3.14159;
+
+ //User Input
+ cout << "Please Input the Desired Radius for your Circle in cm: ";
+ cin >> inputRadius;
+
+ //Output
+ cout << "Area of the circle is " << pi*pow(inputRadius, 2) << "cm^2 \n";
+
+ }
+
+ void triangleArea() {
+ double height;
+ double base;
+
+ //User Input
+ cout << "Perform task #3 : Triangle area" << endl;
+ cout << "Input the height in cm: \n";
+ cin >> height;
+
+ cout << "Input the base in cm: \n";
+ cin >> base;
+
+ //Output
+ cout << "Area of the rectangle is " << (height*base)/2 << " cm^2 \n";
+ }
+/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+
diff --git a/C++/shapes/Ch 4 Shapes program and planning sheet(2).docx b/C++/shapes/Ch 4 Shapes program and planning sheet(2).docx Binary files differnew file mode 100644 index 0000000..edcc249 --- /dev/null +++ b/C++/shapes/Ch 4 Shapes program and planning sheet(2).docx diff --git a/C++/shapes/shape.cpp b/C++/shapes/shape.cpp new file mode 100644 index 0000000..bcae77f --- /dev/null +++ b/C++/shapes/shape.cpp @@ -0,0 +1,102 @@ +// Your Name : msglm
+// Date: Feb-17-2022
+// Program Title: MENU TEMPLATE with IF ELSE
+// Program Description: a program with a menu structure that will allow the user to choose an option to calculate area for a: Rectangle, Circle, and a Triangle
+
+#include <iostream>
+#include <string>
+#include <iomanip>
+#include <cmath>
+
+using namespace std;
+
+// Named constants
+
+int main()
+{
+
+ // Variable declaration
+
+ int choice;
+ double area;
+
+ //Program title and description for the user
+
+ cout << "MENU TEMPLATE with IF ELSE" << endl << endl;
+
+ // User input
+
+ cout << "Choose the corresponding number for what task you want to complete." << endl;
+ cout << "1 - Perform task #1 : Rectangle area" << endl;
+ cout << "2 - Perform task #2 : Circle area" << endl;
+ cout << "3 - Perform task #3 : Triangle area" << endl;
+ cout << "Enter selected number here: ";
+ cin >> choice;
+
+ // Calculations
+
+ // Output to the screen
+
+ //This if-else statement need not exist: a switch statement would be much more optimal
+ if (choice == 1)
+ {
+ double height;
+ double width;
+
+ //User Input
+ cout << "Perform task #1 : Rectangle area" << endl;
+ cout << "Input the height in cm: \n";
+ cin >> height;
+
+ cout << "Input the width in cm: \n";
+ cin >> width;
+
+ //Calculation
+ area = height * width;
+
+ //Output
+ cout << "Area of the rectangle is " << area << " cm^2 \n";
+ }
+ else if (choice == 2)
+ {
+ cout << "Perform task #2 : Circle area" << endl;
+ double inputRadius;
+ string measurement;
+ const double pi = 3.14159;
+
+ //User Input
+ cout << "Please Input the Desired Radius for your Circle in cm: ";
+ cin >> inputRadius;
+
+ //Output
+ cout << "Area of the circle is " << pi*pow(inputRadius, 2) << "cm^2 \n";
+
+ }
+ else if (choice == 3)
+ {
+ double height;
+ double base;
+
+ //User Input
+ cout << "Perform task #3 : Triangle area" << endl;
+ cout << "Input the height in cm: \n";
+ cin >> height;
+
+ cout << "Input the base in cm: \n";
+ cin >> base;
+
+ //Output
+ cout << "Area of the rectangle is " << (height*base)/2 << " cm^2 \n";
+ }
+ else
+ cout << "Input error; program terminating" << endl;
+
+ return 0;
+}
+/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+
diff --git a/C++/shapesWithLoop/shapesWithLoops.cpp b/C++/shapesWithLoop/shapesWithLoops.cpp new file mode 100644 index 0000000..1b839b3 --- /dev/null +++ b/C++/shapesWithLoop/shapesWithLoops.cpp @@ -0,0 +1,118 @@ +// Your Name : msglm
+// Date: Feb-17-2022
+// Program Title: MENU TEMPLATE with IF ELSE
+// Program Description: a program with a menu structure that will allow the user to choose an option to calculate area for a: Rectangle, Circle, and a Triangle
+
+#include <iostream>
+#include <string>
+#include <iomanip>
+#include <cmath>
+
+using namespace std;
+
+// Named constants
+
+int main()
+{
+
+ // Variable declaration
+
+ int choice;
+ double area;
+ char option;
+ //Program title and description for the user
+
+ cout << "MENU TEMPLATE with IF ELSE" << endl << endl;
+
+ // User input
+ do {
+ do {
+ cout << "Choose the corresponding number for what task you want to complete." << endl;
+ cout << "1 - Perform task #1 : Rectangle area" << endl;
+ cout << "2 - Perform task #2 : Circle area" << endl;
+ cout << "3 - Perform task #3 : Triangle area" << endl;
+ cout << "Enter selected number here: ";
+ cin >> choice;
+
+
+
+
+ if (!cin || choice<1 || choice>4) {
+ cout << "Invalid input selection\n\n";
+ //This will purge the garbage data
+ cin.clear(); //Clears error flag
+ cin.ignore(100, '\n'); //Purges 100 characters of input
+ }
+
+ } while (!cin || choice<1 || choice>4);
+ // Calculations
+
+ // Output to the screen
+
+ //This if-else statement need not exist: a switch statement would be much more optimal
+ if (choice == 1)
+ {
+ double height;
+ double width;
+
+ //User Input
+ cout << "Perform task #1 : Rectangle area" << endl;
+ cout << "Input the height in cm: \n";
+ cin >> height;
+
+ cout << "Input the width in cm: \n";
+ cin >> width;
+
+ //Calculation
+ area = height * width;
+
+ //Output
+ cout << "Area of the rectangle is " << area << " cm^2 \n";
+ }
+ else if (choice == 2)
+ {
+ cout << "Perform task #2 : Circle area" << endl;
+ double inputRadius;
+ string measurement;
+ const double pi = 3.14159;
+
+ //User Input
+ cout << "Please Input the Desired Radius for your Circle in cm: ";
+ cin >> inputRadius;
+
+ //Output
+ cout << "Area of the circle is " << pi*pow(inputRadius, 2) << "cm^2 \n";
+
+ }
+ else if (choice == 3)
+ {
+ double height;
+ double base;
+
+ //User Input
+ cout << "Perform task #3 : Triangle area" << endl;
+ cout << "Input the height in cm: \n";
+ cin >> height;
+
+ cout << "Input the base in cm: \n";
+ cin >> base;
+
+ //Output
+ cout << "Area of the rectangle is " << (height*base)/2 << " cm^2 \n";
+ }
+ else
+ cout << "Terminating" << endl;
+ cout << "Would you like to run again? (Y/N): ";
+ cin >> option;
+ cout << "\033c";
+ } while (option == 'Y' || option == 'y');
+
+ return 0;
+}
+/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+
diff --git a/C++/stepsCount/Steps Count- Input and Output Files.docx b/C++/stepsCount/Steps Count- Input and Output Files.docx Binary files differnew file mode 100644 index 0000000..06bc353 --- /dev/null +++ b/C++/stepsCount/Steps Count- Input and Output Files.docx diff --git a/C++/stepsCount/inputData.txt b/C++/stepsCount/inputData.txt new file mode 100644 index 0000000..c2c3a43 --- /dev/null +++ b/C++/stepsCount/inputData.txt @@ -0,0 +1 @@ +Sunday 2200 Monday 3060 Tuesday 5840 Wednesday 3230 Thursday 4584 Friday 3400 Saturday 1870 diff --git a/C++/stepsCount/stepCount.cpp b/C++/stepsCount/stepCount.cpp new file mode 100644 index 0000000..0a89f98 --- /dev/null +++ b/C++/stepsCount/stepCount.cpp @@ -0,0 +1,94 @@ +// Name: msglm +// Date: Feb-14-2021 +// Program Name: Step Count +// Description: Takes in the amount of steps you took through a week and averages them together + + +#include <iostream> +#include <string> +#include <fstream> +#include <iomanip> +#include <vector> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + ifstream inputData; + ofstream stepsFormatted; + string tempDay = "-1"; + int tempSteps = -1; + int epoch; + int averageSteps; + int totalSteps; + vector<int> stepPendingAverage; //Vector was chosen for its ease of being able to append + + //Program title and description for the user + cout << "Title: Step Count" << endl << "Description: Takes in the amount of steps you took through a week and averages them together" << endl; + + // User input + // Dealing with input/output files + inputData.open("inputData.txt"); + stepsFormatted.open("stepsFormated.txt"); + + //Create and set up file's formatting + columns + stepsFormatted << fixed << showpoint << setprecision(2); + stepsFormatted << setw(17) << left << "Day " << setw(8) << "Steps" << endl; + //Reading from the file + + //This will loop over so long as the file is not empty + while( !inputData.eof() ) { + + //Test to see if tempDay and tempSteps is assigned to valid input + if (tempDay != "-1" && tempSteps != -1) { + //if tempDay and tempSteps is valid, then write to the file what is desired + stepsFormatted << setw(17) << left << tempDay << setw(8) << tempSteps << endl; + //invalidate the input so it may be wrote over again + tempDay = -1; + tempSteps = -1; + //TODO find a better way to do this; there may be a time where -1 is valid input. + } + + //If the input is a day, write the day name to tempDay + if (epoch % 2 == 0) { + inputData >> tempDay; + } else { + //Otherwise, is a number of steps and write that number to tempSteps + inputData >> tempSteps; + //also append number of steps to the temporary pending steps array + stepPendingAverage.push_back(tempSteps); + + } + //Increase the epoch by 1, showing that a pair of day and steps has been read + epoch++; + } + + // Calculations + + // Obtaining total number of steps + for(int iteration=0; iteration < stepPendingAverage.size(); iteration++) { + totalSteps = totalSteps + stepPendingAverage[iteration]; + //Obtain Average + averageSteps = totalSteps/stepPendingAverage.size(); + } + //Writing average to file + stepsFormatted << setw(17) << left << "Average" << setw(8) << averageSteps << "steps per day" << endl; + + //Close files + inputData.close(); + stepsFormatted.close(); + + // Output to the screen + cout << "Please Check stepsFormatted.txt file" << endl; + + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/stepsCount/stepsFormated.txt b/C++/stepsCount/stepsFormated.txt new file mode 100644 index 0000000..e808fec --- /dev/null +++ b/C++/stepsCount/stepsFormated.txt @@ -0,0 +1,9 @@ +Day Steps +Sunday 2200 +Monday 3060 +Tuesday 5840 +Wednesday 3230 +Thursday 4584 +Friday 3400 +Saturday 1870 +Average 3454 steps per day diff --git a/C++/studentScore/studentScore.cpp b/C++/studentScore/studentScore.cpp new file mode 100644 index 0000000..b40229a --- /dev/null +++ b/C++/studentScore/studentScore.cpp @@ -0,0 +1,73 @@ +// Name: msglm +// Date: +// Introduction: +// Description: + + +#include <iostream> +#include <string> +#include <fstream> +#include <iomanip> +using namespace std; + +// Named constants + +int main() { + + //Variable declaration + ifstream inFile; + ofstream outFile; + string name1, name2, name3; + double test1, test2, test3; + double test4, test5, test6; + double test7, test8, test9; + double average1, average2, average3; + + //Program title and description for the user + //cout << "Title: " << endl << "Description: " << endl; + + // User input + // Dealing with input/output files + inFile.open("studentScore.txt"); + outFile.open("testavg.out"); + + //Reading from the file + getline(inFile, name1); + inFile >> test1 >> test2 >> test3; + inFile.ignore(); + + getline(inFile, name2); + inFile >> test4 >> test5 >> test6; + inFile.ignore(); + + getline(inFile, name3); + inFile >> test7 >> test8 >> test9; + inFile.ignore(); + + // Calculations + average1 = (test1+test2+test3)/3.0; + average2 = (test4+test5+test6)/3.0; + average3 = (test7+test8+test9)/3.0; + + // Output to the screen + + outFile << fixed << showpoint << setprecision(2); + outFile << setw(17) << left << "Name: " << setw(8) << "Test 1" << setw(8) << "Test 2" << setw(8) << "Test 3" << setw(8) << "Average" << endl; + outFile << setw(17) << left << name1 << setw(8) << test1 << setw(8) << test2 << setw(8) << test3 << setw(8) << average1 << endl; + outFile << setw(17) << left << name2 << setw(8) << test4 << setw(8) << test5 << setw(8) << test6 << setw(8) << average2 << endl; + outFile << setw(17) << left << name3 << setw(8) << test7 << setw(8) << test8 << setw(8) << test9 << setw(8) << average3 << endl; + + inFile.close(); + outFile.close(); + + cout << "Please Check testavg.out file" << endl; + + return 0; +} + +/*This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + diff --git a/C++/studentScore/studentScore.txt b/C++/studentScore/studentScore.txt new file mode 100644 index 0000000..647019e --- /dev/null +++ b/C++/studentScore/studentScore.txt @@ -0,0 +1,6 @@ +Indira Dutta +67.2 58.54 98.3 +Anonymous Anonymous +30.4 90.4 75.4 +Jarvis Henderson +40.3 24.5 90.4 diff --git a/C++/studentScore/testavg.out b/C++/studentScore/testavg.out new file mode 100644 index 0000000..8624224 --- /dev/null +++ b/C++/studentScore/testavg.out @@ -0,0 +1,4 @@ +Name: Test 1 Test 2 Test 3 Average +Indira Dutta 67.20 58.54 98.30 74.68 +Anonymous Anonymous 30.40 90.40 75.40 65.40 +Jarvis Henderson 40.30 24.50 90.40 51.73 diff --git a/C++/sumOfRange/Sum of Range program instruction.docx b/C++/sumOfRange/Sum of Range program instruction.docx Binary files differnew file mode 100644 index 0000000..abc6187 --- /dev/null +++ b/C++/sumOfRange/Sum of Range program instruction.docx diff --git a/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.1.join.html b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.1.join.html new file mode 100644 index 0000000..d5b7269 --- /dev/null +++ b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.1.join.html @@ -0,0 +1,14 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Form Example</title>
+ </head>
+ <body>
+ <h1>Join Our Newsletter</h1>
+ <form method="get">
+ E-mail: <input type="text" name="email" id="email"><br><br>
+ <input type="submit" value="Sign Me Up!">
+ <input type="reset">
+ </form>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.2.contact.html b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.2.contact.html new file mode 100644 index 0000000..b645165 --- /dev/null +++ b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.2.contact.html @@ -0,0 +1,25 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Contact Form</title>
+ <meta charset="utf-8">
+ </head>
+ <body>
+ <h1>Contact Us</h1>
+ <form method="get">
+ First Name: <input type="text" name="fname" id="fname">
+ <br>
+ <br>
+ Last Name: <input type="text" name="lname" id="lname">
+ <br>
+ <br>
+ E-mail: <input type="text" name="email" id="email">
+ <br>
+ <br>
+ Comments:<br>
+ <textarea name="comments" id="comments" rows=4 cols=40></textarea><br>
+ <br>
+ <input type="submit" value="Contact"> <input type="reset">
+ </form>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.3.label.html b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.3.label.html new file mode 100644 index 0000000..5c4e64f --- /dev/null +++ b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.3.label.html @@ -0,0 +1,24 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Contact Form</title>
+ <meta charset="utf-8">
+ </head>
+ <body>
+ <h1>Contact Us</h1>
+ <form method="get">
+ <label>First Name: <input type="text" name="fname" id="fname"
+ <input type="text" name="fname" id="fname"><br><br>
+ </label>
+ <label>Last Name: <input type="text" name="lname" id="lname"
+ <input type="text" name="lname" id="lname"><br><br>
+ </label>
+ <label>E-mail: <input type="text" name="email" id="email"
+ <input type="text" name="email" id="email"><br><br>
+ </label>
+ <label for="comments">Comments:</label><br>
+ <textarea name="comments" id="comments" rows="4" cols="40"></textarea><br><br>
+ <input type="submit" value="Contact"> <input type="reset">
+ </form>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.4.contactus.html b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.4.contactus.html new file mode 100644 index 0000000..1893bec --- /dev/null +++ b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.4.contactus.html @@ -0,0 +1,49 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Contact Form</title>
+ <meta charset="utf-8">
+ <style>
+input[type="submit"] {
+ margin-left: 110px;
+}
+
+form {
+ background-color: #EAEAEA;
+ font-family: Arial, sans-serif;
+ width: 350px;
+ padding: 10px;
+}
+
+ label {
+ float: left;
+ clear: left;
+ display: block;
+ width: 100px;
+ padding-right: 10px;
+ margin-top: 10px;
+ text-align: right;
+ }
+
+ input {
+ display: block; margin-top: 10px;
+ }
+
+ textarea {
+ display: block; margin-top: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Contact Us</h1>
+ <form method="get">
+ <label for="myName">Name:</label>
+ <input type="text" name="myName" id="myName">
+ <label for="myEmail">E-mail:</label>
+ <input type="text" name="myEmail" id="myEmail">
+ <label for="myComments">Comments:</label>
+ <textarea name="myComments" id="myComments" rows="2" cols="20"></textarea>
+ <input id="mySubmit" type="submit" value="Submit">
+ </form>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.5.contact2.html b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.5.contact2.html new file mode 100644 index 0000000..6977d05 --- /dev/null +++ b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.5.contact2.html @@ -0,0 +1,55 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Contact Form</title>
+ <meta charset="utf-8">
+ <style>
+
+
+form { background-color: #EAEAEA;
+ font-family: Arial, sans-serif;
+ width: 350px; padding: 10px;}
+label { float: left; clear: left;
+ display: block; width: 100px;
+ text-align: right;
+ padding-right: 10px;
+ margin-top: 10px; }
+input, textarea { margin-top: 10px;
+ display: block;}
+input[type="submit"] { margin-left: 110px; }
+
+@supports ( display: grid) {
+
+ form {
+ display: grid;
+ grid-template-rows: auto;
+ grid-template-columns: 6em 1fr;
+ grid-gap: 1em;
+ gap: 1em;
+ background-color: #EAEAEA;
+ font-family: Arial, sans-serif;
+ width: 60%;
+ min-width: 20em;
+ padding: 2em;
+ }
+
+ input[type="submit"] {
+ grid-column: 2 / 3;
+ width: 10em; margin-left: 0;
+ }
+}
+ </style>
+ </head>
+ <body>
+ <h1>Contact Us</h1>
+ <form>
+ <label for="myName">Name:</label>
+ <input type="text" name="myName" id="myName">
+ <label for="myEmail">E-mail:</label>
+ <input type="text" name="myEmail" id="myEmail">
+ <label for="myComments">Comments:</label>
+ <textarea name="myComments" id="myComments" rows="2" cols="20"></textarea>
+ <input type="submit" value="Submit">
+ </form>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.6.mycontact.html b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.6.mycontact.html new file mode 100644 index 0000000..a922c22 --- /dev/null +++ b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.6.mycontact.html @@ -0,0 +1,55 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Contact Form</title>
+ <meta charset="utf-8">
+ <style>
+
+
+form { background-color: #EAEAEA;
+ font-family: Arial, sans-serif;
+ width: 350px; padding: 10px;}
+label { float: left; clear: left;
+ display: block; width: 100px;
+ text-align: right;
+ padding-right: 10px;
+ margin-top: 10px; }
+input, textarea { margin-top: 10px;
+ display: block;}
+input[type="submit"] { margin-left: 110px; }
+
+@supports ( display: grid) {
+
+ form {
+ display: grid;
+ grid-template-rows: auto;
+ grid-template-columns: 6em 1fr;
+ grid-gap: 1em;
+ gap: 1em;
+ background-color: #EAEAEA;
+ font-family: Arial, sans-serif;
+ width: 60%;
+ min-width: 20em;
+ padding: 2em;
+ }
+
+ input[type="submit"] {
+ grid-column: 2 / 3;
+ width: 10em; margin-left: 0;
+ }
+}
+ </style>
+ </head>
+ <body>
+ <h1>Contact Us</h1>
+ <form method="post" action="https://webdevbasics.net/scripts/demo.php">
+ <label for="myName">Name:</label>
+ <input type="text" name="myName" id="myName">
+ <label for="myEmail">E-mail:</label>
+ <input type="text" name="myEmail" id="myEmail">
+ <label for="myComments">Comments:</label>
+ <textarea name="myComments" id="myComments" rows="2" cols="20"></textarea>
+ <input type="submit" value="Submit">
+ </form>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.7.comment.html b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.7.comment.html new file mode 100644 index 0000000..f97c3c3 --- /dev/null +++ b/HTML/Chapter/Ch. 10 hands-on assignments/Ch10_msglm/10.7.comment.html @@ -0,0 +1,42 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Comment Form</title>
+ <meta charset="utf-8">
+ <style>
+label { display: block;
+ margin-top: 20px; }
+input { display: block;
+ margin-bottom: 20px; }
+ </style>
+ </head>
+ <body>
+ <h1>Comment Form</h1>
+ <form method="post" action="https://webdevbasics.net/scripts/demo.php">
+ <label for="myFirstName">* First Name</label>
+ <input type="text" name="myFirstName"
+ id="myFirstName" required="required"
+ placeholder="your first name">
+ <label for="myLastName">* Last Name</label>
+ <input type="text" name="myLastName"
+ id="myLastName" required="required"
+ placeholder="your last name">
+ <label for="myEmail">* E-mail</label>
+ <input type="email" name="myEmail" id="myEmail"
+ required="required"
+ placeholder="you@yourdomain.com">
+ <label for="myRating">Rating (1 — 10)
+ </label>
+ <input type="range" name="myRating"
+ id="myRating" min="1" max="10">
+ <label for="myComments">* Comments</label>
+ <textarea name="myComments" id="myComments"
+ rows="2" cols="40"
+ required="required"
+ placeholder="your comments here">
+ </textarea>
+ <input type="submit" value="Submit">
+ </form>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.html new file mode 100644 index 0000000..cd50e92 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.html @@ -0,0 +1,12 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Podcast</title>
+ </head>
+ <body>
+ <h1>Web Design Podcast</h1>
+ <a href="11.1.podcast.mp3">Podcast Episode 1</a> (MP3)
+ <br>
+ <a href="11.1.podcast.txt">Podcast Transcript</a>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.mp3 b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.mp3 Binary files differnew file mode 100644 index 0000000..6190438 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.mp3 diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.txt b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.txt new file mode 100644 index 0000000..8ebd91f --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.1.podcast/11.1.podcast.txt @@ -0,0 +1,13 @@ +Welcome to an example podcast.
+
+I'm Terry Morris, the author of your textbook.
+
+If this were an actual podcast it would focus on a topic and perhaps include an interview with an interesting guest.
+
+It's very easy to create a podcast.
+
+If you use a Mac computer, try ou the pre-installed Garageband application.
+
+If you are using Windows, you can download Audacity. It's a free audio recorder and editor.
+
+Have fun creating your own podcast!
\ No newline at end of file diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.index.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.index.html new file mode 100644 index 0000000..77739e4 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.index.html @@ -0,0 +1,17 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Podcast</title>
+ </head>
+ <body>
+ <h1>Web Design Podcast</h1>
+ <audio controls>
+ <!--I usually put ogg first because of better compression-->
+ <source src="11.2.podcast.ogg" type="audio/ogg">
+ <source src="11.2.podcast.mp3" type="audio/mpeg">
+ <a href="11.2.podcast.mp3">download the Podcast</a> (MP3)
+ </audio>
+ <br>
+ <a href="11.2.podcast.txt">Podcast Transcript</a>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.mp3 b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.mp3 Binary files differnew file mode 100644 index 0000000..6190438 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.mp3 diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.ogg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.ogg Binary files differnew file mode 100644 index 0000000..ab1c589 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.ogg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.txt b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.txt new file mode 100644 index 0000000..4c5d526 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.2.audio/11.2.podcast.txt @@ -0,0 +1,13 @@ +Welcome to an example podcast.
+
+I'm Terry Morris, the author of your textbook.
+
+If this were an actual podcast it would focus on a topic and perhaps include an interview with an interesting guest.
+
+It's very easy to create a podcast.
+
+If you use a Mac computer, try ou the pre-installed Garageband application.
+
+If you are using Windows, you can download Audacity. It's a free audio recorder and editor.
+
+Have fun creating your own podcast!
\ No newline at end of file diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.index.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.index.html new file mode 100644 index 0000000..5263d3e --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.index.html @@ -0,0 +1,27 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Sedona Scenes</title>
+ <meta charset="utf-8">
+ </head>
+ <style>
+ video {
+ width: 100%;
+ height: auto;
+ max-width:1280px;
+ }
+ </style>
+ <body>
+ <h1>Sedona Scenes</h1>
+ <video controls poster="11.3.sedona.jpg">
+ <!--
+ I prefer to put free formats first
+ I personally would have chose webm over ogv
+ -->
+ <source src="11.3.sedona.ogv" type="video/ogg">
+ <source src="11.3.sedona.m4v" type="video/mp4">
+ <a href="11.3.sedona.mov">Photos of Sedona</a> (.mov)
+ </video>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.jpg Binary files differnew file mode 100644 index 0000000..33d66f0 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.m4v b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.m4v Binary files differnew file mode 100644 index 0000000..73744ca --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.m4v diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.mov b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.mov Binary files differnew file mode 100644 index 0000000..87b800c --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.mov diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.ogv b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.ogv Binary files differnew file mode 100644 index 0000000..5a26118 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.3.video/11.3.sedona.ogv diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.4.myiframe.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.4.myiframe.html new file mode 100644 index 0000000..8ada3f1 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.4.myiframe.html @@ -0,0 +1,13 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Iframe Example</title>
+ </head>
+ <body>
+ <h1>iframe example</h1>
+ <iframe src="https://www.youtube.com/embed/2CuOug8KDWI"
+ width="640" height="385">
+ <a href="https://www.youtube.com/embed/2CuOug8KDWI">YouTube Video</a>
+ </iframe>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.index.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.index.html new file mode 100644 index 0000000..2911854 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.index.html @@ -0,0 +1,116 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Bistro</title>
+<meta charset="utf-8">
+<style>
+
+* { box-sizing: border-box; margin: 0; }
+body {font-family:Verdana, Arial, sans-serif; }
+nav { background-color: #B3C7E6; }
+nav ul { list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+nav li { border-bottom: 1px solid #ffffff;
+}
+nav a { text-decoration: none;
+ display: block;
+ padding: 1em 2em;
+}
+nav a:link { color: #FFFFFF; }
+nav a:visited { color: #F8F8F8; }
+nav a:hover { color: #000066;
+ background-color: #eaeaea;
+}
+header { background-color: #869DC7;
+ color: #00005D;
+ background-image: url(11.5.light.gif);
+ background-repeat: no-repeat;
+ padding: 2em 0 2em 7em;
+ font-size: 120%;
+}
+h2 { color: #869dc7;
+ font-family: arial, sans-serif;
+}
+main { padding: 1em; }
+aside { padding: 1em; }
+figure { margin: auto;
+ padding: 8px;
+ width: 265px;
+ background-color: #FFF;
+ border: 1px solid #CCC;
+ box-shadow: 5px 5px 5px #828282;
+ transform: rotate(3deg);
+}
+figcaption { text-align: center;
+ font-size: .8em;
+ font-style: italic;
+}
+footer { background-color: #869DC7;
+ font-size:70%;
+ text-align: center;
+ padding: 2em;
+ clear: both;
+}
+#offer { background-color: #eaeaea;
+ width: 10em;
+ margin: 2em auto 0 auto;
+ text-align: center;
+ transform:scale(2);
+}
+#offer a { text-decoration: none;
+ color: #FF0000;
+}
+header, main, nav, figure, footer { display: block; }
+@media only screen and (min-width: 768px) {
+#content { display: flex; }
+nav { flex: none; }
+main { flex: 6;
+ min-width: 20em;
+ background-color: #FFFFFF; }
+aside { flex: 4;
+ background-color: #EAEAEA; }
+header { padding-left: 10em; }
+}
+</style>
+</head>
+<body>
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <div id="content">
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.<br><br></p>
+ <div id="offer">
+ <a href="#">Special Offer</a>
+ </div>
+ </main>
+ <aside>
+ <figure>
+ <img src="11.5.lighthouse.jpg" width="250" height="355" id="floatright" alt="Lighthouse Island">
+ <figcaption>Cana Island Lighthouse</figcaption>
+ </figure>
+ </aside>
+ </div>
+ <footer>Copyright © </footer>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.light.gif b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.light.gif Binary files differnew file mode 100644 index 0000000..469b297 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.light.gif diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.lighthouse.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.lighthouse.jpg Binary files differnew file mode 100644 index 0000000..6455297 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.5.transform/11.5.lighthouse.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.index.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.index.html new file mode 100644 index 0000000..be94ed7 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.index.html @@ -0,0 +1,115 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Bistro</title>
+<meta charset="utf-8">
+<style>
+
+* { box-sizing: border-box; margin: 0; }
+body {font-family:Verdana, Arial, sans-serif; }
+nav { background-color: #B3C7E6; }
+nav ul { list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+nav li { border-bottom: 1px solid #ffffff;
+}
+nav a { text-decoration: none;
+ display: block;
+ padding: 1em 2em;
+ transition: background-color 2s linear;
+}
+nav a:link { color: #FFFFFF; }
+nav a:visited { color: #F8F8F8; }
+nav a:hover { color: #000066;
+ background-color: #EAEAEA;
+}
+header { background-color: #869DC7;
+ color: #00005D;
+ background-image: url(11.6.light.gif);
+ background-repeat: no-repeat;
+ padding: 2em 0 2em 7em;
+ font-size: 120%;
+}
+h2 { color: #869dc7;
+ font-family: arial, sans-serif;
+}
+main { padding: 1em; }
+aside { padding: 1em; }
+figure { margin: auto;
+ padding: 8px;
+ width: 265px;
+ background-color: #FFF;
+ border: 1px solid #CCC;
+ box-shadow: 5px 5px 5px #828282;
+}
+figcaption { text-align: center;
+ font-size: .8em;
+ font-style: italic;
+}
+footer { background-color: #869DC7;
+ font-size:70%;
+ text-align: center;
+ padding: 2em;
+ clear: both;
+}
+#offer { background-color: #eaeaea;
+ width: 10em;
+ margin: 2em auto 0 auto;
+ text-align: center;
+}
+#offer a { text-decoration: none;
+ color: #FF0000;
+}
+header, main, nav, figure, footer { display: block; }
+@media only screen and (min-width: 768px) {
+#content { display: flex; }
+nav { flex: none; }
+main { flex: 6;
+ min-width: 20em;
+ background-color: #FFFFFF; }
+aside { flex: 4;
+ background-color: #EAEAEA; }
+header { padding-left: 10em; }
+}
+</style>
+</head>
+<body>
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <div id="content">
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.<br><br></p>
+ <div id="offer">
+ <a href="#">Special Offer</a>
+ </div>
+ </main>
+ <aside>
+ <figure>
+ <img src="11.6.lighthouse.jpg" width="250" height="355" id="floatright" alt="Lighthouse Island">
+ <figcaption>Cana Island Lighthouse</figcaption>
+ </figure>
+ </aside>
+ </div>
+ <footer>Copyright © </footer>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.light.gif b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.light.gif Binary files differnew file mode 100644 index 0000000..469b297 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.light.gif diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.lighthouse.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.lighthouse.jpg Binary files differnew file mode 100644 index 0000000..6455297 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.6.transition/11.6.lighthouse.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.aerie-trail.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.aerie-trail.jpg Binary files differnew file mode 100644 index 0000000..7c079d6 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.aerie-trail.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.bear-mountain.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.bear-mountain.jpg Binary files differnew file mode 100644 index 0000000..daef5a5 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.bear-mountain.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.broken-arrow-trail.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.broken-arrow-trail.jpg Binary files differnew file mode 100644 index 0000000..0ca7e32 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.broken-arrow-trail.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.cathedral-rock.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.cathedral-rock.jpg Binary files differnew file mode 100644 index 0000000..428399a --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.cathedral-rock.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.index.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.index.html new file mode 100644 index 0000000..b062c17 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.index.html @@ -0,0 +1,91 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>First HTML Webpage</title>
+ <meta charset="utf-8">
+ </head>
+ <style>
+
+body {
+ font-family: Trajan Pro, Verdana, Arial;
+}
+
+h1 {
+ padding: .5em;
+ height: 2em;
+}
+
+.gallery {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-around;
+ width: 70%;
+ margin: auto;
+}
+
+figure {
+ position: relative;
+ opacity: .75;
+ transition: all ease-out 3s;
+ margin: 1em;
+ z-index: 1;
+ background-color: #FFF;
+ color: rgba(0,0,0,0);
+ font-size: .5em;
+ text-align: center;
+}
+
+figure:hover {
+ opacity: 1;
+ transform: scale(3);
+ z-index: 999;
+ box-shadow: 3px 3px 3px #333;
+ color: rgba(0, 0, 0, 1);
+}
+
+ </style>
+ <body>
+ <h1>Image Gallery</h1>
+ <div id=gallery>
+
+ <figure><a href="11.7.broken-arrow-trail.jpg"><img src="11.7.photo1thumb.jpg" width=100 height=100 alt="Broken Arrow Trail, Sedona, Arizona"></a>
+ <figcaption>Broken Arrow</figcaption>
+ </figure>
+
+ <figure>
+ <a href="11.7.thunder-mountain.jpg"><img src="11.7.photo2thumb.jpg" width=100 height=100 alt="Thunder Mountain, Sedona, Arizona"></a>
+ <figcaption>Thunder Mountain</figcaption>
+ </figure>
+
+ <figure>
+ <a href="11.7.bear-mountain.jpg"><img src="11.7.photo3thumb.jpg" width=100 height=100 alt="Bear Mountain, Sedona, Arizona"></a>
+ <figcaption>Bear Mountain</figcaption>
+ </figure>
+
+ <figure>
+ <a href="11.7.aerie-trail.jpg"><img src="11.7.photo4thumb.jpg" width=100 height=100 alt="Aerie Trail, Sedona, Arizona"></a>
+ <figcaption>Aerie Trail</figcaption>
+ </figure>
+
+ <figure>
+ <a href="11.7.cathedral-rock.jpg"><img src="11.7.photo5thumb.jpg" width=100 height=100 alt="Cathedral Rock, Sedona, Arizona"></a>
+ <figcaption>Cathedral Rock</figcaption>
+ </figure>
+
+ <figure>
+ <a href="11.7.oak-creek.jpg"><img src="11.7.photo6thumb.jpg" width=100 height=100 alt="Oak Creek, Sedona, Arizona"></a>
+ <figcaption>Oak Creek</figcaption>
+ </figure>
+
+ </div>
+ </body>
+</html>
+
+
+
+
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.oak-creek.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.oak-creek.jpg Binary files differnew file mode 100644 index 0000000..202b674 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.oak-creek.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo1thumb.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo1thumb.jpg Binary files differnew file mode 100644 index 0000000..4822af2 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo1thumb.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo2thumb.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo2thumb.jpg Binary files differnew file mode 100644 index 0000000..6c318be --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo2thumb.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo3thumb.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo3thumb.jpg Binary files differnew file mode 100644 index 0000000..a14d215 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo3thumb.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo4thumb.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo4thumb.jpg Binary files differnew file mode 100644 index 0000000..9208138 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo4thumb.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo5thumb.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo5thumb.jpg Binary files differnew file mode 100644 index 0000000..cf423e4 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo5thumb.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo6thumb.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo6thumb.jpg Binary files differnew file mode 100644 index 0000000..10bdb89 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.photo6thumb.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.thunder-mountain.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.thunder-mountain.jpg Binary files differnew file mode 100644 index 0000000..09b5dca --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.7.ch11gallery/11.7.thunder-mountain.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.bistro.css b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.bistro.css new file mode 100644 index 0000000..f5084fc --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.bistro.css @@ -0,0 +1,88 @@ +* { box-sizing: border-box; }
+body { font-family: Verdana, Arial, sans-serif;
+ background-color: #EAEAEA;
+ margin: 0;
+}
+#wrapper {
+ color: #000066;
+ background-color: #FFFFFF;
+
+}
+header { font-family: Georgia, "Times New Roman", serif;
+ color: #00005D;
+ background-color: #869dc7;
+ background-image: url(11.8.lighthouselogo.jpg);
+ background-repeat: no-repeat;
+ margin-top: 0;
+ padding-bottom: 1em;
+ min-height: 120px;
+ height: auto;
+}
+header h1 { padding-left: 120px;
+ padding-top: 40px;
+ margin: 0;
+}
+header span { font-style: italic;
+ font-weight: bold;
+ font-size: 95%;
+ color: #FFFFFF;
+ padding-left: 30%;
+}
+nav { background-color: #00005D;
+ letter-spacing: 0.1em;
+ font-weight: bold;
+ padding-right: 2em;
+}
+nav ul { list-style-type: none;
+ margin: 0;
+}
+
+nav li { padding: 0.5em;
+ display: inline-block;
+}
+nav a { text-decoration: none;
+ display: block;
+}
+nav a:link { color: #FFFFFF; }
+nav a:visited { color: #EAEAEA; }
+nav a:hover { color: #D3DBEB;}
+main { background-color: #ffffff;
+ color: #000000;
+ padding: 10px 20px;
+
+}
+
+h2 { color: #869dc7;
+ font-family: arial, sans-serif;
+ margin: 5px;
+}
+
+
+footer {font-size:70%;
+ text-align: center;
+ padding: 10px;
+ clear: both;
+}
+header, main, nav, footer, figure, figcaption { display: block; }
+@media (min-width: 600px) {
+ #wrapper { margin: auto;
+ width: 80%; }
+ header span { padding-left: 25%; }
+}
+
+nav ul ul {
+ position: absolute;
+ background-color: #5564A0;
+ padding: 0;
+ display: none;
+}
+nav ul ul li {
+ border: 1px solid #00005D;
+ display: block;
+ width: 8em;
+ padding-left: 1em;
+ margin-left: 0;
+}
+nav li:hover ul {
+ display: block;
+}
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.breakfast.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.breakfast.html new file mode 100644 index 0000000..4464d33 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.breakfast.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Breakfast at Lighthouse Island Bistro</title>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link href="11.8.bistro.css" rel="stylesheet">
+
+</head>
+<body>
+<div id="wrapper">
+ <nav>
+ <ul>
+ <li><a href="11.8.index.html">Home</a></li>
+ <li><a href="11.8.coffee.html">Coffee</a></li>
+ <li><a href="11.8.cuisine.html">Cuisine</a></li>
+ <li><a href="11.8.directions.html">Directions</a></li>
+ <li><a href="11.8.contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ <span>the best coffee on the coast</span>
+ </header>
+ <main>
+ <h2>Breakfast Page</h2>
+ <p>This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. <p>
+ </main>
+ <footer>Copyright © 2020
+ </footer>
+ </div>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.coffee.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.coffee.html new file mode 100644 index 0000000..e387b85 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.coffee.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Island Bistro Coffee</title>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link href="11.8.bistro.css" rel="stylesheet">
+
+</head>
+<body>
+<div id="wrapper">
+ <nav>
+ <ul>
+ <li><a href="11.8.index.html">Home</a></li>
+ <li><a href="11.8.coffee.html">Coffee</a></li>
+ <li><a href="11.8.cuisine.html">Cuisine</a></li>
+ <li><a href="11.8.directions.html">Directions</a></li>
+ <li><a href="11.8.contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ <span>the best coffee on the coast</span>
+ </header>
+ <main>
+ <h2>Coffee Page</h2>
+ <p>This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. <p>
+ </main>
+ <footer>Copyright © 2020
+ </footer>
+ </div>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.contact.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.contact.html new file mode 100644 index 0000000..c958c16 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.contact.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Contact Lighthouse Island Bistro</title>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link href="11.8.bistro.css" rel="stylesheet">
+
+</head>
+<body>
+<div id="wrapper">
+ <nav>
+ <ul>
+ <li><a href="11.8.index.html">Home</a></li>
+ <li><a href="11.8.coffee.html">Coffee</a></li>
+ <li><a href="11.8.cuisine.html">Cuisine</a></li>
+ <li><a href="11.8.directions.html">Directions</a></li>
+ <li><a href="11.8.contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ <span>the best coffee on the coast</span>
+ </header>
+ <main>
+ <h2>Contact Page</h2>
+ <p>This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. <p>
+ </main>
+ <footer>Copyright © 2020
+ </footer>
+ </div>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.cuisine.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.cuisine.html new file mode 100644 index 0000000..e597a05 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.cuisine.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Island Bistro Cuisine</title>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link href="11.8.bistro.css" rel="stylesheet">
+
+</head>
+<body>
+<div id="wrapper">
+ <nav>
+ <ul>
+ <li><a href="11.8.index.html">Home</a></li>
+ <li><a href="11.8.coffee.html">Coffee</a></li>
+ <li><a href="11.8.cuisine.html">Cuisine</a></li>
+ <li><a href="11.8.directions.html">Directions</a></li>
+ <li><a href="11.8.contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ <span>the best coffee on the coast</span>
+ </header>
+ <main>
+ <h2>Cuisine Page</h2>
+ <p>This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. <p>
+ </main>
+ <footer>Copyright © 2020
+ </footer>
+ </div>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.dinner.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.dinner.html new file mode 100644 index 0000000..fd20d0b --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.dinner.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Dinner at Lighthouse Island Bistro</title>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link href="11.8.bistro.css" rel="stylesheet">
+
+</head>
+<body>
+<div id="wrapper">
+ <nav>
+ <ul>
+ <li><a href="11.8.index.html">Home</a></li>
+ <li><a href="11.8.coffee.html">Coffee</a></li>
+ <li><a href="11.8.cuisine.html">Cuisine</a></li>
+ <li><a href="11.8.directions.html">Directions</a></li>
+ <li><a href="11.8.contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ <span>the best coffee on the coast</span>
+ </header>
+ <main>
+ <h2>Dinner Page</h2>
+ <p>This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. <p>
+ </main>
+ <footer>Copyright © 2020
+ </footer>
+ </div>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.directions.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.directions.html new file mode 100644 index 0000000..aaaeb66 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.directions.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Island Bistro Directions</title>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link href="11.8.bistro.css" rel="stylesheet">
+
+</head>
+<body>
+<div id="wrapper">
+ <nav>
+ <ul>
+ <li><a href="11.8.index.html">Home</a></li>
+ <li><a href="11.8.coffee.html">Coffee</a></li>
+ <li><a href="11.8.cuisine.html">Cuisine</a></li>
+ <li><a href="11.8.directions.html">Directions</a></li>
+ <li><a href="11.8.contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ <span>the best coffee on the coast</span>
+ </header>
+ <main>
+ <h2>Directions Page</h2>
+ <p>This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. <p>
+ </main>
+ <footer>Copyright © 2020
+ </footer>
+ </div>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.index.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.index.html new file mode 100644 index 0000000..cbfd2f1 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.index.html @@ -0,0 +1,48 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Island Bistro</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <link href="11.8.bistro.css" rel="stylesheet">
+ </head>
+ <body>
+ <div id="wrapper">
+ <nav>
+ <ul>
+ <li><a href="11.8.index.html">Home</a></li>
+ <li><a href="11.8.coffee.html">Coffee</a></li>
+ <li><a href="11.8.cuisine.html">Cuisine</a>
+ <ul>
+ <li><a href="11.8.breakfast.html">Breakfast</a></li>
+ <li><a href="11.8.lunch.html">Lunch</a></li>
+ <li><a href="11.8.dinner.html">Dinner</a></li>
+ </ul>
+ </li>
+ <li><a href="11.8.directions.html">Directions</a></li>
+ <li><a href="11.8.contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ <span>the best coffee on the coast</span>
+ </header>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunch and Light Dinners</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery!</p>
+ <p>The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+ <footer>Copyright © 2020
+ </footer>
+ </div>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.lighthouselogo.jpg b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..3893f16 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.lunch.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.lunch.html new file mode 100644 index 0000000..3e2483e --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.8.mybistro/11.8.lunch.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lunch at Lighthouse Island Bistro</title>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link href="11.8.bistro.css" rel="stylesheet">
+
+</head>
+<body>
+<div id="wrapper">
+ <nav>
+ <ul>
+ <li><a href="11.8.index.html">Home</a></li>
+ <li><a href="11.8.coffee.html">Coffee</a></li>
+ <li><a href="11.8.cuisine.html">Cuisine</a></li>
+ <li><a href="11.8.directions.html">Directions</a></li>
+ <li><a href="11.8.contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ <span>the best coffee on the coast</span>
+ </header>
+ <main>
+ <h2>Lunch Page</h2>
+ <p>This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. <p>
+ </main>
+ <footer>Copyright © 2020
+ </footer>
+ </div>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.9.ch11details/11.9.index.html b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.9.ch11details/11.9.index.html new file mode 100644 index 0000000..e9f8d04 --- /dev/null +++ b/HTML/Chapter/Ch. 11 hands-on assignments/Ch11_msglm/11.9.ch11details/11.9.index.html @@ -0,0 +1,27 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Principles of Visual Design</title>
+ </head>
+ <body>
+ <h1>Principles of Visual Design</h1>
+
+ <details>
+ <summary>Repetition</summary>
+ <p>Repeat visual components throughout the design</p>
+ </details>
+ <details>
+ <summary>Contrast</summary>
+ <p>Add visual excitement and draw attention</p>
+ </details>
+ <details>
+ <summary>Proximity</summary>
+ <p>Group related items</p>
+ </details>
+ <details>
+ <summary>Alignment</summary>
+ <p>Align elements to create visual unity</p>
+ </details>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.1.heading.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.1.heading.html new file mode 100644 index 0000000..bf901fa --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.1.heading.html @@ -0,0 +1,15 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Heading Example</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>Test 1</h1>
+<h2>Test 2</h2>
+<h3>Test 3</h3>
+<h4>Test 4</h4>
+<h5>Test 5</h5>
+<h6>Test 6</h6>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.10.png b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.10.png Binary files differnew file mode 100644 index 0000000..c0c553f --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.10.png diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.11.structure.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.11.structure.html new file mode 100644 index 0000000..78d7e90 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.11.structure.html @@ -0,0 +1,29 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav>
+ <b>Home Services Contact</b>
+</nav>
+<main>
+ <h2>New Media and Web Design</h2>
+ <p>Trillium Media Design offers a comprehensive range of services to take your company's Web presence to the next level. </p>
+ <h2>Meeting Your Business Needs</h2>
+ <p>Our expert designers will listen to you as they create a website that helps to promote and grow your business. </p>
+</main>
+<footer>
+ <i><small>Copyleft 🄯 2022 msglm. Licensed under the <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC BY-SA 4.0</a>.</small></i>
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.12.casita.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.12.casita.html new file mode 100644 index 0000000..a4549b4 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.12.casita.html @@ -0,0 +1,40 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Casita Sedona</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+ <h1>Casita Sedona Bed & Breakfast</h1>
+</header>
+<nav>
+ <b>
+ Home
+ Rooms
+ Events
+ Contact
+ </b>
+</nav>
+<main>
+ <h2>Stay in the Heart of Sedona</h2>
+ <p>At Casita Sedona Bed & Breakfast you'll be close to art galleries, shops, restaurants, hiking trails, and tours. Ride the free trolley to shops and galleries.</p>
+ <h3>Luxurious Rooms </h3>
+ <p>Stay in a well-appointed room at Casita Sedona with your own fireplace, king-size bed, and balcony overlooking the red rocks.</p>
+ <div>
+ <strong>Casita Sedona Bed & Breakfast</strong><br>
+ 612 Tortuga Lane<br>
+ Sedona, AZ 86336<br>
+ 928-555-5555<br><br>
+ </div>
+</main>
+<footer>
+ <small><i>Copyleft 🄯 2022 msglm. Licensed under the <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC BY-SA 4.0</a>.</i></small>
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.13.blog.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.13.blog.html new file mode 100644 index 0000000..497798f --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.13.blog.html @@ -0,0 +1,46 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Bistro Blog</title>
+<meta charset="utf-8">
+</head>
+<body>
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <nav>
+ <b>
+ Home
+ Menu
+ Blog
+ Contact
+ </b>
+ </nav>
+ <main>
+ <section>
+ <aside><p><i>Watch for the March Madness Wrap next month!</i></p></aside>
+ <h2>Bistro Blog</h2>
+
+ <article>
+ <header><h3>Valentine Wrap</h3></header>
+ <time datetime="2022-02-01">February 1, 2022</time>
+ <p>The February special sandwich is the Valentine Wrap —
+ heart-healthy organic chicken with roasted red peppers on a
+ whole wheat wrap.</p>
+ </article>
+ <article>
+ <header><h3>New Coffee of the Day Promotion</h3></header>
+ <time datetime="2022-01-12">January 12, 2022</time>
+ <p>Enjoy the best coffee on the coast in the comfort of your
+ home. We will feature a different flavor of our gourmet,
+ locally roasted coffee each day with free bistro tastings and a
+ discount on one-pound bags.</p>
+ </article>
+ </section>
+ </main>
+ <footer>Copyleft 🄯 2022
+ </footer>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.14.anchor.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.14.anchor.html new file mode 100644 index 0000000..815ca8c --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.14.anchor.html @@ -0,0 +1,10 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Anchor Example</title>
+<meta charset="utf-8">
+</head>
+<body>
+<a href="http://webdevbasics.net">Basics of Web Design Textbook Companion</a>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/contact.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/contact.html new file mode 100644 index 0000000..8ca9ab7 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/contact.html @@ -0,0 +1,34 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design - Contact</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav>
+ <b>
+ <a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+ </b>
+</nav>
+<main>
+ <h2>Contact Trillium Media Design Today</h2>
+ <ul>
+ <li>E-mail: <a href="mailto:contact@trilliummediadesign.com">contact@trilliummediadesign.com</a></li>
+ <li>Phone: 555-555-5555</li>
+ </ul>
+</main>
+<footer>
+ <small><i>Copyleft 🄯 2022 msglm</i></small>
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/index.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/index.html new file mode 100644 index 0000000..a933d75 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/index.html @@ -0,0 +1,33 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav>
+ <b>
+ <a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+ </b>
+</nav>
+<main>
+ <h2>New Media and Web Design</h2>
+ <p>Trillium Media Design offers a comprehensive range of services to take your company's Web presence to the next level. </p>
+ <h2>Meeting Your Business Needs</h2>
+ <p>Our expert designers will listen to you as they create a website that helps to promote and grow your business.</p>
+</main>
+<footer>
+ <small><i>Copyleft 🄯 2022 msglm</i></small>
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/services.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/services.html new file mode 100644 index 0000000..68cc664 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.16/services.html @@ -0,0 +1,38 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design - Services</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav>
+ <b>
+ <a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+ </b>
+</nav>
+<main>
+ <h2>Our Services Meet Your Business Needs</h2>
+ <dl>
+ <dt><strong>Website Design</strong></dt>
+ <dd>Whether your needs are large or small, Trillium can get you on the Web!</dd>
+ <dt><strong>E-Commerce Solutions</strong></dt>
+ <dd>Trillium offers quick entry into the e-commerce marketplace.</dd>
+ <dt><strong>Search Engine Optimization</strong></dt>
+ <dd>Most people find new sites using search engines. Trillium can get your website noticed.</dd>
+</dl>
+</main>
+<footer>
+ <small><i>Copyleft 🄯 2022 msglm</i></small>
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.2.paragraph.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.2.paragraph.html new file mode 100644 index 0000000..60e1fd3 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.2.paragraph.html @@ -0,0 +1,22 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Paragraph Example</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>Test 1</h1>
+<p>Sample Test Paragraph. </p>
+<h2>Test 2</h2>
+<h3>Test 3</h3>
+<h4>Test 4</h4>
+<h5>Test 5</h5>
+<h6>Test 6</h6>
+</body>
+</html>
+
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.3.linebreak.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.3.linebreak.html new file mode 100644 index 0000000..c7098a7 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.3.linebreak.html @@ -0,0 +1,23 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Line Break Example</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>Test 1</h1>
+<p>This is a sample paragraph. <br /> This is a linebreak test.
+</p>
+<h2>Test 2</h2>
+<h3>Test 3</h3>
+<h4>Test 4</h4>
+<h5>Test 5</h5>
+<h6>Test 6</h6>
+</body>
+</html>
+
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.4.hr.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.4.hr.html new file mode 100644 index 0000000..8c95b56 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.4.hr.html @@ -0,0 +1,24 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Horizontal Rule Example</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>Heading Level 1</h1>
+<p>This is a sample paragraph. <br> Heading tags can help to make your pages more accessible and usable. It is good coding practice to use heading tags to outline the structure of your web page content.
+</p>
+<hr>
+<h2>Heading Level 2</h2>
+<h3>Heading Level 3</h3>
+<h4>Heading Level 4</h4>
+<h5>Heading Level 5</h5>
+<h6>Heading Level 6</h6>
+</body>
+</html>
+
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.5.blockquote.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.5.blockquote.html new file mode 100644 index 0000000..fa5ce63 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.5.blockquote.html @@ -0,0 +1,15 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Blockquote Example</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>The Power of the Web</h1>
+<p>According to Richard Stallman, the inventor of the GNU Operating system and founder of the Free Software Foundation, from the <a href=https://www.gnu.org/gnu/manifesto.en.html>GNU Manifesto</a>:
+</p>
+<blockquote>
+The idea of copyright did not exist in ancient times, when authors frequently copied other authors at length in works of non-fiction. This practice was useful, and is the only way many authors' works have survived even in part.
+</blockquote>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.6.ol.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.6.ol.html new file mode 100644 index 0000000..541373b --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.6.ol.html @@ -0,0 +1,16 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Heading and List</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>My Favorite Colors</h1>
+<ol>
+ <li>Blue</li>
+ <li>Green</li>
+ <li>Teal</li>
+
+</ol>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.6.ola.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.6.ola.html new file mode 100644 index 0000000..e5eaead --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.6.ola.html @@ -0,0 +1,15 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Heading and List</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>My Favorite Colors</h1>
+<ol type="A">
+ <li>Blue</li>
+ <li>Green</li>
+ <li>Teal</li>
+</ol>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.7.ul.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.7.ul.html new file mode 100644 index 0000000..87004b2 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.7.ul.html @@ -0,0 +1,15 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Heading and List</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>My Favorite Colors</h1>
+<ul>
+ <li>Blue</li>
+ <li>Teal</li>
+ <li>Red</li>
+</ul>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.8.description.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.8.description.html new file mode 100644 index 0000000..e0900e8 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.8.description.html @@ -0,0 +1,21 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Description List</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>Sample Description List</h1>
+<dl>
+ <dt>TCP</dt>
+ <dd>Transmission Control Protocol is a method (protocol) used along with the Internet Protocol (IP) to send data in the form of message units, called packets, between computers over the Internet.</dd>
+ <dt>IP</dt>
+ <dd>Internet Protocol is the method or protocol by which data is sent from one computer to another on the Internet. Each computer on the Internet is uniquely identified by an IP address.</dd>
+ <dt>FTP</dt>
+ <dd>File Transfer Protocol is a protocol used to exchange files between computers on the Internet. </dd>
+ <dt>HTTP</dt>
+ <dd>Hypertext Transfer Protocol is the protocol used for exchanging text, graphic images, sound, video, and other multimedia files on the Web.</dd>
+</dl>
+</body>
+</html>
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.9.design.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.9.design.html new file mode 100644 index 0000000..140d5cc --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/2.9.design.html @@ -0,0 +1,26 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Creative Commons</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>Web Design Steps</h1>
+ <ul>
+ <li><strong>Determine the Intended Audience</strong><br>
+ The colors, images, fonts, and layout should be tailored to the
+ <em>preferences of your audience.</em> The type of site content (reading level, amount of animation, etc.) should be appropriate for your chosen audience.</li>
+ <li><strong>Determine the Goals of the Site</strong><br>
+ Some common goals of web sites are: to be informative, to create a personal home page, to establish a corporate web presence, and to do business in e-commerce.</li>
+ <li><strong>Determine the General Content and Create a Site Map</strong><br>
+ The site map is sometimes called a Storyboard. Common organizational structures for Web sites are: hierarchical, linear, and random.</li>
+ <li><strong>Sketch a Tentative Page Layout</strong><br>
+ <em>Be consistent</em> in your overall layout — color, typefaces, logo location,
+ navigation bar, etc. Plan your Home Page Layout to avoid scrolling.
+ Plan your Content Page Layout to be consistent, with easy navigation.</li>
+</ul>
+
+
+<p><small>Copyleft 🄯 2022 msglm. Licensed under the <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC BY-SA 4.0</a>.</small></p>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/block.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/block.html new file mode 100644 index 0000000..073816e --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/block.html @@ -0,0 +1,21 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Block Anchor</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+<a href="http://www.w3.org/TR/html-markup">
+<h1>HTML5 Reference</h1>
+<p>Bookmark this site for a handy HTML5 reference.</p>
+</a>
+</header>
+<main>
+<p>
+Website content goes here
+</p>
+</main>
+
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/em.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/em.html new file mode 100644 index 0000000..7213b6f --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/em.html @@ -0,0 +1,15 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Blockquote Example</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>The Power of the Web</h1>
+<p>According to Tim Berners-Lee, the inventor of the World Wide Web, at https://www.w3.org/Press/IPO-announce:
+</p>
+<blockquote>
+The power of the Web is in its universality. <em>Access by everyone</em> regardless of disability is an essential aspect.
+</blockquote>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/contact.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/contact.html new file mode 100644 index 0000000..a89283d --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/contact.html @@ -0,0 +1,34 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design - Contact</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav>
+ <b>
+ <a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+ </b>
+</nav>
+<main>
+ <h2>Contact Trillium Media Design Today</h2>
+ <ul>
+ <li>E-mail: contact@trilliummediadesign.com</li>
+ <li>Phone: 555-555-5555</li>
+ </ul>
+</main>
+<footer>
+ <small><i>Copyleft 🄯 2022 msglm</i></small>
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/index.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/index.html new file mode 100644 index 0000000..a933d75 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/index.html @@ -0,0 +1,33 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav>
+ <b>
+ <a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+ </b>
+</nav>
+<main>
+ <h2>New Media and Web Design</h2>
+ <p>Trillium Media Design offers a comprehensive range of services to take your company's Web presence to the next level. </p>
+ <h2>Meeting Your Business Needs</h2>
+ <p>Our expert designers will listen to you as they create a website that helps to promote and grow your business.</p>
+</main>
+<footer>
+ <small><i>Copyleft 🄯 2022 msglm</i></small>
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/services.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/services.html new file mode 100644 index 0000000..68cc664 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/mypractice/services.html @@ -0,0 +1,38 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design - Services</title>
+<meta charset="utf-8">
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav>
+ <b>
+ <a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+ </b>
+</nav>
+<main>
+ <h2>Our Services Meet Your Business Needs</h2>
+ <dl>
+ <dt><strong>Website Design</strong></dt>
+ <dd>Whether your needs are large or small, Trillium can get you on the Web!</dd>
+ <dt><strong>E-Commerce Solutions</strong></dt>
+ <dd>Trillium offers quick entry into the e-commerce marketplace.</dd>
+ <dt><strong>Search Engine Optimization</strong></dt>
+ <dd>Most people find new sites using search engines. Trillium can get your website noticed.</dd>
+</dl>
+</main>
+<footer>
+ <small><i>Copyleft 🄯 2022 msglm</i></small>
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/starter.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/starter.html new file mode 100644 index 0000000..9e7949d --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/starter.html @@ -0,0 +1,36 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Bistro</title>
+<meta charset="utf-8">
+</head>
+<body>
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <nav>
+ <b>
+ Home
+ Menu
+ Blog
+ Contact
+ </b>
+ </nav>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery!</p>
+ <p>The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+ <footer>Copyright © 2022
+ </footer>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/starter1.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/starter1.html new file mode 100644 index 0000000..1e45a3d --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/starter1.html @@ -0,0 +1,56 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Favorite Sites</title>
+<meta charset="utf-8">
+</head>
+<body>
+<h1>Favorite Sites</h1>
+<ul>
+ <li>Hobbies</li>
+ <li>HTML5</li>
+ <li>CSS</li>
+</ul>
+<h2>Hobbies</h2>
+ <dl>
+ <dt>Running</dt>
+ <dd><a href="http://www.runningnetwork.com">http://www.runningnetwork.com</a></dd>
+ <dt>Cooking</dt>
+ <dd><a href="http://www.cooking.com">http://www.cooking.com</a></dd>
+ </dl>
+<h2>HTML5</h2>
+ <dl>
+ <dt>Elements</dt>
+ <dd><a href="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a></dd>
+ <dt>Tutorials</dt>
+ <dd><a href="http://www.w3schools.com/html5">http://www.w3schools.com/html5</a></dd>
+ </dl>
+<h2>CSS</h2>
+ <dl>
+ <dt>W3C Cascading Style Sheets</dt>
+ <dd><a href="http://www.w3.org/Style/CSS">http://www.w3.org/Style/CSS</a></dd>
+ <dt>Tutorials</dt>
+ <dd><a href="http://www.w3schools.com/css3">http://www.w3schools.com/css3</a></dd>
+ </dl>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<h2>Back to Top</h2>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/target.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/target.html new file mode 100644 index 0000000..b91aef0 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/target.html @@ -0,0 +1,10 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Anchor Example</title>
+<meta charset="utf-8">
+</head>
+<body>
+<a href="http://webdevbasics.net" target="_blank">Basics of Web Design Textbook Companion</a>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/template.html b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/template.html new file mode 100644 index 0000000..6a48229 --- /dev/null +++ b/HTML/Chapter/Ch. 2 hands-on assignments/Ch2_msglm/template.html @@ -0,0 +1,9 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Page Title Goes Here</title>
+</head>
+<body>
+
+</body>
+</html>
\ No newline at end of file diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.1.inline.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.1.inline.html new file mode 100644 index 0000000..4de4e5f --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.1.inline.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <title>Inline CSS Example</title> +</head> +<meta charset="utf-8"> +<body style="background-color:#F5F5F5;color:#008080;"> + <h1 style="background-color:#008080;color:#F5F5F5;">Inline CSS</h1> + <p>This paragraph inherits the styles applied to the body tag.</p> + <!--This is exactly what the book requests, it's so simple that no differentiation or style could really be done--> +</body> +</html> diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.1.inline2.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.1.inline2.html new file mode 100644 index 0000000..bef46cd --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.1.inline2.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <title>Inline CSS Example</title> +</head> +<meta charset="utf-8"> +<body> + <h1 style="background-color:#008080;color:#F5F5F5;">Inline CSS</h1> + <p>This paragraph inherits the styles applied to the body tag.</p> + <p style="color:#333333">This paragraph overrides the text color style applied to the body tag.</p> +<!--This is so simple that any deviation would result in penalties. Please do not consider this copied--> +</body> +</html> diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.2.embedded.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.2.embedded.html new file mode 100644 index 0000000..cb14841 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.2.embedded.html @@ -0,0 +1,53 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design</title>
+<meta charset="utf-8">
+<style>
+body {
+ background-color: #F9F0FE;
+ color: #5B3256;
+}
+h1 {
+ background-color: #833B83;
+ color: #F9F0FE;
+}
+h2 {
+ background-color: #AD77C3;
+ color: #F9F0FE;
+}
+<!--This is exactly what was asked, please do not consider this copied.-->
+</style>
+
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav><a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+</nav>
+<main>
+ <h2>New Media and Web Design</h2>
+ <p>Trillium Media Design will bring your company’s Web presence to the next level. We offer a comprehensive range of services:</p>
+ <ul>
+ <li>Website Design</li>
+ <li>Interactive Animation</li>
+ <li>E-Commerce Solutions</li>
+ <li>Usability Studies</li>
+ <li>Search Engine Optimization</li>
+ </ul>
+ <h2>Meeting Your Business Needs</h2>
+ <p>Our expert designers will listen to you as they create a website that helps to promote and grow your business.</p>
+</main>
+<footer>
+ Copyright © Your Name Here
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.4.classid.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.4.classid.html new file mode 100644 index 0000000..b959488 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.4.classid.html @@ -0,0 +1,62 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design</title>
+<meta charset="utf-8">
+<style>
+<!--The Book requests this exactly! This is not copied!-->
+body {
+ background-color: #F9F0FE;
+ color: #5B3256;
+}
+h1 {
+ background-color: #833B83;
+ color: #F9F0FE;
+}
+h2 {
+ background-color: #AD77C3;
+ color: #F9F0FE;
+}
+
+.feature {
+ color: #B33939;
+}
+
+#new {
+ color: #227093;
+}
+<!--Comment for differentiation purposes-->
+</style>
+
+</head>
+<body>
+<header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav><a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+</nav>
+<main>
+ <h2>New Media and Web Design</h2>
+ <p>Trillium Media Design will bring your company’s Web presence to the next level. We offer a comprehensive range of services:</p>
+ <ul>
+ <li>Website Design</li>
+ <li>Interactive Animation</li>
+ <li>E-Commerce Solutions</li>
+ <li class="feature">Usability Studies</li>
+ <li class="feature">Search Engine Optimization</li>
+ </ul>
+ <h2>Meeting Your Business Needs</h2>
+ <p id="new">Our expert designers will listen to you as they create a website that helps to promote and grow your business.</p>
+</main>
+<footer>
+ Copyright © Your Name Here
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.5.span.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.5.span.html new file mode 100644 index 0000000..6896758 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.5.span.html @@ -0,0 +1,59 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design</title>
+<meta charset="utf-8">
+<style>
+body {
+ background-color: #F9F0FE;
+ color: #5B3256;
+}
+h1 {
+ background-color: #833B83;
+ color: #F9F0FE;
+}
+h2 {
+ background-color: #AD77C3;
+ color: #F9F0FE;
+}
+span {
+ background-color: black;
+}
+span h1 {
+ color: yellow;
+}
+<!--Comment for differentiation purposes-->
+</style>
+
+</head>
+<body>
+<header>
+<span><h1>Trillium Media Design</h1><span>
+</header>
+<nav><a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+</nav>
+<main>
+ <h2>New Media and Web Design</h2>
+ <p><span>Trillium Media Design</span> will bring your company’s Web presence to the next level. <span>We offer a comprehensive range of services:</span></p>
+ <ul>
+ <li>Website Design</li>
+ <li>Interactive Animation</li>
+ <li>E-Commerce Solutions</li>
+ <li>Usability Studies</li>
+ <li>Search Engine Optimization</li>
+ </ul>
+ <h2>Meeting Your Business Needs</h2>
+ <p>Our expert designers will listen to you as they create a website that helps to promote and grow your business.</p>
+</main>
+<footer>
+ Copyright © Your Name Here
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.8.validation.png b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.8.validation.png Binary files differnew file mode 100644 index 0000000..eff3802 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/4.8.validation.png diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/CSS/4.3.color.css b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/CSS/4.3.color.css new file mode 100644 index 0000000..0e4f9ac --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/CSS/4.3.color.css @@ -0,0 +1,6 @@ +/* Ideally these colors shouldn't be as eye-bleachingly bright. Also, since these colors are the "purest form" of colors, css aliases like "blue" and "white" should be used.*/
+
+body {
+ background-color: #0000FF;
+ color: #FFFFFF;
+}
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/CSS/4.3.external.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/CSS/4.3.external.html new file mode 100644 index 0000000..9f7df07 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/CSS/4.3.external.html @@ -0,0 +1,12 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>External Styles</title>
+<meta charset="utf-8">
+<!--Changing CSS name is a requirement for this to function given the new naming scheme-->
+<link rel="stylesheet" href="4.3.color.css">
+</head>
+<body>
+ <p>This web page uses an external style sheet.</p>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/mycascade/4.7.index.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/mycascade/4.7.index.html new file mode 100644 index 0000000..6be2f7f --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/mycascade/4.7.index.html @@ -0,0 +1,18 @@ +<!--I just discovered my editor has an auto-indentor for html. Never realized it supported HTML/XML as well. I guess everything I make will have proper indentations too.-->
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>The Cascade in Action</title>
+ <meta charset="utf-8">
+ <link rel="stylesheet" href="4.7.site.css">
+ <style>
+body {
+ color: #0000FF;
+}
+ </style>
+ </head>
+ <body>
+ <p>this paragraph applies the external and embedded styles — note hwo the blue text color that is configured in the embedded styles takes precedence over the black text color configured in the external stylesheet.</p>
+ <p style="color: #FF0000">inline styles configure this paragraph to have red text and take precedence over the embedded and external styles.</p>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/mycascade/4.7.site.css b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/mycascade/4.7.site.css new file mode 100644 index 0000000..b9f18c5 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/mycascade/4.7.site.css @@ -0,0 +1,4 @@ +body {
+ background-color: #FFFFCC; /*Now this is a good looking color!*/
+ color: #000000;
+}
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.index.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.index.html new file mode 100644 index 0000000..6c6f4f4 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.index.html @@ -0,0 +1,38 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design</title>
+<meta charset="utf-8">
+<link rel="stylesheet" href="4.6.trillium.css">
+</head>
+<body>
+<header>
+<span><h1>Trillium Media Design</h1><span>
+</header>
+<nav><a href="4.6.index.html">Home</a>
+ <a href="4.6.services.html">Services</a>
+ <a href="contact.html">Contact</a>
+</nav>
+<main>
+ <h2>New Media and Web Design</h2>
+ <p><span>Trillium Media Design</span> will bring your company’s Web presence to the next level. <span>We offer a comprehensive range of services:</span></p>
+ <ul>
+ <li>Website Design</li>
+ <li>Interactive Animation</li>
+ <li>E-Commerce Solutions</li>
+ <li>Usability Studies</li>
+ <li>Search Engine Optimization</li>
+ </ul>
+ <h2>Meeting Your Business Needs</h2>
+ <p>Our expert designers will listen to you as they create a website that helps to promote and grow your business.</p>
+</main>
+<footer>
+ Copyright © Your Name Here
+</footer>
+</body>
+</html>
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.services.html b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.services.html new file mode 100644 index 0000000..d9d1804 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.services.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Trillium Media Design</title>
+<meta charset="utf-8">
+<link rel="stylesheet" href="4.6.trillium.css">
+</head>
+<body>
+ <header>
+ <h1>Trillium Media Design</h1>
+</header>
+<nav><a href="index.html">Home</a>
+ <a href="services.html">Services</a>
+ <a href="contact.html">Contact</a>
+</nav>
+<main>
+ <h2>Our Services Meet Your Business Needs</h2>
+ <dl>
+ <dt><strong>Website Design</strong></dt>
+ <dd>Whether your needs are large or small, Trillium can get your company on the Web!</dd>
+ <dt><strong>Interactive Animation</strong></dt>
+ <dd>Multimedia training and marketing animations are our specialty.</dd>
+ <dt><strong>E-Commerce Solutions</strong></dt>
+ <dd>Trillium offers quick and easy entry into the e-commerce marketplace.</dd>
+ <dt><strong>Usability Studies</strong></dt>
+ <dd>Trillium can assess the usability of your current site and suggest improvements.</dd>
+ <dt><strong>Search Engine Optimization</strong></dt>
+ <dd>Most people find websites using search engines. Trillium can help you get your site noticed.</dd>
+ </dl>
+</main>
+<footer>
+ Copyright © Your Name Here
+</footer>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.trillium.css b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.trillium.css new file mode 100644 index 0000000..c260a61 --- /dev/null +++ b/HTML/Chapter/Ch. 4 Hands-on assignments/Ch4_msglm/trillium/4.6.trillium.css @@ -0,0 +1,18 @@ +body { + background-color: #F9F0FE; + color: #5B3256; +} +h1 { + background-color: #833B83; + color: #F9F0FE; +} +h2 { + background-color: #AD77C3; + color: #F9F0FE; +} +span { + background-color: black; +} +span h1 { + color: yellow; +} diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/5.7.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/5.7.index.html new file mode 100644 index 0000000..a8826b3 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/5.7.index.html @@ -0,0 +1,72 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>KayakDoorCounty.net</title>
+ <style>
+body {
+ background-image: url(background.jpg);
+ font-family: Verdana, Arial, sans-serif;
+}
+
+header {
+ background-color: #000033;
+ background-image: url(headerbackblue.jpg);
+ background-position: right;
+ background-repeat: no-repeat;
+ color: #FFFF99;
+ line-height: 400%;
+ text-indent: 1em;
+}
+
+h1, h2, h3 {
+ font-family:Georgia, 'Times New Roman', serif;
+}
+
+nav {
+ font-weight: bold;
+ font-size: 1.5em;
+}
+
+nav a {
+ text-decoration:: none;
+}
+
+p {
+ text-indent: 2em;
+}
+
+footer {
+ text-align: center;
+ font-style: italic;
+ font-size: .80em;
+}
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>KayakDoorCounty.net</h1>
+ </header>
+ <nav>
+ <a href="index.html">Home</a>
+ <a href="tours.html">Tours</a>
+ <a href="reservations.html">Reservations</a>
+ <a href="contact.html">Contact</a>
+ </nav>
+ <main>
+ <h2>Your next adventure is only a paddle away ....</h2>
+ <img src="hero.jpg" alt="tour guide paddling a kayak" width="500" height="350">
+
+ <p>Take a guided kayak tour while you explore the shoreline of scenic Door County. </p>
+ <h3>Featured tours this week:</h3>
+ <ul>
+ <li>Cana Island</li>
+ <li>Mink River</li>
+ <li>Europe Lake</li>
+ </ul>
+ </main>
+ <footer>
+ Copyright © KayakDoorCounty.net
+ </footer>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/background.jpg b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/background.jpg Binary files differnew file mode 100644 index 0000000..5d33e9e --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/background.jpg diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/headerbackblue.jpg b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/headerbackblue.jpg Binary files differnew file mode 100644 index 0000000..6ae2660 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/headerbackblue.jpg diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/hero.jpg b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/hero.jpg Binary files differnew file mode 100644 index 0000000..363e638 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/ch5practice/hero.jpg diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.4.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.4.index.html new file mode 100644 index 0000000..b37bbcf --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.4.index.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Coffee House</title>
+ <meta charset="utf-8">
+ <style>
+body { font-size: 150%;
+ font-family: Arial;
+ color: #992435;
+ background-image: url(coffeepour.jpg);
+ background-repeat: no-repeat;
+ background: url(coffee.gif) no-repeat left bottom,
+ url(coffeepour.jpg) no-repeat;
+}
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Coffee House</h1>
+ </header>
+ <main>
+ <p>Enjoy a great cup of coffee<br>or tea at Coffee House!</p>
+ <ul>
+ <li>Specialty Coffee and Tea</li>
+ <li>Gluten-free Pastries</li>
+ <li>Organic Salads</li>
+ </ul>
+ </main>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.5.coffeepour.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.5.coffeepour.html new file mode 100644 index 0000000..4de880a --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.5.coffeepour.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Coffee House</title>
+ <meta charset="utf-8">
+ <style>
+body { font-size: 150%;
+ font-family: Arial;
+ color: #992435;
+ background-image: url(coffeepour.gif);
+ background: url(coffee.gif) no-repeat left bottom,
+ url(coffeeback.gif) no-repeat,
+ url(coffeepour.gif) no-repeat;
+}
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Coffee House</h1>
+ </header>
+ <main>
+ <p>Enjoy a great cup of coffee<br>or tea at Coffee House!</p>
+ <ul>
+ <li>Specialty Coffee and Tea</li>
+ <li>Gluten-free Pastries</li>
+ <li>Organic Salads</li>
+ </ul>
+ </main>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.8.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.8.index.html new file mode 100644 index 0000000..0257d60 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/5.8.index.html @@ -0,0 +1,39 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Coffee House</title>
+ <meta charset="utf-8">
+ <style>
+body { font-size: 150%;
+ font-family: Arial;
+ color: #992435;
+ background-image: url(coffeepour.jpg);
+ background-repeat: no-repeat;
+ background: url(coffee.gif) no-repeat left bottom,
+ url(coffeepour.jpg) no-repeat;
+}
+ul {
+ list-style-image: url(marker.gif);
+}
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Coffee House</h1>
+ </header>
+ <main>
+ <p>Enjoy a great cup of coffee<br>or tea at Coffee House!</p>
+ <ul>
+ <li>Specialty Coffee and Tea</li>
+ <li>Gluten-free Pastries</li>
+ <li>Organic Salads</li>
+ </ul>
+ </main>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffee.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffee.gif Binary files differnew file mode 100644 index 0000000..de749d0 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffee.gif diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeeback.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeeback.gif Binary files differnew file mode 100644 index 0000000..8026552 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeeback.gif diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeepour.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeepour.gif Binary files differnew file mode 100644 index 0000000..2981542 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeepour.gif diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeepour.jpg b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeepour.jpg Binary files differnew file mode 100644 index 0000000..4b031f0 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/coffeepour.jpg diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/marker.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/marker.gif Binary files differnew file mode 100644 index 0000000..7031505 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/coffee5/marker.gif diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/figure/5.10.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/figure/5.10.index.html new file mode 100644 index 0000000..c7a8a2f --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/figure/5.10.index.html @@ -0,0 +1,21 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Tropical Island</title>
+ <meta charset="utf-8">
+ <style>
+figcaption {
+ font-weight: bold;
+ font-style: italic;
+ font-family: Papyrus, fantasy;
+ font-size: 1.5em;
+}
+ </style>
+ </head>
+ <body>
+ <figure>
+ <img src=myisland.jpg alt="Tropical Island" height=480 width=640>
+ <figcaption>Tropical Island Getaway</figcaption>
+ </figure>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/figure/myisland.jpg b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/figure/myisland.jpg Binary files differnew file mode 100644 index 0000000..5d90394 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/figure/myisland.jpg diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.1.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.1.index.html new file mode 100644 index 0000000..9070c7d --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.1.index.html @@ -0,0 +1,36 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>KayakDoorCounty.net</title>
+ <style>
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <img src=kayakdc.gif>
+ </header>
+ <nav>
+ <a href="index.html">Home</a>
+ <a href="tours.html">Tours</a>
+ <a href="reservations.html">Reservations</a>
+ <a href="contact.html">Contact</a>
+ </nav>
+ <main>
+ <h2>Your next adventure is only a paddle away ....</h2>
+ <img height=350 width=500 alt="KayakDorCountry.net" src=hero.jpg>
+
+ <p>Take a guided kayak tour while you explore the shoreline of scenic Door County. </p>
+ <h3>Featured tours this week:</h3>
+ <ul>
+ <li>Cana Island</li>
+ <li>Mink River</li>
+ <li>Europe Lake</li>
+ </ul>
+ </main>
+ <footer>
+ <small><i>Copyright © KayakDoorCounty.net</i></small>
+ </footer>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.2.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.2.index.html new file mode 100644 index 0000000..26cf162 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.2.index.html @@ -0,0 +1,45 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>KayakDoorCounty.net</title>
+ <style>
+#bar{
+ background-color:#152420;
+}
+ </style>
+ </head>
+ <body>
+ <header>
+ <img src=kayakdc.gif>
+ </header>
+ <nav id=bar>
+ <a href="index.html"><img src=home.gif alt=home width=90 height=35></a>
+ <a href="tours.html"><img src=tours.gif alt=tours width=90 height=35></a>
+ <a href="reservations.html"><img src=reservations.gif alt=reservations width=190 height=35></a>
+ <a href="contact.html"><img src=contact.gif alt=contact width=130 height=35></a>
+ </nav>
+ <main>
+ <h2>Your next adventure is only a paddle away ....</h2>
+ <img height=350 width=500 alt="KayakDorCountry.net" src=hero.jpg>
+
+ <p>Take a guided kayak tour while you explore the shoreline of scenic Door County. </p>
+ <h3>Featured tours this week:</h3>
+ <ul>
+ <li>Cana Island</li>
+ <li>Mink River</li>
+ <li>Europe Lake</li>
+ </ul>
+ </main>
+ <footer>
+ <nav>
+ <a href="index.html">Home</a>
+ <a href="tours.html">Tours</a>
+ <a href="reservations.html">Reservations</a>
+ <a href="contact.html">Contact</a>
+ </nav>
+
+ <small><i>Copyright © KayakDoorCounty.net</i></small>
+ </footer>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.3.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.3.index.html new file mode 100644 index 0000000..e7bae4d --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.3.index.html @@ -0,0 +1,49 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>KayakDoorCounty.net</title>
+ <style>
+#bar{
+ background-color:#152420;
+}
+main {
+ background-image: url(heroback.jpg);
+ background-repeat: no-repeat;
+}
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <img src=kayakdc.gif>
+ </header>
+ <nav id=bar>
+ <a href="index.html"><img src=home.gif alt=home width=90 height=35></a>
+ <a href="tours.html"><img src=tours.gif alt=tours width=90 height=35></a>
+ <a href="reservations.html"><img src=reservations.gif alt=reservations width=190 height=35></a>
+ <a href="contact.html"><img src=contact.gif alt=contact width=130 height=35></a>
+ </nav>
+ <main>
+ <h2>Your next adventure is only a paddle away ....</h2>
+
+ <p>Take a guided kayak tour while you explore the shoreline of scenic Door County. </p>
+ <h3>Featured tours this week:</h3>
+ <ul>
+ <li>Cana Island</li>
+ <li>Mink River</li>
+ <li>Europe Lake</li>
+ </ul>
+ </main>
+ <footer>
+ <nav>
+ <a href="index.html">Home</a>
+ <a href="tours.html">Tours</a>
+ <a href="reservations.html">Reservations</a>
+ <a href="contact.html">Contact</a>
+ </nav>
+
+ <small><i>Copyright © KayakDoorCounty.net</i></small>
+ </footer>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.6.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.6.index.html new file mode 100644 index 0000000..e57c2ad --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.6.index.html @@ -0,0 +1,58 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>KayakDoorCounty.net</title>
+ <style>
+#bar{
+ background-color:#152420;
+}
+
+body {
+ font-family: Verdana, Arial, sans-serif;
+}
+
+h2, h3 {
+ font-family: Georgia, 'Times New Roman', serif;
+}
+
+main {
+ background-image: url(heroback.jpg);
+ background-repeat: no-repeat;
+}
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <img src=kayakdc.gif>
+ </header>
+ <nav id=bar>
+ <a href="index.html"><img src=home.gif alt=home width=90 height=35></a>
+ <a href="tours.html"><img src=tours.gif alt=tours width=90 height=35></a>
+ <a href="reservations.html"><img src=reservations.gif alt=reservations width=190 height=35></a>
+ <a href="contact.html"><img src=contact.gif alt=contact width=130 height=35></a>
+ </nav>
+ <main>
+ <h2>Your next adventure is only a paddle away ....</h2>
+
+ <p>Take a guided kayak tour while you explore the shoreline of scenic Door County. </p>
+ <h3>Featured tours this week:</h3>
+ <ul>
+ <li>Cana Island</li>
+ <li>Mink River</li>
+ <li>Europe Lake</li>
+ </ul>
+ </main>
+ <footer>
+ <nav>
+ <a href="index.html">Home</a>
+ <a href="tours.html">Tours</a>
+ <a href="reservations.html">Reservations</a>
+ <a href="contact.html">Contact</a>
+ </nav>
+
+ <small><i>Copyright © KayakDoorCounty.net</i></small>
+ </footer>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.9.index.html b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.9.index.html new file mode 100644 index 0000000..4806c6c --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/5.9.index.html @@ -0,0 +1,50 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>KayakDoorCounty.net</title>
+ <link rel=icon href=favicon.ico type="image/x-icon">
+ <style>
+#bar{
+ background-color:#152420;
+}
+main {
+ background-image: url(heroback.jpg);
+ background-repeat: no-repeat;
+}
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <img src=kayakdc.gif>
+ </header>
+ <nav id=bar>
+ <a href="index.html"><img src=home.gif alt=home width=90 height=35></a>
+ <a href="tours.html"><img src=tours.gif alt=tours width=90 height=35></a>
+ <a href="reservations.html"><img src=reservations.gif alt=reservations width=190 height=35></a>
+ <a href="contact.html"><img src=contact.gif alt=contact width=130 height=35></a>
+ </nav>
+ <main>
+ <h2>Your next adventure is only a paddle away ....</h2>
+
+ <p>Take a guided kayak tour while you explore the shoreline of scenic Door County. </p>
+ <h3>Featured tours this week:</h3>
+ <ul>
+ <li>Cana Island</li>
+ <li>Mink River</li>
+ <li>Europe Lake</li>
+ </ul>
+ </main>
+ <footer>
+ <nav>
+ <a href="index.html">Home</a>
+ <a href="tours.html">Tours</a>
+ <a href="reservations.html">Reservations</a>
+ <a href="contact.html">Contact</a>
+ </nav>
+
+ <small><i>Copyright © KayakDoorCounty.net</i></small>
+ </footer>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/contact.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/contact.gif Binary files differnew file mode 100644 index 0000000..e620a5b --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/contact.gif diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/favicon.ico b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/favicon.ico Binary files differnew file mode 100644 index 0000000..c22c6bb --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/favicon.ico diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/hero.jpg b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/hero.jpg Binary files differnew file mode 100644 index 0000000..363e638 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/hero.jpg diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/heroback.jpg b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/heroback.jpg Binary files differnew file mode 100644 index 0000000..a72a7a0 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/heroback.jpg diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/home.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/home.gif Binary files differnew file mode 100644 index 0000000..7e0eab6 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/home.gif diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/kayakdc.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/kayakdc.gif Binary files differnew file mode 100644 index 0000000..8fd7564 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/kayakdc.gif diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/reservations.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/reservations.gif Binary files differnew file mode 100644 index 0000000..c2189a2 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/reservations.gif diff --git a/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/tours.gif b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/tours.gif Binary files differnew file mode 100644 index 0000000..807e4e8 --- /dev/null +++ b/HTML/Chapter/Ch. 5 Hands-On Assignments/Ch5_msglm/kayaykch5/tours.gif diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/6.2.boxborder.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/6.2.boxborder.html new file mode 100644 index 0000000..5adac06 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/6.2.boxborder.html @@ -0,0 +1,27 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Examples of the Box Model</title>
+ <meta charset="utf-8">
+ <style>
+body { background-color: #FFFFFF;
+}
+h1 { background-color: #D1ECFF;
+ padding-left: 60px;
+ border-bottom: 3px ridge #330000;
+}
+#box { background-color: #74C0FF;
+ margin-left: 60px;
+ padding: 5px 10px;
+ border: 1px solid #000000;
+}
+ </style>
+ </head>
+ <body>
+ <h1>Examples of the Box Model</h1>
+ <div id="box">HTML elements display as boxes on web pages. This div element is configured to have a blue background.</div>
+
+
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/6.3.index.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/6.3.index.html new file mode 100644 index 0000000..b9005c1 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/6.3.index.html @@ -0,0 +1,44 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Bistro</title>
+ <meta charset="utf-8">
+ <style>
+body { background-image: url(background.jpg);
+ font-family: Arial, Verdana, sans-serif;
+}
+h1 {
+ background-image: url(lighthouselogo.jpg);
+ background-repeat: no-repeat;
+ height: 100px;
+ width: 700px;
+ font-size: 3em;
+ padding-left: 150px;
+ padding-top: 30px;
+ border-radius: 15px;
+}
+h2 { color: #000033;
+ font-family: arial, sans-serif;
+}
+footer { font-size: .80em;
+ font-style: italic;
+}
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <nav><a href="index.html">Home</a> <a href="menu.html">Menu</a> <a href="directions.html">Directions</a> <a href="contact.html">Contact</a>
+ </nav>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh baked, organic pastries, including fresh fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole grain breads with locally grown salad, fruit, and vegetables. </p>
+ <footer>
+ Copyright © Your Name Here
+ </footer>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/background.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/background.jpg Binary files differnew file mode 100644 index 0000000..bd76938 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/background.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/lighthouselogo.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..4db3869 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/bistroch6/lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/6.4.index.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/6.4.index.html new file mode 100644 index 0000000..007aad5 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/6.4.index.html @@ -0,0 +1,56 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Bistro</title>
+ <meta charset="utf-8">
+ <style>
+body { background-image: url(background.jpg);
+ font-family: Arial, Verdana, sans-serif;
+}
+h1 {
+ background-image: url(lighthouselogo.jpg);
+ background-repeat: no-repeat;
+ height: 100px;
+ font-size: 3em;
+ background-color: #9DB3DC;
+ margin-top: 0;
+ padding-left: 150px;
+ padding-top: 30px;
+ border-radius: 15px;
+}
+h2 { color: #000033;
+ font-family: arial, sans-serif;
+}
+footer { font-size: .80em;
+ font-style: italic;
+}
+
+#container {
+ background-color: #FFFFFF;
+ padding: 2em;
+ margin-left: auto; margin-right: auto;
+ width: 80%;
+ min-width: 800px;
+}
+
+ </style>
+ </head>
+ <body>
+ <div id=container>
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <nav><a href="index.html">Home</a> <a href="menu.html">Menu</a> <a href="directions.html">Directions</a> <a href="contact.html">Contact</a>
+ </nav>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh baked, organic pastries, including fresh fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole grain breads with locally grown salad, fruit, and vegetables. </p>
+ <footer>
+ Copyright © Your Name Here
+ </footer>
+ </div>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/background.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/background.jpg Binary files differnew file mode 100644 index 0000000..bd76938 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/background.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/lighthouselogo.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..4db3869 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/centerch6/lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/coffeech6/6.1.index.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/coffeech6/6.1.index.html new file mode 100644 index 0000000..06143b7 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/coffeech6/6.1.index.html @@ -0,0 +1,66 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Coffee House</title>
+<meta charset="utf-8">
+<style>
+body { color: #221811;
+ font-family: Verdana, Arial, sans-serif;
+ width: 80%;
+ min-width: 750px;
+
+}
+header { background-color: #D2B48C;
+ background-image: url(coffeelogo.jpg);
+ background-repeat: no-repeat;
+}
+
+h1 { text-indent: 4em;
+ font-size: 4em;
+ height: 150px;
+ line-height: 220%;
+
+}
+
+nav { font-weight: bold;
+ text-indent: 1em;
+ font-size: 2em;
+}
+nav a { color: #804D33; text-decoration: none; }
+
+#wrapper { background-color: #FCEBB6; }
+</style>
+</head>
+<body>
+<div id="wrapper">
+<header>
+<h1>Coffee House</h1>
+</header>
+<nav>
+<a href="index.html">Home</a>
+<a href="menu.html">Menu</a>
+<a href="music.html">Music</a>
+<a href="jobs.html">Jobs</a>
+</nav>
+<main>
+<h2>Follow the Winding Road to Coffee House</h2>
+<h3>Coffee House features:</h3>
+<ul>
+ <li>Specialty Coffee and Tea</li>
+ <li>Bagels, Muffins, and Gluten-free Pastries</li>
+ <li>Organic Salads</li>
+ <li>Music and Poetry Readings</li>
+ <li>Open Mic Night</li>
+</ul>
+<div>
+12010 Garrett Bay Road<br>
+Ellison Bay, WI 54210<br>
+888-555-5555<br><br>
+</div>
+</main>
+<footer>
+Copyright © Coffee House<br>
+</footer>
+</div>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/coffeech6/coffeelogo.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/coffeech6/coffeelogo.jpg Binary files differnew file mode 100644 index 0000000..3c302c7 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/coffeech6/coffeelogo.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/gradientch6/6.10.index.linear.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/gradientch6/6.10.index.linear.html new file mode 100644 index 0000000..18f2ec5 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/gradientch6/6.10.index.linear.html @@ -0,0 +1,23 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Practice with Gradients</title>
+ <meta charset="utf-8">
+ <style>
+body {
+ background-color: #DA70D6;
+ background-image: linear-gradient(to bottom, #FFFFFF, #DA70D6);
+ background-repeat: no-repeat;
+}
+ </style>
+ </head>
+ <body>
+ <h1>Linear Gradient</h1>
+ <p>This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content.</p>
+ <h2>Heading 2</h2>
+ <p>This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content.</p>
+ <h2>Heading 2</h2>
+ <p>This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content.</p>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/gradientch6/6.10.index.radial.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/gradientch6/6.10.index.radial.html new file mode 100644 index 0000000..6cd5e767 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/gradientch6/6.10.index.radial.html @@ -0,0 +1,23 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Practice with Gradients</title>
+ <meta charset="utf-8">
+ <style>
+body {
+ background-color: #DA70D6;
+ background-image: radial-gradient(#FFFFFF, #DA70D6);
+ background-repeat: no-repeat;
+}
+ </style>
+ </head>
+ <body>
+ <h1>Linear Gradient</h1>
+ <p>This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content.</p>
+ <h2>Heading 2</h2>
+ <p>This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content.</p>
+ <h2>Heading 2</h2>
+ <p>This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content. This is content.</p>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/6.6.index.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/6.6.index.html new file mode 100644 index 0000000..c25804b --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/6.6.index.html @@ -0,0 +1,87 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>KayakDoorCounty.net</title>
+ <style>
+body { background-color: #FFFFDD;
+ font-family: Verdana, Arial, sans-serif;
+}
+header { background-color: #000033;
+ color: #FFFFB9;
+ background-image: url(headerbackblue.jpg);
+ background-position: right;
+ background-repeat: no-repeat;
+ height: 80px;
+ padding-top: 5px;
+ padding-left: 2em;
+ text-shadow: 1px 1px 1px #FFF;
+}
+
+h1, h2, h3 {
+ font-family: Georgia, "Times New Roman", serif;
+}
+h1 {
+ margin-bottom: 0;
+}
+nav {
+ font-weight: bold;
+ font-size: 1.25em;
+ background-color: #FFFFCC;
+ text-align: center;
+}
+nav a { text-decoration: none; }
+main {
+ background-color: #004D99;
+ background-image: url(heroback2.jpg);
+ color: #FFFFFF; padding: 2em;
+}
+
+footer {
+ font-style: italic;
+ text-align: center;
+ background-color: #000033;
+ color: #FFFFCC;
+ padding: 0.5em;
+}
+
+#container {
+ margin-left: auto;
+ margin-right: auto;
+ width: 80%;
+ min-width: 650px;
+ max-width: 1280px;
+ background-color: #FFFFFF;
+ box-shadow: 10px 10px 10px #333333;
+ border: 1px solid #000033;
+}
+ </style>
+ </head>
+ <body>
+ <div id=container>
+ <header>
+ <h1>KayakDoorCounty.net</h1>
+ </header>
+ <nav>
+ <a href="index.html">Home</a>
+ <a href="tours.html">Tours</a>
+ <a href="reservations.html">Reservations</a>
+ <a href="contact.html">Contact</a>
+ </nav>
+ <main>
+ <h2>Your next adventure is only a paddle away ....</h2>
+
+ <p>Take a guided kayak tour while you explore the shoreline of scenic Door County. </p>
+ <h3>Featured tours this week:</h3>
+ <ul>
+ <li>Cana Island</li>
+ <li>Mink River</li>
+ <li>Europe Lake</li>
+ </ul>
+ </main>
+ <footer>
+ <small><i>Copyright © KayakDoorCounty.net</i></small>
+ </footer>
+ </div>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/headerbackblue.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/headerbackblue.jpg Binary files differnew file mode 100644 index 0000000..6ae2660 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/headerbackblue.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/heroback2.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/heroback2.jpg Binary files differnew file mode 100644 index 0000000..b2d66e1 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/kayakch6/heroback2.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.7.index.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.7.index.html new file mode 100644 index 0000000..f1a9fa1 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.7.index.html @@ -0,0 +1,33 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Page Title Goes Here</title>
+ <style>
+#content { background-image: url(fall.jpg);
+ background-repeat: no-repeat;
+ margin: auto;
+ width: 640px;
+ height: 480px;
+ padding-top: 20px;
+}
+
+h1 {
+ background-color: #FFFFFF;
+ opacity: 0.6;
+ font-size: 4em;
+ padding: 10px;
+ margin-left: 40px;
+}
+
+ </style>
+ </head>
+ <body>
+
+ <div id="content">
+ <h1> Fall Nature Hikes</h1>
+ </div>
+
+
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.8.rgba.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.8.rgba.html new file mode 100644 index 0000000..c6ca7ce --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.8.rgba.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Page Title Goes Here</title>
+ <style>
+#content { background-image: url(fall.jpg);
+ background-repeat: no-repeat;
+ margin: auto;
+ width: 640px;
+ height: 480px;
+ padding-top: 20px;
+}
+
+h1 {
+ color: #ffffff;
+ color: rgba(255, 255, 255, 0.8);
+ font-family: Verdana, Helvetica, sans-serif;
+ font-size: 5em;
+ padding-right: 10px;
+ text-align: right;
+}
+
+
+ </style>
+ </head>
+ <body>
+
+ <div id="content">
+ <h1> Fall Nature Hikes</h1>
+ </div>
+
+
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.9.hsla.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.9.hsla.html new file mode 100644 index 0000000..d74632e --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/6.9.hsla.html @@ -0,0 +1,34 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Page Title Goes Here</title>
+ <style>
+#content { background-image: url(fall.jpg);
+ background-repeat: no-repeat;
+ margin: auto;
+ width: 640px;
+ height: 480px;
+ padding-top: 20px;
+}
+
+h1 {
+ color: #ffcccc;
+ color: hsla(60, 100%, 90%, 0.8);
+ font-family: Georgia, "Times New Roman", serif;
+ font-size: 6em;
+ padding: 20px;
+}
+
+
+ </style>
+ </head>
+ <body>
+
+ <div id="content">
+ <h1> Fall Nature Hikes</h1>
+ </div>
+
+
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/fall.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/fall.jpg Binary files differnew file mode 100644 index 0000000..b95e481 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/opacitych6/fall.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/6.5.index.html b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/6.5.index.html new file mode 100644 index 0000000..2329bd8 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/6.5.index.html @@ -0,0 +1,59 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Bistro</title>
+ <meta charset="utf-8">
+ <style>
+body { background-image: url(background.jpg);
+ font-family: Arial, Verdana, sans-serif;
+}
+h1 {
+ background-image: url(lighthouselogo.jpg);
+ background-repeat: no-repeat;
+ height: 100px;
+ font-size: 3em;
+ background-color: #9DB3DC;
+ margin-top: 0;
+ padding-left: 150px;
+ padding-top: 30px;
+ border-radius: 15px;
+}
+h2 { color: #000033;
+ font-family: arial, sans-serif;
+ text-shadow: 1px 1px 0 #CCC;
+}
+footer { font-size: .80em;
+ font-style: italic;
+}
+
+#container {
+ background-color: #FFFFFF;
+ padding: 2em;
+ margin-left: auto; margin-right: auto;
+ width: 80%;
+ min-width: 800px;
+ box-shadow: 5px 5px 5px #1E1E1E;
+ text-shadow: 3px 3px 3px #676767;
+}
+
+ </style>
+ </head>
+ <body>
+ <div id=container>
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <nav><a href="index.html">Home</a> <a href="menu.html">Menu</a> <a href="directions.html">Directions</a> <a href="contact.html">Contact</a>
+ </nav>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh baked, organic pastries, including fresh fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole grain breads with locally grown salad, fruit, and vegetables. </p>
+ <footer>
+ Copyright © Your Name Here
+ </footer>
+ </div>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/background.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/background.jpg Binary files differnew file mode 100644 index 0000000..bd76938 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/background.jpg diff --git a/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/lighthouselogo.jpg b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..4db3869 --- /dev/null +++ b/HTML/Chapter/Ch. 6 hands-on assignments/Ch6_msglm/shadowch6/lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.1.box1.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.1.box1.html new file mode 100644 index 0000000..318d34c --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.1.box1.html @@ -0,0 +1,25 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>CSS</title>
+ <meta charset="utf-8">
+ <style>
+.div1 {
+ width: 200px;
+ height: 200px;
+ background-color: #D1ECFF;
+ border: 3px dashed #000000;
+ padding: 5px;
+}
+ </style>
+ </head>
+ <body>
+ <div class="div1">
+ This is the first box.
+ </div>
+ <div class="div2">
+ This is the second box.
+ </div>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.1.box2.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.1.box2.html new file mode 100644 index 0000000..6bcaf53 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.1.box2.html @@ -0,0 +1,34 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>CSS</title>
+ <meta charset="utf-8">
+ <style>
+.div1 {
+ width: 200px;
+ height: 200px;
+ background-color: #D1ECFF;
+ border: 3px dashed #000000;
+ padding: 5px;
+}
+
+.div2 {
+ width: 100px;
+ height: 100px;
+ background-color: #ffffff;
+ border: 3px ridge #000000;
+ padding: 5px;
+ margin: 10px;
+}
+
+ </style>
+ </head>
+ <body>
+ <div class="div1">
+ This is the outer box.
+ <div class="div2">
+ This is the inner box.
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.3.index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.3.index.html new file mode 100644 index 0000000..3805264 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/7.3.index.html @@ -0,0 +1,63 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Layout Example</title>
+ <meta charset="utf-8">
+ <style>
+nav {
+ float: left;
+ width: 150px;
+}
+main {
+ margin-left: 160px;
+}
+body {
+ background-color: #000066;
+}
+#wrapper {
+ width: 80%;
+ margin-left: auto;
+ margin-right: auto;
+ background-color: #EAEAEA;
+}
+h1 {
+ margin: 0;
+ padding: 10px;
+}
+nav {
+ float: left;
+ width: 150px;
+ padding: 10px;
+}
+main {
+ margin-left: 160px;
+ padding: 10px;
+ background-color: #FFFFFF;
+}
+footer {
+ text-align: center;
+ font-style: italic;
+ background-color: #CCCCFF;
+ clear: both;
+}
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <header><h1>Layout Example</h1></header>
+ <nav>
+ <a href="index.html">Home</a>
+ <a href="page1.html">Page 1</a>
+ <a href="page2.html">Page 2</a>
+ </nav>
+ <main>
+ <h2>Page Heading</h2>
+ <p>This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.</p>
+ </main>
+ <footer>Copyright © </footer>
+ </div>
+ </body>
+</html>
+
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.index.html new file mode 100644 index 0000000..a9575b3 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.index.html @@ -0,0 +1,40 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Island Bistro</title>
+<meta charset="utf-8">
+<link href="bistro.css" rel="stylesheet">
+</head>
+<body>
+<div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <img src="7.7.lighthouseisland.jpg" width="250" height="355" alt="Lighthouse Island" id="floatright">
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery!</p>
+ <p>The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main> <!-- end of main content -->
+ <footer>Copyright ©
+ </footer>
+ </div> <!-- end of wrapper -->
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.lighthouseisland.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.lighthouseisland.jpg Binary files differnew file mode 100644 index 0000000..bf09b59 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.lighthouseisland.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.lighthouselogo.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..b6dfc6c --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/7.7.lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/bistro.css b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/bistro.css new file mode 100644 index 0000000..e32be27 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7bistro/bistro.css @@ -0,0 +1,91 @@ +*{ + box-sizing: border-box; +} + +body { + background-color: #00005D; + font-family: Verdana, Arial, sans-serif; +} + +#wrapper { + margin: 0 auto; + width: 80%; + min-width: 940px; + background-color: #B3C7E6; + color: #000066; +} + +header { + background-color: #869DC7; + color: #00005D; + font-size: 150%; + padding: 10px 10px 10px 155px; + height: 150px; + background-repeat: no-repeat; + background-image: url(7.7.lighthouselogo.jpg); +} + +nav { + float: right; + width: 150px; + font-weight: bold; + letter-spacing: 0.1em; +} + +main { + background-color: #FFFFFF; + color: #000000; + padding: 10px 20px; + display: block; + overflow: auto; +} + +h2 { + color: #869DC7; + font-family: Arial, sans-serif; +} + +#floatright { + float: right; + margin: 10px; +} + + +nav ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +nav a { + text-decoration: none; + padding: 20px; + display: block; + background-color: #B3C7E6; + border-bottom: 1px solid #FFFFFF; +} + +nav a:link { + color: #FFFFFF; +} + +nav a:visited { + color: #EAEAEA; +} + +nav a:hover { + color: #869DC7; + background-color: #EAEAEA; +} + +footer { + font-size: 70%; + text-align: center; + padding: 10px; + background-color: #869DC7; + clear: both; +} + + + + diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7float/7.2.floatlys.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7float/7.2.floatlys.html new file mode 100644 index 0000000..e2c4866 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7float/7.2.floatlys.html @@ -0,0 +1,34 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>CSS Float</title>
+<meta charset="utf-8">
+<style>
+body { width:500px;
+ background-color:#FFFFFF;
+ color:#000000;
+}
+div { background-color:#F3F1BF;
+}
+h1 { background-color:#658B42;
+ padding:10px;
+ color: #E1DB5F;
+}
+p { font-family:Arial,sans-serif;
+ }
+float, margin, and border properties:
+.float { float: left;
+ margin-right: 10px;
+ border: 3px ridge #000000; }
+</style>
+</head>
+<body>
+<h1>Yellow Lady Slipper</h1>
+<div>
+ <img class=float src="7.2.yls.jpg" alt="Yellow Lady Slipper" height="100" width="100">
+ <p>The Yellow Lady Slipper grows in wooded areas and blooms in June each year. The flower is a member of the orchid family.</p>
+</div>
+<h2>Be Green When Enjoying Wildflowers</h2>
+<p>Enjoy wild plants in their native surroundings. Protect their environment in all possible ways — support organizations dedicated to preserving their habitat. </p>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7float/7.2.yls.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7float/7.2.yls.jpg Binary files differnew file mode 100644 index 0000000..7dd9982 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7float/7.2.yls.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.index.html new file mode 100644 index 0000000..14226a7 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.index.html @@ -0,0 +1,98 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Island Bistro</title>
+ <meta charset="utf-8">
+ <style>
+body {
+ font-family:Verdana, Arial, sans-serif;
+ background-color: #00005D;
+}
+#wrapper {
+ background-color: #b3c7e6;
+ color: #000066;
+ width: 80%;
+ margin: auto;
+ min-width:940px;
+}
+header {
+ background-color: #869dc7;
+ color: #00005D;
+ font-size: 150%;
+ padding: 10px 10px 10px 155px;
+ background-image: url(7.5.lighthouselogo.jpg);
+ background-repeat: no-repeat;
+ height: 130px;
+}
+
+h2 {
+ color: #869dc7;
+ font-family: arial, sans-serif;
+}
+main {
+ padding: 20px 20px 0 20px;
+ background-color: #ffffff;
+ color: #000000;
+ display: block;
+}
+main img {
+ margin: 10px;
+ float: right;
+}
+
+footer {
+ font-size:70%;
+ text-align: center;
+ clear: right;
+ padding-bottom:20px;
+}
+
+nav li {
+ display: inline;
+}
+
+nav ul {
+ list-style-type: none;
+ text-align: center;
+ font-size: 1.5em;
+ margin: 5px;
+}
+nav a {
+ text-decoration: none;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <img src="7.5.lighthouseisland.jpg" width="250" height="355" id="floatright" alt="Lighthouse Island">
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+ <footer>Copyright ©
+ </footer>
+ </div>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.lighthouseisland.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.lighthouseisland.jpg Binary files differnew file mode 100644 index 0000000..bf09b59 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.lighthouseisland.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.lighthouselogo.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..b6dfc6c --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hort/7.5.lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.index.html new file mode 100644 index 0000000..3d69728 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.index.html @@ -0,0 +1,102 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Island Bistro</title>
+ <meta charset="utf-8">
+ <style>
+* { box-sizing: border-box; }
+body {font-family:Verdana, Arial, sans-serif;
+ background-color: #00005D;
+}
+#wrapper { background-color: #b3c7e6;
+ color: #000066;
+ width: 80%;
+ margin: auto;
+ min-width:940px;
+}
+nav { float: left;
+ width: 150px;
+}
+main { margin-left: 155px;
+ background-color: #ffffff;
+ color: #000000;
+}
+header { background-color: #869dc7;
+ color: #00005D;
+ font-size: 150%;
+ padding: 10px 10px 10px 155px;
+ background-image: url(7.6.lighthouselogo.jpg);
+ background-repeat: no-repeat;
+ height: 130px;
+}
+
+h2 { color: #869dc7;
+ font-family: arial, sans-serif;
+}
+.content {
+ padding: 20px 20px 0 20px;
+}
+main { display: block; }
+#floatright { margin: 10px;
+ float: right;
+}
+
+footer { font-size:70%;
+ text-align: center;
+ clear: right;
+ padding-bottom:20px;
+}
+nav ul {
+ list-style-type: none; padding: 10px;
+}
+nav a {
+ text-decoration: none; padding: 10px;
+ font-weight: bold;
+}
+
+nav a:link {
+ color: #ffffff;
+}
+nav a:visited {
+ color: #EAEAEA;
+}
+nav a:hover {
+ color: #000066;
+}
+
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="menu.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <div class="content">
+ <img src="7.6.lighthouseisland.jpg" width="250" height="355" id="floatright" alt="Lighthouse Island">
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </div>
+ <footer>Copyright ©
+ </footer>
+ </main>
+ </div>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.lighthouseisland.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.lighthouseisland.jpg Binary files differnew file mode 100644 index 0000000..bf09b59 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.lighthouseisland.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.lighthouselogo.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..b6dfc6c --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7hover/7.6.lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/README.txt b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/README.txt new file mode 100644 index 0000000..9be3095 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/README.txt @@ -0,0 +1 @@ +I am using an older version of the book, so this assignment doesn't match up with the student files. I got the older version as a hand-me-down due to budgeting constraints. So please do understand that this section being different isn't out of laze, mistake, or plagarism, but rather the unaffordability of textbooks, but a willingness to still practice. diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/index.html new file mode 100644 index 0000000..bce1e3b --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/index.html @@ -0,0 +1,66 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>First HTML Webpage</title>
+ <meta charset="utf-8">
+ <style>
+* {
+ box-sizing: border-box;
+}
+
+#gallery {
+ position: relative;
+}
+
+#gallery ul {
+ width: 280px;
+ list-style-type: none;
+}
+
+#gallery li {
+ display: inline;
+ float: left;
+ padding: 10px;
+}
+
+#gallery img {
+ border-style: none;
+}
+
+
+#gallery a {
+ text-decoration: none; color: #333; font-style: italic;
+}
+
+#gallery span {
+ display: none;
+}
+
+#gallery a:hover span {
+ display: block;
+ position: absolute;
+ top: 10px;
+ left: 300px;
+ text-align: center;
+}
+ </style>
+ </head>
+ <body>
+ <div id=gallery>
+ <ul>
+ <li><a href="yls.jpg"><img src="yls.jpg" width="100" height="75" alt="YLS"><span><img src="yls.jpg" width="250" height="150" alt="YLS"><br>YLS</span></li>
+ <li><a href="yogadoor.jpg"><img src="yogadoor.jpg" width="100" height="75" alt="yogadoor"><span><img src="yogadoor.jpg" width="250" height="150" alt="yogadoor"><br>yogadoor</span></li>
+ <li><a href="lighthouselogo.jpg"><img src="lighthouselogo.jpg" width="100" height="75" alt="lighthouselogo"><span><img src="lighthouselogo.jpg" width="250" height="150" alt="lighthouselogo"><br>lighthouselogo</span></li>
+ </ul>
+ </div>
+ </body>
+</html>
+
+
+
+
+
+
+
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/lighthouselogo.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..b6dfc6c --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/yls.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/yls.jpg Binary files differnew file mode 100644 index 0000000..7dd9982 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/yls.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/yogadoor.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/yogadoor.jpg Binary files differnew file mode 100644 index 0000000..fe0de96 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7p/yogadoor.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7spw/README.txt b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7spw/README.txt new file mode 100644 index 0000000..db84d5f --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7spw/README.txt @@ -0,0 +1 @@ +Similar to ch7p, this part of the book is missing for me. Textbooks are expensive and all I request is a bit of mercy due to this. diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7vert/7.4.index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7vert/7.4.index.html new file mode 100644 index 0000000..f4a045e --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7vert/7.4.index.html @@ -0,0 +1,90 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Island Bistro</title>
+ <meta charset="utf-8">
+ <style>
+* { box-sizing: border-box; }
+body {font-family:Verdana, Arial, sans-serif;
+ background-color: #00005D;
+}
+#wrapper { background-color: #b3c7e6;
+ color: #000066;
+ width: 80%;
+ margin: auto;
+ min-width:940px;
+}
+nav a { text-decoration: none;
+ padding: 10px;
+ font-weight: bold;
+}
+nav ul { list-style-type: none;
+ padding: 10px;
+}
+nav { float: left;
+ width: 150px;
+}
+main { margin-left: 155px;
+ background-color: #ffffff;
+ color: #000000;
+}
+header { background-color: #869dc7;
+ color: #00005D;
+ font-size: 150%;
+ padding: 10px 10px 10px 155px;
+ background-image: url(lighthouselogo.jpg);
+ background-repeat: no-repeat;
+ height: 130px;
+}
+
+h2 { color: #869dc7;
+ font-family: arial, sans-serif;
+}
+.content {padding: 20px 20px 0 20px;
+}
+main { display: block; }
+#floatright { margin: 10px;
+ float: right;
+}
+
+footer { font-size:70%;
+ text-align: center;
+ clear: right;
+ padding-bottom:20px;
+}
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="menu.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ </nav>
+ <main>
+ <div class="content">
+ <img src="7.4.lighthouseisland.jpg" width="250" height="355" id="floatright" alt="Lighthouse Island">
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </div>
+ <footer>Copyright ©
+ </footer>
+ </main>
+ </div>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7vert/7.4.lighthouseisland.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7vert/7.4.lighthouseisland.jpg Binary files differnew file mode 100644 index 0000000..bf09b59 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7vert/7.4.lighthouseisland.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.index.html new file mode 100644 index 0000000..7c7e1e2 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.index.html @@ -0,0 +1,109 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Island Bistro</title>
+ <meta charset="utf-8">
+ <style>
+body {
+ font-family:Verdana, Arial, sans-serif;
+ background-color: #00005D;
+}
+#wrapper {
+ background-color: #b3c7e6;
+ color: #000066;
+ width: 80%;
+ margin: auto;
+ min-width:940px;
+}
+header {
+ background-color: #869DC7;
+ color: #00005D;
+ font-size: 150%;
+ padding: 10px 10px 10px 155px;
+ background-image: url(lighthouselogo.jpg);
+ background-repeat: no-repeat;
+ height: 130px;
+ margin-top: 40px;
+}
+h2 {
+ color: #869dc7;
+ font-family: arial, sans-serif;
+}
+main {
+ padding: 20px 20px 0 20px;
+ background-color: #ffffff;
+ color: #000000;
+ display: block;
+}
+main img {
+ margin: 10px;
+ float: right;
+}
+
+footer {
+ font-size:70%;
+ text-align: center;
+ clear: right;
+ padding-bottom:20px;
+}
+
+nav {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 40px; width: 100%;
+ min-width: 40em;
+ background-color: #B3C7E6;
+ z-index: 9999;
+}
+
+nav li {
+ display: inline;
+}
+
+nav ul {
+ list-style-type: none;
+ text-align: center;
+ font-size: 1.5em;
+ margin: 5px;
+ padding-right: 10%;
+}
+nav a {
+ text-decoration: none;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <img src="7.11.lighthouseisland.jpg" width="250" height="355" id="floatright" alt="Lighthouse Island">
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+ <footer>Copyright ©
+ </footer>
+ </div>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.lighthouseisland.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.lighthouseisland.jpg Binary files differnew file mode 100644 index 0000000..bf09b59 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.lighthouseisland.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.lighthouselogo.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..b6dfc6c --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/ch7z/7.11.lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.index.html new file mode 100644 index 0000000..ecd29f3 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.index.html @@ -0,0 +1,41 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Island Bistro</title>
+<meta charset="utf-8">
+<link media="screen" href="bistro.css" rel="stylesheet">
+<link media="print" href="bistroprint.css" rel="stylesheet">
+</head>
+<body>
+<div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <img src="7.8.lighthouseisland.jpg" width="250" height="355" alt="Lighthouse Island" id="floatright">
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery!</p>
+ <p>The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main> <!-- end of main content -->
+ <footer>Copyright ©
+ </footer>
+ </div> <!-- end of wrapper -->
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.lighthouseisland.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.lighthouseisland.jpg Binary files differnew file mode 100644 index 0000000..bf09b59 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.lighthouseisland.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.lighthouselogo.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..b6dfc6c --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/7.8.lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/bistro.css b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/bistro.css new file mode 100644 index 0000000..f47a52d --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/bistro.css @@ -0,0 +1,47 @@ +* { box-sizing: border-box; }
+body { background-color: #00005D;
+ font-family: Verdana, Arial, sans-serif; }
+#wrapper { margin: 0 auto;
+ width: 80%;
+ min-width: 940px;
+ background-color: #B3C7E6;
+ color: #000066; }
+header { background-color: #869DC7;
+ color: #00005D;
+ font-size: 150%;
+ padding: 10px 10px 10px 155px;
+ height: 150px;
+ background-repeat: no-repeat;
+ background-image: url(7.8.lighthouselogo.jpg); }
+nav { float: right;
+ width: 150px;
+ font-weight: bold;
+ letter-spacing: 0.1em; }
+main { background-color: #FFFFFF;
+ color: #000000;
+ padding: 10px 20px;
+ display: block;
+ overflow: auto; }
+h2 { color: #869DC7; font-family: Arial, sans-serif; }
+#floatright { float: right; margin: 10px; }
+
+nav ul { list-style-type: none;
+ margin: 0;
+ padding: 0; }
+nav a { text-decoration: none;
+ padding: 20px;
+ display: block;
+ background-color: #B3C7E6;
+ border-bottom: 1px solid #FFFFFF;
+}
+nav a:link { color: #FFFFFF; }
+nav a:visited { color: #EAEAEA; }
+nav a:hover { color: #869DC7;
+ background-color: #EAEAEA; }
+footer { font-size: 70%;
+ text-align: center;
+ padding: 10px;
+ background-color: #869DC7;
+ clear: both;
+}
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/bistroprint.css b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/bistroprint.css new file mode 100644 index 0000000..e165b24 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/print/bistroprint.css @@ -0,0 +1,55 @@ +* {
+ box-sizing: border-box;
+}
+
+body { background-color: #00005D;
+font-family: Verdana, Arial, sans-serif; }
+#wrapper { margin: 0 auto;
+ width: 80%;
+ min-width: 940px;
+ background-color: #B3C7E6;
+color: #000066; }
+header { background-color: #869DC7;
+ color: #000000;
+ font-size: 20pt;
+ padding: 10px 10px 10px 155px;
+ height: 150px;
+ background-repeat: no-repeat;
+background-image: url(7.8.lighthouselogo.jpg); }
+
+nav{
+display:none;
+}
+
+main {
+ background-color: #FFFFFF;
+ color: #000000;
+ padding: 10px 20px;
+ display: block;
+ overflow: auto;
+ font-family: "Times New Roman", serif;
+ font-size: 12pt;
+}
+h2 { color: #869DC7; font-family: Arial, sans-serif; }
+#floatright { float: right; margin: 10px; }
+
+nav ul { list-style-type: none;
+ margin: 0;
+padding: 0; }
+nav a { text-decoration: none;
+ padding: 20px;
+ display: block;
+ background-color: #B3C7E6;
+ border-bottom: 1px solid #FFFFFF;
+}
+nav a:link { color: #FFFFFF; }
+nav a:visited { color: #EAEAEA; }
+nav a:hover { color: #869DC7;
+background-color: #EAEAEA; }
+footer { font-size: 70%;
+ text-align: center;
+ padding: 10px;
+ background-color: #869DC7;
+ clear: both;
+}
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.index.html b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.index.html new file mode 100644 index 0000000..60471e6 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.index.html @@ -0,0 +1,41 @@ +<!DOCTYPE html>
+<!--The Chapter 7 folder didn't come with any template for this. So I opted to use the 7.7 work as a a base-->
+<html lang="en">
+<head>
+<title>Lighthouse Island Bistro</title>
+<meta charset="utf-8">
+<link href="bistro.css" rel="stylesheet">
+</head>
+<body>
+<div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <img src="7.9.lighthouseisland.jpg" width="250" height="355" alt="Lighthouse Island" id="floatright">
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery!</p>
+ <p>The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main> <!-- end of main content -->
+ <footer>Copyright ©
+ </footer>
+ </div> <!-- end of wrapper -->
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.lighthouseisland.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.lighthouseisland.jpg Binary files differnew file mode 100644 index 0000000..bf09b59 --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.lighthouseisland.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.lighthouselogo.jpg b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.lighthouselogo.jpg Binary files differnew file mode 100644 index 0000000..b6dfc6c --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.lighthouselogo.jpg diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.sprites.gif b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.sprites.gif Binary files differnew file mode 100644 index 0000000..832901a --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/7.9.sprites.gif diff --git a/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/bistro.css b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/bistro.css new file mode 100644 index 0000000..b8a0b9d --- /dev/null +++ b/HTML/Chapter/Ch. 7 hands-on assignments/Ch7_msglm/sprites/bistro.css @@ -0,0 +1,95 @@ +*{ + box-sizing: border-box; +} + +body { + background-color: #00005D; + font-family: Verdana, Arial, sans-serif; +} + +#wrapper { + margin: 0 auto; + width: 80%; + min-width: 940px; + background-color: #B3C7E6; + color: #000066; +} + +header { + background-color: #869DC7; + color: #00005D; + font-size: 150%; + padding: 10px 10px 10px 155px; + height: 150px; + background-repeat: no-repeat; + background-image: url(7.9.lighthouselogo.jpg); +} + +nav { + float: right; + width: 150px; + font-weight: bold; + letter-spacing: 0.1em; +} + +main { + background-color: #FFFFFF; + color: #000000; + padding: 10px 20px; + display: block; + overflow: auto; +} + +h2 { + color: #869DC7; + font-family: Arial, sans-serif; +} + +#floatright { + float: right; + margin: 10px; +} + + +nav ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +nav a { + text-decoration: none; + padding: 20px; + display: block; + background-color: #B3C7E6; + border-bottom: 1px solid #FFFFFF; + background-image: url(7.9.sprites.gif); + background-repeat: no-repeat; + background-position: right 0; +} + +nav a:link { + color: #FFFFFF; +} + +nav a:visited { + color: #EAEAEA; +} + +nav a:hover { + color: #869DC7; + background-color: #EAEAEA; + background-position: right -100px; +} + +footer { + font-size: 70%; + text-align: center; + padding: 10px; + background-color: #869DC7; + clear: both; +} + + + + diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.2.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.2.index.html new file mode 100644 index 0000000..c8bd7af --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.2.index.html @@ -0,0 +1,35 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Page Title Goes Here</title>
+ <style>
+
+body {
+ margin: 0;
+}
+
+header {
+ display: flex;
+ min-height: 100vh;
+ justify-content: center;
+ align-items: center;
+ background-color: #227093;
+}
+
+h1 {
+ color: #FFFFFF;
+ font-family: Arial, sans-serif;
+}
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Centered Heading</h1>
+ </header>
+ <main>
+ Additional page content and navigation go here
+ </main>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.3.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.3.index.html new file mode 100644 index 0000000..d338ba2 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.3.index.html @@ -0,0 +1,34 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Page Title Goes Here</title>
+ <style>
+
+body {
+ margin: 0;
+}
+
+header {
+ display: flex; min-height: 100vh;
+ justify-content: center; align-items: center;
+ background-image: url(8.7.lake.jpg);
+ background-size: 100% 100%;
+ background-repeat: no-repeat;
+}
+
+h1 {
+ color: #FFFFFF; font-family: Arial, sans-serif;
+}
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Centered Heading</h1>
+ </header>
+ <main>
+ Additional page content and navigation go here
+ </main>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.4.a.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.4.a.index.html new file mode 100644 index 0000000..8ac938e --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.4.a.index.html @@ -0,0 +1,34 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Page Title Goes Here</title>
+ <style>
+
+body {
+ margin: 0;
+}
+
+header {
+ display: flex; min-height: 100vh;
+ background-image: url(8.7.lake.jpg);
+ background-size: 100% 100%;
+ background-repeat: no-repeat;
+}
+
+h1 {
+ color: #FFFFFF; font-family: Arial, sans-serif;
+ margin: auto;
+}
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Centered Heading</h1>
+ </header>
+ <main>
+ Additional page content and navigation go here
+ </main>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.4.b.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.4.b.index.html new file mode 100644 index 0000000..5cb35ee --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.4.b.index.html @@ -0,0 +1,34 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Page Title Goes Here</title>
+ <style>
+
+body {
+ margin: 0;
+}
+
+header {
+ display: grid; min-height: 100vh;
+ justify-content: center; align-items: center;
+ background-image: url(8.7.lake.jpg);
+ background-size: 100% 100%;
+ background-repeat: no-repeat;
+}
+
+h1 {
+ color: #FFFFFF; font-family: Arial, sans-serif;
+}
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Centered Heading</h1>
+ </header>
+ <main>
+ Additional page content and navigation go here
+ </main>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.lake.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.lake.jpg Binary files differnew file mode 100644 index 0000000..014d773 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8center/8.7.lake.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.index.html new file mode 100644 index 0000000..2c4b9c1 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.index.html @@ -0,0 +1,145 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Island Bistro</title>
+ <meta charset="utf-8">
+ <!--Similar situation here to my problem with 8.5, my book didn't actually have instructions on how to do this, so I have to try my best to reverse engineer and figure out the example. I hope this is satisfactory!-->
+ <style>
+
+* {
+ box-sizing: border-box;
+ margin: 0;
+}
+
+body {
+ font-family: Verdana, Arial, sans-serif;
+}
+
+#wrapper {
+ padding: 0;
+ min-width: 900px;
+}
+nav {
+ float: left;
+ width: 150px;
+}
+
+nav ul {
+ list-style-type: none;
+ padding: 1em;
+}
+nav a {
+ text-decoration: none;
+ padding: 1em;
+ font-weight: bold;
+}
+header {
+ background-color: #869dc7;
+ color: #00005D;
+ background-image: url(8.6.light2.jpg);
+ padding: 1em 0 1em 190px;
+ font-size: 130%;
+ min-width: 600px;
+ background-repeat: no-repeat;
+ font-family: "Times New Roman", serif;
+}
+
+main {
+ float: left;
+ width: 50%;
+ padding: 1em;
+}
+
+h2 {
+ color: #869dc7;
+ font-family: arial, sans-serif;
+}
+
+aside {
+ float: right;
+ width: 300px;
+ background-color: #EAEAEA;
+ padding-left: 1em;
+ margin: 0;
+}
+
+figcaption {
+ font-style: italic; padding-left: 2em;
+}
+
+footer {
+ background-color: #869dc7;
+ font-size:70%;
+ text-align: center;
+ padding: 2em;
+ clear: both;
+}
+
+header {
+ grid-area: header;
+}
+
+nav {
+ grid-area: nav;
+}
+
+main {
+ grid-area: main; width: 100%;
+}
+
+aside {
+ grid-area: aside;
+}
+
+footer {
+ grid-area: footer;
+}
+
+ @supports (display: grid) {
+ #wrapper {
+ display: grid;
+ grid-template:
+ "header header header" 100px
+ "nav main aside" auto
+ "footer footer footer" 50px
+ / 150px 1fr 300px;
+ }
+ }
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+ <aside>
+ <figure>
+ <img src="8.6.lighthouse.jpg" width="250" height="355" id="floatright" alt="Lighthouse Island">
+ <figcaption>Lighthouse Island Bistro</figcaption>
+ </figure>
+ </aside>
+ <footer>Copyright ©</footer>
+ </div>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.light2.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.light2.jpg Binary files differnew file mode 100644 index 0000000..4d5d07b --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.light2.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.lighthouse.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.lighthouse.jpg Binary files differnew file mode 100644 index 0000000..6455297 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8feat/8.6.lighthouse.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird1.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird1.jpg Binary files differnew file mode 100644 index 0000000..db35321 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird1.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird2.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird2.jpg Binary files differnew file mode 100644 index 0000000..816f817 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird2.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird3.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird3.jpg Binary files differnew file mode 100644 index 0000000..3a37f44 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird3.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird4.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird4.jpg Binary files differnew file mode 100644 index 0000000..a19a586 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird4.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird5.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird5.jpg Binary files differnew file mode 100644 index 0000000..c5bd806 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird5.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird6.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird6.jpg Binary files differnew file mode 100644 index 0000000..09b35e8 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.bird6.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.index.html new file mode 100644 index 0000000..b0bf600 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex1/8.1.index.html @@ -0,0 +1,54 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Flexbox Gallery</title>
+ <meta charset="utf-8">
+ <style>
+
+* {
+ box-sizing: border-box;
+}
+
+body {
+ background-color: #FEFEFE;
+}
+
+header {
+ text-align: center;
+}
+
+#gallery {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: space-around;
+}
+
+img {
+ margin: 1em;
+ box-shadow: 10px 10px 10px #777;
+}
+
+
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Flexbox Gallery</h1>
+ </header>
+ <main>
+ <div id="gallery">
+ <img src="8.1.bird1.jpg" width="200" height="150" alt="Red Crested Cardinal">
+ <img src="8.1.bird2.jpg" width="200" height="150" alt="Rose-Breasted Grosbeak">
+ <img src="8.1.bird3.jpg" width="200" height="150" alt="Gyrfalcon">
+ <img src="8.1.bird4.jpg" width="200" height="150" alt="Rock Wren">
+ <img src="8.1.bird5.jpg" width="200" height="150" alt="Coopers Hawk">
+ <img src="8.1.bird6.jpg" width="200" height="150" alt="Immature Bald Eagle">
+ </div>
+
+ </main>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.index.html new file mode 100644 index 0000000..4669030 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.index.html @@ -0,0 +1,113 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Bistro</title>
+ <meta charset="utf-8">
+ <style>
+
+
+
+
+* { box-sizing: border-box; margin: 0; }
+body {font-family:Verdana, Arial, sans-serif; }
+nav ul { list-style-type: none;
+ padding: 1em; }
+nav a { text-decoration: none;
+ padding: 1em;
+ font-weight: bold;
+}
+header { background-color: #869DC7;
+ color: #00005D;
+ background-image: url(8.2.light.gif);
+ background-repeat: no-repeat;
+ padding: 2em 0 2em 10em;
+ font-size: 120%;
+}
+h2 { color: #869dc7;
+ font-family: arial, sans-serif;
+}
+nav { float: left; }
+main{ padding: 1em; }
+aside { float: right; padding: 1em; }
+figure { text-align: center; }
+figcaption { font-style: italic; text-align: center;}
+footer { background-color: #869DC7;
+ font-size:70%;
+ text-align: center;
+ padding: 2em;
+ clear: both;
+}
+
+#content {
+ display: flex;
+}
+nav {
+ flex: none;
+ background-color: #B3C7E6;
+}
+
+main {
+ flex: 6;
+ min-width: 20em;
+ background-color: #FFFFFF;
+}
+
+aside {
+ flex: 4;
+ background-color: #EAEAEA;
+}
+
+header, main, nav, figure, footer {
+ display: block;
+}
+
+nav {
+ order: 1;
+}
+
+main {
+ order: 2;
+}
+
+aside {
+ order: 3;
+}
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <div id="content">
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <aside>
+ <figure>
+ <img src="8.2.lighthouse.jpg" width="250" height="355" id="floatright" alt="Lighthouse Island">
+ <figcaption>Cana Island Lighthouse</figcaption>
+ </figure>
+ </aside>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+
+ </div>
+ <footer>Copyright © </footer>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.light.gif b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.light.gif Binary files differnew file mode 100644 index 0000000..469b297 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.light.gif diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.lighthouse.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.lighthouse.jpg Binary files differnew file mode 100644 index 0000000..6455297 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8flex2/8.2.lighthouse.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird1.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird1.jpg Binary files differnew file mode 100644 index 0000000..db35321 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird1.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird2.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird2.jpg Binary files differnew file mode 100644 index 0000000..816f817 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird2.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird3.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird3.jpg Binary files differnew file mode 100644 index 0000000..3a37f44 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird3.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird4.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird4.jpg Binary files differnew file mode 100644 index 0000000..a19a586 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird4.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird5.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird5.jpg Binary files differnew file mode 100644 index 0000000..c5bd806 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird5.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird6.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird6.jpg Binary files differnew file mode 100644 index 0000000..09b35e8 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.bird6.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.index.html new file mode 100644 index 0000000..195a419 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid1/8.3.index.html @@ -0,0 +1,43 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Grid Gallery</title>
+ <meta charset="utf-8">
+ <style>
+* { box-sizing: border-box; }
+body { background-color: #FEFEFE; }
+header { text-align: center; }
+
+#gallery {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, 200px);
+ grid-template-rows: auto;
+ grid-gap: 2em; gap: 2em;
+}
+
+
+
+
+
+
+
+ </style>
+ </head>
+ <body>
+ <header>
+ <h1>Grid Gallery</h1>
+ </header>
+ <main>
+ <div id="gallery">
+ <img src="8.3.bird1.jpg" width="200" height="150" alt="Red Crested Cardinal">
+ <img src="8.3.bird2.jpg" width="200" height="150" alt="Rose-Breasted Grosbeak">
+ <img src="8.3.bird3.jpg" width="200" height="150" alt="Gyrfalcon">
+ <img src="8.3.bird4.jpg" width="200" height="150" alt="Rock Wren">
+ <img src="8.3.bird5.jpg" width="200" height="150" alt="Coopers Hawk">
+ <img src="8.3.bird6.jpg" width="200" height="150" alt="Immature Bald Eagle">
+ </div>
+ </main>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid2/8.4.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid2/8.4.index.html new file mode 100644 index 0000000..17854a8 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid2/8.4.index.html @@ -0,0 +1,101 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Lighthouse Island Bistro</title>
+<meta charset="utf-8">
+ <!--I checked my work and compared
+ it to the work provided by the student files
+ My book had some extra stuff in it that I had to remove.
+ Following is what it had:
+ @supports (display: grid) {
+ #wrapper { display: grid;
+ grid-template-columns: 150px 1fr;
+ grid-template-rows: 160px auto auto; }
+ header { grid-row: 1 / 2; grid-column: 1 / 3; }
+ nav { grid-row: 2 / 3; grid-column: 1 / 2; }
+ main { grid-row: 2 / 3; grid-column: 2 / 3; }
+ footer { grid-row: 3 / 4; grid-column: 1 / 3; }
+ }
+ I'd love to use the most up to date version, but,
+ as stated, textbooks are incredibly expensive
+ and even renting is taxing.-->
+<style>
+
+* { box-sizing: border-box; margin: 0; }
+body {font-family: Verdana, Arial, sans-serif; }
+nav ul { list-style-type: none;
+ padding: 1em; }
+nav a { text-decoration: none;
+ padding: 1em;
+ font-weight: bold;
+}
+
+
+header { background-color: #869dc7;
+ color: #00005D;
+ background-image: url(8.4.light2.jpg);
+ padding: 1em 0 1em 190px;
+ font-size: 130%;
+ min-width: 700px;
+ background-repeat: no-repeat;
+ font-family: "Times New Roman", serif;
+}
+nav { float: left; }
+main { padding: 1em; }
+h2 { color: #869dc7;
+ font-family: arial, sans-serif;
+}
+figure { text-align: center; }
+figcaption { font-style: italic; text-align: center;}
+footer { background-color: #869dc7;
+ font-size:70%;
+ text-align: center;
+ padding: 2em;
+
+}
+
+
+#wrapper {
+ display: grid;
+ grid-template-columns: 150px 1fr;
+ grid-template-rows: 100px auto 50px;
+}
+
+header { grid-row: 1 / 2; grid-column: 1 / 3; }
+nav { grid-row: 2 / 3; grid-column: 1 / 2; }
+main { grid-row: 2 / 3; grid-column: 2 / 3; }
+footer { grid-row: 3 / 4; grid-column: 1 / 3; }
+
+
+</style>
+</head>
+<body>
+ <div id="wrapper">
+ <header>
+ <h1>Lighthouse Island Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Free-Trade Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+ <footer>Copyright © </footer>
+ </div>
+</body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid2/8.4.light2.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid2/8.4.light2.jpg Binary files differnew file mode 100644 index 0000000..ae6551b --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid2/8.4.light2.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.header.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.header.jpg Binary files differnew file mode 100644 index 0000000..cb611ce --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.header.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.index.html new file mode 100644 index 0000000..43a27a8 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.index.html @@ -0,0 +1,131 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Casita Sedona</title>
+<!--
+ This assignment was completely missing from my book
+ I tried my best to research how to do it via the internet
+ so if this, well, sucks, do bare in mind that's the case.
+
+ these newer textbooks are just too expensive!
+ they cost more than my gas money for my gas guzzling SUV!
+-->
+<meta charset="utf-8">
+<style>
+* { box-sizing: border-box; }
+body {font-family: Arial, sans-serif;
+ margin: 0;
+}
+
+header { background-image: url(8.5.header.jpg);
+ background-size: cover;
+ background-repeat: no-repeat;
+}
+
+header {
+ grid-area: header;
+}
+
+nav {
+ grid-area: nav;
+}
+
+main {
+ grid-area: main;
+}
+
+aside {
+ grid-area: aside;
+}
+
+footer {
+ grid-area: footer;
+}
+
+
+#wrapper {
+ display: grid;
+ grid-template:
+ "header header header" 100px
+ "nav main aside" auto
+ "footer footer footer" 50px
+ / 150px 1fr 30%;
+}
+
+
+
+
+h2 { color: #2c2c54; }
+
+
+h1 { text-align: center;
+ color: #F7F1E3;
+ font-size: 300%;
+ text-shadow: 10px 10px 10px #000000;
+}
+nav { font-size: 120%; }
+
+nav ul { padding-left: 0;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: space-around; }
+nav ul { list-style-type: none; }
+nav li { width: 20%;
+ min-width: 6em;
+ font-size: 110%;
+ text-align: center;
+ background-color: #003C58;
+ margin: .5em;
+ padding: .5em; }
+nav a { text-decoration: none;}
+nav a:link { color: #F7F1E3; }
+nav a:visited { color: #B9EDF0; }
+nav a:hover { color: #FFFFFF; }
+aside { padding: 1em;}
+
+main { padding: 0 1em 1em; }
+
+footer { background-color: #CCCCCC;
+ text-align: center;
+ font-style: italic;
+ padding: 1em; }
+
+
+
+
+</style>
+</head>
+<body>
+<div id="wrapper">
+ <header>
+ <h1>Casita Sedona</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Rooms</a></li>
+ <li><a href="specials.html">Specials</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Located in the Heart of Sedona</h2>
+ <p>At Casita Sedona Bed & Breakfast you’ll be close to art galleries, shops, restaurants, hiking trails, and tours. Ride the free trolley to shops and galleries.</p>
+ <h2>Luxurious Rooms </h2>
+ <p>Stay in a well-appointed room at Casita Sedona with your own fireplace, king-size bed, balcony overlooking the red rocks, private bath with shower, and whirlpool tub for two. Choose from the Canyon, Javelina, Manzanita, Thunder Mountain, and Schnebly rooms — each is unique and sure to be a high point of your vacation experience.</p>
+ <h2>Hearty Breakfast</h2>
+ <p>Each day begins with a hearty breakfast that includes your choice of belgian waffles, pumpkin french toast, or quiche. Fresh fruit, yogurt, juice, and coffee are always available.</p>
+ <h2>About Your Hosts</h2>
+ <p>Your hosts, Melanie and Greg Tortuga, are long-time Sedona residents who love to share their knowledge of the Sedona area with their guests. Melanie is an author and artist. Greg has years of experience leading jeep tours and guiding hikes in and around Sedona.</p>
+ </main>
+ <aside>
+ <img src="8.5.scenery.jpg" alt="Owl Clover wildflowers with red rock mountain">
+ <h2>Guided Hikes</h2>
+ <p>Casita Sedona offers a free guided hike each week for guests. Explore the Seven Sacred Pools along the Soldiers Pass Trail.</p>
+ </aside>
+ <footer>Copyright ©
+ </footer>
+</div>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.scenery.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.scenery.jpg Binary files differnew file mode 100644 index 0000000..25eab07 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8grid3/8.5.scenery.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.fallback.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.fallback.jpg Binary files differnew file mode 100644 index 0000000..e703c63 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.fallback.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.index.html new file mode 100644 index 0000000..4155306 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.index.html @@ -0,0 +1,14 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Page Title Goes Here</title>
+</head>
+<body>
+ <h1>Image Element</h1>
+ <img src="8.12.fallback.jpg"
+ sizes="100vw"
+ srcset="8.12.large.jpg 1200w, 8.12.medium.jpg 800w, 8.12.small.jpg 320w"
+ alt="waterwheel">
+
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.large.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.large.jpg Binary files differnew file mode 100644 index 0000000..a79996a --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.large.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.medium.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.medium.jpg Binary files differnew file mode 100644 index 0000000..4478ad8 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.medium.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.small.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.small.jpg Binary files differnew file mode 100644 index 0000000..946c71f --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8image/8.12.small.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.fallback.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.fallback.jpg Binary files differnew file mode 100644 index 0000000..e703c63 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.fallback.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.index.html new file mode 100644 index 0000000..480b464 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.index.html @@ -0,0 +1,18 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Page Title Goes Here</title>
+</head>
+<body>
+ <!--The student files had a header, adding just in case my book is missing it.-->
+ <h1>Picture element<h1>
+ <!--Opted to try out the webp images here. I'm a big fan of them and wanted to see if they'd work with this set up as well. -->
+ <picture>
+ <source media="(min-width: 1200px)" srcset="8.11.large.webp">
+ <source media="(min-width: 800px)" srcset="8.11.medium.webp">
+ <source media="(min-width: 320px)" srcset="8.11.small.webp">
+ <img src="8.11.fallback.jpg" alt="waterwheel">
+</picture>
+
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.large.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.large.jpg Binary files differnew file mode 100644 index 0000000..a79996a --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.large.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.large.webp b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.large.webp Binary files differnew file mode 100644 index 0000000..ca3bf54 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.large.webp diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.medium.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.medium.jpg Binary files differnew file mode 100644 index 0000000..4478ad8 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.medium.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.medium.webp b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.medium.webp Binary files differnew file mode 100644 index 0000000..b90e766 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.medium.webp diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.small.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.small.jpg Binary files differnew file mode 100644 index 0000000..946c71f --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.small.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.small.webp b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.small.webp Binary files differnew file mode 100644 index 0000000..5051869 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8picture/8.11.small.webp diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.index.html new file mode 100644 index 0000000..b1e9bd4 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.index.html @@ -0,0 +1,141 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Bistro</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <style>
+* { box-sizing: border-box;
+ margin: 0;
+}
+
+body {font-family: Verdana, Arial, sans-serif;
+}
+
+#wrapper { background-color: #B3C7E6;
+}
+
+header { color: #00005D;
+ background-color: #869DC7;
+ background-image: url(8.8.light.gif);
+ background-repeat: no-repeat;
+ background-size: auto 100%;
+ padding: .5em 0 .5em 5.5em;
+}
+main { background-color: #FFFFFF;
+ color: #000000;
+ padding: 1em;
+}
+aside { text-align: center; }
+
+footer { background-color: #869DC7;
+ font-size:70%;
+ text-align: center;
+ padding: 0.5em 0;
+}
+
+h2 { color: #869DC7; }
+img { padding: 1em; }
+
+/* Styles to configure navigation links as horizontal areas */
+nav ul { list-style-type: none;
+ padding-left: 0;
+ border-top: 1px solid #EEEEEE;
+}
+nav li { border-bottom: 1px solid #EEEEEE;
+ text-align: center;
+ padding-top: .5em;
+ padding-bottom: .5em;
+}
+nav a { text-decoration: none;
+ font-weight: bold;
+}
+nav a:link { color: #00005D; }
+nav a:hover { color: #FF0000; }
+
+/* make the current page's link look different */
+nav #page { font-weight: bold;
+ color: #FEFEFE; }
+
+
+/* Force older versions of Internet Explorer to display these HTML5 elements with block display. */
+header, nav, main, footer, aside, figure { display: block; }
+
+@media (min-width: 600px) {
+ nav li {
+ display: inline-block;
+ width: 7em;
+ padding: 0.5em;
+ border: none;
+ }
+ nav ul {
+ text-align: center;
+ }
+ main {
+ float: left;
+ width: 55%;
+ }
+ aside {
+ margin-left: 55%;
+ }
+ footer {
+ clear: both;
+ }
+
+}
+
+ @media (min-width: 1024px) {
+ nav li {
+ display: block;
+ }
+ nav ul {
+ text-align: left;
+ }
+ nav {
+ float: left;
+ }
+ #wrapper {
+ width: 80%; margin: auto; max-width: 1200px;
+ }
+ body {
+ background-color: #000066; }
+ }
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li id="page">Home</li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast free-trade coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+ <aside>
+ <figure>
+ <img src="8.8.lighthouse.jpg" width="250" height="355" alt="Lighthouse Island">
+ </figure>
+ </aside>
+ <footer>
+ Copyright ©
+ </footer>
+ </div>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.light.gif b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.light.gif Binary files differnew file mode 100644 index 0000000..469b297 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.light.gif diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.lighthouse.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.lighthouse.jpg Binary files differnew file mode 100644 index 0000000..6455297 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp/8.8.lighthouse.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.index.html new file mode 100644 index 0000000..c0b856b --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.index.html @@ -0,0 +1,170 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Bistro</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <style>
+* { box-sizing: border-box;
+ margin: 0;
+}
+
+body {font-family: Verdana, Arial, sans-serif;
+}
+
+#wrapper { background-color: #B3C7E6;
+}
+
+header { color: #00005D;
+ background-color: #869DC7;
+ background-image: url(8.9.light.gif);
+ background-repeat: no-repeat;
+ background-size: auto 100%;
+ padding: .5em 0 .5em 5.5em;
+}
+main { background-color: #FFFFFF;
+ color: #000000;
+ padding: 1em;
+}
+aside { text-align: center; }
+
+footer { background-color: #869DC7;
+ font-size:70%;
+ text-align: center;
+ padding: 0.5em 0;
+}
+
+h2 { color: #869DC7; }
+img { padding: 1em; }
+
+/* Styles to configure navigation links as horizontal areas */
+nav ul { list-style-type: none;
+ padding-left: 0;
+ border-top: 1px solid #EEEEEE;
+}
+nav li { border-bottom: 1px solid #EEEEEE;
+ text-align: center;
+ padding-top: .5em;
+ padding-bottom: .5em;
+}
+nav a { text-decoration: none;
+ font-weight: bold;
+}
+nav a:link { color: #00005D; }
+nav a:hover { color: #FF0000; }
+
+/* make the current page's link look different */
+nav #page { font-weight: bold;
+ color: #FEFEFE; }
+
+/* Force older versions of Internet Explorer to display these HTML5 elements with block display. */
+header, nav, main, footer, aside, figure { display: block; }
+
+@media (min-width: 600px) {
+ nav ul {
+ display: flex; flex-flow: row nowrap;
+ justify-content: space-around;
+ }
+ nav ul li {
+ border-bottom: none;
+ }
+
+ #wrapper {
+ display: grid;
+ grid-template-columns: 55% auto;
+ grid-template-rows: auto auto auto auto;
+ }
+ header {
+ grid-row: 1 / 2;
+ grid-column: 1 / 3;
+ }
+ nav {
+ grid-row: 2 / 3;
+ grid-column: 1 / 3;
+ }
+ main {
+ grid-row: 3 / 4;
+ grid-column: 1 / 2;
+ }
+ aside {
+ grid-row: 3 / 4;
+ grid-column: 2 / 3;
+ }
+ footer {
+ grid-row: 4 / 5;
+ grid-column: 1 / 3;
+ }
+}
+
+ @media (min-width: 1024px) {
+ body {
+ background-color: #000066;
+ }
+ nav ul {
+ display: flex;
+ flex-direction: column;
+ flex-wrap: nowrap;
+ }
+ #wrapper {
+ width: 80%;
+ margin: auto; max-width: 1200px;
+ display: grid;
+ grid-template-columns: 150px auto auto;
+ grid-template-rows: auto auto auto ;
+ }
+ header {
+ grid-row: 1 / 2; grid-column: 1 / 4;
+ }
+ nav {
+ grid-row: 2 / 3; grid-column: 1 / 2;
+ }
+ main {
+ grid-row: 2 / 3; grid-column: 2 / 3;
+ }
+ aside {
+ grid-row: 2 / 3; grid-column: 3 / 4;
+ }
+ footer {
+ grid-row: 3 / 4; grid-column: 1 / 4;
+ }
+ }
+
+ </style>
+ </head>
+ <body>
+ <div id="wrapper">
+ <header>
+ <h1>Lighthouse Bistro</h1>
+ </header>
+ <nav>
+ <ul>
+ <li id="page">Home</li>
+ <li><a href="rooms.html">Menu</a></li>
+ <li><a href="directions.html">Directions</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Locally Roasted Coffee</h2>
+ <p>Indulge in the aroma of freshly ground roast free-trade coffee. Specialty drinks are available hot or cold.</p>
+ <h2>Specialty Pastries</h2>
+ <p>Enjoy a selection of our fresh-baked, organic pastries, including
+ fresh-fruit muffins, scones, croissants, and cinnamon rolls.</p>
+ <h2>Lunchtime is Anytime</h2>
+ <p>Savor delicious wraps and sandwiches on hearty, whole-grain breads with locally-grown salad, fruit, and vegetables. </p>
+ <h2>Panoramic View</h2>
+ <p>Take in some scenery! The top of our lighthouse offers a panoramic view of the countryside. Challenge your friends to climb our 100-stair tower.</p>
+ </main>
+ <aside>
+ <figure>
+ <img src="8.9.lighthouse.jpg" width="250" height="355" alt="Lighthouse Island">
+ </figure>
+ </aside>
+ <footer>
+ Copyright ©
+ </footer>
+ </div>
+ </body>
+</html>
+
+
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.light.gif b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.light.gif Binary files differnew file mode 100644 index 0000000..469b297 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.light.gif diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.lighthouse.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.lighthouse.jpg Binary files differnew file mode 100644 index 0000000..6455297 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/ch8resp2/8.9.lighthouse.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.header.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.header.jpg Binary files differnew file mode 100644 index 0000000..cb611ce --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.header.jpg diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.index.html b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.index.html new file mode 100644 index 0000000..5eb0f22 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.index.html @@ -0,0 +1,132 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Casita Sedona</title>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<style>
+* { box-sizing: border-box; }
+body {font-family: Verdana, Arial, sans-serif;
+ margin: 0;
+}
+
+header { background-image: url(8.10.header.jpg);
+ background-repeat: no-repeat;
+ background-size: cover;
+}
+
+img { max-width: 100%;
+ height: auto; }
+
+/* Name Grid Areas */
+header { grid-area: h; }
+nav { grid-area: n; }
+main { grid-area: m; }
+aside { grid-area: a; }
+footer { grid-area: f; }
+#wrapper { background-color: #F7F1E3;
+ color: #0B8781;
+ display: grid;
+ grid-template:
+ "h "
+ "n "
+ "m"
+ "f" ; }
+
+
+
+h2 { color: #2c2c54; }
+
+
+h1 { text-align: center;
+ color: #F7F1E3;
+ font-size: 300%;
+ text-shadow: 10px 10px 10px #000000;
+ font-size: 300%;
+}
+nav { font-size: 120%; }
+
+nav ul { padding-left: 0;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: space-around; }
+nav ul { list-style-type: none; }
+nav li { width: 20%;
+ min-width: 6em;
+ font-size: 110%;
+ text-align: center;
+ background-color: #003C58;
+ margin: .5em;
+ padding: .5em; }
+nav a { text-decoration: none;}
+nav a:link { color: #F7F1E3; }
+nav a:visited { color: #B9EDF0; }
+nav a:hover { color: #FFFFFF; }
+
+aside { display: none; padding: 1em;}
+
+main { padding: 0 1em 1em; }
+
+footer { text-align: center;
+ font-style: italic;
+ padding: 1em; }
+
+@media (min-width: 38em) {
+ #wrapper { grid-template:
+ " h h "
+ " n n "
+ " m a "
+ " f f "
+ / 60% 40% ; }
+ aside { display: block; }
+}
+@media (min-width: 65em) {
+ nav ul { display: flex;
+ flex-direction: column;
+ flex-wrap: nowrap; }
+ #wrapper { grid-template:
+ " h h h"
+ " n m a"
+ " f f f"
+ / 150px 1fr 30%; }
+}
+
+
+
+
+</style>
+</head>
+<body>
+<div id="wrapper">
+ <header>
+ <h1>Casita Sedona</h1>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="index.html">Home</a></li>
+ <li><a href="rooms.html">Rooms</a></li>
+ <li><a href="specials.html">Specials</a></li>
+ <li><a href="contact.html">Contact</a></li>
+ </ul>
+ </nav>
+ <main>
+ <h2>Located in the Heart of Sedona</h2>
+ <p>At Casita Sedona Bed & Breakfast you’ll be close to art galleries, shops, restaurants, hiking trails, and tours. Ride the free trolley to shops and galleries.</p>
+ <h2>Luxurious Rooms </h2>
+ <p>Stay in a well-appointed room at Casita Sedona with your own fireplace, king-size bed, balcony overlooking the red rocks, private bath with shower, and whirlpool tub for two. Choose from the Canyon, Javelina, Manzanita, Thunder Mountain, and Schnebly rooms — each is unique and sure to be a high point of your vacation experience.</p>
+ <h2>Hearty Breakfast</h2>
+ <p>Each day begins with a hearty breakfast that includes your choice of belgian waffles, pumpkin french toast, or quiche. Fresh fruit, yogurt, juice, and coffee are always available.</p>
+ <h2>About Your Hosts</h2>
+ <p>Your hosts, Melanie and Greg Tortuga, are long-time Sedona residents who love to share their knowledge of the Sedona area with their guests. Melanie is an author and artist. Greg has years of experience leading jeep tours and guiding hikes in and around Sedona.</p>
+ </main>
+ <aside>
+ <img src="8.10.pools.jpg" alt="Pools of water in the rock">
+ <h2>Guided Hikes</h2>
+ <p>Casita Sedona offers a free guided hike each week for guests. Explore the Seven Sacred Pools along the Soldiers Pass Trail.</p>
+ </aside>
+ <footer>Copyright ©
+ </footer>
+</div>
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.pools.jpg b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.pools.jpg Binary files differnew file mode 100644 index 0000000..b738448 --- /dev/null +++ b/HTML/Chapter/Ch. 8 hands-on assignments/Ch8_msglm/flexible8/8.10.pools.jpg diff --git a/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/9.1.index.html b/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/9.1.index.html new file mode 100644 index 0000000..ce51ed7 --- /dev/null +++ b/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/9.1.index.html @@ -0,0 +1,32 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Page Title Goes Here</title>
+<meta charset="utf-8">
+<style>
+
+</style>
+</head>
+<body>
+ <table border=1>
+ <caption>School History</caption>
+ <tr>
+ <td><b>School Attended</b></td>
+ <td><b>Years</b></td>
+ <td><b>Degree Awarded</b></td>
+ </tr>
+ <tr>
+ <td>Anonymized High School Name</td>
+ <td>2018-2020</td>
+ <td>High School Diploma</td>
+ </tr>
+ <tr>
+ <td>Artkansas Tech University</td>
+ <td>2020-Present</td>
+ <td>In-Progress Bachelors Degree in Information Technology</td>
+ </tr>
+ </table>
+
+
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/9.2.index.html b/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/9.2.index.html new file mode 100644 index 0000000..98c4b70 --- /dev/null +++ b/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/9.2.index.html @@ -0,0 +1,26 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Page Title Goes Here</title>
+<meta charset="utf-8">
+<style>
+
+</style>
+</head>
+<body>
+
+<table border=1>
+ <tr>
+ <td rowspan=3>Cana Island Lighthouse</td>
+ <td>Built: 1869.</td>
+ </tr>
+ <tr>
+ <td>Automated: 1944.</td>
+ </tr>
+ <tr>
+ <td>Tower Height: 65 Feet.</td>
+ </tr>
+</table>
+
+</body>
+</html>
diff --git a/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/ch9table/9.3.menu.html b/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/ch9table/9.3.menu.html new file mode 100644 index 0000000..0a11470 --- /dev/null +++ b/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/ch9table/9.3.menu.html @@ -0,0 +1,61 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Island Bistro</title>
+ <meta charset="utf-8">
+ <style>
+table {
+ margin: auto;
+ border: 5px solid #000066;
+ width: 600px;
+ border-spacing: 0;
+}
+
+caption {
+ font-family: Verdana, sans-serif;
+ font-weight: bold;
+ font-size: 1.2em;
+ padding-bottom: 5px;
+}
+
+
+td, th {
+ padding: 5px;
+ font-family: Arial, sans-serif;
+ border-style: none;
+}
+
+.altrow {
+ background-color: #eaeaea;
+}
+
+
+ </style>
+ </head>
+ <body>
+ <table>
+ <caption>Lighthouse Island Bistro Specialty Coffee Menu</caption>
+ <tr>
+ <th>Specialty Coffee</th>
+ <th>Description</th>
+ <th>Price</th>
+ </tr>
+ <tr class=altrow>
+ <td>Lite Latte</td>
+ <td>Indulge in a shot of espresso with steamed, skim milk</td>
+ <td>$3.50</td>
+ </tr>
+ <tr>
+ <td>Mocha Latte</td>
+ <td>Choose dark or milk chocolate with steamed milk</td>
+ <td>$4.00</td>
+ </tr>
+ <tr class=altrow>
+ <td>MCP Latte</td>
+ <td>A luscious mocha latte with caramel and pecan syrup</td>
+ <td>$4.50</td>
+ </tr>
+ </table>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/ch9table/9.4.menu2.html b/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/ch9table/9.4.menu2.html new file mode 100644 index 0000000..db73610 --- /dev/null +++ b/HTML/Chapter/Ch. 9 hands-on assignments/Ch9_msglm/ch9table/9.4.menu2.html @@ -0,0 +1,66 @@ +<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Lighthouse Island Bistro</title>
+ <meta charset="utf-8">
+ <style>
+table {
+ margin: auto;
+ border: 5px solid #000066;
+ width: 600px;
+ border-spacing: 0;
+}
+
+caption {
+ font-family: Verdana, sans-serif;
+ font-weight: bold;
+ font-size: 1.2em;
+ padding-bottom: 5px;
+}
+
+
+td, th {
+ padding: 5px;
+ font-family: Arial, sans-serif;
+ border-style: none;
+}
+
+tr:nth-of-type(even) {
+ background-color: #eaeaea;
+}
+
+tr:first-of-type {
+ background-color: #006;
+ color: #eaeaea;
+}
+
+
+ </style>
+ </head>
+ <body>
+ <table>
+ <caption>Lighthouse Island Bistro Specialty Coffee Menu</caption>
+ <tr>
+ <th>Specialty Coffee</th>
+ <th>Description</th>
+ <th>Price</th>
+ </tr>
+ <tr>
+ <td>Lite Latte</td>
+ <td>Indulge in a shot of espresso with steamed, skim milk</td>
+ <td>$3.50</td>
+ </tr>
+ <tr>
+ <td>Mocha Latte</td>
+ <td>Choose dark or milk chocolate with steamed milk</td>
+ <td>$4.00</td>
+ </tr>
+ <tr>
+ <td>MCP Latte</td>
+ <td>A luscious mocha latte with caramel and pecan syrup</td>
+ <td>$4.50</td>
+ </tr>
+ </table>
+
+ </body>
+</html>
diff --git a/HTML/Chapter/Chapter 1 - Hands-On Practice 1.1/chapter1/index.html b/HTML/Chapter/Chapter 1 - Hands-On Practice 1.1/chapter1/index.html new file mode 100644 index 0000000..3d1acf5 --- /dev/null +++ b/HTML/Chapter/Chapter 1 - Hands-On Practice 1.1/chapter1/index.html @@ -0,0 +1,19 @@ +<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>First HTML Webpage</title>
+<meta charset="utf-8">
+</head>
+<body>
+Test
+</body>
+</html>
+
+
+
+
+
+
+
+
+
diff --git a/HTML/Final/sneed/about.html b/HTML/Final/sneed/about.html new file mode 100644 index 0000000..6275ef1 --- /dev/null +++ b/HTML/Final/sneed/about.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - About</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=style.css> + <link rel="shortcut icon" href="assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="store.html">Store</a></li> + <li><a href="legal.html">Legal</a></li> + <li><a href="about.html">About</a></li> + </ul> + </nav> + <main> + <h1>About</h1> + <h2>Contact and Location</h2> + <b>Address: </b> + <p>13203 Cotton Road</p> + <p>Sneed, AR, 20423 </p> + <b>Phone:</b> + <p>501-616-9176</p> + <h2>Developer Information</h2> + <p>Most text that is found on the store page is wrote by a bot using the <a href=https://huggingface.co/gpt2-large>GPT-2 774M "Large"</a> AI model. The model is released under the MIT license.</p> + <p>The reason for generating via a bot rather than hand writing is to save time. I had to have a lot of "items" on display to make the kits and the shop page itself. This was the most efficient way I could find to make the site "complete" without using generic placeholder text or handwriting descriptions.</p> + </main> + <footer> + <p>Copyleft 2022 <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/assets/Iconography/favicon.png b/HTML/Final/sneed/assets/Iconography/favicon.png Binary files differnew file mode 100644 index 0000000..37c7ac9 --- /dev/null +++ b/HTML/Final/sneed/assets/Iconography/favicon.png diff --git a/HTML/Final/sneed/assets/Iconography/hat.png b/HTML/Final/sneed/assets/Iconography/hat.png Binary files differnew file mode 100644 index 0000000..1583fd5 --- /dev/null +++ b/HTML/Final/sneed/assets/Iconography/hat.png diff --git a/HTML/Final/sneed/assets/Iconography/logo-small.png b/HTML/Final/sneed/assets/Iconography/logo-small.png Binary files differnew file mode 100644 index 0000000..9ee8f6b --- /dev/null +++ b/HTML/Final/sneed/assets/Iconography/logo-small.png diff --git a/HTML/Final/sneed/assets/Iconography/logo.png b/HTML/Final/sneed/assets/Iconography/logo.png Binary files differnew file mode 100644 index 0000000..2fd6c23 --- /dev/null +++ b/HTML/Final/sneed/assets/Iconography/logo.png diff --git a/HTML/Final/sneed/assets/Iconography/purchase.png b/HTML/Final/sneed/assets/Iconography/purchase.png Binary files differnew file mode 100644 index 0000000..b554cc2 --- /dev/null +++ b/HTML/Final/sneed/assets/Iconography/purchase.png diff --git a/HTML/Final/sneed/assets/Kits/Appalachian-Culture.jpg b/HTML/Final/sneed/assets/Kits/Appalachian-Culture.jpg Binary files differnew file mode 100644 index 0000000..0382c3f --- /dev/null +++ b/HTML/Final/sneed/assets/Kits/Appalachian-Culture.jpg diff --git a/HTML/Final/sneed/assets/Kits/First-time-Gardeners-Kit.jpg b/HTML/Final/sneed/assets/Kits/First-time-Gardeners-Kit.jpg Binary files differnew file mode 100644 index 0000000..ac594f0 --- /dev/null +++ b/HTML/Final/sneed/assets/Kits/First-time-Gardeners-Kit.jpg diff --git a/HTML/Final/sneed/assets/Kits/The-Hot-Man's-Kit.jpg b/HTML/Final/sneed/assets/Kits/The-Hot-Man's-Kit.jpg Binary files differnew file mode 100644 index 0000000..baefd42 --- /dev/null +++ b/HTML/Final/sneed/assets/Kits/The-Hot-Man's-Kit.jpg diff --git a/HTML/Final/sneed/assets/Plants/Black_Che.jpg b/HTML/Final/sneed/assets/Plants/Black_Che.jpg Binary files differnew file mode 100644 index 0000000..b7f4bb5 --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/Black_Che.jpg diff --git a/HTML/Final/sneed/assets/Plants/Carolina_Reaper.jpg b/HTML/Final/sneed/assets/Plants/Carolina_Reaper.jpg Binary files differnew file mode 100644 index 0000000..f0de2b2 --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/Carolina_Reaper.jpg diff --git a/HTML/Final/sneed/assets/Plants/Habanero.jpg b/HTML/Final/sneed/assets/Plants/Habanero.jpg Binary files differnew file mode 100644 index 0000000..fac9d5e --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/Habanero.jpg diff --git a/HTML/Final/sneed/assets/Plants/Native_American_tobacco_flower.jpg b/HTML/Final/sneed/assets/Plants/Native_American_tobacco_flower.jpg Binary files differnew file mode 100644 index 0000000..b51325b --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/Native_American_tobacco_flower.jpg diff --git a/HTML/Final/sneed/assets/Plants/Oryza_sativa_of_Kadavoor.jpg b/HTML/Final/sneed/assets/Plants/Oryza_sativa_of_Kadavoor.jpg Binary files differnew file mode 100644 index 0000000..b1315f0 --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/Oryza_sativa_of_Kadavoor.jpg diff --git a/HTML/Final/sneed/assets/Plants/Soybean.USDA.jpg b/HTML/Final/sneed/assets/Plants/Soybean.USDA.jpg Binary files differnew file mode 100644 index 0000000..e28bb9c --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/Soybean.USDA.jpg diff --git a/HTML/Final/sneed/assets/Plants/Taiwan_2009_Tainan_City_Organic_Farm_Watermelon_FRD_7962.jpg b/HTML/Final/sneed/assets/Plants/Taiwan_2009_Tainan_City_Organic_Farm_Watermelon_FRD_7962.jpg Binary files differnew file mode 100644 index 0000000..031b06e --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/Taiwan_2009_Tainan_City_Organic_Farm_Watermelon_FRD_7962.jpg diff --git a/HTML/Final/sneed/assets/Plants/Yellow-Squash.jpg b/HTML/Final/sneed/assets/Plants/Yellow-Squash.jpg Binary files differnew file mode 100644 index 0000000..8e7fd2f --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/Yellow-Squash.jpg diff --git a/HTML/Final/sneed/assets/Plants/cubanelle.jpg b/HTML/Final/sneed/assets/Plants/cubanelle.jpg Binary files differnew file mode 100644 index 0000000..15b96b2 --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/cubanelle.jpg diff --git a/HTML/Final/sneed/assets/Plants/cucumber.jpg b/HTML/Final/sneed/assets/Plants/cucumber.jpg Binary files differnew file mode 100644 index 0000000..9e309d1 --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/cucumber.jpg diff --git a/HTML/Final/sneed/assets/Plants/entries.template b/HTML/Final/sneed/assets/Plants/entries.template new file mode 100644 index 0000000..bec61ee --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/entries.template @@ -0,0 +1 @@ +{"name" : "", "location": "", "image": "", "price": "", "ai": true, "desc": ""} diff --git a/HTML/Final/sneed/assets/Plants/garlic.jpg b/HTML/Final/sneed/assets/Plants/garlic.jpg Binary files differnew file mode 100644 index 0000000..966933d --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/garlic.jpg diff --git a/HTML/Final/sneed/assets/Plants/green-chilies.jpg b/HTML/Final/sneed/assets/Plants/green-chilies.jpg Binary files differnew file mode 100644 index 0000000..530a1d3 --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/green-chilies.jpg diff --git a/HTML/Final/sneed/assets/Plants/onion.jpg b/HTML/Final/sneed/assets/Plants/onion.jpg Binary files differnew file mode 100644 index 0000000..618e96d --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/onion.jpg diff --git a/HTML/Final/sneed/assets/Plants/potato.jpg b/HTML/Final/sneed/assets/Plants/potato.jpg Binary files differnew file mode 100644 index 0000000..61d423c --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/potato.jpg diff --git a/HTML/Final/sneed/assets/Plants/red-chili.jpg b/HTML/Final/sneed/assets/Plants/red-chili.jpg Binary files differnew file mode 100644 index 0000000..3d38d69 --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/red-chili.jpg diff --git a/HTML/Final/sneed/assets/Plants/source b/HTML/Final/sneed/assets/Plants/source new file mode 100644 index 0000000..71edc1d --- /dev/null +++ b/HTML/Final/sneed/assets/Plants/source @@ -0,0 +1,17 @@ +https://en.wikipedia.org/wiki/File:Mature_Carolina_Reaper.jpg +https://en.wikipedia.org/wiki/File:CSA-Yellow-Squash.jpg +https://en.wikipedia.org/wiki/File:Cucumber_BNC.jpg +https://en.wikipedia.org/wiki/File:Soybean.USDA.jpg +https://en.wikipedia.org/wiki/File:Oryza_sativa_of_Kadavoor.jpg +https://en.wikipedia.org/wiki/File:Native_American_tobacco_flower.jpg +https://en.wikipedia.org/wiki/File:Habanero_closeup_edit2.jpg +https://en.wikipedia.org/wiki/File:Taiwan_2009_Tainan_City_Organic_Farm_Watermelon_FRD_7962.jpg +https://en.wikipedia.org/wiki/File:Black_Che.jpg +https://en.wikipedia.org/wiki/File:ARS_red_onion.jpg +https://en.wikipedia.org/wiki/File:Allium_sativum_003.JPG +https://en.wikipedia.org/wiki/File:Russet_potato_cultivar_with_sprouts.jpg +https://commons.wikimedia.org/wiki/File:Allium_sativum_004.JPG +https://en.wikipedia.org/wiki/File:Shan_Hills,_Myanmar,_Red_chili_pepper_plant.jpg +https://en.wikipedia.org/wiki/File:Cubanelle_Peppers.jpg +https://en.wikipedia.org/wiki/File:Aesthetic_green_Chillies.JPG +https://en.wikipedia.org/wiki/File:Mother_of_vinegar.png diff --git a/HTML/Final/sneed/assets/Tools/Blue_pitchfork.jpg b/HTML/Final/sneed/assets/Tools/Blue_pitchfork.jpg Binary files differnew file mode 100644 index 0000000..13dbe41 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Blue_pitchfork.jpg diff --git a/HTML/Final/sneed/assets/Tools/Copperadze.jpg b/HTML/Final/sneed/assets/Tools/Copperadze.jpg Binary files differnew file mode 100644 index 0000000..36d7e9a --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Copperadze.jpg diff --git a/HTML/Final/sneed/assets/Tools/Cutter_mattock.jpg b/HTML/Final/sneed/assets/Tools/Cutter_mattock.jpg Binary files differnew file mode 100644 index 0000000..34fd4fc --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Cutter_mattock.jpg diff --git a/HTML/Final/sneed/assets/Tools/Hoe.jpg b/HTML/Final/sneed/assets/Tools/Hoe.jpg Binary files differnew file mode 100644 index 0000000..6ef15a0 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Hoe.jpg diff --git a/HTML/Final/sneed/assets/Tools/Pickaxe.jpg b/HTML/Final/sneed/assets/Tools/Pickaxe.jpg Binary files differnew file mode 100644 index 0000000..14e98c6 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Pickaxe.jpg diff --git a/HTML/Final/sneed/assets/Tools/SoilRake.jpg b/HTML/Final/sneed/assets/Tools/SoilRake.jpg Binary files differnew file mode 100644 index 0000000..ee3bf55 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/SoilRake.jpg diff --git a/HTML/Final/sneed/assets/Tools/Spade.jpg b/HTML/Final/sneed/assets/Tools/Spade.jpg Binary files differnew file mode 100644 index 0000000..8a3c75c --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Spade.jpg diff --git a/HTML/Final/sneed/assets/Tools/Thermometer.jpg b/HTML/Final/sneed/assets/Tools/Thermometer.jpg Binary files differnew file mode 100644 index 0000000..052205e --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Thermometer.jpg diff --git a/HTML/Final/sneed/assets/Tools/Trowel.jpg b/HTML/Final/sneed/assets/Tools/Trowel.jpg Binary files differnew file mode 100644 index 0000000..720e729 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Trowel.jpg diff --git a/HTML/Final/sneed/assets/Tools/Weeder.jpg b/HTML/Final/sneed/assets/Tools/Weeder.jpg Binary files differnew file mode 100644 index 0000000..85caa36 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/Weeder.jpg diff --git a/HTML/Final/sneed/assets/Tools/bucket.jpg b/HTML/Final/sneed/assets/Tools/bucket.jpg Binary files differnew file mode 100644 index 0000000..01728d7 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/bucket.jpg diff --git a/HTML/Final/sneed/assets/Tools/copper-coil.jpg b/HTML/Final/sneed/assets/Tools/copper-coil.jpg Binary files differnew file mode 100644 index 0000000..5bf1daa --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/copper-coil.jpg diff --git a/HTML/Final/sneed/assets/Tools/mason.jpg b/HTML/Final/sneed/assets/Tools/mason.jpg Binary files differnew file mode 100644 index 0000000..41ad178 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/mason.jpg diff --git a/HTML/Final/sneed/assets/Tools/mother-of-vinegar.jpg b/HTML/Final/sneed/assets/Tools/mother-of-vinegar.jpg Binary files differnew file mode 100644 index 0000000..8b46d6f --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/mother-of-vinegar.jpg diff --git a/HTML/Final/sneed/assets/Tools/saucepot.jpg b/HTML/Final/sneed/assets/Tools/saucepot.jpg Binary files differnew file mode 100644 index 0000000..059d269 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/saucepot.jpg diff --git a/HTML/Final/sneed/assets/Tools/sources b/HTML/Final/sneed/assets/Tools/sources new file mode 100644 index 0000000..39178d5 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/sources @@ -0,0 +1,16 @@ +https://en.wikipedia.org/wiki/File:Antique_Mason_jars.jpg +https://en.wikipedia.org/wiki/Baker%27s_yeast +https://commons.wikimedia.org/wiki/File:Mini-pelle_verte_-_%C3%A9chelle.jpg +https://commons.wikimedia.org/wiki/File:Blue_pitchfork.jpg +https://en.wikipedia.org/wiki/File:Cooperadze.jpg +https://en.wikipedia.org/wiki/File:Cutter_mattock.jpg +https://en.wikipedia.org/wiki/File:Pickaxe.jpg +https://en.wikipedia.org/wiki/File:SoilRake.jpg +https://en.wikipedia.org/wiki/File:Weeder.jpg +https://en.wikipedia.org/wiki/File:Trowel.JPG +https://en.wikipedia.org/wiki/File:Spade.jpg +https://commons.wikimedia.org/wiki/File:Hoe_2.jpg +https://commons.wikimedia.org/wiki/File:Tesla_coil_-_Primary_coil.jpg +https://en.wikipedia.org/wiki/File:A_metal_bucket.jpg +https://en.wikipedia.org/wiki/File:Thermometers_in_pitcher.jpg +https://en.wikipedia.org/wiki/File:Copper-saucepot.jpg diff --git a/HTML/Final/sneed/assets/Tools/yeast.jpg b/HTML/Final/sneed/assets/Tools/yeast.jpg Binary files differnew file mode 100644 index 0000000..637f286 --- /dev/null +++ b/HTML/Final/sneed/assets/Tools/yeast.jpg diff --git a/HTML/Final/sneed/assets/kit-pics.sh b/HTML/Final/sneed/assets/kit-pics.sh new file mode 100644 index 0000000..fdb5331 --- /dev/null +++ b/HTML/Final/sneed/assets/kit-pics.sh @@ -0,0 +1,5 @@ +montage Tools/yeast.jpg Tools/mason.jpg Plants/potato.jpg Tools/saucepot.jpg Tools/Thermometer.jpg Tools/bucket.jpg Tools/copper-coil.jpg -geometry 640x480+0+0 -tile 3x3 "/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Kits/Appalachian-Culture.jpg" + +montage Plants/Habanero.jpg Plants/Carolina_Reaper.jpg Plants/red-chili.jpg Plants/cubanelle.jpg Tools/mother-of-vinegar.png -geometry 640x480+0+0 -tile 3x2 "/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Kits/The-Hot-Man's-Kit.jpg" + +montage "/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Plants/Yellow-Squash.jpg" "/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Plants/cucumber.jpg" "/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Plants/garlic.jpg" "/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Plants/potato.jpg" "/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Plants/onion.jpg" '/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Tools/Hoe.jpg' '/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Tools/SoilRake.jpg' '/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Tools/Trowel.jpg' -geometry 640x480+0+0 "/home/msglm/Documents/SchoolStuff/Classes/Web Publishing I - COMS 1333/Assignments/Final/assets/Kits/First-time-Gardeners-Kit.jpg" diff --git a/HTML/Final/sneed/index.html b/HTML/Final/sneed/index.html new file mode 100644 index 0000000..8a7f790 --- /dev/null +++ b/HTML/Final/sneed/index.html @@ -0,0 +1,190 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Home</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=style.css> + <link rel="shortcut icon" href="assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="assets/Iconography/logo-small.png"> + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="store.html">Store</a></li> + <li><a href="legal.html">Legal</a></li> + <li><a href="about.html">About</a></li> + </ul> + </nav> + <main> + <h1>Welcome to Sneed's Feed and Seed!</h1> + <p>Here, you will find the best seeds, feed, and tools for your garden or farm. Everyone of all experience levels is invited to purchase our All-American tools, non-GMO seeds, or our low priced kits. All tools come with a 3 year warranty and you are free to return them if you are dissatisfied.</p> + <h1>Latest Bundles</h1> + <h3>First-time Gardeners Kit - <a href=purchase/First-time-Gardeners-Kit.html>Purchase</a></h3> + <p>For those new to the gardening scene and wish to have a simple first year while they learn the ropes. Comes with high yield, low maintenance plants such as squash, cucumbers, potatoes, and onions. Tools for planting also come with the kit.</p> + <div class=shop-box> + <a href=purchase/Yellow-Squash-Seeds.html> + <figure> + <img alt="An image of Yellow Squash" src=assets/Plants/Yellow-Squash.jpg> + <figcaption>Squash Seeds</figcaption> + </figure> + </a> + + <a href=purchase/Cucumbers-Seeds.html> + <figure> + <img alt="An image of A Cucumber" src=assets/Plants/cucumber.jpg> + <figcaption>Cucumber Seeds</figcaption> + </figure> + </a> + + <a href=purchase/Garlic-Cloves.html> + <figure> + <img alt="An image of Garlic" src=assets/Plants/garlic.jpg> + <figcaption>Garlic Cloves</figcaption> + </figure> + </a> + + <a href=purchase/Potato-Tubers.html> + <figure> + <img alt="An image of Potatos" src=assets/Plants/potato.jpg> + <figcaption>Potato Tubers</figcaption> + </figure> + </a> + + <a href=purchase/Red-Onions-Seeds.html> + <figure> + <img alt="An image of Red Onions" src=assets/Plants/onion.jpg> + <figcaption>Onion Cloves</figcaption> + </figure> + </a> + + <a href=purchase/Hoe.html> + <figure> + <img alt="An image of A hoe" src=assets/Tools/Hoe.jpg> + <figcaption>Hoe</figcaption> + </figure> + </a> + + <a href=purchase/Soil-Rake.html> + <figure> + <img alt="An image of A soil rake" src=assets/Tools/SoilRake.jpg> + <figcaption>Soil Rake</figcaption> + </figure> + </a> + + <a href=purchase/Trowel.html> + <figure> + <img alt="An image of a Trowl" src=assets/Tools/Trowel.jpg> + <figcaption>Trowel</figcaption> + </figure> + </a> + </div> + <h3>The Hot Man's Kit - <a href=purchase/The-Hot-Mans-Kit.html>Purchase</a></h3> + <p>A kit for those interested in pepper growing and sauce making. This bundle comes with four different types of hot pepper and the "Mother of Vinegar", an industrial grade solution designed to quickly make vinegar out of any sugars.</p> + <div class=shop-box> + <a href=purchase/Habanero-Pepper-Seeds.html> + <figure> + <img alt="An image of a Habanero pepper" src=assets/Plants/Habanero.jpg> + <figcaption>Habanero Seeds</figcaption> + </figure> + </a> + + <a href=purchase/Carolina-Reapers-Seeds.html> + <figure> + <img alt="An image of a Carolina Reaper" src=assets/Plants/Carolina_Reaper.jpg> + <figcaption>Carolina Reaper</figcaption> + </figure> + </a> + + <a href=purchase/Red-Chilies-Seeds.html> + <figure> + <img alt="An image of a Red chilie" src=assets/Plants/red-chili.jpg> + <figcaption>Red Chili Seeds</figcaption> + </figure> + </a> + + <a href=purchase/Cubanelle-Pepper-Seeds.html> + <figure> + <img alt="An image of Cubanelles" src=assets/Plants/cubanelle.jpg> + <figcaption>Cubanelle</figcaption> + </figure> + </a> + + <a href=purchase/The-Mother-of-Vinegar.html> + <figure> + <img alt="An image of the mother of vinegar" src=assets/Tools/mother-of-vinegar.jpg> + <figcaption><i>"Mother of Vinegar"</i></figcaption> + </figure> + </a> + + </div> + <h3>Appalachian Culture - <a href=purchase/Appalachian-Culture.html>Purchase</a></h3> + <p>A bundle for the celebration of Appalachian culture. All items here are popularly owned by those from the Appalachian region, mostly carrying over from the Scots-Irish immigration. 100% of profits go directly to political alcohol deregulation organizations.</p> + <div class=shop-box> + <a href=purchase/Baking-Yeast.html> + <figure> + <img alt="An image of a yeast culture" src=assets/Tools/yeast.jpg> + <figcaption>Culinary Yeast Culture</figcaption> + </figure> + </a> + + <a href=purchase/Mason-Jars.html> + <figure> + <img alt="An image of mason jars" src=assets/Tools/mason.jpg> + <figcaption>Mason Jars</figcaption> + </figure> + </a> + + <a href=purchase/Potato-Tubers.html> + <figure> + <img alt="An image of potato tubers" src=assets/Plants/potato.jpg> + <figcaption>Potato Tubers</figcaption> + </figure> + </a> + + <a href=purchase/Copper-Saucepot.html> + <figure> + <img alt="An image of a copper saucepot" src=assets/Tools/saucepot.jpg> + <figcaption>Copper Saucepot</figcaption> + </figure> + </a> + + <a href=purchase/Thermometer.html> + <figure> + <img alt="An image of a thermometer" src=assets/Tools/Thermometer.jpg> + <figcaption>Saucepot Thermometer</figcaption> + </figure> + </a> + + <a href=purchase/Bucket.html> + <figure> + <img alt="An image of a bucket" src=assets/Tools/bucket.jpg> + <figcaption>Steel Bucket</figcaption> + </figure> + </a> + + <a href=purchase/Copper-Coil.html> + <figure> + <img alt="An image of a copper coil" src=assets/Tools/copper-coil.jpg> + <figcaption>Copper Coil</figcaption> + </figure> + </a> + </div> + + </main> + <footer> + <p>Copyleft 2022 <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/legal.html b/HTML/Final/sneed/legal.html new file mode 100644 index 0000000..96578fb --- /dev/null +++ b/HTML/Final/sneed/legal.html @@ -0,0 +1,73 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Legal</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=style.css> + <link rel="shortcut icon" href="assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="store.html">Store</a></li> + <li><a href="legal.html">Legal</a></li> + <li><a href="about.html">About</a></li> + </ul> + </nav> + <main> + <h1>Legal</h1> + <p>This site is under the <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a> and uses other free content from Wikimedia Commons. All content is under a <a href=https://creativecommons.org/share-your-work/public-domain/freeworks>Free Culture</a> license. Any content not mentioned in the "Works Used" section is likely originating from the site's author and therefore is governed by the CC-BY-SA 4.0.</p> + <h2>Works Used</h2> + <p><a href=https://en.wikipedia.org/wiki/File:Mature_Carolina_Reaper.jpg>Photo of a Carolina Reaper plant</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:CSA-Yellow-Squash.jpg>Photo of a Yellow Squash plant</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Cucumber_BNC.jpg>Photo of a Cucumber </a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Soybean.USDA.jpg>Photo of a Soybean</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Oryza_sativa_of_Kadavoor.jpg>Photo of Asian Rice </a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Native_American_tobacco_flower.jpg>Photo of a Tobacco Flower</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Habanero_closeup_edit2.jpg>Photo of a Habanero pepper</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Taiwan_2009_Tainan_City_Organic_Farm_Watermelon_FRD_7962.jpg>Photo of a Taiwanese Watermelon</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Black_Che.jpg>Photo of a Black Cherry Tree</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:ARS_red_onion.jpg>Photo of a Red Onion</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Allium_sativum_003.JPG>Photo of a Garlic Plant</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Russet_potato_cultivar_with_sprouts.jpg>Photo of a Potato Tuber</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Shan_Hills,_Myanmar,_Red_chili_pepper_plant.jpg>Photo of Red Chilis</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Cubanelle_Peppers.jpg>Photo of Cubanelle Peppers</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Aesthetic_green_Chillies.JPG>Photo of a Green Chilis</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Mother_of_vinegar.png>Photo of a Mother of Vinegar </a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Antique_Mason_jars.jpg>Photo of Mason Jars</a></p> + <p><a href=https://en.wikipedia.org/wiki/Baker%27s_yeast>Photo of a Yeast Colony </a></p> + <p><a href=https://commons.wikimedia.org/wiki/File:Mini-pelle_verte_-_%C3%A9chelle.jpg>Photo of a hand shovel</a></p> + <p><a href=https://commons.wikimedia.org/wiki/File:Blue_pitchfork.jpg>Photo of a Pitchfork</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Cooperadze.jpg>Photo of a Copper Adze</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Cutter_mattock.jpg>Photo of a Mattock</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Pickaxe.jpg>Photo of a Pickaxe</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:SoilRake.jpg>Photo of a Soil Rake</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Weeder.jpg>Photo of a Weeder</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Trowel.JPG>Photo of a Trowel</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Spade.jpg>Photo of a Spade</a></p> + <p><a href=https://commons.wikimedia.org/wiki/File:Hoe_2.jpg>Photo of a Gardening Hoe</a></p> + <p><a href=https://commons.wikimedia.org/wiki/File:Tesla_coil_-_Primary_coil.jpg>Photo of a Copper Coil</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:A_metal_bucket.jpg>Photo of a Metal Bucket</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Thermometers_in_pitcher.jpg>Photo of a Thermometer</a></p> + <p><a href=https://en.wikipedia.org/wiki/File:Copper-saucepot.jpg>Photo of a Copper Saucepot</a></p> + + </main> + <footer> + <p>Copyleft 2022 <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase-form.html b/HTML/Final/sneed/purchase-form.html new file mode 100644 index 0000000..0cdb2bf --- /dev/null +++ b/HTML/Final/sneed/purchase-form.html @@ -0,0 +1,125 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Purchase</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=style.css> + <link rel="shortcut icon" href="assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="store.html">Store</a></li> + <li><a href="legal.html">Legal</a></li> + <li><a href="about.html">About</a></li> + </ul> + </nav> + <main> + <h1>Purchase Form</h1> + <p>All fields are required.</p> + + <form action="https://webdevbasics.net/scripts/demo.php" method="post"> + <label for="name">Enter your name: </label> + <input type="text" name="name" id="name" required> + <label for="email">Enter your email: </label> + <input type="email" name="email" id="email" required> + <label for="product">Enter the name of the product you wish to purchase: </label> + <input list="productlist" name="product" id="product" required> + <datalist id="productlist"> + <!--Items--> +<option value="Mason Jars"></option> + +<option value="Mattock"></option> + +<option value="Copper Adze"></option> + +<option value="Bucket"></option> + +<option value="Soil Rake"></option> + +<option value="Weeding Shovel"></option> + +<option value="Hoe"></option> + +<option value="Thermometer"></option> + +<option value="Spade"></option> + +<option value="Copper Saucepot"></option> + +<option value="Copper Coil"></option> + +<option value="Trowel"></option> + +<option value="The Mother of Vinegar"></option> + +<option value="Baking Yeast"></option> + +<option value="Pitchfork"></option> + +<option value="Pickaxe"></option> + +<option value="Red Onions Seeds"></option> + +<option value="Carolina Reapers Seeds"></option> + +<option value="Cucumbers Seeds"></option> + +<option value="Red Chilies Seeds"></option> + +<option value="Green Chilies Seeds"></option> + +<option value="Black Cherry Seeds"></option> + +<option value="Soybeans Seeds"></option> + +<option value="Rice Seeds"></option> + +<option value="Tobacco Seeds"></option> + +<option value="Taiwanese Watermelon Seeds"></option> + +<option value="Potato Tubers"></option> + +<option value="Garlic Cloves"></option> + +<option value="Habanero Pepper Seeds"></option> + +<option value="Cubanelle Pepper Seeds"></option> + +<option value="Yellow Squash Seeds"></option> + +<option value="Appalachian Culture"></option> + +<option value="The Hot Man's Kit"></option> + +<option value="First-time Gardeners Kit"></option> + + </datalist> + <label for="reserved">Enter the quantity of the product: </label> + <input type="number" name="reserved" id="reserved" required> + <label for="date">Enter when you will pick your goods up:</label> + <input type="date" name="date" id="date" required> + <input type="submit" value="Place Order"> + </form> + + </main> + <footer> + <p>Copyleft 2022 <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase-form.html.orig b/HTML/Final/sneed/purchase-form.html.orig new file mode 100644 index 0000000..7456612 --- /dev/null +++ b/HTML/Final/sneed/purchase-form.html.orig @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Purchase</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=style.css> + <link rel="shortcut icon" href="assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="store.html">Store</a></li> + <li><a href="legal.html">Legal</a></li> + <li><a href="about.html">About</a></li> + </ul> + </nav> + <main> + <h1>Purchase Form</h1> + <p>All fields are required.</p> + + <form action="https://webdevbasics.net/scripts/demo.php" method="post"> + <label for="name">Enter your name: </label> + <input type="text" name="name" id="name" required> + <label for="email">Enter your email: </label> + <input type="email" name="email" id="email" required> + <label for="product">Enter the name of the product you wish to purchase: </label> + <input list="productlist" name="product" id="product" required> + <datalist id="productlist"> + <!--Items--> + </datalist> + <label for="reserved">Enter the quantity of the product: </label> + <input type="number" name="reserved" id="reserved" required> + <label for="date">Enter when you will pick your goods up:</label> + <input type="date" name="date" id="date" required> + <input type="submit" value="Place Order"> + </form> + + </main> + <footer> + <p>Copyleft 2022 <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Appalachian-Culture.html b/HTML/Final/sneed/purchase/Appalachian-Culture.html new file mode 100644 index 0000000..4805990 --- /dev/null +++ b/HTML/Final/sneed/purchase/Appalachian-Culture.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Appalachian Culture</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Kits/Appalachian-Culture.jpg> + </div> + <div id=purchase-desc> + <h1>Appalachian Culture</h1> + <a href=../purchase-form.html> + <img alt="A photo of Appalachian Culture" src="../assets/Iconography/purchase.png"> + </a> + <h3>$50</h3> + <p>A bundle for the celebration of Appalachian culture. All items here are popularly owned by those from the Appalachian region, mostly carrying over from the Scots-Irish immigration. 100% of profits go directly to political alcohol deregulation organizations.</p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Baking-Yeast.html b/HTML/Final/sneed/purchase/Baking-Yeast.html new file mode 100644 index 0000000..8e21a90 --- /dev/null +++ b/HTML/Final/sneed/purchase/Baking-Yeast.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Baking Yeast</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/yeast.jpg> + </div> + <div id=purchase-desc> + <h1>Baking Yeast</h1> + <a href=../purchase-form.html> + <img alt="A photo of Baking Yeast" src="../assets/Iconography/purchase.png"> + </a> + <h3>$3</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Baker's yeast is commonly used for brewing wine, making beer and beer-like products such as breads. + +The yeast used in Baker's yeast is commonly used for brewing wine, making beer and beer-like products such as breads. Pilsner Urquell + +Pilsner Urquell is a pale ale with a light yellow and amber color. It is dry, clean and crisp, with a slight carbonation. It is a classic German beer style. + +Pilsner Urquell is a pale ale with a light yellow and amber color. It is dry, clean and crisp, with a slight carbonation. It is a classic German beer style. Pilsner Urquell is also known as "bock" or "pilsner". + +Pilsner Urquell is a pale ale with a light yellow and amber color. It is dry, clean and crisp, with a slight carbonation. It is a classic German</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Black-Cherry-Seeds.html b/HTML/Final/sneed/purchase/Black-Cherry-Seeds.html new file mode 100644 index 0000000..899b21c --- /dev/null +++ b/HTML/Final/sneed/purchase/Black-Cherry-Seeds.html @@ -0,0 +1,67 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Black Cherry Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/Black_Che.jpg> + </div> + <div id=purchase-desc> + <h1>Black Cherry Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Black Cherry Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Black Cherries are known to have a very pleasant flavor, and I find it to be the perfect balance of sweetness and tartness. + +You can see below the finished product after the fruit is added to my mixture. + +The result was a very unique and delicious flavor. + +These cherries are extremely versatile. They can be used in any kind of pies, brownies, and even on their own as a fruit topping. They can also be used in the baking of cakes, cookies, or in other fruit-based desserts. + +I have also included a picture of what they look like when you cut them in half. + +You can also see the result in the picture below. + +I would love to hear your feedback on this product and if you have any questions. If you are interested in ordering the fruit, please fill in the form below. + +Enjoy! + +-Michele + +(Visited 49 times, 1 visits today)</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Bucket.html b/HTML/Final/sneed/purchase/Bucket.html new file mode 100644 index 0000000..b2d4320 --- /dev/null +++ b/HTML/Final/sneed/purchase/Bucket.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Bucket</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/bucket.jpg> + </div> + <div id=purchase-desc> + <h1>Bucket</h1> + <a href=../purchase-form.html> + <img alt="A photo of Bucket" src="../assets/Iconography/purchase.png"> + </a> + <h3>$7</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>An iron bucket, commonly used for urns, is placed over the lid, and in the bottom of the bucket a hole is made for the draught. The draught is passed through a small hole in the lid, and then through holes in the wooden frame of the urn. The contents of the bucket are then placed into the hole in the lid, and in the bottom of the bucket a circular hole is made, through which the draught passes. This hole is covered with a wooden lid, which is then sealed, and the urn is sealed. The shape of the lid is chosen according to the shape of the urn, so that it is possible to put the urn in the top of the bucket, and to have all the contents of the bucket above the top hole in the lid. + +The method of sealing an urn is not easy. It is to be observed that the lid must be closed so that it is not possible to see the contents of</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Carolina-Reapers-Seeds.html b/HTML/Final/sneed/purchase/Carolina-Reapers-Seeds.html new file mode 100644 index 0000000..4a1a9e2 --- /dev/null +++ b/HTML/Final/sneed/purchase/Carolina-Reapers-Seeds.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Carolina Reapers Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/Carolina_Reaper.jpg> + </div> + <div id=purchase-desc> + <h1>Carolina Reapers Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Carolina Reapers Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Carolina Reapers are a type of hot pepper that are similar to the Carolina Reaper, but are generally smaller and more rounded in shape. They are found primarily in the southern United States and Canada. + +Carolina Reaper Hot Pepper Facts + +The Carolina Reaper is the only pepper that is known to have the ability to grow to a maximum size of 3.5 inches, and the maximum size available to the plant. The Carolina Reaper pepper plants can grow to up to 10 feet tall and can grow up to eight feet in diameter. The Carolina Reaper is also the only pepper that is capable of growing to a height of six feet. + +The Carolina Reaper pepper is native to southern South Carolina and has been cultivated for millennia. It is currently grown worldwide as a source of spice, seasoning and culinary ingredients. + +The Carolina Reaper peppers have been used to make a variety of foods as well as many traditional medicines. The Carolina Reaper pepper has been used in traditional medicine for centuries as well.</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Copper-Adze.html b/HTML/Final/sneed/purchase/Copper-Adze.html new file mode 100644 index 0000000..9b20e04 --- /dev/null +++ b/HTML/Final/sneed/purchase/Copper-Adze.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Copper Adze</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Copperadze.jpg> + </div> + <div id=purchase-desc> + <h1>Copper Adze</h1> + <a href=../purchase-form.html> + <img alt="A photo of Copper Adze" src="../assets/Iconography/purchase.png"> + </a> + <h3>$20</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A Copper Adze, commonly used for the reduction of swelling. + +How do you get rid of the old stuff? Well, you don't. There's no replacement in the world for it. Just keep drinking and eating more. + +This, my friends, is how the world goes. + +I mean, it is not like you can say 'oh well, they'll get rid of it eventually.' No, you just keep drinking and eating and you'll just keep getting it. + +I mean, if you were to go to jail for drinking too much or smoking too much or something and you're going to spend the rest of your life in jail for that, then I'd be more than happy to tell you to go home and get a life. + +So, I have to say, I'm glad that I'm not going to jail, I mean I have a job. + +Oh, I'm not going to jail. + +No, but</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Copper-Coil.html b/HTML/Final/sneed/purchase/Copper-Coil.html new file mode 100644 index 0000000..a4aa75e --- /dev/null +++ b/HTML/Final/sneed/purchase/Copper-Coil.html @@ -0,0 +1,70 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Copper Coil</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/copper-coil.jpg> + </div> + <div id=purchase-desc> + <h1>Copper Coil</h1> + <a href=../purchase-form.html> + <img alt="A photo of Copper Coil" src="../assets/Iconography/purchase.png"> + </a> + <h3>$16</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Copper Coil is commonly used for vernier d'air, though it is also used for high-volume applications. + + +The standard resistance is about 1.2KΩ. + +The maximum current is about 5A and the minimum current is about 0.3A. + +The output impedance is 30Ω. + +The maximum current is about 5A and the minimum current is about 0.3A. The output impedance is 30Ω. The maximum current is about 5A and the minimum current is about 0.3A. + +This unit can be used for more than 1A, but the higher the current, the more resistance you will need. + + +The output is not regulated. + +This unit is not a regulated output. This unit is not a regulated output. + + +The output can be powered by 4-6V AC or by DC. + +The output can be powered by 4-6V AC or by DC</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Copper-Saucepot.html b/HTML/Final/sneed/purchase/Copper-Saucepot.html new file mode 100644 index 0000000..0ac2703 --- /dev/null +++ b/HTML/Final/sneed/purchase/Copper-Saucepot.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Copper Saucepot</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/saucepot.jpg> + </div> + <div id=purchase-desc> + <h1>Copper Saucepot</h1> + <a href=../purchase-form.html> + <img alt="A photo of Copper Saucepot" src="../assets/Iconography/purchase.png"> + </a> + <h3>$13</h3> + <p>Copper Saucepot</p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Cubanelle-Pepper-Seeds.html b/HTML/Final/sneed/purchase/Cubanelle-Pepper-Seeds.html new file mode 100644 index 0000000..01db79c --- /dev/null +++ b/HTML/Final/sneed/purchase/Cubanelle-Pepper-Seeds.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Cubanelle Pepper Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/cubanelle.jpg> + </div> + <div id=purchase-desc> + <h1>Cubanelle Pepper Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Cubanelle Pepper Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$5</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Cubanelle Peppers are a type red, hot pepper that comes from the genus Capsicum. They are the most common red pepper in the world, and in the United States, they are found in the following varieties: + +Capsicum annuum - Capsicum annuum is the most popular variety. It's the most popular red pepper in the world. It is the hot pepper that is used for cooking and baking, and is the most commonly grown variety. However, it is also found in a few other hot pepper varieties. + +Capsicum annuum is the most popular variety. It's the most popular red pepper in the world. It is the hot pepper that is used for cooking and baking, and is the most commonly grown variety. However, it is also found in a few other hot pepper varieties. Capsicum annuum var. carne - Capsicum annuum var. carne is the most popular hot pepper in the world, and is often grown in</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Cucumbers-Seeds.html b/HTML/Final/sneed/purchase/Cucumbers-Seeds.html new file mode 100644 index 0000000..451a76e --- /dev/null +++ b/HTML/Final/sneed/purchase/Cucumbers-Seeds.html @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Cucumbers Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/cucumber.jpg> + </div> + <div id=purchase-desc> + <h1>Cucumbers Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Cucumbers Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Cucumbers are a pretty common food in China. In particular, cucumbers are very popular with the Chinese for their very low calorific value. The Chinese are known to eat cucumbers raw in their winter, especially during the summer months. + +What is the Calorie Content of Chinese Cucumbers? + +Cucumbers have a fairly low calorific value. The calorific value of the average Chinese cucumber is about 5 calories. This is higher than most fruits and vegetables. However, Chinese cucumbers are also a good source of fiber, which is very important for the prevention of heart disease. + +How to Eat Chinese Cucumbers + +The most common way to eat Chinese cucumbers is to prepare them as an appetizer or main dish. You can also eat cucumbers raw and add them to your soup and rice. + +In addition, you can eat Chinese cucumbers as a snack by wrapping them in foil or putting them in a small</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/First-time-Gardeners-Kit.html b/HTML/Final/sneed/purchase/First-time-Gardeners-Kit.html new file mode 100644 index 0000000..ab72fe2 --- /dev/null +++ b/HTML/Final/sneed/purchase/First-time-Gardeners-Kit.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - First-time Gardeners Kit</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Kits/First-time-Gardeners-Kit.jpg> + </div> + <div id=purchase-desc> + <h1>First-time Gardeners Kit</h1> + <a href=../purchase-form.html> + <img alt="A photo of First-time Gardeners Kit" src="../assets/Iconography/purchase.png"> + </a> + <h3>$48</h3> + <p>For those new to the gardening scene and wish to have a simple first year while they learn the ropes. Comes with high yield, low maintainance plants such as squash, cucumbers, potatos, and onions. Tools for planting also come with the kit.</p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Garlic-Cloves.html b/HTML/Final/sneed/purchase/Garlic-Cloves.html new file mode 100644 index 0000000..70ee446 --- /dev/null +++ b/HTML/Final/sneed/purchase/Garlic-Cloves.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Garlic Cloves</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/garlic.jpg> + </div> + <div id=purchase-desc> + <h1>Garlic Cloves</h1> + <a href=../purchase-form.html> + <img alt="A photo of Garlic Cloves" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Garlic is a type of bulb plant that is also known as bulb bulb bulb, bulb bulb weed, bulb bulb herb, bulb bulb root, bulb bulb weed, bulb bulb herb, bulb bulb root, bulb bulb weed, bulb bulb herb, bulb bulb root, bulb bulb weed, bulb bulb herb, bulb bulb root, bulb bulb weed, bulb bulb herb, bulb root, bulb bulb weed, bulb bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb, bulb root, bulb weed, bulb herb</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Green-Chilies-Seeds.html b/HTML/Final/sneed/purchase/Green-Chilies-Seeds.html new file mode 100644 index 0000000..240ccd9 --- /dev/null +++ b/HTML/Final/sneed/purchase/Green-Chilies-Seeds.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Green Chilies Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/green-chilies.jpg> + </div> + <div id=purchase-desc> + <h1>Green Chilies Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Green Chilies Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Green Chilies are a good source of Vitamin C, Vitamin A, Vitamin E, and Vitamin C. + +A healthy diet should include the following: + +2 to 3 servings of fruits and vegetables per day + +1 to 2 servings of vegetables per day + +50 to 60 servings of whole grains per day + +A healthy diet should include the following: + +2 to 3 servings of fruits and vegetables per day + +1 to 2 servings of vegetables per day + +60 to 80 ounces of whole milk, 1 cup of whole-wheat yogurt, or 1 cup of unsweetened almond milk per day + +A healthy diet should include the following: + +2 to 3 servings of fruits and vegetables per day + +1 to 2 servings of vegetables per day + +50 to 60 ounces of whole milk, 1 cup of whole-wheat yogurt, or 1 cup of unsweetened almond milk per day + +A healthy diet should include the following:</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Habanero-Pepper-Seeds.html b/HTML/Final/sneed/purchase/Habanero-Pepper-Seeds.html new file mode 100644 index 0000000..95385ce --- /dev/null +++ b/HTML/Final/sneed/purchase/Habanero-Pepper-Seeds.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Habanero Pepper Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/Habanero.jpg> + </div> + <div id=purchase-desc> + <h1>Habanero Pepper Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Habanero Pepper Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$5</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Habanero Peppers are an orange hot peppter that uses a full spectrum of peppers to make it a spicy, unique, and delicious food. + +We've put together a list of the best peppers for this recipe, and you can find more great peppers in our Pepper Recipes section. + +Hot Peppers for this Recipe: + +This recipe is an easy one to make, so let's get to it! + +Peppers are a wonderful part of any meal, and can be a health food or even a healthy side dish. Peppers are easy to grow and can be purchased in bulk, so you can grow your own. + +Peppers are delicious, but it's easy to forget that you're really eating a pepper. + +This is a great recipe to make at home, because it's quick to make, and it's healthy! You'll get a little burn, but I'd say it's worth it. + +There are plenty of peppers for</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Hoe.html b/HTML/Final/sneed/purchase/Hoe.html new file mode 100644 index 0000000..2a7551e --- /dev/null +++ b/HTML/Final/sneed/purchase/Hoe.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Hoe</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Hoe.jpg> + </div> + <div id=purchase-desc> + <h1>Hoe</h1> + <a href=../purchase-form.html> + <img alt="A photo of Hoe" src="../assets/Iconography/purchase.png"> + </a> + <h3>$15</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A farming hoe is a tool used for  stacking up fruit for the next harvest.  It is generally used in the form of a wooden handle, a pair of tongs, a pick and a shovel.  A farming hoe is a tool used for  stacking up fruit for the next harvest.  It is generally used in the form of a wooden handle, a pair of tongs, a pick and a shovel.  A farming hoe is a tool used for  stacking up fruit for the next harvest.  It is generally used in the form of a wooden handle, a pair of tongs, a pick and a shovel.  A farming hoe is a tool used for  stacking up fruit for the next harvest.  It is generally used in the form of a wooden handle, a pair of tongs, a pick and a shovel.  A </span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Mason-Jars.html b/HTML/Final/sneed/purchase/Mason-Jars.html new file mode 100644 index 0000000..d563e63 --- /dev/null +++ b/HTML/Final/sneed/purchase/Mason-Jars.html @@ -0,0 +1,73 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Mason Jars</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/mason.jpg> + </div> + <div id=purchase-desc> + <h1>Mason Jars</h1> + <a href=../purchase-form.html> + <img alt="A photo of Mason Jars" src="../assets/Iconography/purchase.png"> + </a> + <h3>$6</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A common mason jar, usually used for the glass jars used in the kitchen, is made from a wood or plastic casing, wrapped in a sheet of wood or plastic. Glass jars are typically made from a metal or plastic casing. Some glass jars are made from a cloth casing. + +The mason jar is used for storing and preserving food ingredients. A mason jar is commonly used for storing ingredients for home or commercial products by itself. + +The use of Mason Jars in home or commercial kitchens may be limited by the need for a special container to hold the ingredients. You may need to purchase jars that are suitable for your kitchen layout. + +Mason jars are often used as mason jars for the following reasons: + +Cooking + +Vacuuming + +Making mason jars for the following: + +Cleaning + +Cleaning and sterilization + +Cleaning + +Shopping + +Cleaning + +Vacuuming</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Mattock.html b/HTML/Final/sneed/purchase/Mattock.html new file mode 100644 index 0000000..7a5266b --- /dev/null +++ b/HTML/Final/sneed/purchase/Mattock.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Mattock</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Cutter_mattock.jpg> + </div> + <div id=purchase-desc> + <h1>Mattock</h1> + <a href=../purchase-form.html> + <img alt="A photo of Mattock" src="../assets/Iconography/purchase.png"> + </a> + <h3>$25</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Mattocks are tools used for making a variety of jewelry, such as bracelets, necklaces, earrings, earrings, earrings, earrings, rings, earrings, earrings, rings, earrings, rings, earrings, ring, rings, earrings, rings, rings, rings, earrings, rings, rings, earrings, rings, rings, earrings, rings, earrings, rings, earrings, rings, rings, earrings, rings, rings, earrings, rings, earrings, rings, earrings, rings, earrings, rings, earrings, rings, earrings, rings, earrings, rings, earrings, rings, earrings, rings, rings, rings, earrings, rings, rings, earrings, rings, rings, ring, rings, rings, earrings, rings, rings, earrings, rings, rings, earrings, rings, rings, earrings, rings, rings, ear</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Pickaxe.html b/HTML/Final/sneed/purchase/Pickaxe.html new file mode 100644 index 0000000..c7f9f63 --- /dev/null +++ b/HTML/Final/sneed/purchase/Pickaxe.html @@ -0,0 +1,77 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Pickaxe</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Pickaxe.jpg> + </div> + <div id=purchase-desc> + <h1>Pickaxe</h1> + <a href=../purchase-form.html> + <img alt="A photo of Pickaxe" src="../assets/Iconography/purchase.png"> + </a> + <h3>$20</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>In gardening, a Pickaxe is used for cutting a plant down to the proper size. A Pickaxe is the most common tool used in the game, and is also used in crafting. + +Pickaxes are found in the game in the following locations: + +Crafting Edit + +Pickaxes can be crafted by using a Pickaxe and a Hammer. + +For the crafting recipe, see: + +Usage Edit + +Pickaxes are used to cut down trees, bushes, and smaller plants. They are the only tool used to chop down trees and bushes. + +An axe used to cut down a tree. + +A pickaxe used to chop down a bush. + +A pickaxe used to chop down a bush. + +Used to chop down a tree. + +Used to chop down a bush. + +Used to chop down a bush. + +Used to chop down a tree. + +A pickaxe used to chop down a</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Pitchfork.html b/HTML/Final/sneed/purchase/Pitchfork.html new file mode 100644 index 0000000..91fc8cf --- /dev/null +++ b/HTML/Final/sneed/purchase/Pitchfork.html @@ -0,0 +1,61 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Pitchfork</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Blue_pitchfork.jpg> + </div> + <div id=purchase-desc> + <h1>Pitchfork</h1> + <a href=../purchase-form.html> + <img alt="A photo of Pitchfork" src="../assets/Iconography/purchase.png"> + </a> + <h3>$10</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A pitchfork is used for digging in the mud and for extracting buried treasures. It is used as a source of food, protection, and as a weapon of war. + +In the Bible, the word for pitchfork is "pipes" ( Genesis 6:14 ) and the word for the "pitch" itself is "pipes" ( Exodus 7:2 ). + +The Bible uses the word "pitchfork" for digging in the ground. + +In the Bible, the word for pitchfork is "pipes" ( Exodus 7:2 ) and the word for the "pitch" itself is "pipes" (. Genesis 6:14 ). + +The word for pitchfork is "pipes" ( Exodus 7:2 ). + +The Bible uses the word for pitchfork for digging in the ground. + +In the Bible, the word for pitchfork is "pipes" ( Exodus 7:2 ) and the word for the</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Potato-Tubers.html b/HTML/Final/sneed/purchase/Potato-Tubers.html new file mode 100644 index 0000000..88b6b1e --- /dev/null +++ b/HTML/Final/sneed/purchase/Potato-Tubers.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Potato Tubers</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/potato.jpg> + </div> + <div id=purchase-desc> + <h1>Potato Tubers</h1> + <a href=../purchase-form.html> + <img alt="A photo of Potato Tubers" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Potato tubers are used for human consumption, but since potatoes are not a vegetable, no food can be eaten from them. The potato tubers are cut off and boiled in water, and then placed in a bowl of salt. The water is then drained to the top of the tubers. The tubers are then left to soak for a day or two, and the salt is added. After the tubers have soaked, they are added to a pot of boiling water. The water is drained in the same manner. After the tubers are cooked, they are placed on a plate. The salt is then added to the potatoes, while the water is still boiling. The potatoes are then added to the salt, and the potatoes are left to cool. The potatoes are then added to a pot of boiling water. The potatoes are then left to cool, and the salt is added. The potatoes are then removed from the pot of boiling water, and the water is drained. The potatoes are</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Red-Chilies-Seeds.html b/HTML/Final/sneed/purchase/Red-Chilies-Seeds.html new file mode 100644 index 0000000..07e8e4e --- /dev/null +++ b/HTML/Final/sneed/purchase/Red-Chilies-Seeds.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Red Chilies Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/red-chili.jpg> + </div> + <div id=purchase-desc> + <h1>Red Chilies Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Red Chilies Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Red Chilies are a must! So, when I was eating a chili that was supposed to be a vegetarian one, I thought, "Gee, this sounds good, but I'm not sure how to cook it! I'll get some other food." + +So, I decided to go shopping and I was so confused! How can I make a vegetarian chili? How can I make a vegetable chili? I was like, "What is a vegetable chili?" So, I looked in the fridge and I saw all kinds of vegetables, and I was like, "Gee, I'm a vegetable." + +I realized that I need to learn how to cook chili, so I started cooking chili, and it was so good! I had to make a version of it. + +When I started making the vegetarian chili, I knew it would be a lot of work, but at the end of the day, it was worth it! + +I wanted to share this recipe with</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Red-Onions-Seeds.html b/HTML/Final/sneed/purchase/Red-Onions-Seeds.html new file mode 100644 index 0000000..c0432b3 --- /dev/null +++ b/HTML/Final/sneed/purchase/Red-Onions-Seeds.html @@ -0,0 +1,61 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Red Onions Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/onion.jpg> + </div> + <div id=purchase-desc> + <h1>Red Onions Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Red Onions Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Red Onions are very popular foods in the Middle East. You can find them in many cuisines and even in some Western countries. In fact, in the Philippines, you will find the most popular dish is "Onion" rice. + +In Indonesia, you will find a popular dish called "Lapang" (Honey-rice), that is rice made from fried onions and papaya leaves. Also, the Philippines is also known for their "Onion" rice. + +In the Middle East, you will find a popular dish called "Onion" Rice in Jordan. + +In Indonesia, you can find "Onion" Rice in some places. + +In Malaysia, you will find "Onion" Rice in the Malaysian islands. + +In Iran, you will find "Onion" Rice in the Iranian cities. + +In India, you can find "Onion" Rice in many places, notably in Delhi, Mumbai and Kolkata</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Rice-Seeds.html b/HTML/Final/sneed/purchase/Rice-Seeds.html new file mode 100644 index 0000000..1c29777 --- /dev/null +++ b/HTML/Final/sneed/purchase/Rice-Seeds.html @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Rice Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/Oryza_sativa_of_Kadavoor.jpg> + </div> + <div id=purchase-desc> + <h1>Rice Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Rice Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$3</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Rice is a very good plant, and it is easy to grow in the ground. You can also grow it in the garden if you have the space. + +It is also a very good plant to raise chicks in. The chicks can eat rice and they will grow up to be sturdy and strong chickens. + +Coconut + +Coconut (Cocos nucifera) is a tropical fruit that has been used around the world since ancient times. Coconut is usually eaten as a fruit, especially in Asia. It is also a good source of energy for humans. It is a good source of dietary fiber, potassium and vitamin B6. + +Coconut is a good source of fiber and potassium. It is also a good source of vitamin B6. It is extremely nutritious and can be used for weight management. + +It is also very high in vitamins A and C. It is a good source of protein and is very useful for muscle growth.</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Soil-Rake.html b/HTML/Final/sneed/purchase/Soil-Rake.html new file mode 100644 index 0000000..9fcb8c9 --- /dev/null +++ b/HTML/Final/sneed/purchase/Soil-Rake.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Soil Rake</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/SoilRake.jpg> + </div> + <div id=purchase-desc> + <h1>Soil Rake</h1> + <a href=../purchase-form.html> + <img alt="A photo of Soil Rake" src="../assets/Iconography/purchase.png"> + </a> + <h3>$10</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A Soil Rake is used for the purpose of preparing and maintaining organic soil. It is a tool in the hands of farmers. It is a means of removing soil that has been over-run by weeds and is a means of removing soil that has been washed away by torrential rains. It is an effective tool in the hands of a farmer. It is a tool in the hands of a farmer. It is an effective tool in the hands of a farmer. It is an effective tool in the hands of a farmer. It is a tool in the hands of a farmer. It is an effective tool in the hands of a farmer. It is an effective tool in the hands of a farmer. It is an effective tool in the hands of a farmer. It is an effective tool in the hands of a farmer. It is an effective tool in the hands of a farmer. It is an effective tool in the hands of a farmer. It is an effective tool in the hands of a farmer</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Soybeans-Seeds.html b/HTML/Final/sneed/purchase/Soybeans-Seeds.html new file mode 100644 index 0000000..2c593ee --- /dev/null +++ b/HTML/Final/sneed/purchase/Soybeans-Seeds.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Soybeans Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/Soybean.USDA.jpg> + </div> + <div id=purchase-desc> + <h1>Soybeans Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Soybeans Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$3</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Soybeans are a commonly grown plant that is known to contain high levels of phytic acid. Soy is one of the most widely used plant foods for human consumption. It is a rich source of many nutrients, including protein, fiber, calcium, magnesium, iron, vitamin B12, vitamin K, vitamin D, and vitamin B6. + +Soy is one of the most commonly grown plant foods for human consumption. It is a rich source of many nutrients, including protein, fiber, calcium, magnesium, iron, vitamin B12, vitamin K, vitamin D, and vitamin B6. Soybeans are a good source of fiber, antioxidants, and vitamins A, C, and E. + +Soy is a good source of fiber, antioxidants, and vitamins A, C, and E. Soybeans are a low-calorie food that is the main source of soy protein. Soybeans contain no cholesterol or saturated fat. + +Soybeans are a low-</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Spade.html b/HTML/Final/sneed/purchase/Spade.html new file mode 100644 index 0000000..0eeeaa7 --- /dev/null +++ b/HTML/Final/sneed/purchase/Spade.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Spade</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Spade.jpg> + </div> + <div id=purchase-desc> + <h1>Spade</h1> + <a href=../purchase-form.html> + <img alt="A photo of Spade" src="../assets/Iconography/purchase.png"> + </a> + <h3>$10</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A common spade, or shovel, is a digging insturment used for excavating and flattening soil. It is very versatile in the field and is the tool of choice to help dig in hard, rocky or muddy soil. It is also a good alternative to a ladder to help you work in tight spaces. + +The shovel is a good tool for digging for larger objects, especially to help you reduce the amount of soil that you dig. + +Many people use a combination of tools for different tasks. You may use a spade and a shovel for digging around the house, or you may use a spade and a spade for digging for food. In some cases, you may use both tools for the same task. However, you will need to know which tool you need to use for your job. + +This article will teach you how to use a spade and a shovel. We have also included two helpful tools that can be used for digging in hard soil:</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Squash-Seeds.html b/HTML/Final/sneed/purchase/Squash-Seeds.html new file mode 100644 index 0000000..153bbd2 --- /dev/null +++ b/HTML/Final/sneed/purchase/Squash-Seeds.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91px src="../assets/Iconography/logo-small.png"> + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img width=95% src=../assets/Plants/Yellow-Squash.jpg> + </div> + <div id=purchase-desc> + <h1>Squash Seeds</h1> + <img src="../assets/Iconography/purchase.png"> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Yellow Squash are often eaten in the Mediterranean, but the majority of this is not eaten in Morocco, because of the high rate of obesity in the region. + +The Mediterranean diet is based on high carbohydrate diets and high protein diets. + +For the more extreme Mediterranean diet, the diet is high in fat, with only 3-4 grams of fat per 100 grams. + +The Mediterranean diet also includes some fruits and vegetables, but most of the calories are from fruits and vegetables.</span></p> + + </div> + </main> + <footer> + Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a> + <br /> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + </footer> + <div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Taiwanese-Watermelon-Seeds.html b/HTML/Final/sneed/purchase/Taiwanese-Watermelon-Seeds.html new file mode 100644 index 0000000..f3c893f --- /dev/null +++ b/HTML/Final/sneed/purchase/Taiwanese-Watermelon-Seeds.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Taiwanese Watermelon Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/Taiwan_2009_Tainan_City_Organic_Farm_Watermelon_FRD_7962.jpg> + </div> + <div id=purchase-desc> + <h1>Taiwanese Watermelon Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Taiwanese Watermelon Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$2</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Taiwanese Watermelon are a type of watermelon that originated in Taiwan. They were originally grown in Taiwan, but they were transported to China in the 1990s for processing. A similar watermelon is the Chinese watermelon. + +Watermelon is a member of the Cucurbita family of fruits and has a sweet, sticky fruit that is often sold in its natural state. Watermelons are eaten with chopsticks or tongs, which are popular in Japan and South Korea. + +Although watermelons are common in Taiwan, they are not very common in China. The most common varieties are the Chinese watermelon, the Red Delicious, and the American Watermelon. These fruits are relatively small, and are commonly found in the vegetable sections of supermarkets. They are also sometimes found on the streets of Taiwan. + +Watermelon is also sometimes called a "seaweed" for its smooth texture and ability to absorb nutrients. It is used in a wide variety of dishes</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/The-Hot-Mans-Kit.html b/HTML/Final/sneed/purchase/The-Hot-Mans-Kit.html new file mode 100644 index 0000000..34b5eb0 --- /dev/null +++ b/HTML/Final/sneed/purchase/The-Hot-Mans-Kit.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - The Hot Man's Kit</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Kits/The-Hot-Man's-Kit.jpg> + </div> + <div id=purchase-desc> + <h1>The Hot Man's Kit</h1> + <a href=../purchase-form.html> + <img alt="A photo of The Hot Man's Kit" src="../assets/Iconography/purchase.png"> + </a> + <h3>$12</h3> + <p>A kit for those interested in pepper growing and sauce making. This bundle comes with four different types of hot pepper and the Mother of Vinegar, an industrial grade solution designed to quickly make vinegar out of any sugars.</p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/The-Mother-of-Vinegar.html b/HTML/Final/sneed/purchase/The-Mother-of-Vinegar.html new file mode 100644 index 0000000..61145c4 --- /dev/null +++ b/HTML/Final/sneed/purchase/The-Mother-of-Vinegar.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - The Mother of Vinegar</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/mother-of-vinegar.jpg> + </div> + <div id=purchase-desc> + <h1>The Mother of Vinegar</h1> + <a href=../purchase-form.html> + <img alt="A photo of The Mother of Vinegar" src="../assets/Iconography/purchase.png"> + </a> + <h3>$5</h3> + <p>The Mother of Vinegar is a collection of bacteria cells commonly used in fermenting. This will turn any alcoholic beverage into a vinegar for you to use.</p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Thermometer.html b/HTML/Final/sneed/purchase/Thermometer.html new file mode 100644 index 0000000..26a0efc --- /dev/null +++ b/HTML/Final/sneed/purchase/Thermometer.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Thermometer</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Thermometer.jpg> + </div> + <div id=purchase-desc> + <h1>Thermometer</h1> + <a href=../purchase-form.html> + <img alt="A photo of Thermometer" src="../assets/Iconography/purchase.png"> + </a> + <h3>$16</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A Thermometer is used for measuring tempurate. Specifically, it can be used for  "Temperature of the room or room", and also for "Temperature of the room or room, and room, and room, and room", as well as "Temperature of the room or room, and room, and room, and room, and room", as well as "Temperature of the room or room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room, and room,</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Tobacco-Seeds.html b/HTML/Final/sneed/purchase/Tobacco-Seeds.html new file mode 100644 index 0000000..fcdc650 --- /dev/null +++ b/HTML/Final/sneed/purchase/Tobacco-Seeds.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Tobacco Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/Native_American_tobacco_flower.jpg> + </div> + <div id=purchase-desc> + <h1>Tobacco Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Tobacco Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$7</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>Tobacco plants are the most common of all plants to be burned in tobacco growing. This is because of the high levels of nicotine in them. The burning of the tobacco produces a lot of particulate matter (especially particulates with a diameter of less than 10 micrometers) in the tobacco plant, which is then inhaled by the smoker. + +In the early stages of tobacco growing, the particulates in the tobacco plant are a matter of concern for health professionals. While the amount of tobacco smoke inhaled is small compared to the amount produced by combustion of fossil fuels, it is still a significant problem. + +The amount of particulates in the atmosphere is a function of how much of the smoke is inhaled. The amount of smoke inhaled is directly related to the size of the particulate matter produced. The smaller is the number of carbon monoxide molecules in the smoke, the lower the amount of particulates in the air is. + +The amount of particulates</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Trowel.html b/HTML/Final/sneed/purchase/Trowel.html new file mode 100644 index 0000000..b4a75bc --- /dev/null +++ b/HTML/Final/sneed/purchase/Trowel.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Trowel</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Trowel.jpg> + </div> + <div id=purchase-desc> + <h1>Trowel</h1> + <a href=../purchase-form.html> + <img alt="A photo of Trowel" src="../assets/Iconography/purchase.png"> + </a> + <h3>$5</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A Trowel is a type of tool that is used to cut and remove the wax from the body of a bottle.</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Weeding-Shovel.html b/HTML/Final/sneed/purchase/Weeding-Shovel.html new file mode 100644 index 0000000..f5d0f53 --- /dev/null +++ b/HTML/Final/sneed/purchase/Weeding-Shovel.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Weeding Shovel</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Tools/Weeder.jpg> + </div> + <div id=purchase-desc> + <h1>Weeding Shovel</h1> + <a href=../purchase-form.html> + <img alt="A photo of Weeding Shovel" src="../assets/Iconography/purchase.png"> + </a> + <h3>$5</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>A Weeding shovel is used for vernalization + +A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization A Weeding shovel is used for vernalization</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/Yellow-Squash-Seeds.html b/HTML/Final/sneed/purchase/Yellow-Squash-Seeds.html new file mode 100644 index 0000000..108d850 --- /dev/null +++ b/HTML/Final/sneed/purchase/Yellow-Squash-Seeds.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Yellow Squash Seeds</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=../assets/Plants/Yellow-Squash.jpg> + </div> + <div id=purchase-desc> + <h1>Yellow Squash Seeds</h1> + <a href=../purchase-form.html> + <img alt="A photo of Yellow Squash Seeds" src="../assets/Iconography/purchase.png"> + </a> + <h3>$1</h3> + <p><span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>These Yellow Squash Seeds are great for growing in the garden. They have a nice yellow color which makes for a nice contrast to your garden foliage. They are not hardy to USDA Zones 9 through 12. + +Yellow Squash Seeds are an excellent choice for the home gardener. They have a nice yellow color that makes them a good addition to many garden landscapes. + +Yellow Squash seeds are a popular choice for the home garden and are best suited for the growing season from August through April. They are tolerant of a wide range of soil types and are well adapted to a wide range of growing conditions. Yellow Squash seeds grow quickly and can produce a large crop of seeds in a short period of time. + +These yellow squash seeds are ideal for growing in the garden and are best suited for the growing season from August through April. These yellow seeds are tolerant of a wide range of soil types and are well adapted to a wide range of growing conditions. + +Yellow Squ</span></p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/entries.json b/HTML/Final/sneed/purchase/entries.json new file mode 100644 index 0000000..a0ee354 --- /dev/null +++ b/HTML/Final/sneed/purchase/entries.json @@ -0,0 +1,34 @@ +{"name" : "First-time Gardeners Kit", "location": "Kits","image": "First-time-Gardeners-Kit.jpg", "price": "$48", "ai": false, "desc": "For those new to the gardening scene and wish to have a simple first year while they learn the ropes. Comes with high yield, low maintainance plants such as squash, cucumbers, potatos, and onions. Tools for planting also come with the kit."} +{"name" : "The Hot Man's Kit", "location": "Kits", "image": "The-Hot-Man's-Kit.jpg", "price": "$12", "ai": false,"desc": "A kit for those interested in pepper growing and sauce making. This bundle comes with four different types of hot pepper and the \"Mother of Vinegar\", an industrial grade solution designed to quickly make vinegar out of any sugars."} +{"name" : "Appalachian Culture", "location": "Kits", "image": "Appalachian-Culture.jpg", "price": "$50", "ai": false, "desc": "A bundle for the celebration of Appalachian culture. All items here are popularly owned by those from the Appalachian region, mostly carrying over from the Scots-Irish immigration. 100% of profits go directly to political alcohol deregulation organizations."} +{"name" : "Yellow Squash Seeds", "location": "Plants", "image": "Yellow-Squash.jpg", "price": "$1", "ai": true, "desc": "These Yellow Squash Seeds are"} +{"name" : "Cubanelle Pepper Seeds", "location": "Plants", "image": "cubanelle.jpg", "price": "$5", "ai": true, "desc": "Cubanelle Peppers are a type red, hot pepper that"} +{"name" : "Habanero Pepper Seeds", "location": "Plants", "image": "Habanero.jpg", "price": "$5", "ai": true, "desc": "Habanero Peppers are an orange hot peppter that"} +{"name" : "Garlic Cloves", "location": "Plants", "image": "garlic.jpg", "price": "$1", "ai": true, "desc": "Garlic is a type of bulb plant that"} +{"name" : "Potato Tubers", "location": "Plants", "image": "potato.jpg", "price": "$1", "ai": true, "desc": "Potato tubers are used for"} +{"name" : "Taiwanese Watermelon Seeds", "location": "Plants", "image": "Taiwan_2009_Tainan_City_Organic_Farm_Watermelon_FRD_7962.jpg", "price": "$2", "ai": true, "desc": "Taiwanese Watermelon are a type of watermelon that"} +{"name" : "Tobacco Seeds", "location": "Plants", "image": "Native_American_tobacco_flower.jpg", "price": "$7", "ai": true, "desc": "Tobacco plants are"} +{"name" : "Rice Seeds", "location": "Plants", "image": "Oryza_sativa_of_Kadavoor.jpg", "price": "$3", "ai": true, "desc": "Rice is"} +{"name" : "Soybeans Seeds", "location": "Plants", "image": "Soybean.USDA.jpg", "price": "$3", "ai": true, "desc": "Soybeans are a commonly grown plant that"} +{"name" : "Black Cherry Seeds", "location": "Plants", "image": "Black_Che.jpg", "price": "$1", "ai": true, "desc": "Black Cherries are"} +{"name" : "Green Chilies Seeds", "location": "Plants", "image": "green-chilies.jpg", "price": "$1", "ai": true, "desc": "Green Chilies are"} +{"name" : "Red Chilies Seeds", "location": "Plants", "image": "red-chili.jpg", "price": "$1", "ai": true, "desc": "Red Chilies are"} +{"name" : "Cucumbers Seeds", "location": "Plants", "image": "cucumber.jpg", "price": "$1", "ai": true, "desc": "Cucumbers are"} +{"name" : "Carolina Reapers Seeds", "location": "Plants", "image": "Carolina_Reaper.jpg", "price": "$1", "ai": true, "desc": "Carolina Reapers are a type of hot pepper that"} +{"name" : "Red Onions Seeds", "location": "Plants", "image": "onion.jpg", "price": "$1", "ai": true, "desc": "Red Onions are"} +{"name" : "Pickaxe", "location": "Tools", "image": "Pickaxe.jpg", "price": "$20", "ai": true, "desc": "In gardening, a Pickaxe is used for"} +{"name" : "Pitchfork", "location": "Tools", "image": "Blue_pitchfork.jpg", "price": "$10", "ai": true, "desc": "A pitchfork is used for"} +{"name" : "Baking Yeast", "location": "Tools", "image": "yeast.jpg", "price": "$3", "ai": true, "desc": "Baker's yeast is commonly used for"} +{"name" : "The Mother of Vinegar", "location": "Tools", "image": "mother-of-vinegar.jpg", "price": "$5", "ai": false, "desc": "The Mother of Vinegar is a collection of bacteria cells commonly used in fermenting. This will turn any alcoholic beverage into a vinegar for you to use."} +{"name" : "Trowel", "location": "Tools", "image": "Trowel.jpg", "price": "$5", "ai": true, "desc": "A Trowel is a type of tool that"} +{"name" : "Copper Coil", "location": "Tools", "image": "copper-coil.jpg", "price": "$16", "ai": true, "desc": "Copper Coil is commonly used for "} +{"name" : "Copper Saucepot", "location": "Tools", "image": "saucepot.jpg", "price": "$13", "ai": true, "desc": "A Copper Saucepot is a great tool when"} +{"name" : "Spade", "location": "Tools", "image": "Spade.jpg", "price": "$10", "ai": true, "desc": "A common spade, or shovel, is a digging insturment used for"} +{"name" : "Thermometer", "location": "Tools", "image": "Thermometer.jpg", "price": "$16", "ai": true, "desc": "A Thermometer is used for measuring tempurate. Specifically, it can be used for "} +{"name" : "Hoe", "location": "Tools", "image": "Hoe.jpg", "price": "$15", "ai": true, "desc": "A farming hoe is a tool used for "} +{"name" : "Weeding Shovel", "location": "Tools", "image": "Weeder.jpg", "price": "$5", "ai": true, "desc": "A Weeding shovel is used for "} +{"name" : "Soil Rake", "location": "Tools", "image": "SoilRake.jpg", "price": "$10", "ai": true, "desc": "A Soil Rake is used for"} +{"name" : "Bucket", "location": "Tools", "image": "bucket.jpg", "price": "$7", "ai": true, "desc": "An iron bucket, commonly used for "} +{"name" : "Copper Adze", "location": "Tools", "image": "Copperadze.jpg", "price": "$20", "ai": true, "desc": "A Copper Adze, commonly used for"} +{"name" : "Mattock", "location": "Tools", "image": "Cutter_mattock.jpg", "price": "$25", "ai": true, "desc": "Mattocks are tools used for"} +{"name" : "Mason Jars", "location": "Tools", "image": "mason.jpg", "price": "$6", "ai": true, "desc": "A common mason jar, usually used for"} diff --git a/HTML/Final/sneed/purchase/mkpages.sh b/HTML/Final/sneed/purchase/mkpages.sh new file mode 100755 index 0000000..63e56a7 --- /dev/null +++ b/HTML/Final/sneed/purchase/mkpages.sh @@ -0,0 +1,52 @@ +#!/bin/bash +cp ../store.html.orig ../store.html +cp ../purchase-form.html.orig ../purchase-form.html +while IFS= read -r line +do + name=$(echo "$line"|jq .name|tr -d '"') + AI=$(echo "$line"|jq .ai|tr -d '"') + imageLocation=$(echo "$line"|jq .location|tr -d '"') + imageName=$(echo "$line"|jq .image|tr -d '"') + #imageName=$(echo "$name"|tr ' ' '-'|sed -e 's/$/.webp/g') + pageName=$(echo "$name"|tr ' ' '-'|tr -d "'"|sed -e 's/$/.html/g') + price=$(echo "$line"|jq .price|tr -d '"') + desc=$(echo "$line"|jq .desc|tr -d '"') + if [ "$AI" = "true" ] + #if [ "false" = "true" ] + then + aitext=$(./textgen.py 200 "$desc") + + while [[ pass -eq 0 ]] + do + aitext=$(./textgen.py 200 "$desc") + if [[ "$aitext" == *"/"* ]] + then + echo "detected a slash" + pass=0 + elif [[ "$aitext" == "" ]] + then + echo "text was empty" + pass=0 + elif [[ "$aitext" = *"http"* ]] + then + echo "detected an http url" + pass=0 + else + pass=1 + fi + done + + desc="<span class=ai title='This text is generated by a bot to cut down on development time! Any mistakes or insanity in the text should be taken with that fact in mind. See the About section for more information.'>$aitext<\/span>" + echo "$desc" + fi + cp -v "template.html" "$pageName" + sed -i -e "s/;IMG;/..\/assets\/$imageLocation\/$imageName/g" "$pageName" + sed -i -e "s/;TITLE;/$name/g" "$pageName" + sed -i -e "s/;PRICE;/$price/g" "$pageName" + #sed -i -e "s/;DESC;/$desc/g" "$pageName" + perl -pe "s/;DESC;/$desc/" -i "$pageName" || sed -i -e "s/;DESC;/$desc/g" "$pageName" || sed -i -e "s/;DESC;/$name/g" "$pageName" + + sed -i -e "/<!--Items-->/a <a href=\"purchase/$pageName\">\n <figure>\n <img alt=\"an image of $name\" src=\"assets/$imageLocation/$imageName\">\n <figcaption>$name<\/figcaption>\n <\/figure>\n <\/a>\n " ../store.html + sed -i -e "/<!--Items-->/a <option value=\"$name\"><\/option>\n " ../purchase-form.html + +done < "entries.json" diff --git a/HTML/Final/sneed/purchase/template.html b/HTML/Final/sneed/purchase/template.html new file mode 100644 index 0000000..cb46ced --- /dev/null +++ b/HTML/Final/sneed/purchase/template.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - ;TITLE;</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=../style.css> + <link rel="shortcut icon" href="../assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="../assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="../index.html">Home</a></li> + <li><a href="../store.html">Store</a></li> + <li><a href="../legal.html">Legal</a></li> + <li><a href="../about.html">About</a></li> + </ul> + </nav> + <main> + <div id=purchase-image> + <img alt="Button to navigate to the purchase form" class=purchase-button src=;IMG;> + </div> + <div id=purchase-desc> + <h1>;TITLE;</h1> + <a href=../purchase-form.html> + <img alt="A photo of ;TITLE;" src="../assets/Iconography/purchase.png"> + </a> + <h3>;PRICE;</h3> + <p>;DESC;</p> + + </div> + </main> + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/purchase/textgen.py b/HTML/Final/sneed/purchase/textgen.py new file mode 100755 index 0000000..3290116 --- /dev/null +++ b/HTML/Final/sneed/purchase/textgen.py @@ -0,0 +1,10 @@ +#!/usr/bin/python3 +from aitextgen import aitextgen +import sys + +#ai = aitextgen(model_folder="/home/msglm/Documents/ComputerScience/Projects/GPT-2/RedpillGenerator/aitextgen/") +#ai = aitextgen(model="distilgpt2", cache_dir="/home/msglm/.local/share/aitextgen-models") +ai = aitextgen(tf_gpt2="774M", cache_dir="/home/msglm/.local/share/aitextgen-models") +ai.to_gpu() +output = ai.generate_one(max_length=int(sys.argv[1]), prompt=sys.argv[2], temperature=0.7) +print(output) diff --git a/HTML/Final/sneed/store.html b/HTML/Final/sneed/store.html new file mode 100644 index 0000000..568df79 --- /dev/null +++ b/HTML/Final/sneed/store.html @@ -0,0 +1,281 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Store</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=style.css> + <link rel="shortcut icon" href="assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="store.html">Store</a></li> + <li><a href="legal.html">Legal</a></li> + <li><a href="about.html">About</a></li> + </ul> + </nav> + <main> + <h1>Seeds</h1> + <div class=big-shop-box> + <!--Items--> +<a href="purchase/Mason-Jars.html"> + <figure> + <img alt="an image of Mason Jars" src="assets/Tools/mason.jpg"> + <figcaption>Mason Jars</figcaption> + </figure> + </a> + +<a href="purchase/Mattock.html"> + <figure> + <img alt="an image of Mattock" src="assets/Tools/Cutter_mattock.jpg"> + <figcaption>Mattock</figcaption> + </figure> + </a> + +<a href="purchase/Copper-Adze.html"> + <figure> + <img alt="an image of Copper Adze" src="assets/Tools/Copperadze.jpg"> + <figcaption>Copper Adze</figcaption> + </figure> + </a> + +<a href="purchase/Bucket.html"> + <figure> + <img alt="an image of Bucket" src="assets/Tools/bucket.jpg"> + <figcaption>Bucket</figcaption> + </figure> + </a> + +<a href="purchase/Soil-Rake.html"> + <figure> + <img alt="an image of Soil Rake" src="assets/Tools/SoilRake.jpg"> + <figcaption>Soil Rake</figcaption> + </figure> + </a> + +<a href="purchase/Weeding-Shovel.html"> + <figure> + <img alt="an image of Weeding Shovel" src="assets/Tools/Weeder.jpg"> + <figcaption>Weeding Shovel</figcaption> + </figure> + </a> + +<a href="purchase/Hoe.html"> + <figure> + <img alt="an image of Hoe" src="assets/Tools/Hoe.jpg"> + <figcaption>Hoe</figcaption> + </figure> + </a> + +<a href="purchase/Thermometer.html"> + <figure> + <img alt="an image of Thermometer" src="assets/Tools/Thermometer.jpg"> + <figcaption>Thermometer</figcaption> + </figure> + </a> + +<a href="purchase/Spade.html"> + <figure> + <img alt="an image of Spade" src="assets/Tools/Spade.jpg"> + <figcaption>Spade</figcaption> + </figure> + </a> + +<a href="purchase/Copper-Saucepot.html"> + <figure> + <img alt="an image of Copper Saucepot" src="assets/Tools/saucepot.jpg"> + <figcaption>Copper Saucepot</figcaption> + </figure> + </a> + +<a href="purchase/Copper-Coil.html"> + <figure> + <img alt="an image of Copper Coil" src="assets/Tools/copper-coil.jpg"> + <figcaption>Copper Coil</figcaption> + </figure> + </a> + +<a href="purchase/Trowel.html"> + <figure> + <img alt="an image of Trowel" src="assets/Tools/Trowel.jpg"> + <figcaption>Trowel</figcaption> + </figure> + </a> + +<a href="purchase/The-Mother-of-Vinegar.html"> + <figure> + <img alt="an image of The Mother of Vinegar" src="assets/Tools/mother-of-vinegar.jpg"> + <figcaption>The Mother of Vinegar</figcaption> + </figure> + </a> + +<a href="purchase/Baking-Yeast.html"> + <figure> + <img alt="an image of Baking Yeast" src="assets/Tools/yeast.jpg"> + <figcaption>Baking Yeast</figcaption> + </figure> + </a> + +<a href="purchase/Pitchfork.html"> + <figure> + <img alt="an image of Pitchfork" src="assets/Tools/Blue_pitchfork.jpg"> + <figcaption>Pitchfork</figcaption> + </figure> + </a> + +<a href="purchase/Pickaxe.html"> + <figure> + <img alt="an image of Pickaxe" src="assets/Tools/Pickaxe.jpg"> + <figcaption>Pickaxe</figcaption> + </figure> + </a> + +<a href="purchase/Red-Onions-Seeds.html"> + <figure> + <img alt="an image of Red Onions Seeds" src="assets/Plants/onion.jpg"> + <figcaption>Red Onions Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Carolina-Reapers-Seeds.html"> + <figure> + <img alt="an image of Carolina Reapers Seeds" src="assets/Plants/Carolina_Reaper.jpg"> + <figcaption>Carolina Reapers Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Cucumbers-Seeds.html"> + <figure> + <img alt="an image of Cucumbers Seeds" src="assets/Plants/cucumber.jpg"> + <figcaption>Cucumbers Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Red-Chilies-Seeds.html"> + <figure> + <img alt="an image of Red Chilies Seeds" src="assets/Plants/red-chili.jpg"> + <figcaption>Red Chilies Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Green-Chilies-Seeds.html"> + <figure> + <img alt="an image of Green Chilies Seeds" src="assets/Plants/green-chilies.jpg"> + <figcaption>Green Chilies Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Black-Cherry-Seeds.html"> + <figure> + <img alt="an image of Black Cherry Seeds" src="assets/Plants/Black_Che.jpg"> + <figcaption>Black Cherry Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Soybeans-Seeds.html"> + <figure> + <img alt="an image of Soybeans Seeds" src="assets/Plants/Soybean.USDA.jpg"> + <figcaption>Soybeans Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Rice-Seeds.html"> + <figure> + <img alt="an image of Rice Seeds" src="assets/Plants/Oryza_sativa_of_Kadavoor.jpg"> + <figcaption>Rice Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Tobacco-Seeds.html"> + <figure> + <img alt="an image of Tobacco Seeds" src="assets/Plants/Native_American_tobacco_flower.jpg"> + <figcaption>Tobacco Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Taiwanese-Watermelon-Seeds.html"> + <figure> + <img alt="an image of Taiwanese Watermelon Seeds" src="assets/Plants/Taiwan_2009_Tainan_City_Organic_Farm_Watermelon_FRD_7962.jpg"> + <figcaption>Taiwanese Watermelon Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Potato-Tubers.html"> + <figure> + <img alt="an image of Potato Tubers" src="assets/Plants/potato.jpg"> + <figcaption>Potato Tubers</figcaption> + </figure> + </a> + +<a href="purchase/Garlic-Cloves.html"> + <figure> + <img alt="an image of Garlic Cloves" src="assets/Plants/garlic.jpg"> + <figcaption>Garlic Cloves</figcaption> + </figure> + </a> + +<a href="purchase/Habanero-Pepper-Seeds.html"> + <figure> + <img alt="an image of Habanero Pepper Seeds" src="assets/Plants/Habanero.jpg"> + <figcaption>Habanero Pepper Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Cubanelle-Pepper-Seeds.html"> + <figure> + <img alt="an image of Cubanelle Pepper Seeds" src="assets/Plants/cubanelle.jpg"> + <figcaption>Cubanelle Pepper Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Yellow-Squash-Seeds.html"> + <figure> + <img alt="an image of Yellow Squash Seeds" src="assets/Plants/Yellow-Squash.jpg"> + <figcaption>Yellow Squash Seeds</figcaption> + </figure> + </a> + +<a href="purchase/Appalachian-Culture.html"> + <figure> + <img alt="an image of Appalachian Culture" src="assets/Kits/Appalachian-Culture.jpg"> + <figcaption>Appalachian Culture</figcaption> + </figure> + </a> + +<a href="purchase/The-Hot-Mans-Kit.html"> + <figure> + <img alt="an image of The Hot Man's Kit" src="assets/Kits/The-Hot-Man's-Kit.jpg"> + <figcaption>The Hot Man's Kit</figcaption> + </figure> + </a> + +<a href="purchase/First-time-Gardeners-Kit.html"> + <figure> + <img alt="an image of First-time Gardeners Kit" src="assets/Kits/First-time-Gardeners-Kit.jpg"> + <figcaption>First-time Gardeners Kit</figcaption> + </figure> + </a> + + + </div> + </main> + + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/store.html.orig b/HTML/Final/sneed/store.html.orig new file mode 100644 index 0000000..5fdb555 --- /dev/null +++ b/HTML/Final/sneed/store.html.orig @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Sneed's Feed and Seed - Store</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=style.css> + <link rel="shortcut icon" href="assets/Iconography/favicon.png" type="image/png"> + </head> + <body> + <div id=wrapper> + <header> + <img width=91 alt="The logo of Sneed's Feed and Seed. It has a red hat with the title of the company on it." src="assets/Iconography/logo-small.png"> + + <div> + <h1>Sneed's Feed and Seed</h1> + <p id=headercaption>Formerly Chuck's</p> + </div> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="store.html">Store</a></li> + <li><a href="legal.html">Legal</a></li> + <li><a href="about.html">About</a></li> + </ul> + </nav> + <main> + <h1>Seeds</h1> + <div class=big-shop-box> + <!--Items--> + + </div> + </main> + + <footer> + <p>Copyleft <span class=copyleft>©</span> - <a href=https://creativecommons.org/licenses/by-sa/4.0/>CC-BY-SA 4.0</a></p> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + <small><i>Last Updated April 28th 2022</i></small> + </footer> + </div> + </body> +</html> diff --git a/HTML/Final/sneed/style.css b/HTML/Final/sneed/style.css new file mode 100644 index 0000000..257bc9d --- /dev/null +++ b/HTML/Final/sneed/style.css @@ -0,0 +1,226 @@ +body { + background-color: beige; + color: #333333; + font-family: "Times New Roman", Times, serif; +} + +p { + margin-top: 8px; + margin-bottom: 8px; +} + + +header { + background-color: darkred; + color: white; + text-align: center; +} + +header img{ + grid-row: 1; grid-column: 1; +} + +header div{ + grid-row: 1; grid-column: 2; +} + +header div h1 { + padding-bottom: 0%; + margin-top: 10px; +} + +#headercaption { + font-size: 15px; + margin: 0%; + padding: 0%; + font-style: italic; +} + +header { + display: grid; + grid-template-rows: auto; + grid-template-columns: 92px 1fr; +} + +nav { + font-weight: bold; + padding: 0%; + font-size: 120%; + background-color: yellow; +} + +nav ul { + list-style: none; + margin: 0%; + padding-left: 0%; + font-size: 1.2em; +} + +nav li { + border: 1px darkblue solid; + text-align: center; +} + + +nav a { + text-decoration: none; +} + +nav a:link { + text-decoration: none; + color: red; +} + +nav a:visited { + text-decoration: none; + color: purple; +} + +nav a:hover { + color: darkred; +} + +nav ul { + display: flex; + flex-wrap: nowrap; + justify-content: space-around; +} + +nav li { + border: none; +} + +h1 { + margin-bottom: 0%; + font-family: Georgia, 'Times New Roman', serif; + margin-top: 0%; + padding-top: 0.3em; + padding-bottom: 0.3em; +} + +h2 { + color: red; + font-family: Georgia, 'Times New Roman', serif; +} + +h3 { + font-family: Georgia, 'Times New Roman', serif; + margin-top:0.6em; + margin-bottom:0.3em; + color: red; +} + +main ul { + list-style-image: url(marker.gif); +} + +main { + padding-top: 1px; + padding-right: 20px; + padding-bottom: 20px; + padding-left: 20px; + display: block; + background-color: #FFFFFF; + padding-left: 30px; + overflow: auto; +} + +footer { + font-size: 75%; + font-style: italic; + text-align: center; + font-family: Georgia, 'Times New Roman', serif; + padding: 2em; + background-color: #FFFFFF; +} + +dt { + color: #002171; +} + +#contact { + font-size: 90%; +} + +.shop-box { + display:flex; + border: 1px dotted #808080; + width: 100%; + overflow: auto; +} + +.shop-box figure { + float: left; +} +.shop-box figure img { + width: 250px; + height: 250px; + object-fit: contain; +} +.shop-box figure figcaption { + text-align: center; +} + +.big-shop-box { + display:inline-block; + border: 1px dotted #808080; + width: 100%; + height: 100%; +} + +.big-shop-box figure { + float: left; + border-style: solid; + border: 1px dotted #808080; + background-color: white; +} + +.big-shop-box figure img { + width: 250px; + height: 250px; + object-fit: contain; +} + +.big-shop-box figure:hover { + float: left; + transition: transform .1s; + transform: scale(1.5); +} + +.big-shop-box figure figcaption { + text-align: center; +} + +.copyleft { + display:inline-block; + transform: rotate(180deg); +} + +#purchase-image { + width:49%; + float: left; +} + +#purchase-desc { + width:49%; + float: right; +} + +.ai { + text-decoration-color: grey; + text-decoration-line: underline; + text-decoration-style: dashed; +} + +form label { + display: block; +} + +form input { + display: block; + margin-bottom: 20px; +} + +.purchase-button { + width: 95%; +} diff --git a/HTML/Tests/Test1/pacific/index.html b/HTML/Tests/Test1/pacific/index.html new file mode 100644 index 0000000..5e0171a --- /dev/null +++ b/HTML/Tests/Test1/pacific/index.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort</title> + <meta charset="utf-8"> + <link rel="stylesheet" href=pacific.css> + </head> + <body> + <header> + <h1>Pacific Trails Resort</h1> + </header> + <nav> + <!--For some reason there's a margin here and it makes everything look funky.--!> + <b> + <a href="index.html">Home</a> + <a href="yurts.html">Yurts</a> + <a href="">Activities</a> + <a href="">Reservations</a> + </b> + </nav> + <main> + <h2 class=resort>Enjoy Nature in Luxury</h2> + <p><span class=resort>Pacific Trails Resort</span> offers a special lodging experience on the California North Coast with panoramic views of the Pacific Ocean. Your stay at Pacific Trails Resort includes a sumptuously appointed private yurt and a cooked-to-order breakfast each morning.</p> + <ul> + <li>Unwind in the heated outdoor pool and whirlpool</li> + <li>Explore the coast on your own or join our guided tours</li> + <li>Relax in our lodge while enjoying complimentary appetizers and beverages </li> + <li>Savor nightly fine dining with an ocean view</li> + </ul> + <div id="contact"> + <span class="resort">Pacific Trails Resort</span><br/> + 12010 Pacific Trails Road<br/> + Zephyr, CA 95555<br/> + <br/> + 888-555-5555<br/> + <br/> + </div> + + </main> + <footer> + <small><i>Copyright © 2022 Pacific Trails Resort</i></small> + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <small><i><a href=mailto:msglm@techchud.xyz>msglm</a></i> </small> + </footer> + </body> +</html> diff --git a/HTML/Tests/Test1/pacific/pacific.css b/HTML/Tests/Test1/pacific/pacific.css new file mode 100644 index 0000000..dc77295 --- /dev/null +++ b/HTML/Tests/Test1/pacific/pacific.css @@ -0,0 +1,29 @@ +body { + background-color: #FFFFFF; + color: #666666 +} + +header { + background-color: #002171; + color: #FFFFfF +} + +nav { + background-color: #BBDEFB; +} + +h2 { + color: #1976D2; +} + +h1 { + margin-bottom: 0; +} + +dt { + color: #002171; +} + +.resort { + color: #1976D2; +} diff --git a/HTML/Tests/Test1/pacific/yurts.html b/HTML/Tests/Test1/pacific/yurts.html new file mode 100644 index 0000000..ce35d52 --- /dev/null +++ b/HTML/Tests/Test1/pacific/yurts.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort :: Yurts</title> + <meta charset="utf-8"> + <link rel="stylesheet" href=pacific.css> + </head> + <body> + <header> + <h1>Pacific Trails Resort</h1> + </header> + <nav> + <b> + <a href="index.html">Home</a> + <a href="yurts.html">Yurts</a> + <a href="">Activities</a> + <a href="">Reservations</a> + </b> + </nav> + <main> + <h2>The Yurts at Pacific Trails</h2> + <dl> + <dt><strong>What is a yurt?</strong></dt> + <dd>Our luxury yurts are permanent structures four feet off the ground. Each yurt is fully enclosed with canvas walls, a wooden floor, and a roof dome that can be opened.</dd> + <dt><strong>How are the yurts furnished?</strong></dt> + <dd>Each yurt is furnished with a queen-size bed with down quilt and gas-fired stove. Your luxury camping experience includes electricity and a sink with hot and cold running water. Shower and restroom facilities are located in the lodge.</dd> + <dt><strong>What should I bring?</strong></dt> + <dd>Most guests pack comfortable walking shoes and plan to dress for changing weather with light layers of clothing. It's also helpful to bring a flashlight and a sense of adventure!</dd> + </dl> + </main> + <footer> + <small><i>Copyright © 2022 Pacific Trails Resort</i></small> + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <small><i><a href=mailto:msglm@techchud.xyz>msglm</a></i> </small> + </footer> + + </body> +</html> diff --git a/HTML/Tests/Test2/INSTRUCTIONS b/HTML/Tests/Test2/INSTRUCTIONS new file mode 100644 index 0000000..4d32520 --- /dev/null +++ b/HTML/Tests/Test2/INSTRUCTIONS @@ -0,0 +1,17 @@ + +Please complete the Pacific Trails Case Study for Chapters 5 - 8. Each chapter may or may not have anything for you to do. + + Create a Test2 folder on Boole to place all of your files. + Ftp(submit) all of the files/graphics needed for this site to Boole. Do NOT zip your test folder to ftp it to Boole. Create the folder on Boole and then ftp the files to that folder. + Submit here, the address for your working website that you have now published on Boole. Try the address of your site in a web browser to see if it is visible when you enter the site address. THEN submit it. Remember, I want the full complete address to your home page of the site on Boole. + +BOTH components of Test 2 are due by 11:59PM on Tuesday, March 15, 2022 +Point Values: + + Hands-On Test - 100 + Concepts Exam - 100 + +Use your email address for the test and and make sure it works! You are required to include an email address as part of the hands-on test. +SUBMIT HERE, the URL to the home page of the site that you've completed for the Pacific Trail Case Study at the end of Chapter 8 It will reflect what you have done in all the chapters up to now. +The beginning of your site address will be similar to the beginning of mine on Boole: http://boole.cs.anonymized.university.url/~tmanly/COMS1333/Test2/....... but yours will take me directly to the home page of your site. + diff --git a/HTML/Tests/Test2/activities.html b/HTML/Tests/Test2/activities.html new file mode 100644 index 0000000..a351793 --- /dev/null +++ b/HTML/Tests/Test2/activities.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort :: Activities</title> + <meta charset="utf-8"> + <link rel="stylesheet" href=pacific.css> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + </head> + <body class=content> + <div id=wrapper> + <header> + <h1><a href=index.html>Pacific Trails Resort</a></h1> + + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="yurts.html">Yurts</a></li> + <li><a href="activities.html">Activities</a></li> + <li><a href="">Reservations</a></li> + </ul> + </nav> + <div id=trailhero></div> + <main> + <h2>Activities at Pacific Trails</h2> + <section> + <h3>Hiking</h3> + <p>Pacific Trails Resort has 5 miles of hiking trails and is adjacent to a state park. Go it alone or join one of our guided hikes.</p> + </section> + <section> + <h3>Kayaking</h3> + <p>Ocean kayaks are available for guest use.</p> + </section> + <section> + <h3>Bird Watching</h3> + <p>While anytime is a good time for bird watching at Pacific Trails, we offer guided birdwatching trips at sunrise several times a week.</p> + </section> + </main> + <footer> + Copyright © 2022 Pacific Trails Resort + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <a href=mailto:msglm@techchud.xyz>msglm</a> + </footer> + </div> + </body> +</html> diff --git a/HTML/Tests/Test2/coast.jpg b/HTML/Tests/Test2/coast.jpg Binary files differnew file mode 100644 index 0000000..af3fef0 --- /dev/null +++ b/HTML/Tests/Test2/coast.jpg diff --git a/HTML/Tests/Test2/coast2.jpg b/HTML/Tests/Test2/coast2.jpg Binary files differnew file mode 100644 index 0000000..ac2b452 --- /dev/null +++ b/HTML/Tests/Test2/coast2.jpg diff --git a/HTML/Tests/Test2/favicon.ico b/HTML/Tests/Test2/favicon.ico Binary files differnew file mode 100644 index 0000000..ad98119 --- /dev/null +++ b/HTML/Tests/Test2/favicon.ico diff --git a/HTML/Tests/Test2/index.html b/HTML/Tests/Test2/index.html new file mode 100644 index 0000000..372bb22 --- /dev/null +++ b/HTML/Tests/Test2/index.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=pacific.css> + </head> + <body> + <div id=wrapper> + <header> + <h1><a href=index.html>Pacific Trails Resort</a></h1> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="yurts.html">Yurts</a></li> + <li><a href="activities.html">Activities</a></li> + <li><a href="">Reservations</a></li> + </ul> + </nav> + <div id=homehero> + </div> + <main> + <h2 class=resort>Enjoy Nature in Luxury</h2> + <p><span class=resort>Pacific Trails Resort</span> offers a special lodging experience on the California North Coast with panoramic views of the Pacific Ocean. Your stay at Pacific Trails Resort includes a sumptuously appointed private yurt and a cooked-to-order breakfast each morning.</p> + <ul> + <li>Unwind in the heated outdoor pool and whirlpool</li> + <li>Explore the coast on your own or join our guided tours</li> + <li>Relax in our lodge while enjoying complimentary appetizers and beverages </li> + <li>Savor nightly fine dining with an ocean view</li> + </ul> + <div id="contact"> + <span class="resort">Pacific Trails Resort</span><br/> + 12010 Pacific Trails Road<br/> + Zephyr, CA 95555<br/> + <br/> + 888-555-5555<br/> + <br/> + </div> + + + </main> + <footer> + Copyright © 2022 Pacific Trails Resort + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + </footer> + <div> + </body> +</html> diff --git a/HTML/Tests/Test2/marker.gif b/HTML/Tests/Test2/marker.gif Binary files differnew file mode 100644 index 0000000..318f8b0 --- /dev/null +++ b/HTML/Tests/Test2/marker.gif diff --git a/HTML/Tests/Test2/pacific.css b/HTML/Tests/Test2/pacific.css new file mode 100644 index 0000000..bcdfc2c --- /dev/null +++ b/HTML/Tests/Test2/pacific.css @@ -0,0 +1,239 @@ +* { + box-sizing: border-box; +} + +body { + background-color: #EAEAEA; + color: #666666; + font-family: "Times New Roman", Times, serif; +} + +header { + background-color: #002171; + color: #FFFFFF; + text-align: center; +} + +nav { + font-weight: bold; + padding: 0%; + font-size: 120%; +} + +nav ul { + list-style: none; + margin: 0%; + padding-left: 0%; + font-size: 1.2em; +} + +nav li { + border: 1px darkblue solid; + text-align: center; +} + + +nav a { + text-decoration: none; +} + +nav a:link { + text-decoration: none; + color: #5C7FA3; +} + +nav a:visited { + text-decoration: none; + color: #344873; +} + +nav a:hover { + color:#A52A2A; +} + +header a { + text-decoration: none; +} + +header a:link { + text-decoration: none; + color: #FFFFFF; +} + +header a:visited { + text-decoration: none; + color: #FFFFFF; +} + +header a:hover { + text-decoration: none; + color: #90C7E3; +} + + +h2 { + color: #1976D2; + font-family: Georgia, 'Times New Roman', serif; + text-shadow: 1px 1px 1px grey; +} + +h1 { + margin-bottom: 0%; + font-family: Georgia, 'Times New Roman', serif; + margin-top: 0%; + letter-spacing: 0.25em; + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +h3 { + font-family: Georgia, 'Times New Roman', serif; + color: #000033; +} + +main ul { + list-style-image: url(marker.gif); +} + +main { + padding-top: 1px; + padding-right: 20px; + padding-bottom: 20px; + padding-left: 20px; + display: block; + background-color: #FFFFFF; + padding-left: 30px; + overflow: auto; +} + +footer { + font-size: 75%; + font-style: italic; + text-align: center; + font-family: Georgia, 'Times New Roman', serif; + padding: 2em; + background-color: #FFFFFF; +} + +dt { + color: #002171; +} + +.resort { + color: #1976D2; + font-weight: bold; +} + +#contact { + font-size: 90%; +} + +#wrapper { + background-color: #90C7E3; + background-image: linear-gradient(to bottom, #FFFFFF, #90C7E3); + background-repeat: no-repeat; +} + +#homehero { + background-image: url(coast2.jpg); + height: 300px; + background-size: 100% 100%; + background-repeat: no-repeat; +} + +#yurthero { + background-image: url(yurt.jpg); + height: 300px; + background-size: 100% 100%; + background-repeat: no-repeat; +} + +#trailhero { + background-image: url(trail.jpg); + height: 300px; + background-size: 100% 100%; + background-repeat: no-repeat; +} + +@media screen and (min-width: 600px) { + nav ul { + display: flex; + flex-wrap: nowrap; + justify-content: space-around; + } + + nav li { + border: none; + } + + section { + padding-left:2em; + padding-right: 2em; + } + h2 { + grid-row: 1 / 2; grid-column: 1 / 5; + } + + section { + grid-row: 2 / 3; grid-column: auto; + } + + #special { + grid-row: auto; grid-column: 1 / 5; + } + + footer { + grid-row: auto; grid-column: 1 / 5; + } + + .content main { + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr 1fr; + } +} + + + +@media screen and (min-width: 1024px) { + nav { + text-align: left; + } + + nav ul { + flex-direction: column; + } + + + #wrapper { + margin: auto; + width: 80%; + border: 1px darkblue solid; + box-shadow: 1px 1px 1px grey; + display: grid; + grid-template-rows: auto; + grid-template-columns: 180px 1fr; + } + + header { + grid-row: 1; grid-column: 1/3; + } + + nav { + grid-row: 2; grid-column: 1; + } + + div { + grid-row: 2; grid-column: 2; + } + + main { + grid-row: 3; grid-column: 2; + } + + footer { + grid-row: 4; grid-column: 2; + } + +} + diff --git a/HTML/Tests/Test2/sunset.jpg b/HTML/Tests/Test2/sunset.jpg Binary files differnew file mode 100644 index 0000000..3ce0adc --- /dev/null +++ b/HTML/Tests/Test2/sunset.jpg diff --git a/HTML/Tests/Test2/trail.jpg b/HTML/Tests/Test2/trail.jpg Binary files differnew file mode 100644 index 0000000..cdb05c3 --- /dev/null +++ b/HTML/Tests/Test2/trail.jpg diff --git a/HTML/Tests/Test2/yurt.jpg b/HTML/Tests/Test2/yurt.jpg Binary files differnew file mode 100644 index 0000000..535de06 --- /dev/null +++ b/HTML/Tests/Test2/yurt.jpg diff --git a/HTML/Tests/Test2/yurts.html b/HTML/Tests/Test2/yurts.html new file mode 100644 index 0000000..8d423d0 --- /dev/null +++ b/HTML/Tests/Test2/yurts.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort :: Yurts</title> + <meta charset="utf-8"> + <link rel="stylesheet" href=pacific.css> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + </head> + <body class=content> + <div id=wrapper> + <header> + <h1><a href=index.html>Pacific Trails Resort</a></h1> + + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="yurts.html">Yurts</a></li> + <li><a href="activities.html">Activities</a></li> + <li><a href="">Reservations</a></li> + </ul> + </nav> + <div id=yurthero> + </div> + <main> + <h2>The Yurts at Pacific Trails</h2> + <section> + <h3>What is a yurt?</h3> + <p>Our luxury yurts are permanent structures four feet off the ground. Each yurt is fully enclosed with canvas walls, a wooden floor, and a roof dome that can be opened.</p> + </section> + <section> + <h3>How are the yurts furnished?</h3> + <p>Each yurt is furnished with a queen-size bed with down quilt and gas-fired stove. Your luxury camping experience includes electricity and a sink with hot and cold running water. Shower and restroom facilities are located in the lodge.</p> + </section> + <section> + <h3>What should I bring?</h3> + <p>Most guests pack comfortable walking shoes and plan to dress for changing weather with light layers of clothing. It's also helpful to bring a flashlight and a sense of adventure!</p> + </section> + </main> + <footer> + Copyright © 2022 Pacific Trails Resort + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <a href=mailto:msglm@techchud.xyz>msglm</a> + </footer> + </div> + </body> +</html> diff --git a/HTML/Tests/Test3/PacificTrailsResort.mov b/HTML/Tests/Test3/PacificTrailsResort.mov Binary files differnew file mode 100644 index 0000000..602aee4 --- /dev/null +++ b/HTML/Tests/Test3/PacificTrailsResort.mov diff --git a/HTML/Tests/Test3/PacificTrailsResort.mp4 b/HTML/Tests/Test3/PacificTrailsResort.mp4 Binary files differnew file mode 100644 index 0000000..30db84d --- /dev/null +++ b/HTML/Tests/Test3/PacificTrailsResort.mp4 diff --git a/HTML/Tests/Test3/PacificTrailsResort.ogv b/HTML/Tests/Test3/PacificTrailsResort.ogv Binary files differnew file mode 100644 index 0000000..b19c45a --- /dev/null +++ b/HTML/Tests/Test3/PacificTrailsResort.ogv diff --git a/HTML/Tests/Test3/activities.html b/HTML/Tests/Test3/activities.html new file mode 100644 index 0000000..9bd9af5 --- /dev/null +++ b/HTML/Tests/Test3/activities.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort :: Activities</title> + <meta charset="utf-8"> + <link rel="stylesheet" href=pacific.css> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="Pacific Trails Resort is a site that contains information about the activities and registration for the resort."> + + </head> + <body class=content> + <div id=wrapper> + <header> + <h1><a href=index.html>Pacific Trails Resort</a></h1> + + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="yurts.html">Yurts</a></li> + <li><a href="activities.html">Activities</a></li> + <li><a href="reservations.html">Reservations</a></li> + </ul> + </nav> + <div id=trailhero></div> + <main> + <h2>Activities at Pacific Trails</h2> + <section> + <h3>Hiking</h3> + <p>Pacific Trails Resort has 5 miles of hiking trails and is adjacent to a state park. Go it alone or join one of our guided hikes.</p> + </section> + <section> + <h3>Kayaking</h3> + <p>Ocean kayaks are available for guest use.</p> + </section> + <section> + <h3>Bird Watching</h3> + <p>While anytime is a good time for bird watching at Pacific Trails, we offer guided birdwatching trips at sunrise several times a week.</p> + </section> + </main> + <footer> + Copyright © 2022 Pacific Trails Resort + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <a href=mailto:msglm@techchud.xyz>msglm</a> + </footer> + </div> + </body> +</html> diff --git a/HTML/Tests/Test3/coast.jpg b/HTML/Tests/Test3/coast.jpg Binary files differnew file mode 100644 index 0000000..af3fef0 --- /dev/null +++ b/HTML/Tests/Test3/coast.jpg diff --git a/HTML/Tests/Test3/coast2.jpg b/HTML/Tests/Test3/coast2.jpg Binary files differnew file mode 100644 index 0000000..ac2b452 --- /dev/null +++ b/HTML/Tests/Test3/coast2.jpg diff --git a/HTML/Tests/Test3/favicon.ico b/HTML/Tests/Test3/favicon.ico Binary files differnew file mode 100644 index 0000000..ad98119 --- /dev/null +++ b/HTML/Tests/Test3/favicon.ico diff --git a/HTML/Tests/Test3/index.html b/HTML/Tests/Test3/index.html new file mode 100644 index 0000000..0a60a50 --- /dev/null +++ b/HTML/Tests/Test3/index.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="Pacific Trails Resort is a site that contains information about the activities and registration for the resort."> + <link rel="stylesheet" href=pacific.css> + </head> + <body> + <div id=wrapper> + <header> + <h1><a href=index.html>Pacific Trails Resort</a></h1> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="yurts.html">Yurts</a></li> + <li><a href="activities.html">Activities</a></li> + <li><a href="reservations.html">Reservations</a></li> + </ul> + </nav> + <div id=homehero> + </div> + <main> + <h2 class=resort>Enjoy Nature in Luxury</h2> + <p><span class=resort>Pacific Trails Resort</span> offers a special lodging experience on the California North Coast with panoramic views of the Pacific Ocean. Your stay at Pacific Trails Resort includes a sumptuously appointed private yurt and a cooked-to-order breakfast each morning.</p> + <video width=320 height=240 poster="pacifictrailsresort.jpg" controls> + <source src="PacificTrailsResort.mp4"> + <source src="PacificTrailsResort.ogv"> + <source src="PacificTrailsResort.mov"> + </video> + <ul> + <li>Unwind in the heated outdoor pool and whirlpool</li> + <li>Explore the coast on your own or join our guided tours</li> + <li>Relax in our lodge while enjoying complimentary appetizers and beverages </li> + <li>Savor nightly fine dining with an ocean view</li> + </ul> + <div id="contact"> + <span class="resort">Pacific Trails Resort</span><br/> + 12010 Pacific Trails Road<br/> + Zephyr, CA 95555<br/> + <br/> + 888-555-5555<br/> + <br/> + </div> + + + </main> + <footer> + Copyright © 2022 Pacific Trails Resort + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + </footer> + <div> + </body> +</html> diff --git a/HTML/Tests/Test3/marker.gif b/HTML/Tests/Test3/marker.gif Binary files differnew file mode 100644 index 0000000..318f8b0 --- /dev/null +++ b/HTML/Tests/Test3/marker.gif diff --git a/HTML/Tests/Test3/pacific.css b/HTML/Tests/Test3/pacific.css new file mode 100644 index 0000000..67fc6e5 --- /dev/null +++ b/HTML/Tests/Test3/pacific.css @@ -0,0 +1,242 @@ +* { + box-sizing: border-box; +} + +body { + background-color: #EAEAEA; + color:#555555; + font-family: Arial, Helvetica, sans-serif; +} + +header { + background-color: #002171; + color: #FFFFFF; + letter-spacing: 0.25em; + text-align: center; + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +header a { + text-decoration: none; +} + +header a:link { + color: #FFFFFF +} + +header a:visited { + color: #FFFFFF +} + +header a:hover { + color:#90C7E3; +} + + +h1 { + text-align: center; + margin-top 0; + font-family: Georgia, 'Times New Roman', Times, serif +} + +nav { + text-align: center; + font-weight: bold; + padding: 0; + font-size: 120%; +} + +nav ul { + list-style-type: none; + margin 0; + padding-left: 0; + font-size 1.2em; +} + + +nav li { + border-bottom: 1px solid #002171; +} + +nav a { + text-decoration: none; +} + +nav a:link { + transition: 3s ease-out; + color:#5C7FA3; +} + +nav a:visited { + color: #344873; +} + +nav a:hover { + color: #A52A2A; +} + +main { + background-color: #FFFFFF; + padding: 1px 20px 20px 30px; + display: block; + overflow: auto; +} + +h2 { + color: #197602; + text-shadow: 1px 1px #CCCCCC; + font-family: Georgia, 'Times New Roman', Times, serif; +} + +h3 { + color: #000033; + font-family: Georgia, 'Times New Roman', Times, serif; +} + +main il { + list-style-image: url(marker.gif); +} + +dt { +color: #002171 +} + +footer { + background-color: #FFFFFF; + font-size: 75%; + font-style: italic; + text-align: center; + padding: 2em; + font-family: Georgia, 'Times New Roman', Times, serif; +} + +.resort { + color: #1976D2; + font-weight: bold; +} + +#contact { + font-size: 90%; +} + +#homehero { + height:300px; + background-image: url(coast2.jpg); + background-repeat: no-repeat; + background-size: 100% 100%; +} + +#yurthero { + height: 300px; + background-image: url(yurt.jpg); + background-repeat: no-repeat; + background-size: 100% 100%; +} + + form { display: flex; + flex-flow: column nowrap; } + input, textarea { margin-bottom: .5em; } + + +@media (min-width: 600px) { + + form { + width: 60%; + display: grid; + grid-gap: 1em; + grid-column: 6em / 1fr; + } + + + + input[type="submit"] { + grid-column: 2; + width: 9em; + } + + nav ul { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-around; + } + + nav li { + border-bottom: none; + } + + section { + margin-left: 2em; + margin-right: 2em; + flex 1; + } + + .flow { + display: flex; + flex-direction: row; + } +} + +@media (min-width: 1024px) { + #wrapper { + margin: auto; + width: 80%; + border: 1px solid #002171; + box-shadow: 3px 3px 3px #002171; + } + + nav { + text-align: left; + padding-left: 1em; + } + + @supports (display: grid) { + nav ul { + flex-direction: column; + padding-top: 1em; + } + .hero {grid-area: hero;} + header {grid-area: header;} + nav {grid-area: nav;} + main {grid-area: main;} + footer {grid-area: footer;} + + #wrapper { + display: grid; + grid-template: + "header header" + "nav hero" + "nav main" + "nav footer" + / 180px 1fr; + } + } +} + +table { + border-collapse: collapse; + border: 2px solid #3399CC; +} + +td,th { + padding: 0.5em; + border: 2px solid #3399CC; +} + +td { + text-align: center; +} + +.text { + text-align: left; +} + +tr:nth-last-of-type(even) { + background-color: #F5FAFC; +} + +video, embed { + float: right; + padding-left: 20px; +} diff --git a/HTML/Tests/Test3/pacifictrailsresort.jpg b/HTML/Tests/Test3/pacifictrailsresort.jpg Binary files differnew file mode 100644 index 0000000..b5caf3e --- /dev/null +++ b/HTML/Tests/Test3/pacifictrailsresort.jpg diff --git a/HTML/Tests/Test3/reservations.html b/HTML/Tests/Test3/reservations.html new file mode 100644 index 0000000..181220b --- /dev/null +++ b/HTML/Tests/Test3/reservations.html @@ -0,0 +1,72 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort :: Reservations</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href=pacific.css> + <meta name="description" content="Pacific Trails Resort is a site that contains information about the activities and registration for the resort."> + + </head> + <body> + <div id=wrapper> + <header> + <h1><a href=index.html>Pacific Trails Resort</a></h1> + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="yurts.html">Yurts</a></li> + <li><a href="activities.html">Activities</a></li> + <li><a href="">Reservations</a></li> + </ul> + </nav> + <main> + <h2 class=resort>Reservations at Pacific Trails</h2> + <h3>Contact Us Today!</h3> + <p>Required fields are marked with an asterisk *.</p> + <form method="post" action=https://webdevbasics.net/scripts/pacific.php> + <label for="myFName">* First Name: </label> + <input type="text" id="myFName" required></input> + + <label for="myLName">* Last Name: </label> + <input type="text" id="myLName" required></input> + + <label for="myEmail">* Email Address: </label> + <input type="email" id="myEmail" required></input> + + <label for="myPhone">Phone:</label> + <input type="tel" name="myPhone" id="myPhone" max="12"> + + <label for="myArrival">Calander: </label> + <input type="date" id="myArrival"></input> + + <label for="myNights">Nights: </label> + <input type="range" min=1 max=14 id="myNights"></input> + + <label for="myComments">* Comments: </label> + <textarea id="myComments" name="myComments" rows="2" cols="30"> + </textarea> + + <input type="submit"> + </form> + <div id="contact"> + <span class="resort">Pacific Trails Resort</span><br/> + 12010 Pacific Trails Road<br/> + Zephyr, CA 95555<br/> + <br/> + 888-555-5555<br/> + <br/> + </div> + + + </main> + <footer> + Copyright © 2022 Pacific Trails Resort + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <small><a href=mailto:msglm@techchud.xyz>msglm</a></small> + </footer> + <div> + </body> +</html> diff --git a/HTML/Tests/Test3/sunset.jpg b/HTML/Tests/Test3/sunset.jpg Binary files differnew file mode 100644 index 0000000..3ce0adc --- /dev/null +++ b/HTML/Tests/Test3/sunset.jpg diff --git a/HTML/Tests/Test3/trail.jpg b/HTML/Tests/Test3/trail.jpg Binary files differnew file mode 100644 index 0000000..cdb05c3 --- /dev/null +++ b/HTML/Tests/Test3/trail.jpg diff --git a/HTML/Tests/Test3/yurt.jpg b/HTML/Tests/Test3/yurt.jpg Binary files differnew file mode 100644 index 0000000..535de06 --- /dev/null +++ b/HTML/Tests/Test3/yurt.jpg diff --git a/HTML/Tests/Test3/yurts.html b/HTML/Tests/Test3/yurts.html new file mode 100644 index 0000000..61b0fb8 --- /dev/null +++ b/HTML/Tests/Test3/yurts.html @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Pacific Trails Resort :: Yurts</title> + <meta charset="utf-8"> + <link rel="stylesheet" href=pacific.css> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="description" content="Pacific Trails Resort is a site that contains information about the activities and registration for the resort."> + + </head> + <body class=content> + <div id=wrapper> + <header> + <h1><a href=index.html>Pacific Trails Resort</a></h1> + + </header> + <nav> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="yurts.html">Yurts</a></li> + <li><a href="activities.html">Activities</a></li> + <li><a href="reservations.html">Reservations</a></li> + </ul> + </nav> + <div id=yurthero> + </div> + <main> + <h2>The Yurts at Pacific Trails</h2> + <section> + <h3>What is a yurt?</h3> + <p>Our luxury yurts are permanent structures four feet off the ground. Each yurt is fully enclosed with canvas walls, a wooden floor, and a roof dome that can be opened.</p> + </section> + <section> + <h3>How are the yurts furnished?</h3> + <p>Each yurt is furnished with a queen-size bed with down quilt and gas-fired stove. Your luxury camping experience includes electricity and a sink with hot and cold running water. Shower and restroom facilities are located in the lodge.</p> + </section> + <section> + <h3>What should I bring?</h3> + <p>Most guests pack comfortable walking shoes and plan to dress for changing weather with light layers of clothing. It's also helpful to bring a flashlight and a sense of adventure!</p> + </section> + <div> + <h3>Yurt Packages</h3> + <p>A variety of luxury yurt packages are available. Choose a package below and contact us to begin your reservation. We’re happy to build a custom package just for you!</p> + <table> + <th>Package Name</th> + <th>Description</th> + <th>Nights</th> + <th>Cost Per Person</th> + <tr> + <td>Weekend Escape</td> + <td class=text>Two breakfasts, a trail map, and a picnic snack</td> + <td>2</td> + <td>$450</td> + </tr> + + <tr> + <td>Zen Retreat</td> + <td class=text>Four breakfasts, a trail map, a picnic snack, and a pass for the daily sunrise Yoga session</td> + <td>4</td> + <td>$600</td> + </tr> + <tr> + <td>Kayak Away</td> + <td class=text>Two breakfasts, two hours of kayak rental daily, and a trail map</td> + <td>2</td> + <td>$500</td> + + </tr> + </table> + </div> + </main> + <footer> + Copyright © 2022 Pacific Trails Resort + <br /> + <!--"Place your name in an email link". I'm assuming that this is what was meant by this.--> + <a href=mailto:msglm@techchud.xyz>msglm</a> + </footer> + </div> + </body> +</html> diff --git a/Java/AddingUpInt.java b/Java/AddingUpInt.java new file mode 100644 index 0000000..2f32f61 --- /dev/null +++ b/Java/AddingUpInt.java @@ -0,0 +1,25 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class AddingUpInt { + public static void main(String[] args) throws java.io.IOException { + int iterations,enteredint; + int addable = 0; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader input2 = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("How many ints will be added"); + iterations = Integer.parseInt(input.readLine()); + + + for(iterations=iterations;iterations>0;iterations--){ + System.out.println("Enter an Int"); + enteredint = Integer.parseInt(input2.readLine()); + addable = addable+enteredint; + } + System.out.println("The sum is: " + addable); + + } + + +} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/AddingupSquaresandCubes.java b/Java/AddingupSquaresandCubes.java new file mode 100644 index 0000000..957f276 --- /dev/null +++ b/Java/AddingupSquaresandCubes.java @@ -0,0 +1,28 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class AddingupSquaresandCubes { + public static void main(String[] args) throws java.io.IOException { + int iterations; + double Squares = 0.0; + double Cubes = 0.0; + double computable = 0.0; + double timesran = 0.0; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader input2 = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("Upper Limit:"); + iterations = Integer.parseInt(input.readLine()); + + + for(iterations=iterations;iterations>0;iterations--){ + timesran++; + Squares = Squares + Math.pow(iterations,2); + Cubes = Cubes + Math.pow(iterations,3); + } + System.out.println("The sum of Squares is " + Squares); + System.out.println("The sum of Cubes is " + Cubes); + } + + +} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Average.java b/Java/Average.java new file mode 100644 index 0000000..0affee8 --- /dev/null +++ b/Java/Average.java @@ -0,0 +1,22 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class Average { + public static void main(String[] args) throws java.io.IOException { + int a, b; + + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader input2 = new BufferedReader(new InputStreamReader(System.in)); + a = Integer.parseInt(input.readLine()); + b = Integer.parseInt(input2.readLine()); + int s = a + b; + System.out.println("Average is: " + s/2); + + + + + + } +} + diff --git a/Java/AverageDemo.java b/Java/AverageDemo.java new file mode 100644 index 0000000..70168a4 --- /dev/null +++ b/Java/AverageDemo.java @@ -0,0 +1,25 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.lang.Math; +class AverageDemo { + static float average(float a, float b){ + return (a+b)/2; + } + + public static void main(String[] args) throws java.io.IOException{ + float a, b; + System.out.println("input two numbers"); + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + a = Float.parseFloat(input.readLine()); + b = Float.parseFloat(input.readLine()); + System.out.println("output:"); + System.out.println(average(a, b)); + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/BlackJack/Black Jack Part 1.pdf b/Java/BlackJack/Black Jack Part 1.pdf Binary files differnew file mode 100644 index 0000000..77f8e4f --- /dev/null +++ b/Java/BlackJack/Black Jack Part 1.pdf diff --git a/Java/BlackJack/Black Jack Part 2.pdf b/Java/BlackJack/Black Jack Part 2.pdf Binary files differnew file mode 100644 index 0000000..6421d17 --- /dev/null +++ b/Java/BlackJack/Black Jack Part 2.pdf diff --git a/Java/BlackJack/Black Jack Part 3.pdf b/Java/BlackJack/Black Jack Part 3.pdf Binary files differnew file mode 100644 index 0000000..fd4e56c --- /dev/null +++ b/Java/BlackJack/Black Jack Part 3.pdf diff --git a/Java/BlackJack/Black Jack Part 4.pdf b/Java/BlackJack/Black Jack Part 4.pdf Binary files differnew file mode 100644 index 0000000..25f4c2b --- /dev/null +++ b/Java/BlackJack/Black Jack Part 4.pdf diff --git a/Java/BlackJack/Blackjack.java b/Java/BlackJack/Blackjack.java new file mode 100644 index 0000000..ff06b78 --- /dev/null +++ b/Java/BlackJack/Blackjack.java @@ -0,0 +1,185 @@ +//TODO + +import java.util.Random; //for randomness +//import java.io.BufferedReader; +//import java.io.InputStreamReader; +import java.io.*; + +class Blackjack { + public static void main(String [] args) throws java.io.IOException { + System.out.println("Welcome To Blackjack!"); + System.out.println("Copyright (C) 2021 msglm."); + System.out.println("License AGPLv3+: GNU Affero GPL version 3 Only"); + System.out.println("<http://www.gnu.org/licenses/agpl.html>."); + System.out.println("This is free software: you are free to change and redistribute it."); + System.out.println("There is NO WARRANTY, to the extent permitted by law. \n"); + + //first is for card value, second is for card type + int[] dealerFaceValues = new int[21]; + int[] dealerSuitValues = new int[21]; + int[] playerFaceValues = new int[21]; + int[] playerSuitValues = new int[21]; + + int dealerDeltCards = 0; + int playerDeltCards = 0; + + int dealerScore = 0; + int playerScore = 0; + int dealerScoreSuit = 0; + int playerScoreSuit = 0; + + int roundnum=0; + + boolean stood = false; + boolean gameEnd = false; + boolean playerHit = true; + boolean dealerHit = true; + Random random = new Random(); + + dealerFaceValues[0] = random.nextInt(9+1)+1; + dealerSuitValues[0] = random.nextInt(1+1)+1; + + playerFaceValues[0] = random.nextInt(9+1)+1; + playerSuitValues[0] = random.nextInt(1+1)+1; + + + //TODO: SWITCH STATEMENT THAT ASSIGNES A NAME TO EACH CARD + + System.out.println("Dealer's Hand:"); + for(int i=0;i<21;i++){ + int curcar = i + 1; + if(dealerFaceValues[i] != 0 || dealerSuitValues[i] != 0){ + System.out.println("Card " + curcar + " has a Face of " + dealerFaceValues[i] + " and a Suit of " + dealerSuitValues[i]); + } + } + + + System.out.println("Player's Hand:"); + for(int i=0;i<21;i++){ + int curcar = i + 1; + if(playerFaceValues[i] != 0 || playerSuitValues[i] != 0){ + System.out.println("Card " + curcar + " has a Face of " + playerFaceValues[i] + " and a Suit of " + playerSuitValues[i]); + } + } + while(!gameEnd){ + roundnum++; + System.out.println("Would you like a card? Y/n"); + + BufferedReader cardWantInput = new BufferedReader(new InputStreamReader(System.in)); + String tempString = cardWantInput.readLine(); + char cardWant = tempString.charAt(0); + System.out.println("===ROUND " + roundnum + " ==="); + if(cardWant == 'y' || cardWant == 'Y'){ + playerHit = true; + playerDeltCards++; + playerFaceValues[playerDeltCards] = random.nextInt(9+1)+1; + playerSuitValues[playerDeltCards] = random.nextInt(1+1)+1; + } else { + stood = true; + playerHit = false; + } + System.out.println(""); + System.out.println("Dealer's Hand:"); + for(int i=0;i<21;i++){ + int curcar = i + 1; + if(dealerFaceValues[i] != 0 || dealerSuitValues[i] != 0){ + if(curcar == 1){ + System.out.println("Card " + curcar + " has a Face of " + dealerFaceValues[i] + " and a Suit of " + dealerSuitValues[i]); + } else { + System.out.println ("The Dealer has another card..."); + } + } + } + System.out.println(""); + System.out.println("Player's Hand:"); + for(int i=0;i<21;i++){ + int curcar = i + 1; + if(playerFaceValues[i] != 0 || playerSuitValues[i] != 0){ + System.out.println("Card " + curcar + " has a Face of " + playerFaceValues[i] + " and a Suit of " + playerSuitValues[i]); + } + } + System.out.println(""); + + + //Find each one's score + for (int i=0;i<21;i++){ + playerScore = playerScore + playerFaceValues[i]; + } + + for (int i=0;i<21;i++){ + dealerScore = dealerScore + dealerFaceValues[i]; + } + + for (int i=0;i<21;i++){ + playerScoreSuit = playerScoreSuit + playerSuitValues[i]; + } + + for (int i=0;i<21;i++){ + dealerScoreSuit = dealerScoreSuit + dealerSuitValues[i]; + } + + if(dealerScore < 17){ + dealerHit = true; + dealerDeltCards++; + dealerFaceValues[dealerDeltCards] = random.nextInt(9+1)+1; + dealerSuitValues[dealerDeltCards] = random.nextInt(1+1)+1; + } else { + dealerHit = false; + } + + + System.out.println("Status:"); + if(playerHit){ + System.out.println("You took a Hit!"); + } else { + System.out.println("You decided to stand..."); + } + + + if(dealerHit){ + System.out.println("The dealer has taken a hit!"); + } else { + System.out.println("The dealer has decided to stand..."); + } + + if(dealerScore > 21) { + System.out.println("DEALER BUSTED!!! YOU WIN!"); + gameEnd = true; + } + if(playerScore > 21){ + System.out.println("YOU BUSTED!!! YOU LOSE"); + gameEnd = true; + + } + + //probably should clean this up with swich statments. This looks horrible. + if (stood == true && gameEnd == false) { + if(dealerScore > playerScore){ + System.out.println("DEALER HAS THE HIGHER CARDS!!! YOU LOSE!"); + gameEnd = true; + } else if (playerScore > dealerScore){ + System.out.println("YOU HAVE THE HIGHER CARDS!!! YOU WIN!"); + gameEnd = true; + } else { + System.out.println("YOU HAVE THE SAME VALUES. WE MUST LOOK AT THE SUITS TO DETERMINE WHO WON"); + if(dealerScore + dealerScoreSuit > playerScore + playerScoreSuit){ + System.out.println("DEALER HAS THE HIGHER CARDS!!! YOU LOSE!"); + gameEnd = true; + } else if (playerScore + playerScoreSuit > dealerScore + dealerScoreSuit){ + System.out.println("YOU HAVE THE HIGHER CARDS!!! YOU WIN!"); + gameEnd = true; + } else { + System.out.println("THE VALUES ARE STILL THE SAME! A COIN FLIP TO DECIDE WHO WON!"); + if(random.nextInt(1) == 1){ + System.out.println("YOU HAVE WON BY PURE LUCK!"); + gameEnd = true; + } else { + System.out.println("YOU HAVE LOST BY PURE LUCK!"); + gameEnd = true; + }}}} + //reset the score counted for next round + playerScoreSuit=0; + dealerScoreSuit=0; + dealerScore=0; + playerScore=0; + }}} diff --git a/Java/BlackJack/Card.java b/Java/BlackJack/Card.java new file mode 100644 index 0000000..f4b2df4 --- /dev/null +++ b/Java/BlackJack/Card.java @@ -0,0 +1,250 @@ +public class Card {
+
+ // data member
+ private int facePointValue;
+ private String faceValue;
+ private int points;
+ private String suit;
+ private int suitPointValue;
+
+
+
+ // Constructors
+ //accepts suit and face
+ public Card (String inFace, String inSuit) {
+
+ switch(inFace){ //Reasoning for the switch is that working with strings as values in a comparision game will only casue problems, it must be converted to a sensable value
+ case "King": //all face cards are 10. 10 is also 10 (for obvious reasons)
+ case "king":
+ case "Joker":
+ case "joker":
+ case "Queen":
+ case "queen":
+ case "Jack":
+ case "jack":
+ case "10":
+ case "ten":
+ case "Ten":
+ facePointValue = 10;
+ break;
+ //these comparisions are the worst, but its the best way I could figure out accounting for all reasonable inputs without using regex
+ case "9":
+ case "nine":
+ case "Nine":
+ facePointValue = 9;
+ break;
+
+ case "8":
+ case "eight":
+ case "Eight":
+ facePointValue = 8;
+ break;
+
+ case "7":
+ case "seven":
+ case "Seven":
+ facePointValue = 7;
+ break;
+
+ case "6":
+ case "six":
+ case "Six":
+ facePointValue = 6;
+ break;
+
+ case "5":
+ case "five":
+ case "Five":
+ facePointValue = 5;
+ break;
+
+ case "4":
+ case "four":
+ case "Four":
+ facePointValue = 4;
+ break;
+
+ case "3":
+ case "three":
+ case "Three":
+ facePointValue = 3;
+ break;
+ case "2":
+ case "two":
+ case "Two":
+ facePointValue = 2;
+ break;
+
+ case "1":
+ case "one":
+ case "One":
+ case "Ace":
+ case "ace":
+ facePointValue = 1;
+ break;
+ default:
+ System.out.println("User Input was Invalid! " + inFace + " Is not a valad card!");
+ System.exit(1);
+
+ }
+
+ faceValue = inFace; //since all of the above is just for value finding and will crash if breaks, might as well just get inFace as the value.
+ switch(inSuit){
+ case "heart":
+ case "hearts":
+ case "Heart":
+ case "Hearts":
+ suitPointValue = 4;
+ break;
+ case "club":
+ case "clover":
+ case "Club":
+ case "Clover":
+ suitPointValue = 3;
+ break;
+ case "Diamond":
+ case "diamond":
+ suitPointValue = 2;
+ break;
+ case "spade":
+ case "spear":
+ case "shovel":
+ case "Spade":
+ case "Spear":
+ case "Shovel":
+ suitPointValue = 1;
+ break;
+ default:
+ System.out.println("User Input was Invalid! " + inSuit + " Is not a valad card!");
+
+ System.exit(1);
+ }
+ suit = inSuit; //ditto reasoning of last comment
+
+ }
+//no suit or face? assume 4 of clovers
+ public Card() {
+ suitPointValue = 3;
+ facePointValue = 4;
+ suit = "Clover";
+ faceValue = "4";
+ }
+
+// set & return
+// set
+
+//return
+public String getFaceValue(){
+return figureName(facePointValue);
+}
+
+public String getFaceSuit(){
+return figureSuit(suitPointValue);
+}
+
+public int getFaceNumericValue(){
+return facePointValue;
+}
+
+public int getSuitNumericValue(){
+return suitPointValue;
+}
+
+
+ public String figureName(int input) {
+ switch(input){
+
+ case 1:
+ return "One";
+
+
+ case 2:
+ return "Two";
+
+
+ case 3:
+ return "Three";
+
+
+ case 4:
+ return "Four";
+
+ case 5:
+ return "Five";
+
+ case 6:
+ return "Six";
+
+ case 7:
+ return "Seven";
+
+ case 8:
+ return "Eight";
+
+ case 9:
+ return "Nine";
+
+ case 10:
+ return "Ten";
+
+ case 11:
+ return "Jack";
+
+ case 12:
+ return "Queen";
+
+ case 13:
+ return "King";
+
+ case 14:
+ return "Joker";
+
+ default:
+ System.out.println("figureName does not take " + input + "as a valid input!");
+ return null;
+ }
+
+ }
+
+ public String figureSuit(int input) {
+ switch(input){
+ case 1:
+ return "Hearts";
+
+ case 2:
+ return "Clovers";
+
+ case 3:
+ return "Diamonds";
+
+ case 4:
+ return "Spade";
+ default:
+ System.out.println("figureSuit does not take" + input + "as a valid input!");
+ return null;
+
+
+ }
+ }
+
+ public String compareCardValue(String card1Name, int card1Face, int card1Suit, String card2Name, int card2Face, int card2Suit) {
+
+ if(card1Face == card2Face){
+ if(card1Suit > card2Suit){
+ return card1Name;
+ } else {
+ return card2Name;
+ }
+
+ }
+
+ if (card1Face > card2Face) {
+ return card1Name;
+ } else {
+ return card2Name;
+ }
+ }
+
+}
+
+
diff --git a/Java/BlackJack/CardTester.java b/Java/BlackJack/CardTester.java new file mode 100644 index 0000000..5655ea2 --- /dev/null +++ b/Java/BlackJack/CardTester.java @@ -0,0 +1,30 @@ +/* CardTester.java +Name: Nancy Reddig, Academy Instructor +Date: 5/15/03 +Modified by: +Carl Frank, 08/29/07 +Modifications were to not allow access to instance variables of Card. +The assumptions are that these will be private. +Use this class to test your Card Class +Program that tests the Card Class*/ +// Java packages +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; // program uses JOptionPane +public class CardTester { +// main method begins execution of Java application +public static void main( String args[] ) { + +Card card1= new Card("King", "Hearts"); +// allow the user to think that they are dealing a random card + +JOptionPane.showMessageDialog(null, "Deal a Card", +"Card", JOptionPane.INFORMATION_MESSAGE ); +//display the card +JOptionPane.showMessageDialog( null, "The card is the " + card1.getFaceValue() + " of " //copying code from a pdf and having to debug it? Now this is a new low + + card1.getSuit(), + "Your Card", JOptionPane.PLAIN_MESSAGE ); + +System.exit(0); +} +} diff --git a/Java/BlackJack/Deck.java b/Java/BlackJack/Deck.java new file mode 100644 index 0000000..a828e52 --- /dev/null +++ b/Java/BlackJack/Deck.java @@ -0,0 +1,38 @@ +import java.util.Random; //for randomness
+public class Deck {
+
+ // data member
+ private int[] deckFace = new int[20];
+ private int[] deckSuit = new int[20];
+
+
+
+ // Constructors
+ //accepts suit and face
+ public Deck() {
+ for(int i=0;i<20;i++){
+ Random random = new Random();
+ deckFace[i] = random.nextInt(14); //1-10 are as expected, 11 is Jack, 12 is Queen, 13 is King, 14 is Joker
+ deckSuit[i] = random.nextInt(4); //Card order is highest to lowest. 1 is hearts 4 is spades.
+ }
+ }
+
+ void printDeck(){
+
+ for(int i=0;i<20;i++){
+ System.out.println("Card " + i + " has a Face of " + deckFace[i] + " and a Suit of " + deckSuit[i]);
+ }
+
+ }
+
+ void shuffle(){
+
+ for(int i=0;i<20;i++){
+ Random random = new Random();
+ deckFace[i] = random.nextInt(14); //1-10 are as expected, 11 is Jack, 12 is Queen, 13 is King, 14 is Joker
+ deckSuit[i] = random.nextInt(4); //Card order is highest to lowest. 1 is hearts 4 is spades.
+
+ }
+
+ }
+}
diff --git a/Java/BlackJack/DeckDriver.java b/Java/BlackJack/DeckDriver.java new file mode 100644 index 0000000..28a8ff4 --- /dev/null +++ b/Java/BlackJack/DeckDriver.java @@ -0,0 +1,8 @@ +class DeckDriver { +public static void main(String [] args) { +Deck myDeck = new Deck(); +myDeck.printDeck(); +myDeck.shuffle(); +System.out.println("\n\nSorted Order"); +myDeck.printDeck(); +}} diff --git a/Java/BlackJack/Hand.java b/Java/BlackJack/Hand.java new file mode 100644 index 0000000..a9fb174 --- /dev/null +++ b/Java/BlackJack/Hand.java @@ -0,0 +1,51 @@ +public class Hand {
+
+ // data member
+ private int[] cardsInHandFace= new int[22]; //the maximum possible hands size is 22, if you draw 22 aces you'll bust. Values as expected
+ private int[] cardsInHandSuit= new int[22]; //usual values
+ private int numCardsInHand;
+
+ // Constructors
+ //accepts suit and face
+ public Hand (int firstFace, int firstSuit, int secondFace, int secondSuit) {
+ cardsInHandFace[1] = firstFace;
+ cardsInHandSuit[1] = firstSuit;
+ cardsInHandFace[2] = secondFace;
+ cardsInHandSuit[2] = secondSuit;
+ //for some reason it wanted this, so I gave it. This code is total spaghetti and garbage. These assignments don't feel like they were ment to work with one another.
+ }
+
+// set & return
+// set
+
+//return
+public int calculateHandValue(){
+
+int value = 0;
+
+for(int i=0; i < cardsInHandFace.length;i++){
+value = value + cardsInHandFace[i];
+}
+return value;
+}
+
+public void showAllCards(){ //there is absolutely no reason this should return something. These constraints are bad and don't teach OOP well. None of this need be OOP at all as it just overcomplicates this to a maximal degree. A much better teaching for OOP would be making some small farming game in where you had animals to take care of. OOP would be useful there as you could easily generate personalities, needs, types, colors, etc for each animal as to make good use of OOP and its capabilities. Blackjack doesn't need nor have variation like that and thus does not need OOP. Due to the fact that each class has a private value to it, there is great redundancy in the amonut of values stored, therefore causing the application to use more RAM than it needs to. This is also difficult to keep track of because some of these methods (such as card name and value finding) are redundant and cannot easily work with one another due to the strange constraints in what methods we must use.
+
+ for(int i=1; i < cardsInHandFace.length + 1;i++){
+ System.out.print("Card Number " + i + "'s face is " + this.cardsInHandFace[i] + " and its suit is " + this.cardsInHandSuit[i]);
+ }
+
+}
+
+
+public void showOneCard(int input) { //fix to return something
+System.out.print("Card Number " + input + "'s face is " + this.cardsInHandFace[input] + " and its suit is " + this.cardsInHandSuit[input]);
+}
+
+public void hit(Card c) { //fix to return something
+ for(int i=0; i < cardsInHandFace.length;i++){
+ if(cardsInHandFace[i] == 0) {
+ cardsInHandFace[i] = c.getFaceNumericValue();
+ cardsInHandSuit[i] = c.getSuitNumericValue();
+ }}}
+}
diff --git a/Java/CapitalC.java b/Java/CapitalC.java new file mode 100644 index 0000000..de1d6a4 --- /dev/null +++ b/Java/CapitalC.java @@ -0,0 +1,21 @@ +import java.util.ArrayList; +class CapitalC { +public static void main (String str[]) { + ArrayList<String> book = new ArrayList<>(); + + //book titles + book.add("test"); + book.add("Capital"); + book.add("test2"); + book.add("Carmex"); + book.add("LaTeXC"); + book.add("C++"); + book.add("East"); + + for (String b: book){ + if(b.charAt(0) == 'C'){ + System.out.println(b); + } +}}} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/CoinTest.java b/Java/CoinTest.java new file mode 100644 index 0000000..45979d2 --- /dev/null +++ b/Java/CoinTest.java @@ -0,0 +1,8 @@ +import java.util.ArrayList; +class CoinTester { +public static void main (String str[]) { + coin quarter = new coin(); + System.out.println(quarter); +} +} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Computation.java b/Java/Computation.java new file mode 100644 index 0000000..289fec9 --- /dev/null +++ b/Java/Computation.java @@ -0,0 +1,25 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class Computation { + public static void main(String[] args) throws java.io.IOException { + int iterations,numbertodivby; + double computable = 0.0; + double timesran = 0.0; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader input2 = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("How many layers down will you go?"); + iterations = Integer.parseInt(input.readLine()); + + + for(iterations=iterations;iterations>0;iterations--){ + timesran++; + computable = (computable)+(1.0/timesran); + } + System.out.println("The sum is: " + computable); + + } + + +} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/CorrectChange.java b/Java/CorrectChange.java new file mode 100644 index 0000000..ea163a6 --- /dev/null +++ b/Java/CorrectChange.java @@ -0,0 +1,25 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class CorrectChange { + public static void main(String[] args) throws java.io.IOException { + int dollars, cents,quarters,dimes,nickels,pennies; + + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + dollars = Integer.parseInt(input.readLine()); + cents = dollars%100; + dollars = (dollars-cents)/100; + quarters = cents/25; + dimes = (cents%25)/10; + nickels = (cents%10)/5; + pennies = (cents%5)/1; + System.out.println("Your change is: " + dollars + " dollar(s), " + quarters + " quarters " + dimes + " dimes, " + nickels + " nickels, " + pennies + ", pennies"); + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Cup/Cup.java b/Java/Cup/Cup.java new file mode 100644 index 0000000..c313c07 --- /dev/null +++ b/Java/Cup/Cup.java @@ -0,0 +1,55 @@ +public class Cup {
+
+ // data member
+ private double capacity;
+ private double holding;
+ private String color;
+
+
+
+ // Constructors
+ public Cup(double c, String co, double h) {
+ capacity = c;
+ color = co;
+ holding = h;
+ }
+ public Cup() {
+ color = "red";
+ capacity = 16;
+ holding = 0;
+ }
+ // set
+ public void fillCup(double h) {
+ if (h > capacity){
+ capacity = holding;
+ } else {
+ holding = holding + h;
+ }
+ }
+ public void sip() {
+ if(holding - 1 < 1){
+ holding = holding-1;
+ } else {
+ //System.out.println("CUPPER UNDERFLOW DETECTED");
+ }
+ }
+
+ public void gulp() {
+ if(holding-3 > 1){
+ holding = holding-3;
+ } else {
+ //System.out.println("CUPPER UNDERFLOW DETECTED");
+ }
+ }
+ public void emptyCup() {
+ holding = 0;
+ }
+
+ // modify and return
+ public String status() {
+ return capacity + " ounce " + color + " cup that contains " + holding + " ounce[s].";
+ }
+
+}
+
+
diff --git a/Java/Cup/CupDemo.java b/Java/Cup/CupDemo.java new file mode 100644 index 0000000..9c00d94 --- /dev/null +++ b/Java/Cup/CupDemo.java @@ -0,0 +1,33 @@ +public class CupDemo {
+
+ public static void main (String args []) {
+
+ //cup init
+ Cup FirstCup = new Cup();
+ Cup SecondCup = new Cup(20.0, "Blue", 0.0);
+
+//fill both with 20 oz, this breaks the first cup and will default to the maximum possible capacity
+ FirstCup.fillCup(20);
+ SecondCup.fillCup(20);
+ //print red
+ System.out.println(FirstCup.status());
+ //sip and gulp from blue
+ SecondCup.sip();
+ SecondCup.sip();
+ SecondCup.gulp();
+ //Fill by 6
+ SecondCup.fillCup(6);
+ //print blue
+ System.out.println(SecondCup.status());
+ //empty red
+ FirstCup.emptyCup();
+ //fill red with five
+ FirstCup.fillCup(5);
+ //2x gulp first
+ FirstCup.gulp();
+ FirstCup.gulp();
+ //final print
+ System.out.println(FirstCup.status());
+ }
+}
+
diff --git a/Java/Discount.java b/Java/Discount.java new file mode 100644 index 0000000..71a1974 --- /dev/null +++ b/Java/Discount.java @@ -0,0 +1,24 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class Discount { + public static void main(String[] args) throws java.io.IOException { + int amount; + System.out.println("input amount:"); + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + amount = Integer.parseInt(input.readLine()); + if (amount > 10){ + System.out.println("Dicounted Price: " + amount*0.9); + } else { + System.out.println("Price: " + amount); + } + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Dollars.java b/Java/Dollars.java new file mode 100644 index 0000000..faa927c --- /dev/null +++ b/Java/Dollars.java @@ -0,0 +1,21 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class Dollars { + public static void main(String[] args) throws java.io.IOException { + int dollars, cents; + + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + dollars = Integer.parseInt(input.readLine()); + cents = dollars%100; + dollars = (dollars-cents)/100; + System.out.println("this is $" + dollars + " dollars and " + cents + " cents"); + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/DotLeaders.java b/Java/DotLeaders.java new file mode 100644 index 0000000..021c3c7 --- /dev/null +++ b/Java/DotLeaders.java @@ -0,0 +1,27 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class DotLeaders { + public static void main(String[] args) throws java.io.IOException { + int dotnum; + BufferedReader word1I = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader word2I = new BufferedReader(new InputStreamReader(System.in)); + + System.out.println("first Word"); + String word = word1I.readLine(); + System.out.println("second word"); + String word2 = word2I.readLine(); + dotnum = 30-(word.length()+word2.length()); + System.out.print(word); + for(dotnum=dotnum;dotnum>0; dotnum--){ + System.out.print("."); + } + System.out.print(word2); + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/DrawDiamond.java b/Java/DrawDiamond.java new file mode 100644 index 0000000..7e744a3 --- /dev/null +++ b/Java/DrawDiamond.java @@ -0,0 +1,48 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +//horrible recursive for loops are not fun +//they aren't a good way to teach something +//why can't we do fizzbuzz? +//or make small games? +//or do data manipulation? +//or solve a problem? +//or something more enjoyable than this? +//maybe CS really should stay a hobbiest, self taught skill +//at least when its a hobby you learn what matters at your own pace +//here its just being given an unrealistic task that, albiet difficult, is not rewarding +//making a diamond like this doesn't teach me good programming +//it teaches me for loops +//and nested for loops are usually not a good way to go about things +//I just want to make command line tools and data parsers for gods sake! +//maybe mom was right, I should just go for law +//sysadmining seems nice though, I could do that +//yeah, law or sysadmin. That seems nice +//or I could write and edit for a living, that doesn't seem too bad +class Diamond { + public static void main(String[] args) throws java.io.IOException { + BufferedReader dmndsizeI = new BufferedReader(new InputStreamReader(System.in)); + + System.out.println("input size"); + int dmndsize = Integer.parseInt(dmndsizeI.readLine()); + + for (int i = 1; i < dmndsize; i += 2) { + for (int j = 0; j < dmndsize -1 - i / 2; j++) + System.out.print(" "); + + for (int j = 0; j < i; j++) + System.out.print("*"); + + System.out.print("\n"); + } + + for (int i = 7; i > 0; i -= 2) { + for (int j = 0; j < 9 - i / 2; j++) + System.out.print(" "); + + for (int j = 0; j < i; j++) + System.out.print("*"); + + System.out.print("\n"); + }}} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Even20To100.java b/Java/Even20To100.java new file mode 100644 index 0000000..b3a2b33 --- /dev/null +++ b/Java/Even20To100.java @@ -0,0 +1,14 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class Even20To100 { + public static void main(String[] args) throws java.io.IOException { + + + for(int i = 0; i <= 100;i++){ + if (i % 2 == 0){ + System.out.print(i + " "); + } + } + }} diff --git a/Java/FantasyGame.java b/Java/FantasyGame.java new file mode 100644 index 0000000..9053749 --- /dev/null +++ b/Java/FantasyGame.java @@ -0,0 +1,45 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class FantasyGame { + public static void main(String[] args) throws java.io.IOException { + int Health,Luck,Strength; + System.out.println("Name:"); + BufferedReader NameI = new BufferedReader(new InputStreamReader(System.in)); + String Name = NameI.readLine(); + + System.out.println("Health:"); + BufferedReader HealthI = new BufferedReader(new InputStreamReader(System.in)); + Health = Integer.parseInt(HealthI.readLine()); + + System.out.println("Luck:"); + BufferedReader LuckI = new BufferedReader(new InputStreamReader(System.in)); + Luck = Integer.parseInt(LuckI.readLine()); + + System.out.println("Strength:"); + BufferedReader StrengthI = new BufferedReader(new InputStreamReader(System.in)); + Strength = Integer.parseInt(StrengthI.readLine()); + + if(Health+Luck+Strength > 15){ + + System.out.println("You have given your character too many points! Default values have been assigned"); + System.out.println(Name + ", strength: 5, health: 5, luck: 5"); + } else { + + System.out.println(Name + ", strength: " + Strength + ", health: " + Health + ", luck: " + Luck); + + } + + + + + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Fever.java b/Java/Fever.java new file mode 100644 index 0000000..ee558fe --- /dev/null +++ b/Java/Fever.java @@ -0,0 +1,24 @@ +//there is absolutely no reason for the input to be a double. No one will be inputting any decimal past the 3, so there is no reason to waste memory on that. Float > Double in this case if you value effective programming. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class Fever { + public static void main(String[] args) throws java.io.IOException { + float temp; + System.out.println("input temp:"); + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + temp = Float.parseFloat(input.readLine()); + if (temp > 98.6){ + System.out.println("you have a fever."); + } else { + System.out.println("you are not running a fever."); + } + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/HelloWorld.java b/Java/HelloWorld.java new file mode 100644 index 0000000..f5726d7 --- /dev/null +++ b/Java/HelloWorld.java @@ -0,0 +1,7 @@ +//Removed the cancer bloat at the top, why do you need imported packages for a hello world? +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello World"); + } +} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/HollowBox.java b/Java/HollowBox.java new file mode 100644 index 0000000..64bb43d --- /dev/null +++ b/Java/HollowBox.java @@ -0,0 +1,52 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class HollowBox { + public static void main(String[] args) throws java.io.IOException { + int h,w; + //Buffered readers can improve speed up to 30% as they are less bloated than scanners and don't cause a memory leak when not closed + BufferedReader HeightI = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader WidthI = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("Height"); + h = Integer.parseInt(HeightI.readLine()); + System.out.println("Width"); + w = Integer.parseInt(WidthI.readLine()); + + +//if less than 3, re-enter +if(h<3) { +System.out.println("Invalid height! Re-enter:"); +h = Integer.parseInt(HeightI.readLine()); + +} + +if(w<3) { +System.out.println("Invalid width! Re-enter:"); +w = Integer.parseInt(WidthI.readLine());; +} + + +for(int i=0;i<h;i++) { //loops for height +for(int j=0;j<w;j++) { //loops for width + +if(i==0||i==h-1) { //if i is in the 0th place or height then it will print out * +System.out.print("*"); +}else { +if(j==0||j==w-1) { //if j is in the 0th place or width then it will print out * +System.out.print("*"); +}else { +System.out.print(" "); //if j is in the in between the 0th place and width then it will print out a space +} +} +} + +System.out.println(""); //prints out next line +} + +} + +} + + + +//By msglm; Special thanks to Jude Spikes diff --git a/Java/InternetDelicatessen.java b/Java/InternetDelicatessen.java new file mode 100644 index 0000000..4cf78f9 --- /dev/null +++ b/Java/InternetDelicatessen.java @@ -0,0 +1,41 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class InternetDelicatessen { + public static void main(String[] args) throws java.io.IOException { + int amount; + float price; + float shipping = 0; + boolean overnight; + System.out.println("Item Name:"); + BufferedReader itemI = new BufferedReader(new InputStreamReader(System.in)); + String item = itemI.readLine(); + System.out.println("Price"); + BufferedReader priceI = new BufferedReader(new InputStreamReader(System.in)); + price = Float.parseFloat(priceI.readLine()); + System.out.println("Overnight Delivery (true or false):"); + BufferedReader overnightI = new BufferedReader(new InputStreamReader(System.in)); + overnight = Boolean.parseBoolean(overnightI.readLine()); + System.out.println("Invoice: "); + System.out.println(item + " : $" + price); + //Regular Shipping + if (price < 10) { + shipping = shipping + 2; + } else{ + shipping = shipping + 3; + } + + //overnight or naw + if (overnight) { + shipping = shipping + 5; + } + float total = shipping + price; + System.out.println("shipping : $" + shipping); + System.out.println("total : $" + total); + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Label.java b/Java/Label.java new file mode 100644 index 0000000..740f8e1 --- /dev/null +++ b/Java/Label.java @@ -0,0 +1,35 @@ +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Scanner; + +public class Label{ +public static void main(String[] arg) throws IOException{ +Scanner user_in = new Scanner(System.in); +System.out.println("Enter input file:"); +String input_filename = user_in.nextLine(); +System.out.println("Enter output file:"); +String output_filename = user_in.nextLine(); + +File inputFile = new File(input_filename); +Scanner file_scanner = new Scanner(inputFile); + +String[] person_data = new String[6]; +for(int i = 0; file_scanner.hasNextLine(); i++){ +person_data[i] = file_scanner.nextLine(); +} + +File outputFile = new File(output_filename); +FileWriter writer = new FileWriter(outputFile); +writer.write(person_data[0] + "\n"); +writer.write(person_data[1] + "\n"); +if(person_data[2].length() > 0){ +writer.write(person_data[2] + "\n"); +} + +writer.write(person_data[3] + ", " + person_data[4] + " " + person_data[5]); +writer.close(); + +} +} diff --git a/Java/Label2.java b/Java/Label2.java new file mode 100644 index 0000000..5a34aee --- /dev/null +++ b/Java/Label2.java @@ -0,0 +1,36 @@ +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Scanner; +import java.util.ArrayList; + +public class Label2{ +public static void main(String[] arg) throws IOException{ +Scanner user_in = new Scanner(System.in); + +System.out.println("Enter input file:"); +String input_filename = user_in.nextLine(); +System.out.println("Enter output file:"); +String output_filename = user_in.nextLine(); + +File input_file = new File(input_fname); +Scanner file_in = new Scanner(input_file); + +List<String> people_data = new ArrayList<String>(); +while(file_in.hasNextLine()){ +people_data.add(file_in.nextLine()); +} + +File output_file = new File(output_fname); +FileWriter writer = new FileWriter(output_file); +for (int i = 0; i < people_data.size(); i++) { + String[] datas = people_data.get(i).split(","); + if(datas[j].length() > 0){ + writer.write(datas[j] + "\n"); + } +} +writer.write(datas[3] + ", " + datas[4] + " " + datas[5] + "\n\n"); + +writer.close(); +}} diff --git a/Java/LastChanceGas.java b/Java/LastChanceGas.java new file mode 100644 index 0000000..e43d96f --- /dev/null +++ b/Java/LastChanceGas.java @@ -0,0 +1,34 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class LastChanceGas { + public static void main(String[] args) throws java.io.IOException { + int TankCap,Gage,MPG; + System.out.println("Tank Capacity"); + BufferedReader TankCapin = new BufferedReader(new InputStreamReader(System.in)); + TankCap = Integer.parseInt(TankCapin.readLine()); + + System.out.println("Gage Reading"); + BufferedReader Gagein = new BufferedReader(new InputStreamReader(System.in)); + Gage = Integer.parseInt(Gagein.readLine()); + + System.out.println("MPG"); + BufferedReader MPGin = new BufferedReader(new InputStreamReader(System.in)); + MPG = Integer.parseInt(MPGin.readLine()); + + int ToteGas = (TankCap*(Gage/100))*MPG; + + if (ToteGas < 200) { + System.out.println("Get Gas"); + } else { + System.out.println("safe to travel"); + } + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Magic.java b/Java/Magic.java new file mode 100644 index 0000000..6633639 --- /dev/null +++ b/Java/Magic.java @@ -0,0 +1,84 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileNotFoundException; +class Magic { + public static void main(String[] args) throws java.io.IOException{ + int epoch = 2; + int prospectingX = 0; + int prospectingY = 0; + boolean notFinished = true; + boolean noneSelected = true; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + int cords = Integer.parseInt(input.readLine()); + int[][] cordPlane = new int[cords][cords]; + if (cords % 2 == 0){ + System.exit(1); + } + int maxLength = cordPlane.length - 1; + cordPlane[cords/2][0] = 1; //first cord is X second is Y + prospectingX = (cords/2)+1; + prospectingY = -1; + System.out.println("starting..."); + while (epoch <= cords*cords && notFinished){ + while(notFinished){ + + + + System.out.println("Epoch is " + epoch); + + System.out.println("Testing if X-cord " + prospectingX + " is less than 0"); + if(prospectingX < 0){ + prospectingX = prospectingX + cordPlane.length; + } + + System.out.println("Testing if X-cord " + prospectingX + " is greater than " + maxLength); + if(prospectingX > maxLength){ + prospectingX = prospectingX - cordPlane.length; + } + + System.out.println("Testing if Y-cord " + prospectingY + " is less than 0"); + if(prospectingY < 0){ + prospectingY = prospectingY + cordPlane.length; + } + + System.out.println("Testing if Y-cord " + prospectingY + " is greater than " + maxLength); + if(prospectingY > maxLength){ + prospectingY = prospectingY - cordPlane.length; + } + System.out.println("Rerouted everything... Testing now..."); + if( cordPlane[prospectingX][prospectingY] == 0 ){ + System.out.println("Placing cord..."); + cordPlane[prospectingX][prospectingY] = epoch; + prospectingX++; + prospectingY--; + epoch++; + notFinished = false; + for (int k = 0; k < cordPlane.length; k++) { // loop through a multidimensional array + for(int l = 0; l < cordPlane[k].length; l++) { + System.out.print(cordPlane[l][k] + " "); + } + System.out.println(); + } + } else { + prospectingY--; + System.out.println("Reducing Y to " + prospectingY); + } + + } + notFinished = true; + } + for (int k = 0; k < cordPlane.length; k++) { // loop through a multidimensional array + for(int l = 0; l < cordPlane[k].length; l++) { + System.out.print(cordPlane[l][k] + " "); + } + System.out.println(); + } + + } +} + + + +//By msglm; Released into the public domain. diff --git a/Java/MagicSquare/MagicSquare.java b/Java/MagicSquare/MagicSquare.java new file mode 100644 index 0000000..934ade5 --- /dev/null +++ b/Java/MagicSquare/MagicSquare.java @@ -0,0 +1,75 @@ +class MagicSquare{ + +final int maxSize; +int size; +int mSquare [][]; +int row, col; + +public MagicSquare (int s){ +maxSize = 15; +if (s > maxSize) + size = maxSize; +else + size = s; + +mSquare = new int [size][size]; +row = col - 0; +intSquare(); +} + +private void intSquare(){ +int count, mid; + +for (row = 0; row<size; row++) + for (col = 0; col < size; col++) + mSquare [row][col] = 0; + +count = 1; +mid = size/2; +row = 0; +col = mid; + +while (count <= size * size) { + if(mSquare [row][col] != 0) + back(); + mSquare[row][col] = count; + count ++; + forward(); +} +} + +private void forward(){ +row --; +col ++; +check(); +} +private void back(){ +row++; +col--; +check(); +row++; +check(); +} + +private void check(){ +if(row < 0){ +row = size - 1; +} +else { + if(row ==size){ + row = 0; + } +} +if(col < 0){ +col = size - 1; +} +else { + if(col == size){ + col=0; + } +} + +} +} + + diff --git a/Java/MagicSquare/Main.java b/Java/MagicSquare/Main.java new file mode 100644 index 0000000..6fb1f19 --- /dev/null +++ b/Java/MagicSquare/Main.java @@ -0,0 +1,25 @@ +import java.util.Scanner; + +class Main{ + public static void main(String[] args) { + Scanner sc = new Scanner (System.in); + System.out.println("enter size of square, must be odd"); + + int size = sc.nextInt(); + + while(size % 2 == 0){ + System.out.println("not odd"); + size = sc.nextInt(); + } + + MagicSquare mSquare = new MagicSquare(size); + + int[][] sq = mSquare.mSquare; + for (int i = 0; i < sq.length; i++){ + for(int j = 0; j < sq[i].length; j++){ + System.out.print(sq[i][j] + " "); + } + System.out.println(); + } + } + } diff --git a/Java/MaxDemo.java b/Java/MaxDemo.java new file mode 100644 index 0000000..512ef2f --- /dev/null +++ b/Java/MaxDemo.java @@ -0,0 +1,43 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.lang.Math; +class MaxDemo { + static float max(float a, float b){ + if (a > b) { + return a; + } + return b; + } + static float max(float a, float b, float c){ + float max = a; + if (b > a) { + max = b; + } + + if (c > max) { + max = c; + } + return max; + + } + + public static void main(String[] args) throws java.io.IOException{ + float a, b, c; + System.out.println("input three numbers"); + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + a = Float.parseFloat(input.readLine()); + b = Float.parseFloat(input.readLine()); + c = Float.parseFloat(input.readLine()); + System.out.println("output of greater between first 2 numbers"); + System.out.println(max(a, b)); + System.out.println("output of greater between all numbers"); + System.out.println(max(a, b, c)); + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Method.java b/Java/Method.java new file mode 100644 index 0000000..810dee0 --- /dev/null +++ b/Java/Method.java @@ -0,0 +1,21 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.lang.Math; +class Method { + static void squareIT(double tobesquared){ + System.out.println( Math.pow(tobesquared,2) ); + } + public static void main(String[] args) throws java.io.IOException{ + double squarable; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + squarable = Double.parseDouble(input.readLine()); + squareIT(squarable); + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/MinMaxAvg.java b/Java/MinMaxAvg.java new file mode 100644 index 0000000..0580f21 --- /dev/null +++ b/Java/MinMaxAvg.java @@ -0,0 +1,65 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileNotFoundException; +class MinMaxAvg { + public static void main(String[] args) throws java.io.IOException{ + int min = 2147483647; //Worst fix I have ever decided to do, but the minimum starts out as the highest number java can read in 32 bits. + int max = 0; + float avg = 0; + int length = 0; + String fileloc; + try{ + //get file location with buffered reader, bad on space, good on time + System.out.println("input file location:"); + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + fileloc = input.readLine(); + + + + File f=new File(fileloc); + FileReader file = new FileReader(f); + BufferedReader readfile = new BufferedReader(new FileReader(fileloc)); + + + String line; + int currentline; + while ((line = readfile.readLine()) != null) { + currentline = Integer.parseInt(line); + length++; + // System.out.println("I am currently reading line " + length + " and it has a value of " + currentline); + if (currentline > max){ + max = currentline; + // System.out.println("Max is currently " + min); + } + + if (currentline < min) { + min = currentline; + // System.out.println("Minimum is currently " + min); + } + + avg = avg + currentline; + // System.out.println("Avg is currently " + avg); + // System.out.println("Epoch " + length + " is complete"); + } + System.out.println("Minimum is: " + min); + System.out.println("Maximum is: " + max); + System.out.println("Average is: " + (avg/length)); + + + + }catch(FileNotFoundException e) { + + System.out.println("No Inputfile Provided"); + + + + + + + + } +} +} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/NoDaisys.java b/Java/NoDaisys.java new file mode 100644 index 0000000..be50ffe --- /dev/null +++ b/Java/NoDaisys.java @@ -0,0 +1,13 @@ +class NoDaisys{ +public static void main (String str[]){ +String movies [] = new String [5]; + +movies [0] = "Creatue from the black lagoon"; +movies [2] = "Dont Eat the dasies"; + +for(int i =0; i < movies.length; i++) +{ +System.out.println(movies[i]); +} +} +} diff --git a/Java/NotBetween.java b/Java/NotBetween.java new file mode 100644 index 0000000..578f485 --- /dev/null +++ b/Java/NotBetween.java @@ -0,0 +1,23 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class NotBetween { + public static void main(String[] args) throws java.io.IOException { + int num; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + num = Integer.parseInt(input.readLine()); + + if (num < 45 || num > 78) { + System.out.println("num is not inbetween"); + } else { + System.out.println("num is inbetween"); + } + + + + + + } +} + diff --git a/Java/Ohm.java b/Java/Ohm.java new file mode 100644 index 0000000..bb61ad7 --- /dev/null +++ b/Java/Ohm.java @@ -0,0 +1,22 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class Ohm { + public static void main(String[] args) throws java.io.IOException { + float V, R; + System.out.println("Put in Voltage and then Resistance"); + BufferedReader voltage = new BufferedReader(new InputStreamReader(System.in)); + V = Float.parseFloat(voltage.readLine()); + BufferedReader resist = new BufferedReader(new InputStreamReader(System.in)); + R = Float.parseFloat(resist.readLine()); + System.out.println("Ohms: " + (V + 0.0)/R); + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/OrderChecker.java b/Java/OrderChecker.java new file mode 100644 index 0000000..7c6163d --- /dev/null +++ b/Java/OrderChecker.java @@ -0,0 +1,31 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class OrderChecker { + public static void main(String[] args) throws java.io.IOException { + final int boltPrice = 5,nutPrice = 3, washerPrice = 1; + int bolts,nuts,washers,total; + System.out.println("Bolts?"); + BufferedReader boltsin = new BufferedReader(new InputStreamReader(System.in)); + bolts = Integer.parseInt(boltsin.readLine()); + System.out.println("Nuts?"); + BufferedReader nutsin = new BufferedReader(new InputStreamReader(System.in)); + nuts = Integer.parseInt(nutsin.readLine()); + System.out.println("Washers?"); + BufferedReader washersin = new BufferedReader(new InputStreamReader(System.in)); + washers = Integer.parseInt(washersin.readLine()); + total = (bolts*boltPrice)+(nuts*nutPrice)+(washers*washerPrice); +System.out.println("your total is: " + total); + + + + + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/PeopleData.txt b/Java/PeopleData.txt new file mode 100644 index 0000000..45aaa06 --- /dev/null +++ b/Java/PeopleData.txt @@ -0,0 +1,5 @@ +test1 +test2 +test3 +test4 +test5 diff --git a/Java/PieEatingContest.java b/Java/PieEatingContest.java new file mode 100644 index 0000000..7af0449 --- /dev/null +++ b/Java/PieEatingContest.java @@ -0,0 +1,23 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class PieEatingContest { + public static void main(String[] args) throws java.io.IOException { + int weight; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + weight = Integer.parseInt(input.readLine()); + if (weight >= 220 && weight <= 280){ + System.out.println("You can compete"); + } else { + System.out.println("You cannot compete"); + } + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/PowerCosting.java b/Java/PowerCosting.java new file mode 100644 index 0000000..e4eed8a --- /dev/null +++ b/Java/PowerCosting.java @@ -0,0 +1,22 @@ +//I have no clue what the formula for this is, but I think I got it right +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class Ohm { + public static void main(String[] args) throws java.io.IOException { + float KWPH, USE; + System.out.println("Put in Cost per kilowatt hour and the kilowat hours"); + BufferedReader voltage = new BufferedReader(new InputStreamReader(System.in)); + KWPH = Float.parseFloat(voltage.readLine()); + BufferedReader resist = new BufferedReader(new InputStreamReader(System.in)); + USE = Float.parseFloat(resist.readLine()); + System.out.println("Annual Cost: " + KWPH*USE); + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/PowerOfANumber.java b/Java/PowerOfANumber.java new file mode 100644 index 0000000..18858d1 --- /dev/null +++ b/Java/PowerOfANumber.java @@ -0,0 +1,24 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class PowerofaNumber { + public static void main(String[] args) throws java.io.IOException { + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader input2 = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("Enter X"); + int x = Integer.parseInt(input.readLine()); + System.out.println("Enter N"); + float n = Float.parseFloat(input2.readLine()); + if (n > 0){ + System.out.println(n + " raised to the power of " + x + " is: " + Math.pow(n,x)); + } + else{ + System.out.println("n cannot be negative"); + } + + + } + + +} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Snack.java b/Java/Snack.java new file mode 100644 index 0000000..e1511c7 --- /dev/null +++ b/Java/Snack.java @@ -0,0 +1,13 @@ +//BufferedReader is faster than scanner as it doesn't parse the text. Iterated over 1000 times, it saves 30 seconds in total. +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class snacks { + public static void main(String[] args) throws java.io.IOException { + BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); + String snack; + System.out.println("Favorite food?"); + snack = read.readLine(); + System.out.println(snack + " sounds delicious!"); + } +} diff --git a/Java/Square/Square.java b/Java/Square/Square.java new file mode 100644 index 0000000..4ea72e9 --- /dev/null +++ b/Java/Square/Square.java @@ -0,0 +1,43 @@ +public class Square {
+
+ // data member
+ private double length;
+
+
+
+ // Constructors
+ //accepts r as length
+ public Square (double l) {
+ length = l;
+ }
+//no r? assume length is 1
+ public Square() {
+ length = 1;
+ }
+//copy's length from another circle
+ public Square (Square s) {
+ length = s.length;
+ }
+
+ // setter & getter
+ // sets length
+ public void setLength(double l) {
+ length = l;
+ }
+//return length
+ public double getLength() {
+ return length;
+ }
+
+ // other methods
+ public double area() {
+ return Math.pow(length,2);
+ }
+
+ public double perimeter() {
+ return length*4;
+ }
+
+}
+
+
diff --git a/Java/Square/SquareDemo.java b/Java/Square/SquareDemo.java new file mode 100644 index 0000000..ab6f0dc --- /dev/null +++ b/Java/Square/SquareDemo.java @@ -0,0 +1,28 @@ +public class SquareDemo {
+
+ public static void main (String args []) {
+
+ double leng = 2.5;
+ double value;
+
+ // create a circle object called mySquare with a lengius of 2.5
+ Square mySquare = new Square(leng);
+
+ // create a circle object called myOtherSquare with a lengius of 10.0
+ Square myOtherSquare = new Square(10);
+
+ // create a circle object called unitSquare with a default lengius of 1.0;
+ Square unitSquare = new Square();
+
+ // create a circle object called myLastSquare that is a copy of the Square mySquare
+ Square myLastSquare = new Square(mySquare);
+
+ // get the area of mySquare
+ value = mySquare.area();
+
+ // print the area of mySquare
+ System.out.println("The area is " + value);
+
+ }
+}
+
diff --git a/Java/StartingAndEnding.java b/Java/StartingAndEnding.java new file mode 100644 index 0000000..d1e315d --- /dev/null +++ b/Java/StartingAndEnding.java @@ -0,0 +1,25 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class StartingAndEnding { + public static void main(String[] args) throws java.io.IOException { + int a, b; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader input2 = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("Starting"); + a = Integer.parseInt(input.readLine()); + System.out.println("Ending"); + b = Integer.parseInt(input2.readLine()); + System.out.println("\n"); + for(a=a;a<=b; a++){ //for some ungodly reason a for loop needs a declarative statement at the start. I can't find a good fix for this and this is a resource wasting, malformed practice but it works. + System.out.println(a); + } + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Times2.java b/Java/Times2.java new file mode 100644 index 0000000..ed7731f --- /dev/null +++ b/Java/Times2.java @@ -0,0 +1,27 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.lang.Math; +class Times2 { + static void doubleArray(double[] input){ + for (int i = 0; i < input.length; i++){ + input[i] = input[i] * 2; + } + } + public static void main(String[] args) throws java.io.IOException{ + double[] convertable = {1,2.36,4,6,8,20}; + for(int i = 0; i < convertable.length;i++){ + System.out.println(convertable[i]); + } + doubleArray(convertable); + System.out.println("converted"); + for(int i = 0; i < convertable.length;i++){ + System.out.println(convertable[i]); + } + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/TirePressure.java b/Java/TirePressure.java new file mode 100644 index 0000000..5e5826b --- /dev/null +++ b/Java/TirePressure.java @@ -0,0 +1,33 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class TirePressure { + public static void main(String[] args) throws java.io.IOException { + int Tire1,Tire2,Tire3,Tire4; + + + System.out.println("Right Front"); + BufferedReader Tire1I = new BufferedReader(new InputStreamReader(System.in)); + Tire1 = Integer.parseInt(Tire1I.readLine()); + System.out.println("Left Front"); + BufferedReader Tire2I = new BufferedReader(new InputStreamReader(System.in)); + Tire2 = Integer.parseInt(Tire2I.readLine()); + System.out.println("Right Rear"); + BufferedReader Tire3I = new BufferedReader(new InputStreamReader(System.in)); + Tire3 = Integer.parseInt(Tire3I.readLine()); + System.out.println("Left Rear"); + BufferedReader Tire4I = new BufferedReader(new InputStreamReader(System.in)); + Tire4 = Integer.parseInt(Tire4I.readLine()); + + if (Tire1 == Tire2 && Tire3 == Tire4){ + System.out.println("Tire Pressure is OK"); + + } else { + System.out.println("Tire pressure is wrong"); + + } + }} + + + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Vote.java b/Java/Vote.java new file mode 100644 index 0000000..e0375e7 --- /dev/null +++ b/Java/Vote.java @@ -0,0 +1,24 @@ +import java.io.BufferedReader; + +import java.io.InputStreamReader; + +class Vote { + public static void main(String[] args) throws java.io.IOException { + int age; + System.out.println("input amount:"); + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + age = Integer.parseInt(input.readLine()); + if (age > 18){ + System.out.println("you can vote"); + } else { + System.out.println("you cannot vote"); + } + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/Vowels.java b/Java/Vowels.java new file mode 100644 index 0000000..82da9b1 --- /dev/null +++ b/Java/Vowels.java @@ -0,0 +1,83 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileNotFoundException; +class Vowels { + public static void main(String[] args) throws java.io.IOException{ + int VA = 0; + int VE = 0; + int VI = 0; + int VO = 0; + int VU = 0; + int NV = 0; + + try{ + File f=new File("input.txt"); + FileReader file = new FileReader(f); + BufferedReader input = new BufferedReader(file); //I miss unix pipes, they make life so much nicer + int c = 0; + while((c = input.read()) != -1){ + char character = (char) c; + + + + switch(character){ + + case 'A': + VA++; + break; + case 'a': + VA++; + break; + case 'E': + VE++; + break; + case 'e': + VE++; + break; + case 'I': + VI++; + break; + case 'i': + VI++; + break; + case 'O': + VO++; + break; + case 'o': + VO++; + break; + case 'U': + VU++; + break; + case 'u': + VU++; + break; + default: + NV++; + break; + + + + }} +System.out.println("A " + VA); +System.out.println("E " + VE); +System.out.println("I " + VI); +System.out.println("O " + VO); +System.out.println("U " + VU); +System.out.println("No Vowels " + NV); + }catch(FileNotFoundException e) { + + System.out.println("No Inputfile Provided"); + + + + + + + + } +} +} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/WedgeOfStars.java b/Java/WedgeOfStars.java new file mode 100644 index 0000000..e9c42e2 --- /dev/null +++ b/Java/WedgeOfStars.java @@ -0,0 +1,21 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class WedgeofStars { + public static void main(String[] args) throws java.io.IOException { + int iterations; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("Number of stars:"); + iterations = Integer.parseInt(input.readLine()); + + + for(iterations=iterations;iterations>0;iterations--){ + System.out.print("\n"); + for(int i=iterations;i>0;i--){ + System.out.print("*"); + } + } + + +}} +//By msglm; Licensed under the AGPL v3 diff --git a/Java/WordLength.java b/Java/WordLength.java new file mode 100644 index 0000000..86d1e09 --- /dev/null +++ b/Java/WordLength.java @@ -0,0 +1,22 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +class WordLength { + public static void main(String[] args) throws java.io.IOException { + int charnum; + BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); + System.out.println("Word"); + String word = input.readLine(); + System.out.println("\n"); + for(charnum=word.length();charnum>0; charnum--){ + System.out.println(word); + } + + + + + + } +} + +//By msglm; Licensed under the AGPL v3 diff --git a/Java/coin.java b/Java/coin.java new file mode 100644 index 0000000..4765812 --- /dev/null +++ b/Java/coin.java @@ -0,0 +1,28 @@ +import java.util.Random; + +public class coin{ + + private boolean status; + +public coin(){ + Random random = new Random(); +if (random.nextInt() % 2 == 1){ + status = true; +} else { + status = false; +} + +} + +public String toString(){ + if(status){ +return "coin is heads"; + } else { +return "coin is tails"; + } +} + +} + + + diff --git a/Java/house.java b/Java/house.java new file mode 100644 index 0000000..582288c --- /dev/null +++ b/Java/house.java @@ -0,0 +1,16 @@ +class house { + public static void main(String[] args) { + System.out.println("\t / \\"); + System.out.println("\t / \\"); + System.out.println("\t/ \\"); + System.out.println("\t| |"); + System.out.println("\t| || |"); + System.out.println("\t| || |"); + System.out.println("This was awful"); + + + + } +} + +//By msglm; Licensed under the AGPL v3 @@ -0,0 +1,3 @@ +Each file should have its own copyright license and that copyright license will be the one that should be followed. +Some work in here is not mine, and that work I do not claim the legal ability to license or sublicence. +Anything that is both mine and is without a license will be governed under the AGPLv3 file in this repository. diff --git a/LaTeX/AnalyiticReport/AnalyticReport.tex b/LaTeX/AnalyiticReport/AnalyticReport.tex new file mode 100644 index 0000000..b7d147b --- /dev/null +++ b/LaTeX/AnalyiticReport/AnalyticReport.tex @@ -0,0 +1,187 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + +\usepackage{array} + +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +\usepackage{multirow} + +% +%Doublespacing +% +\usepackage{setspace} +\singlespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} +\usepackage{blindtext} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +\usepackage{tabularx} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + +% +%Fancy-header package to modify header/page numbering (insert last name) +% +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{} +\chead{} +%\rhead{Anonymous \thepage} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\newcommand\tab[1][0.45cm]{\hspace*{#1}} +%To make sure we actually have header 0.5in away from top edge +%12pt is one-sixth of an inch. Subtract this from 0.5in to get headsep value +\setlength\headsep{0.333in} + +%Bibliography File +\addbibresource{Biblio.bib} + + + +\begin{document} +\begin{flushleft} +%no indent +\setlength{\parindent}{0in} + +%%%%Begin body of paper here + + \textbf{To:} Anonymous Anonymous \hfill \today + \linebreak + \textbf{From:} msglm + \linebreak + \textbf{Subject: Incarceration Rates of the Southern United States Region} + \linebreak + \linebreak +\textbf{Purpose} +\linebreak + Todd D. Minton, Lauren G. Beatty, and Zhen Zeng, Ph.D., BJS Statistics wrote on behalf of the United States Department of Justice developed an estimate of those in adult correctional systems at the year-end of 2019. Over all, 6,344,000 were under some form of adult correctional system. Of note, 65,200 fewer people were under supervision in the studied year. The statistics were acquired by a mix of voluntary responding, censuses, query's into Departments of Correction and the Federal Bureau of prisons, along with surveys of jails in Indian territory. +\linebreak +\linebreak +The total incarcerated population lowered 1.7\%. Since 2009, the entire correctional population as a whole has dropped 12.4\%. 2019 has had the lowest incarcerated population since 2013 (2,086,600). The incarcerated population decreased due to a decrease in the prison population. The parole population was the only correctional population that had an increase. Said parole increase was by 6.6\%. +\linebreak + + +\textbf{Methodology} +\linebreak +Annually, a voluntary parole survey, annual probation survey, jail population survey, and Indian jail population survey is given to record the amount of people imprisoned in the nation. Every six years, a Census of Jails is done by enumeration of all those currently held in prison. On top of this, the National Prisoner Statistics program queries the Federal Bureau of Prisons and each state's department of corrections. Those with dual correctional status are factored in under both statuses, thus making the statistics slightly off without their removal. Non-responses had varied methods of adjustment all enumerated on other documents, one of which was a dead link. Comparisons between jurisdictions over time may not be valid due to changes in reporting, reconciliation, reclassification of offenders, and the inclusion or non inclusion of certain sub populations. + + \begin{table}[ht] + \caption{Total correctional population} + \begin{center} + \resizebox{0.8\pdfpagewidth}{!}{ + \begin{tabular}{ | m{5em} | m{7em} | m{7em} | m{7em} | m{4em} | m{7em} | m{7em} | m{4em} |m{7em}| m{7em} | } + \hline + \multicolumn{1}{c}{Location} & \multicolumn{3}{c}{Total Correctional Population} & \multicolumn{3}{c}{Community Supervision Population} & \multicolumn{3}{c}{Incarcerated Population}\\ + \hline + State & Total Correctional Population (12/31/2019) & Number Supervised per 100000 U.S. Adult Residents & Number Supervised per 100000 U.S. residents of all ages & Number on probation or parole & Number on probation or parole per 100,000 U.S. adult residents & Number on probation or parole per 100,000 U.S. residents of all ages & Number in prison or local jail & Number in prison or local jail per 100,000 U.S adult residents & Number in prison or local jail per 100,000 U.S. residents of all ages\\ + \hline + Arkansas & 88,900 & 3,820 & 2,940 & 63,400 & 2,720 & 2,090 & 25,500 & 1,100 & 840\\ + \hline + Louisiana & 107,600 & 3,010 & 2,310 & 60,000 & 1,680 & 1,290 & 47,600 & 1,330 & 1,020\\ + \hline + Texas & 689,300 & 3,170 & 2,360 & 474,100 & 2,180 & 1,620 & 215,100 & 990 & 740\\ + \hline + Tennessee & 124,100 & 2,320 & 1,810 & 73,500 & 1,370 & 1,070 & 50,500 & 940 & 740\\ + \hline + Mississippi & 67,200 & 2,950 & 2,260 & 38,900 & 1,710 & 1,310 & 28,300 & 1,240 & 950\\ + \hline + Alabama & 106,400 & 2,780 & 2,160 & 64,300 & 1,680 & 1,310 & 42,200 & 1,100 & 860\\ + \hline + Georgia & 522,300 & 6,390 & 4,890 & 427,600 & 5,230 & 4,000 & 94,800 & 1,160 & 890\\ + \hline + \end{tabular} + } + \end{center} + \label{tab:correctional} + \end{table} + + \textbf{Results} + + Given the statistics in Table~\ref{tab:correctional}, it can be stated that Texas has a high number of total correctional population. + \linebreak + \linebreak + Around 68.8 percent of Texas' Correctional population is under community supervision. Around 31.2 percent of Texas' correctional population is incarcerated. + \linebreak + \linebreak + Georgia holds the second highest total of those in-correctional populations and holds both the highest ratio between free and in-correctional adults and those of all ages. + \linebreak + \linebreak + Despite Arkansas having a relatively low Correctional Population (placing six out of seven of total correctional population), Arkansas has the second highest ratio for residents in-correctional populations in both categories of adult and all ages. + \linebreak + \linebreak + Georgia's difference in free-to-correctional individuals between adults and "all ages" is significantly higher than any other state. The adult population ratio is 1500 individuals higher than the "all ages" population ratio. + \linebreak + \linebreak + Louisiana has the highest free-to-incarcerated ratio for both all ages and just adults with there being 1,020 individuals in local jails per 100,000 free residents of all ages. + \linebreak + \linebreak + Around 57.8 percent of Mississippi's correctional population is under community supervision. Around 42.1 percent of Mississippi's correctional population is incarcerated. + \linebreak + \linebreak + Despite Georgia having one of the highest total correctional populations, most of those in said correctional populations are under community supervision. Around 81.8 percent of those in correctional population are on some form of probation or parole. + \linebreak + \linebreak + Arkansas, in spite of being a lower population state, has the second highest number of correctional individuals, that being 3,820, when compared to a population of 100000 adults. However, it should be noted that 71.2 percent of the correctional population when compared to 100,000 Adult Residents are under some form of probation or parole. + \linebreak + \linebreak + \linebreak + \textbf{Conclusion} + \linebreak + A noteworthy assessment can be made with the generally lower population states having quite high ratios of free to correctional individuals given their population. Mississippi is only 100 individuals below Texas in its "all ages" free-to-correctional ratio. Alabama is only 200 individuals below Texas in its "all ages" free-to-correctional ratio. Louisiana is only 50 individuals below Texas in its "all ages" free-to-correctional ratio. Most worryingly, Arkansas is 580 individuals above Texas in its "all ages" free-to-correctional ratio. Another note can be made about the percentages of people incarcerated in Mississippi, with community watch being only 16.7 percent more common in the correctional population than incarceration. +%%%%Works cited +\printbibliography + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/AnalyiticReport/cpus19st.pdf b/LaTeX/AnalyiticReport/cpus19st.pdf Binary files differnew file mode 100644 index 0000000..33548a0 --- /dev/null +++ b/LaTeX/AnalyiticReport/cpus19st.pdf diff --git a/LaTeX/Biblio.bib b/LaTeX/Biblio.bib new file mode 100644 index 0000000..c95f460 --- /dev/null +++ b/LaTeX/Biblio.bib @@ -0,0 +1,420 @@ +@article {Alzheimer-Research, + url = {https://www.nia.nih.gov/health/alzheimers-disease-research-centers}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + title = {Preventing Alzheimer's Disease: What Do We Know?}, + year = {2021} +} + +@article{Alzheimer-Prevention, + url = {https://www.nia.nih.gov/health/preventing-alzheimers-disease-what-do-we-know}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + title = {Preventing Alzheimer's Disease: What Do We Know?}, + year = {2018} +} + + +@article{Alzheimer-Treatment, + url = {https://www.nia.nih.gov/health/how-alzheimers-disease-treated}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + title = {How is Alzheimer's Disease Treated?}, + year = {2021} +} + +@article{Alzheimer-Symptoms, + url = {https://www.nia.nih.gov/health/what-are-signs-alzheimers-disease}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + title = {What are the signs of Alzheimer's Disease}, + year = {2017} +} + +@article{Alzheimer-Neuron-Death, + title = {What Happens to the Brain in Alzhimer's Disease}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + year = {2017}, + url = {https://www.nia.nih.gov/health/what-happens-brain-alzheimers-disease} +} + +@article{Alzheimer-cause, + title = {What Causes Alzheimer's Disease?}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + year = {2019}, + url = {https://www.nia.nih.gov/health/what-causes-alzheimers-disease} +} + +@article{what-is-free-software, + title = {Richard Stallman}, + organization = {The Free Software Foundation}, + url = {\url{https://www.gnu.org/philosophy/free-sw.html}} +} + +@misc{the-dark-enlightenment, + title = {The Dark Enlightenment}, + author = {Land, Nick}, + url = {\url{https://www.thedarkenlightenment.com/the-dark-enlightenment-by-nick-land/}} +} + +@misc{patchwork-positive-vision-part-1, + title = {A Positive Vision}, + author = {Yarvin, Curtis}, + year = {2008}, + url = {\url{https://www.unqualified-reservations.org/2008/11/patchwork-positive-vision-part-1/}}, + organization = {Unqualified Reservations} +} + +@InBook{The-Truth-About-Left-and-Right, + booktitle = {An Open Letter to Open-Minded Progressives}, + title = {The Truth About Left and Right}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 11, + url = {\url{https://www.unqualified-reservations.org/2008/06/olxi-truth-about-left-and-right/}}, + organization = {Unqualified Reservations}, + year = {2008} +} + +@inbook{The-Ugly-Truth-About-Government, + booktitle = {An Open Letter to Open-Minded Progressives}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 7, + title = {The Ugly Truth About Government}, + organization = {Unqualified Reservations}, + url = {\url{https://www.unqualified-reservations.org/2008/05/ol7-ugly-truth-about-government/}}, + year = {2008} +} + +@inbook{gentle-introduction-to-unqualified-CH1, + booktitle = {A Gentle Introduction to Unqualified Reservations}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 1, + title = {The Red Pill}, + organization = {Unqualified Reservations}, + url = {\url{https://www.unqualified-reservations.org/2009/01/gentle-introduction-to-unqualified/}}, + year = {2009} +} + +@misc{nick-land-trichotomy, + author = {Land, Nick}, + title = {Trichotomy}, + year = {2013}, + url = {https://web.archive.org/web/20190220091118/http://www.xenosystems.net/trichotomy/}, + organization = {Outside in} +} + +@misc{undefined-spandrell, + author = {Spandrell}, + title = {Undefined}, + year = {2012}, + url = {https://spandrell.com/2013/04/10/conflict/}, + organization = {Bloody Shovel 3} +} + +@misc{peter-lawler-postmodern-conservatism, + url = {\url{https://isi.org/intercollegiate-review/peter-lawler-postmodern-conservatism/}}, + author = {McManus, Matt}, + year = {2019}, + title = {The Postmodern Conservatism of Peter Lawler} +} + +@misc{behind-postmodern-conservatism, + url = {\url{https://isi.org/intercollegiate-review/rise-postmodern-conservatism/}}, + author = {Hochman, Nate}, + year = {2020}, + title = {Behind the Rise of Postmodern Conservatism} +} + +@InCollection{sep-logical-empiricism, + author = {Creath, Richard}, + title = {{Logical Empiricism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2021/entries/logical-empiricism/}}, + year = {2021}, + edition = {{F}all 2021}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{sep-schmitt, + author = {Vinx, Lars}, + title = {{Carl Schmitt}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2019/entries/schmitt/}}, + year = {2019}, + edition = {{F}all 2019}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@inBook{Genesis-128, + author = {Moses}, + title = {Genesis}, + chapter = 1, + version = {King James Version} +} + +@online{fertility-rate-by-religion, + title = {Total Fertility Rate by Religion, 2010-2015}, + organization = {Pew Research Center}, + url = {\url{https://www.pewforum.org/2015/04/02/religious-projections-2010-2050/pf_15-04-02_projectionsoverview_totalfertility_640px/}} +} + +@online{patent-expansion, + title = {U.S. Patent Activity Calendar Years 1790 to the Present}, + organization = {United States Patent and Trademark Office}, + url = {https://www.uspto.gov/web/offices/ac/ido/oeip/taf/h_counts.htm} +} + +@article{decline-of-whites-census, + url = {https://www.census.gov/content/dam/Census/library/publications/2020/demo/p25-1144.pdf}, + title = {Demographic Turning Points for the United States: Population Projections for 2020 to 2060}, + author = {Vespa, Johnathan and Medina, Lauren and Armstrong, David}, + organization = {U.S. Census Bureau}, + year = {2020} +} + +@suppbook{marxoids-and-luddites-have-one-struggle, + author = {Marx, Karl}, + title = {The Poverty of Philosophy}, + year = {1849}, + url = {\url{https://www.marxists.org/archive/marx/works/subject/hist-mat/pov-phil/ch02.htm}} +} + +@InCollection{sep-conservatism, + author = {Hamilton, Andy}, + title = {{Conservatism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/spr2020/entries/conservatism/}}, + year = {2020}, + edition = {{S}pring 2020}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@article{ThisLivingHandKeats, + author = {John Keats}, + title = {This Living Hand}, + year = {1819} +} + +@InCollection{sep-nietzsche-moral-political, + author = {Leiter, Brian}, + title = {{Nietzsche’s Moral and Political Philosophy}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/sum2021/entries/nietzsche-moral-political/}}, + year = {2021}, + edition = {Summer 2021}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{sep-nietzsche, + author = {Anderson, R. Lanier}, + title = {{Friedrich Nietzsche}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/sum2017/entries/nietzsche/}}, + year = {2017}, + edition = {Summer 2017}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{stanford-fideism, + author = {Amesbury, Richard}, + title = {{Fideism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2017/entries/fideism/}}, + year = {2017}, + edition = {Fall 2017}, + publisher = {Metaphysics Research Lab, Stanford University} +} + + +@incollection{ Paul-Edwards-Critique-of-Cosmological, + author = "Paul Edwards", + editor = "Hector Hawton", + title = "A Critique of the Cosmological Argument", + year = "1959", + language = "English", + booktitle = "Philohopy : the quest for truth / [edited by] Louis P. Pojman, Lewis Vaughn.", + edition = "10" +} + + +@incollection { Five-Reasons, + author = "Thomas Aquinas", + translator= "Alyson Wieczorek", + title = "Third Article. Whether God Exists?", + shorttitle= "Whether God Exists?", + booktitle = "Summa Theologica", + publisher = "London : Burns, Oates \& Washburne, ltd.", + year = "1920", + language = "English", + volume = "2", + chapter = "2" +} + +@incollection{ The-Knight, + author="Geoffrey Chaucer", + title="The Knight", + booktitle="The Canterbury Tales", + year="1387" +} + +@article{what-alzheimers-disease, + author={{National Institute on Aging}}, + organization={National Institute on Aging}, + title="What Is Alzheimer's Disease?", + year="2017", + url="https://www.nia.nih.gov/health/what-alzheimers-disease" + +} + +@article{Dementia-Factsheet, + author={{The World Health Organization}}, + title="Dementia Fact sheet", + year="2020", + url="https://www.who.int/news-room/fact-sheets/detail/dementia" +} + +@article{Seth-Rogen-Alzhiemers, +author="Seth Rogen", +title="Seth Rogen's Alzheimer's Speech", +year="2014", +} + +@article{Seth-Rogen-Loves-Pot, +author="Eric Ditzian", +title="Seth Rogen: 'I Smoke A Lot Of Weed When I Write", +year="2011", +url="http://www.mtv.com/news/1671806/seth-rogen-50-50-weed/" +} + +@article{ Dementia-Research-and-Clinical-Trials, + author={{The National Institute on Aging}}, + title="Dementia Research and Clinical Trials", + year="2020", + url="https://www.nia.nih.gov/health/alzheimers/dementia-research-and-clinical-trials" +} + + +@incollection{ pardoners, + author = "Geoffrey Chaucer", + title = "The Pardoner’s Tale", + booktitle="The Canterbury Tales", + year = 1387 +} + +@article { IssuesAround, + title = "Do you have an issue around issues around?", + author = "Gill Francis", + year = 2012, + url = "http://www.macmillandictionaryblog.com/do-you-have-an-issue-around-issues-around" + +} + +@misc { GallupCongressTrust, + title = "Congress and the Public", + author="Gallup, Inc.", + url = "https://news.gallup.com/poll/1600/congress-public.aspx#15200531", + year = 2020, + month=8 +} + +@misc { PRRIrepresentation, + title="The Divide Over America’s Future: 1950 or 2050? Findings from the 2016 American Values Survey", + author="Betsy Cooper and Daniel Cox and Rachel Lienesch and Robert P. Jones Ph.D.", + year=2016, + url="https://www.prri.org/research/poll-1950s-2050-divided-nations-direction-post-election/", + month=10 +} + +@article {TrumpTwitter, + title="Twitter bans President Trump permanently", + author="Brian Fung", + year=2021, + url="https://edition.cnn.com/2021/01/08/tech/trump-twitter-ban/index.html", + month=1 +} + +@article {TheDonaldBan, + title="Twitch, Reddit crack down on Trump-linked content as industry faces reckoning", + author="Cristiano Lima", + year=2020, + url="https://www.politico.com/news/2020/06/29/reddit-bans-pro-trump-forum-in-crackdown-on-hate-speech-344698", + month=7 +} + +@article {ChapoTrapHouseBan, + url="https://www.buzzfeednews.com/article/juliareinstein/reddit-bans-subreddits-thedonald-chapotraphouse", + year=2020, + author="Julia Reinstein", + title="Reddit Banned A Ton Of Subreddits Including r/The\_Donald And r/ChapoTrapHouse", + month=6 +} +@article {ProJaredWhatIsWrongWithCancelCulture, + url="http://www.reflector-online.com/opinion/article\_20bf06a2-dd72-11e9-81b1-bf8d97d041fc.html", + year=2019, + author="Chris Lowe", + title="ProJared's situation embodies what is wrong with cancel culture", + month=9 +} + +@article {ProJaredSexuallySolicitingFans, + url="https://kotaku.com/youtuber-projared-accused-of-sexually-soliciting-fans-1834650673", + year=2019, + author="Cecilia D'Anastasio", + title="YouTuber ProJared Accused Of Sexually Soliciting Fans [UPDATE]", + month=5 +} + +@misc{ ProJaredYouveBeenLiedTo, + url="https://www.youtube.com/watch?v=BBywRBbDUjA", + year=2019, + month=8, + author="ProJared", + title="YOU'VE BEEN LIED TO" + +} + +@misc { ProJaredSocialBlade, + url="https://socialblade.com/youtube/user/dmjared/monthly", + year=2019, + author="SocialBlade", + title="Gained Subscribers \& Video Views Graphs for ProJared" +} + +@article { PBGTweetRemoval, + url="https://www.earnthenecklace.com/what-happened-to-projared-allegations-of-cheating-and-sexual-misconduct-hit-the-youtuber/", + year="2019", + author="Caroline John", + title="What Happened to ProJared? Allegations of Cheating and Sexual Misconduct Hit the YouTuber", + month=5 +} + +@misc { ProJaredNormalBootsRemoval, +url="https://twitter.com/NormalBoots/status/1126616736675983360/", +year=2019, +author="NormalBoots", +title="Here is our official statement.", +month=5 +} + +@incollection{ Federalist70, + author = "Pubilus", + title = "The Executive Department Further Considered", + booktitle="The Federalist Papers", + year = 1788, + month = 3, + number=70, + publisher="The New York Packet" +} + + diff --git a/LaTeX/Classification/Biblio.bib b/LaTeX/Classification/Biblio.bib new file mode 100644 index 0000000..bf1ba4d --- /dev/null +++ b/LaTeX/Classification/Biblio.bib @@ -0,0 +1,370 @@ +@article{what-is-free-software, + title = {Richard Stallman}, + organization = {The Free Software Foundation}, + url = {\url{https://www.gnu.org/philosophy/free-sw.html}} +} + +@misc{the-dark-enlightenment, + title = {The Dark Enlightenment}, + author = {Land, Nick}, + url = {\url{https://www.thedarkenlightenment.com/the-dark-enlightenment-by-nick-land/}} +} + +@misc{patchwork-positive-vision-part-1, + title = {A Positive Vision}, + author = {Yarvin, Curtis}, + year = {2008}, + url = {\url{https://www.unqualified-reservations.org/2008/11/patchwork-positive-vision-part-1/}}, + organization = {Unqualified Reservations} +} + +@InBook{The-Truth-About-Left-and-Right, + booktitle = {An Open Letter to Open-Minded Progressives}, + title = {The Truth About Left and Right}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 11, + url = {\url{https://www.unqualified-reservations.org/2008/06/olxi-truth-about-left-and-right/}}, + organization = {Unqualified Reservations}, + year = {2008} +} + +@inbook{The-Ugly-Truth-About-Government, + booktitle = {An Open Letter to Open-Minded Progressives}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 7, + title = {The Ugly Truth About Government}, + organization = {Unqualified Reservations}, + url = {\url{https://www.unqualified-reservations.org/2008/05/ol7-ugly-truth-about-government/}}, + year = {2008} +} + +@inbook{gentle-introduction-to-unqualified-CH1, + booktitle = {A Gentle Introduction to Unqualified Reservations}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 1, + title = {The Red Pill}, + organization = {Unqualified Reservations}, + url = {\url{https://www.unqualified-reservations.org/2009/01/gentle-introduction-to-unqualified/}}, + year = {2009} +} + +@misc{nick-land-trichotomy, + author = {Land, Nick}, + title = {Trichotomy}, + year = {2013}, + url = {https://web.archive.org/web/20190220091118/http://www.xenosystems.net/trichotomy/}, + organization = {Outside in} +} + +@misc{undefined-spandrell, + author = {Spandrell}, + title = {Undefined}, + year = {2012}, + url = {https://spandrell.com/2013/04/10/conflict/}, + organization = {Bloody Shovel 3} +} + +@misc{peter-lawler-postmodern-conservatism, + url = {\url{https://isi.org/intercollegiate-review/peter-lawler-postmodern-conservatism/}}, + author = {McManus, Matt}, + year = {2019}, + title = {The Postmodern Conservatism of Peter Lawler} +} + +@misc{behind-postmodern-conservatism, + url = {\url{https://isi.org/intercollegiate-review/rise-postmodern-conservatism/}}, + author = {Hochman, Nate}, + year = {2020}, + title = {Behind the Rise of Postmodern Conservatism} +} + +@InCollection{sep-logical-empiricism, + author = {Creath, Richard}, + title = {{Logical Empiricism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2021/entries/logical-empiricism/}}, + year = {2021}, + edition = {{F}all 2021}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{sep-schmitt, + author = {Vinx, Lars}, + title = {{Carl Schmitt}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2019/entries/schmitt/}}, + year = {2019}, + edition = {{F}all 2019}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@inBook{Genesis-128, + author = {Moses}, + title = {Genesis}, + chapter = 1, + version = {King James Version} +} + +@online{fertility-rate-by-religion, + title = {Total Fertility Rate by Religion, 2010-2015}, + organization = {Pew Research Center}, + url = {\url{https://www.pewforum.org/2015/04/02/religious-projections-2010-2050/pf_15-04-02_projectionsoverview_totalfertility_640px/}} +} + +@online{patent-expansion, + title = {U.S. Patent Activity Calendar Years 1790 to the Present}, + organization = {United States Patent and Trademark Office}, + url = {https://www.uspto.gov/web/offices/ac/ido/oeip/taf/h_counts.htm} +} + +@article{decline-of-whites-census, + url = {https://www.census.gov/content/dam/Census/library/publications/2020/demo/p25-1144.pdf}, + title = {Demographic Turning Points for the United States: Population Projections for 2020 to 2060}, + author = {Vespa, Johnathan and Medina, Lauren and Armstrong, David}, + organization = {U.S. Census Bureau}, + year = {2020} +} + +@suppbook{marxoids-and-luddites-have-one-struggle, + author = {Marx, Karl}, + title = {The Poverty of Philosophy}, + year = {1849}, + url = {\url{https://www.marxists.org/archive/marx/works/subject/hist-mat/pov-phil/ch02.htm}} +} + +@InCollection{sep-conservatism, + author = {Hamilton, Andy}, + title = {{Conservatism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/spr2020/entries/conservatism/}}, + year = {2020}, + edition = {{S}pring 2020}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@article{ThisLivingHandKeats, + author = {John Keats}, + title = {This Living Hand}, + year = {1819} +} + +@InCollection{sep-nietzsche-moral-political, + author = {Leiter, Brian}, + title = {{Nietzsche’s Moral and Political Philosophy}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/sum2021/entries/nietzsche-moral-political/}}, + year = {2021}, + edition = {Summer 2021}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{sep-nietzsche, + author = {Anderson, R. Lanier}, + title = {{Friedrich Nietzsche}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/sum2017/entries/nietzsche/}}, + year = {2017}, + edition = {Summer 2017}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{stanford-fideism, + author = {Amesbury, Richard}, + title = {{Fideism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2017/entries/fideism/}}, + year = {2017}, + edition = {Fall 2017}, + publisher = {Metaphysics Research Lab, Stanford University} +} + + +@incollection{ Paul-Edwards-Critique-of-Cosmological, + author = "Paul Edwards", + editor = "Hector Hawton", + title = "A Critique of the Cosmological Argument", + year = "1959", + language = "English", + booktitle = "Philohopy : the quest for truth / [edited by] Louis P. Pojman, Lewis Vaughn.", + edition = "10" +} + + +@incollection { Five-Reasons, + author = "Thomas Aquinas", + translator= "Alyson Wieczorek", + title = "Third Article. Whether God Exists?", + shorttitle= "Whether God Exists?", + booktitle = "Summa Theologica", + publisher = "London : Burns, Oates \& Washburne, ltd.", + year = "1920", + language = "English", + volume = "2", + chapter = "2" +} + +@incollection{ The-Knight, + author="Geoffrey Chaucer", + title="The Knight", + booktitle="The Canterbury Tales", + year="1387" +} + +@article{what-alzheimers-disease, + author={{The National Institute on Aging}}, + title="What Is Alzheimer's Disease?", + year="2017", + url="https://www.nia.nih.gov/health/what-alzheimers-disease" + +} + +@article{Dementia-Factsheet, + author={{The World Health Organization}}, + title="Dementia Fact sheet", + year="2020", + url="https://www.who.int/news-room/fact-sheets/detail/dementia" +} + +@article{Seth-Rogen-Alzhiemers, +author="Seth Rogen", +title="Seth Rogen's Alzheimer's Speech", +year="2014", +} + +@article{Seth-Rogen-Loves-Pot, +author="Eric Ditzian", +title="Seth Rogen: 'I Smoke A Lot Of Weed When I Write", +year="2011", +url="http://www.mtv.com/news/1671806/seth-rogen-50-50-weed/" +} + +@article{ Dementia-Research-and-Clinical-Trials, + author={{The National Institute on Aging}}, + title="Dementia Research and Clinical Trials", + year="2020", + url="https://www.nia.nih.gov/health/alzheimers/dementia-research-and-clinical-trials" +} + + +@incollection{ pardoners, + author = "Geoffrey Chaucer", + title = "The Pardoner’s Tale", + booktitle="The Canterbury Tales", + year = 1387 +} + +@article { IssuesAround, + title = "Do you have an issue around issues around?", + author = "Gill Francis", + year = 2012, + url = "http://www.macmillandictionaryblog.com/do-you-have-an-issue-around-issues-around" + +} + +@misc { GallupCongressTrust, + title = "Congress and the Public", + author="Gallup, Inc.", + url = "https://news.gallup.com/poll/1600/congress-public.aspx#15200531", + year = 2020, + month=8 +} + +@misc { PRRIrepresentation, + title="The Divide Over America’s Future: 1950 or 2050? Findings from the 2016 American Values Survey", + author="Betsy Cooper and Daniel Cox and Rachel Lienesch and Robert P. Jones Ph.D.", + year=2016, + url="https://www.prri.org/research/poll-1950s-2050-divided-nations-direction-post-election/", + month=10 +} + +@article {TrumpTwitter, + title="Twitter bans President Trump permanently", + author="Brian Fung", + year=2021, + url="https://edition.cnn.com/2021/01/08/tech/trump-twitter-ban/index.html", + month=1 +} + +@article {TheDonaldBan, + title="Twitch, Reddit crack down on Trump-linked content as industry faces reckoning", + author="Cristiano Lima", + year=2020, + url="https://www.politico.com/news/2020/06/29/reddit-bans-pro-trump-forum-in-crackdown-on-hate-speech-344698", + month=7 +} + +@article {ChapoTrapHouseBan, + url="https://www.buzzfeednews.com/article/juliareinstein/reddit-bans-subreddits-thedonald-chapotraphouse", + year=2020, + author="Julia Reinstein", + title="Reddit Banned A Ton Of Subreddits Including r/The\_Donald And r/ChapoTrapHouse", + month=6 +} +@article {ProJaredWhatIsWrongWithCancelCulture, + url="http://www.reflector-online.com/opinion/article\_20bf06a2-dd72-11e9-81b1-bf8d97d041fc.html", + year=2019, + author="Chris Lowe", + title="ProJared's situation embodies what is wrong with cancel culture", + month=9 +} + +@article {ProJaredSexuallySolicitingFans, + url="https://kotaku.com/youtuber-projared-accused-of-sexually-soliciting-fans-1834650673", + year=2019, + author="Cecilia D'Anastasio", + title="YouTuber ProJared Accused Of Sexually Soliciting Fans [UPDATE]", + month=5 +} + +@misc{ ProJaredYouveBeenLiedTo, + url="https://www.youtube.com/watch?v=BBywRBbDUjA", + year=2019, + month=8, + author="ProJared", + title="YOU'VE BEEN LIED TO" + +} + +@misc { ProJaredSocialBlade, + url="https://socialblade.com/youtube/user/dmjared/monthly", + year=2019, + author="SocialBlade", + title="Gained Subscribers \& Video Views Graphs for ProJared" +} + +@article { PBGTweetRemoval, + url="https://www.earnthenecklace.com/what-happened-to-projared-allegations-of-cheating-and-sexual-misconduct-hit-the-youtuber/", + year="2019", + author="Caroline John", + title="What Happened to ProJared? Allegations of Cheating and Sexual Misconduct Hit the YouTuber", + month=5 +} + +@misc { ProJaredNormalBootsRemoval, +url="https://twitter.com/NormalBoots/status/1126616736675983360/", +year=2019, +author="NormalBoots", +title="Here is our official statement.", +month=5 +} + +@incollection{ Federalist70, + author = "Pubilus", + title = "The Executive Department Further Considered", + booktitle="The Federalist Papers", + year = 1788, + month = 3, + number=70, + publisher="The New York Packet" +} + + diff --git a/LaTeX/Classification/Classification.tex b/LaTeX/Classification/Classification.tex new file mode 100644 index 0000000..d9ad832 --- /dev/null +++ b/LaTeX/Classification/Classification.tex @@ -0,0 +1,129 @@ +\documentclass[12pt]{report} +%bibtex +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft symbol +\usepackage{graphicx} +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + citecolor=blue, + pdfborderstyle={/S/U/W 1} + } + + + +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +%Bibliography File +\addbibresource{Biblio.bib} + +%\usepackage{setspace} +%\onehalfspacing + +\linespread{2.0} + +\newcommand{\license}[1]{\textbf{#1}} + +\begin{document} +\begin{flushleft} + +\begin{center} +\textbf{ +Classifications of free and non-free copyright licenses +} +\end{center} + Copyright licenses are an important part of any work as they are what dictates the recipient of the copyrighted work may do with said work. Copyright licenses may be applied to anything legally copyrightable. What is legally copyrightable, usually, is what is legally classified as an "artistic work" (such as software, movies, poetry, articles, songs, etc). +\newline + As licenses dictate what may or may not be done with a work, there comes a question of if a license gives enough rights to be considered free (as in freedom) or not. Licenses are commonly split into two categories: Free and Non-Free based on their characteristics. Such characteristics can be, but aren't limited to: the ability to distribute, the ability to sell a work, the ability to remix a work, the ability to share remixes, the nature of how source code is distributed (software only). +\newline +\newline + \textbf{\underline{FREE LICENSING}} +\newline + Free licenses are those licenses that allow for the freedom to use, copy, distribute, study, change, and improve whatever work a free license is attached to. Such licensing can apply to software, documents, art, or any other copyrightable material. Free Licenses come with many different characteristics, one of the most notable is "Copyleft". Copyleft is where those rights given by the license also are extended to any copy or derivative of a work with a copyleft license. +\pagebreak +\newline +\newline + \license{GNU GPL (Any Version)} +\newline + The GNU GPL is one of the most popular Copyleft licenses for coded works. This puts a walled garden of "GPL compatible only" (with some exceptions) around the GPL as to prevent those who do not wish to participate in software freedom from being able to use the code. The newer versions of the GNU GPL (including variations) also have clauses that protect from on patent laws, tivoisation, and "Software as a Service" as means of getting around GPL protections. +\newline +\newline + \license{Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0)} +\newline + The CC-BY-SA 4.0 is to artistic works as to what the GNU GPL is to code. It enforces a similar "walled garden" effect as to allow only the same license to work with the works. Of note, the CC-BY-SA 4.0 is compatible with the GNU GPL v3, meaning that works under either the CC-BY-SA 4.0 and GNU GPL v3 may be combined without infringement. Patent rights and Moral rights are not a given under this license. +\pagebreak +\newline + \license{GNU LGPL (Any Version)} +\newline + The GNU LGPL is another popular copyleft software license, however, it is a weak copyleft license. Instead of enforcing that an entire application must have its source code free, The GNU LGPL only requires that the source code of modified copies to be distributed freely. +\newline +\newline + \license{Mozilla Public License 2.0 (MPL 2.0)} +\newline + The MPL 2.0 is akin to the GNU LGPL in its weak copyleft, but instead of enforcing the sharing requirements for the entire application, it is on a file-basis level. For example, if a user modified code in a text documented that had the MPL 2.0 attached to it and then distributed that file to the public, that user must provide the source code to that file. +\newline +\newline + \license{Apache 2.0 License} +\newline + The Apache 2.0 License is a permissive software license that has no copyleft requirements. Anyone code put under the license may be used for any reason, including embedding in non-freely licensed applications. However, the Apache 2.0 license requires that all patents be licensed to users and contributors freely, in cases where a patent violation suit is launched upon any user or contributor about said software, there will be a termination in patent licensing for the suing entity. +\pagebreak +\newline +\newline + \license{Public Domain (CC0)} +\newline + Public Domain and other uninfringable licenses are utterly permissive. Public Domain in specific is a lack of copyright and thus there are no terms to be followed in copyright. As this subject can be legally controversial as different jurisdictions treat the Public Domain differently, there are Public Domain-like licenses out there that fit the role of the Public Domain without any legal headache. Namely, the CC0 is a Public Domain-like license. +\newline +\newline + \textbf{\underline{NON-FREE LICENSING}} +\newline + Non-Free licensing is licensing that in some way restricts the freedom to use, copy, distribute, study, change, and improve whatever work a non-free license is attached to. Such licensing can apply to any copyrightable work. +\newline +\newline + \license{All Rights Reserved} +\newline + This license is the default license and is no longer legally required to be printed on a copyrighted work for it to be enforceable. All Rights Reserved gives the user no freedom at all to do as they wish with the copyrighted work and all usage is at the sole discretion and terms of the author. This statement is still commonly presented on copyrighted works in spite of the lack of a need to. +\pagebreak +\newline + \license{No License} +\newline + In spite of common misconception, this is functionally identical to All Rights Reserved. No copyright needs to be registered for a work to be copyrighted, thus full copyright rules goes to the copyright holder upon creation, even without a stated license. As no statement about what is legally allowed to be done with a copyrighted publication means all the rights that could be given are reserved it is assumed that, legally, nothing is allowed to be done with the copyrighted work (except in cases of fair use). +\newline +\newline + \license{Microsoft Limited Public License (Ms-LPL)} +\newline + The Ms-LPL is a software license that is akin to the GNU GPL License in function. It grants both a permissive copyright and prevents patent treachery. However, the key difference that makes this license non-free is its fourth "Platform Limitation" clause. This makes it so that the freedom gained from the patent grant and the permissive copyright only applies if the software in question is developed for Microsoft's Windows. +\pagebreak +\newline +\newline + \license{Creative Commons Attribution-NonCommercial 4.0 International (CC-BY-NC 4.0)} +\newline + The CC-BY-NC 4.0 is a non-free license that allows for those licensed works to be shared and adapted the work insofar as that work is not used for any commercial purpose. Patent rights and moral rights are not given in this license. This license's restriction of distribution with fees and other forms of profiteering makes this license non-free. +\newline +\newline + \license{Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)} +\newline + The CC-BY-ND 4.0 is a non-free license that allows for those licensed works to be shared for any reason. Patent rights and moral rights are not given in this license. This license's restriction of distribution of remixing makes this license non-free. +\newline +\newline +Both free and non-free copyright licenses are highly influential upon the work they're applied to. Those licenses grant or revoke rights that effect all recipients of the work for decades to a century depending on how the law sees the work. No matter the license applied, understanding of said license, its effects, and its comparability will effect recipients for years to come. + + +%\pagebreak +%\printbibliography + + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with willingness a to sell exceptions. + \end{center} +} +\end{document} diff --git a/LaTeX/DecimalOutline/Decimal Outline_Maps.pdf b/LaTeX/DecimalOutline/Decimal Outline_Maps.pdf Binary files differnew file mode 100644 index 0000000..bf68d0f --- /dev/null +++ b/LaTeX/DecimalOutline/Decimal Outline_Maps.pdf diff --git a/LaTeX/DecimalOutline/DecimalOutline.tex b/LaTeX/DecimalOutline/DecimalOutline.tex new file mode 100644 index 0000000..74a98d5 --- /dev/null +++ b/LaTeX/DecimalOutline/DecimalOutline.tex @@ -0,0 +1,147 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + + +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +% +%Doublespacing +% +\usepackage{setspace} +\doublespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + +% +%Fancy-header package to modify header/page numbering (insert last name) +% +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{} +\chead{} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +%To make sure we actually have header 0.5in away from top edge +%12pt is one-sixth of an inch. Subtract this from 0.5in to get headsep value +\setlength\headsep{0.333in} + +%Bibliography File +\addbibresource{Biblio.bib} + +\newcommand{\secheader}[1]{\textbf{#1}} + +\begin{document} +\renewcommand{\labelenumi}{\arabic{enumi}.0} +\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}} +\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}} +\renewcommand{\labelenumiv}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.\arabic{enumiv}} +\begin{flushleft} + + +%%%%Title +\begin{center} + \textbf{Decimal Outline} + + \textbf{of} + + \textbf{"Kinds of Maps and Kinds of Map Data"} + + \textbf{by U.S. Department of Interior} +\end{center} + +%%%%Changes paragraph indentation to 0.5in +\setlength{\parindent}{0.5in} + +%%%%Begin body of paper here + \begin{enumerate} + \item Planimetric Maps present bare features and nothing more. + \begin{enumerate} + \item These maps are often used for planning. + \item Planimetric maps are sometimes used for cadastral purposes. + \item Utility companies may use planimetric maps for construction purposes. + \end{enumerate} + \item Topographic Maps show bare features along with height data. + \begin{enumerate} + \item Topographical maps are vital in the development of a nation's economy. + \item Topographic Maps are classified publication scale. + \begin{enumerate} + \item Scale of maps are usually classified in ratio format. + \item Maps may be either big, medium, or small. + \end{enumerate} + \end{enumerate} + \item Thematic Maps emphasize a specific topic. + \begin{enumerate} + \item Thematic maps are often used for quantification or acknowledgment of distribution. + \item Density may be highlighted by a heavier use of a measuring tool (such as dot size being higher). + \item Thematic maps may be broken up by arbitrary boundaries. + \end{enumerate} + \item Digital Maps and Map Data are digitized versions of maps that can be remotely accessed. + \begin{enumerate} + \item May be stored in a graphical form. + \item May be stored in a numerical form. + \end{enumerate} + \item Line Maps are a crude form of map where lines are pasted on an image. + \item Photomaps take photos of an area and present it as a map. + \begin{enumerate} + \item Cartographic elements may be apparent for user convenience. + \item Photographs may be seen as "map substitutes" depending on detail level. + \end{enumerate} + \end{enumerate} + +%%%%Works cited +\printbibliography + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/EvaluationMemo/EvaluationMemo.tex b/LaTeX/EvaluationMemo/EvaluationMemo.tex new file mode 100644 index 0000000..08c4e16 --- /dev/null +++ b/LaTeX/EvaluationMemo/EvaluationMemo.tex @@ -0,0 +1,124 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + + +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +% +%Doublespacing +% +\usepackage{setspace} +\singlespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + +% +%Fancy-header package to modify header/page numbering (insert last name) +% +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{} +\chead{} +%\rhead{Anonymous \thepage} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\newcommand\tab[1][0.45cm]{\hspace*{#1}} +%To make sure we actually have header 0.5in away from top edge +%12pt is one-sixth of an inch. Subtract this from 0.5in to get headsep value +\setlength\headsep{0.333in} + +%Bibliography File +\addbibresource{Biblio.bib} + + + +\begin{document} +\begin{flushleft} + +%%%%Changes paragraph indentation to 0.5in +\setlength{\parindent}{0.5in} + +%%%%Begin body of paper here + + \tab\textbf{To:} Anonymous \hfill \today + \linebreak + \tab\textbf{From:} msglm + \linebreak + \tab\textbf{Subject: TECH 1001 Textbook} + \linebreak + + While reading the content for the textbook for the TECH 1001 class, I have noticed, in spite of the good of the textbook, there are quite a few flaws with it: +\linebreak + \textbf{Flaws:} + \begin{enumerate} + \item For the subject matter, the content of the textbook is highly verbose. + \item The images and graphics included with the textbook could be removed (so long the text is adjusted accordingly) with very little loss to the quality of the textbook. + \item The textbook uses sciences such as MBTI and "Learning Styles" in spite of little proper proof existing for these sciences. + \item Much of the extra content is locked behind DRM, requiring the use of "Widevine", a closed source addon, to be used. + \item The textbook itself is under a licensing scheme that restricts the user's freedom. Said textbook also requires an exorbiant fee for limited time use. + \end{enumerate} + \textbf{Strong Points:} + \begin{enumerate} + \item The Glossery is of quite high quality, defining most words the user would want. + \item The practical advice in the book can be generally useful for those who need it. + \end{enumerate} + + If the book's content was truncated as to remove verbosity, dubious and less credible aspects of the textbook were removed, and the licensing and software used to access the book didn't restrict the user's freedom, then this book would be of an appreciatable quality. + +%%%%Works cited +\printbibliography + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/InformativeAbstract/China-Social-Credit.pdf b/LaTeX/InformativeAbstract/China-Social-Credit.pdf Binary files differnew file mode 100644 index 0000000..55dbd24 --- /dev/null +++ b/LaTeX/InformativeAbstract/China-Social-Credit.pdf diff --git a/LaTeX/InformativeAbstract/InformativeAbstract.tex b/LaTeX/InformativeAbstract/InformativeAbstract.tex new file mode 100644 index 0000000..6bcbc4f --- /dev/null +++ b/LaTeX/InformativeAbstract/InformativeAbstract.tex @@ -0,0 +1,115 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + + +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +% +%Doublespacing +% +\usepackage{setspace} +\doublespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + +% +%Fancy-header package to modify header/page numbering (insert last name) +% +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{} +\chead{} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +%To make sure we actually have header 0.5in away from top edge +%12pt is one-sixth of an inch. Subtract this from 0.5in to get headsep value +\setlength\headsep{0.333in} + +%Bibliography File +\addbibresource{Biblio.bib} + +\newcommand{\secheader}[1]{\textbf{#1}} + +\begin{document} +\renewcommand{\labelenumi}{\arabic{enumi}.0} +\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}} +\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}} +\renewcommand{\labelenumiv}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.\arabic{enumiv}} +\begin{flushleft} + + +%%%%Title +\begin{center} + \textbf{Informative Abstract} + + \textbf{of} + + \textbf{"The Complicated Truth about China's Social Credit System} + + \textbf{by Nicole Kobie} +\end{center} + +%%%%Changes paragraph indentation to 0.5in +\setlength{\parindent}{0.5in} + +%%%%Begin body of paper here + +China has a distributed, governmental credit system that ranks people's value by their implication with rule breaking behavior as defined by the Chinese Communist Party. This credit system is currently maintained by local governance, however the CCP is pushing for centralization of this system. There is an alternative, "private" credit score system that runs concurrently to the governmental social credit systems. However, the data collected privately is expected to be funneled into the central government. The social credit system rewards people with discounts on items and expediency in bureaucracy. Lower social credit score means loss of certain government benefits and harsher bureaucracy to deal with. + +%%%%Works cited +\printbibliography + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/InstructionSet/InstructionSet.tex b/LaTeX/InstructionSet/InstructionSet.tex new file mode 100644 index 0000000..f940360 --- /dev/null +++ b/LaTeX/InstructionSet/InstructionSet.tex @@ -0,0 +1,233 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + + +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +% +%Doublespacing +% +\usepackage{setspace} +\doublespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + +% +%Le Code Embed +% +\usepackage{listings} + + +% +%Fancy-header package to modify header/page numbering (insert last name) +% +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{} +\chead{} +\rhead{Anonymous \thepage} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +%To make sure we actually have header 0.5in away from top edge +%12pt is one-sixth of an inch. Subtract this from 0.5in to get headsep value +\setlength\headsep{0.333in} + +%Bibliography File +\addbibresource{Biblio.bib} + +\newcommand{\secheader}[1]{\textbf{#1}} + +\usepackage{pifont,mdframed} + +\newenvironment{warning} + {\par\begin{mdframed}[linewidth=2pt,linecolor=red]% + \begin{list}{}{\leftmargin=1cm + \labelwidth=\leftmargin}} + {\end{list}\end{mdframed}\par} + + +\begin{document} +\begin{flushleft} + +%%%%First page name, class, etc +msglm\\ +Professor Anonymous \\ +Technical Writing \\ +\today\\ + +%%%%Title +\begin{center} + Installation and Usage of Obscured Linux Kernel Virtual Machines (OLKVM) running Microsoft's Windows +\end{center} + +%%%%Changes paragraph indentation to 0.5in +\setlength{\parindent}{0.5in} + +%%%%Begin body of paper here +The follow is a set of instructions on how to create an obscured or harder to detect Linux Virtual Machine that run's Microsoft's Windows Operating System. + \newline +\secheader{Prerequisites} + \newline + The following skills, software, and objects are needed as to be able to created an OLKVM: + \begin{itemize} + \item An understanding that this instruction set implies NO WARRANTY or other such protections as applicable by the law and is liable for NOTHING that you as an individual do with this information. + \item A CPU and BIOS/UEFI that is capable of running Virtual Machines. + \item A Kernel-based Virtual Machine (KVM) compatible Operating System (Such as, but not limited to, Devuan GNU/Linux, Debian GNU/Linux, Gentoo, Arch Linux, Ubuntu). + \item A general understanding of computer jargon and a basic understanding of the GNU/Linux Operating system. + \item A general understanding of how to install Windows 7. + \item Root access OR the ability to run virtual machines granted to your user account. + \item An internet connection (only required if software is not prepared beforehand and a means of offline transfer is created). + \item An installed copy of \href{https://virt-manager.org/}{virt-manager}. + \begin{warning} + WARNING: It should be noted that your copy of Windows 7 MUST be a legal copy. Beware of pirated copies of Windows 7 (\href{https://the-eye.eu/public/MSDN/Windows\%207/}{example here}) as they are AGAINST THE LAW. Usage of illegal copies is at your own risk. + \end{warning} + \item A copy of Windows 7 (prefer Enterprise). + \end{itemize} + \secheader{Configuring The Virtual Machine} + \begin{enumerate} +\item Open up virt-manager and click 'Edit' and then 'Preferences'. From this menu, enable XML editing. After the XML editing icon has a blue check mark, click close once you're done. +\item Create a virtual machine by clicking the Monitor with a play button and a shiny star. +\item From here, click local install media then click forward. +\item This menu should ask for an ISO file, find the Windows 7 ISO you downloaded with the browse button and then select that. +\item Next, you'll be at a screen that asks for how much CPU and Memory should be used, leaving the software as default should be fine, however, if you wish, you may add more CPUs or RAM if you wish to speed up or allow the system to handle more memory. +\item After you'll be asked to make a disk image for the VM, make one around 65GB or greater. If you don't have that much space, then make one with 20 GB of space instead. Less space hurts your ability to not be detected so it is advisable to have a 65GB or greater VM. +\item Name the virtual machine whatever you wish to name it (so long as that name does not have spaces) and click finish. +\item From here, go through a normal Windows 7 install until you make it to the start screen. + \end{enumerate} + \secheader{Obfuscating the Operating System} + \begin{enumerate} + \item Once here, open REGEDIT by clicking the Super key and R at the same time and typing in 'REGEDIT' (without the quotes). + \begin{warning} + NOTE: This registry is NOT a file path, but rather the path to the location of something in the registry. Click the folders in REGEDIT, do not use your file manager for this. + \end{warning} +\item Navigate to 'HKEY\_LOCAL\_MACHINE/System/ControlSet001' in the registry +\item Once this is achieved, right click the registry folder called "Enum" and click Permissions. +\item Click add and type your user name in the box provided. +\item Click ok, then click 'Advanced'. A menu should pop up, from this menu click owner. Click on your user and then click the checkbox that says "Replace owner on subcontainers and objects". From here, click Apply, then OK, then click OK on the original permissions menu where you added yourself. +\item You should now be able to edit the registry. Open the Enum folder and locate the 'IDE' folder. +\item Open every folder in IDE and click on (BUT NOT OPEN) the folder inside all the folders in IDE. Each folder should have something with a nonsensical name like '5\&2e0148db\&01.0.0' and have a list of editable registries on the right. + \begin{warning} + NOTE: While yes you CAN name this whatever you want and yes it would work in most cases, it is not always the best to truly name something whatever you want. The name of other types of hardware is usually a good alternative. + \end{warning} +\item Find the registry named "FriendlyName" and name it whatever you want, but make sure it doesn't have QEMU in it once you edit. +\item Repeat the steps 7 and 8 for other folders in the IDE folder +\item For further reassurance, you may right click on the 'Enum' folder, click find, and type in QEMU and then change every element of FriendlyName that pops up with the word "QEMU", "Virtual Machine", or "Hypervisor" inside of it. +\item Once you are satisfied, shutdown Windows 7 and click the button next to the highlighted screen icon of the upper right of your virtual machine's window. + \end{enumerate} + \secheader{Obfuscating the Hardware} +\begin{enumerate} +\item Once here, you may see entries like "CPUs", "Memory", and "Mouse". If you see this, you figured your way to where you need to be. +\item Select "CPUs" and then click XML (that XML button should be next to the word "Details"). +\item This should bring up an already filled text prompt of code. From here, you will be inserting and deleting lines in this text prompt. +\item Find all text from $\langle$os$\rangle$ to $\langle$/os$\rangle$ (including $\langle$os$\rangle$ and $\langle$/os$\rangle$), delete it, and paste in the following: +\begin{lstlisting} +<sysinfo type="smbios"> + <bios> + <entry name="vendor">Fake BIOS Vendor</entry> + <entry name="version">Fake BIOS Version</entry> + </bios> + <system> + <entry name="manufacturer">Fake Manufacturer</entry> + <entry name="product">Fake Product</entry> + </system> + </sysinfo> + <os> + <type arch="x86_64" machine="pc-q35-6.1">hvm</type> + <boot dev="hd"/> + <smbios mode="sysinfo"/> + </os> +\end{lstlisting} + +\item Find all text from $\langle$features$\rangle$ to $\langle$/features$\rangle$ (inclusive), delete it, and replace it with the following: +\begin{lstlisting} + <features> + <acpi/> + <apic/> + <hyperv> + <relaxed state="on"/> + <vapic state="on"/> + <spinlocks state="on" retries="8191"/> + <vendor_id state="on" value="132271374ch"/> + </hyperv> + <kvm> + <hidden state="on"/> + </kvm> + <ioapic driver="kvm"/> + </features> +\end{lstlisting} + +\item Find all text from $\langle$cpu$\rangle$ to $\langle$/cpu$\rangle$ (or if this doesn't exist, delete $\langle$cpu '...' /$\rangle$ (the ... is not literal, it means anything in-between) and replace it with the following: +\begin{lstlisting} + <cpu mode="host-passthrough" check="none" migratable="on"> + <feature policy="disable" name="hypervisor"/> + </cpu> +\end{lstlisting} + +\item Once completed, click apply and then click the monitor icon in the top left that should be next to the highlighted icon indicating you are in the editing mode. This should bring you to a screen that says something along the lines of "Guest is not running". +\item Click the start button at the top to power on your computer and try out the browser, you should be able to use it without problem. If problems still exist, download this file, unzip it, and run the batch script in it as admin, restart, then try. If problems still persist, then do your own research or contact me about the issue to see if its universal. +\end{enumerate} +\secheader{Final Check} +\begin{enumerate} + \item Download and compile \href{https://github.com/a0rtega/pafish}{pafish}. + \item Run the software via terminal + \item If the output is mostly 'OK' (only one or two 'traced!'), then the Obfuscating was successful +\end{enumerate} + + +%%%%Works cited +\printbibliography + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/ObjectiveDescription/Biblio.bib b/LaTeX/ObjectiveDescription/Biblio.bib new file mode 100644 index 0000000..d710095 --- /dev/null +++ b/LaTeX/ObjectiveDescription/Biblio.bib @@ -0,0 +1,7 @@ +@misc{T420, + title = {ThinkPad T420 and T420i Hardware Maintenance Manual}, + author = {Levono}, + edition = {6}, + year = {2012}, + note = {Online; Accessed \today}, +} diff --git a/LaTeX/ObjectiveDescription/ObjectiveDescription.tex b/LaTeX/ObjectiveDescription/ObjectiveDescription.tex new file mode 100644 index 0000000..41d2a32 --- /dev/null +++ b/LaTeX/ObjectiveDescription/ObjectiveDescription.tex @@ -0,0 +1,291 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +\usepackage[singlelinecheck=false,justification=justified,labelfont=bf]{caption} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + +\usepackage{float} +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +% +%Doublespacing +% +\usepackage{setspace} +\doublespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + +% +%Fancy-header package to modify header/page numbering (insert last name) +% +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{} +\chead{} +\rhead{Anonymous \thepage} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +%To make sure we actually have header 0.5in away from top edge +%12pt is one-sixth of an inch. Subtract this from 0.5in to get headsep value +\setlength\headsep{0.333in} + +%Bibliography File +\addbibresource{Biblio.bib} + +\newcommand{\secheader}[1]{ + +\underline{#1}} + +\begin{document} +\begin{flushleft} + +%%%%First page name, class, etc +%%%%Title +\begin{center} +Description of The Levono T420 Thinkpad +\end{center} + +%%%%Changes paragraph indentation to 0.5in +\setlength{\parindent}{0in} + +%%%%Begin body of paper here + + +\textbf{General Description} + + The Levono T420 Thinkpad is a general purpose mobile computer. The T420 comprises 30 individual parts that each have a unique function. These parts will be described not by specific type, but instead by purpose and function. For a full list of all potential, manufacturer sanctioned parts, see the Thinkpad T420 and T420i Hardware Maintenance Manual. + \begin{figure}[H] + \includegraphics[width=\textwidth]{visual.png} + \caption{Breakdown of The Levono T420 Thinkpad} + \textbf{Source:} Levono. ThinkPad T420 and T420i Hardware Maintenance Manual. 2012, Online; Accessed October 22, 2021. + \label{fig: T420} + \end{figure} + +\textbf{Description of Major Parts} + +\underline{1. LCD Unit} + +The LCD Unit is a multipart device used for displaying contents to the user. Optional Camera and Microphone may come embedded in the LCD Unit. +%Camera Module +%LCD Module (lighting of screen( +%Hinges +%Wireless Antenna +%LCD rear cover assembly +%LED Cable with camera bracket +%LCD cable +%LED sub card +%Clear plate kit + + \pagebreak +\underline{2. Wireless Card} + +The Wireless Card is a chip in the computer that allows for wireless connection to the internet. This device my require external drivers to function depending on the operating system. + + + + +\underline{3. Memory} + +The Memory acts as temporary storage for programs to use. May come in different sizes and speed. + + + + +\underline{4. Keyboard Bezel Assembly} + + This is the frame around the keyboard itself that holds the keyboard. This device also holds the fingerprint reader (if one came with the device) and the trackpad. + + + + +\underline{5. Modem daughter card} + +This card is used to interface with communication cards such as Ethernet, Modems, or Bluetooth cards. + + + + +\underline{6. Speaker Assembly} + +The Speaker Assembly is the primary output device for noise on the computer. + + + + +\underline{7. Magnesium Structure Frame Assembly} + +The Magnesium Structure Frame Assembly is the storage space of those components hidden away from the user. These components include, but aren't limited to, The CPU, The Wireless Card, and the DVD Drive. + + +\underline{8. DVD Drive} + +The DVD Drive is where optical discs are inserted. The DVD Drive may come with writing capabilities, however, is not guaranteed to. + + +\underline{9. Audio Sub Card} + +The Audio Sub Card is commonly known as a Sound Card. The sound card is a device that processes input and output of sound for computer programs. + + +\underline{10. Audio Sub Card Cable} + +This cable attaches the Audio Sub Card to the System Board Assembly. + + +\underline{11. DC-in Cable} + +This cable connects the external charging cable to the battery. + + +\underline{12. I/O sub card} + +The I/O sub card is a card that translates inputs (usually analog) to outputs (usually digital). + + +\underline{13. Battery Pack} + +A Lithium-ion battery used for storing power. This battery is rechargeable. It comes in 4-cell, 6-cell, and 9-cell variants all with a variety of charging times and storage capabilities. + + +\underline{14. Base cover assembly} + +Base cover assembly is the storage space of those components hidden away from the user. These components include, but aren't limited to, the Battery, The Hard Disk Drive, and The System Board Assembly. + + +\underline{15. Slice Battery} + +The Slice Battery is an attachable, extra capacity battery for the laptop. + + +\underline{16. DIMM slot door} + +The DIMM slot door is where the memory is inserted. + + +\underline{17. Integrated Mobile Broadband} + +This device allows for radio based internet connection (usually via cellular towers). GPS capabilities may also come with this device. Of note, Malaysia has its own variants of the Integrated Mobile Broadband device. + + +\underline{18. SATA Hard disk drive} + +Hard disk drives (HDDs) or Solid State Drives (SSDs) (depending on user choice) are used for long term storage in the device. The hard disk drives have a rotating platter that spins upon data requests. Due to this, Hard Disk Drives have varying amount of speeds depending on their RPM (Rotations per minute). Both SSDs and HDDs have differing amounts of storage capacity. + + +\underline{19. Drive Rubbers/Spacers} + +Drive Rubbers/Spacers are responsible for elevating the drive when it is inserted into the device. + + +\underline{20. HDD Cover} + +The HDD Cover acts as a protective container for the storage drive. The HDD Cover also comes with a plastic attachment used for ejecting the drive via pulling. + + +\underline{21. System Board Assembly} + +The System Board Assembly is more commonly known as the mainboard, motherboard, or logic board. This board's job is to manage all connected devices required to offer each device's functionality. Some System Board Assemblies may come with integrated graphics chips used for processing visuals. Some System Board Assemblies may also come with Trusted Platform Modules (TPM) that manage cryptographic keys. Some System Board Assemblies come with discrete graphics, meaning that a separate processor for graphics is used by the motherboard. + + +\underline{22. CPU Assembly} + +The CPU Assembly is the central processing unit of the computer. Most software calculations are done here. All unmodified T420 Thinkpads come with an Intel brand processor, although the specific variant of Intel processor may very. + +\underline{23. Backup Battery} + +A battery used in case of power emergencies such as low power, battery removal, or other possible circumstances where battery power fails. + + +\underline{24. Smartcard reader FPC Cable} + +This cable connects the Smartcard reader to the System Board Assembly. + + +\underline{25. Smartcard Reader} + +A reader for Smartcards. These devices are usually used by businesses and government for authentication. + + +\underline{26. Fan Assembly} + +The Fan Assembly is the cooling device for the laptop. This device may either be integrated with the System Board Assembly or may not be. + + +\underline{27. FPC Cable} + +The FPC cable is the cable used by the Touch pad to detect user input. + + +\underline{28. Bluetooth Daughter Card} + +The Bluetooth Daughter Card enabled Bluetooth wireless technology on the device. + + +\underline{29. Keyboard} + +The Keyboard is the tactile letter input method. The Keyboard may be raised and replaced with relative ease. The keyboard may be different in design depending on the language it supports. + +\underline{30. Trackpoint Caps} + +The Trackpoint Cap is a pressure sensitive mouse substitute that is placed in the center of the keyboard. + + +\textbf{The Levono Thinkpad T420 in use} + +The Levono Thinkpad T420 functions like most general computing laptops. The device, when powered on, boots into the UEFI/BIOS and then into the Operating System. At that point, and if the drivers are installed, all enumerated devices should function as intended. +%%%%Works cited +\printbibliography + +\end{flushleft} +\hfill \textbf{msglm} +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/ObjectiveDescription/t420_t420i_hmm.pdf b/LaTeX/ObjectiveDescription/t420_t420i_hmm.pdf Binary files differnew file mode 100644 index 0000000..a06cf88 --- /dev/null +++ b/LaTeX/ObjectiveDescription/t420_t420i_hmm.pdf diff --git a/LaTeX/ObjectiveDescription/visual.png b/LaTeX/ObjectiveDescription/visual.png Binary files differnew file mode 100644 index 0000000..0f09bcf --- /dev/null +++ b/LaTeX/ObjectiveDescription/visual.png diff --git a/LaTeX/Presentation/Biblio.bib b/LaTeX/Presentation/Biblio.bib new file mode 100644 index 0000000..c95f460 --- /dev/null +++ b/LaTeX/Presentation/Biblio.bib @@ -0,0 +1,420 @@ +@article {Alzheimer-Research, + url = {https://www.nia.nih.gov/health/alzheimers-disease-research-centers}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + title = {Preventing Alzheimer's Disease: What Do We Know?}, + year = {2021} +} + +@article{Alzheimer-Prevention, + url = {https://www.nia.nih.gov/health/preventing-alzheimers-disease-what-do-we-know}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + title = {Preventing Alzheimer's Disease: What Do We Know?}, + year = {2018} +} + + +@article{Alzheimer-Treatment, + url = {https://www.nia.nih.gov/health/how-alzheimers-disease-treated}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + title = {How is Alzheimer's Disease Treated?}, + year = {2021} +} + +@article{Alzheimer-Symptoms, + url = {https://www.nia.nih.gov/health/what-are-signs-alzheimers-disease}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + title = {What are the signs of Alzheimer's Disease}, + year = {2017} +} + +@article{Alzheimer-Neuron-Death, + title = {What Happens to the Brain in Alzhimer's Disease}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + year = {2017}, + url = {https://www.nia.nih.gov/health/what-happens-brain-alzheimers-disease} +} + +@article{Alzheimer-cause, + title = {What Causes Alzheimer's Disease?}, + organization = {National Institute on Aging}, + author = {{National Institute on Aging}}, + year = {2019}, + url = {https://www.nia.nih.gov/health/what-causes-alzheimers-disease} +} + +@article{what-is-free-software, + title = {Richard Stallman}, + organization = {The Free Software Foundation}, + url = {\url{https://www.gnu.org/philosophy/free-sw.html}} +} + +@misc{the-dark-enlightenment, + title = {The Dark Enlightenment}, + author = {Land, Nick}, + url = {\url{https://www.thedarkenlightenment.com/the-dark-enlightenment-by-nick-land/}} +} + +@misc{patchwork-positive-vision-part-1, + title = {A Positive Vision}, + author = {Yarvin, Curtis}, + year = {2008}, + url = {\url{https://www.unqualified-reservations.org/2008/11/patchwork-positive-vision-part-1/}}, + organization = {Unqualified Reservations} +} + +@InBook{The-Truth-About-Left-and-Right, + booktitle = {An Open Letter to Open-Minded Progressives}, + title = {The Truth About Left and Right}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 11, + url = {\url{https://www.unqualified-reservations.org/2008/06/olxi-truth-about-left-and-right/}}, + organization = {Unqualified Reservations}, + year = {2008} +} + +@inbook{The-Ugly-Truth-About-Government, + booktitle = {An Open Letter to Open-Minded Progressives}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 7, + title = {The Ugly Truth About Government}, + organization = {Unqualified Reservations}, + url = {\url{https://www.unqualified-reservations.org/2008/05/ol7-ugly-truth-about-government/}}, + year = {2008} +} + +@inbook{gentle-introduction-to-unqualified-CH1, + booktitle = {A Gentle Introduction to Unqualified Reservations}, + author = {Yarvin, Curtis}, + shortauthor = {Moldbug, Mencius}, + chapter = 1, + title = {The Red Pill}, + organization = {Unqualified Reservations}, + url = {\url{https://www.unqualified-reservations.org/2009/01/gentle-introduction-to-unqualified/}}, + year = {2009} +} + +@misc{nick-land-trichotomy, + author = {Land, Nick}, + title = {Trichotomy}, + year = {2013}, + url = {https://web.archive.org/web/20190220091118/http://www.xenosystems.net/trichotomy/}, + organization = {Outside in} +} + +@misc{undefined-spandrell, + author = {Spandrell}, + title = {Undefined}, + year = {2012}, + url = {https://spandrell.com/2013/04/10/conflict/}, + organization = {Bloody Shovel 3} +} + +@misc{peter-lawler-postmodern-conservatism, + url = {\url{https://isi.org/intercollegiate-review/peter-lawler-postmodern-conservatism/}}, + author = {McManus, Matt}, + year = {2019}, + title = {The Postmodern Conservatism of Peter Lawler} +} + +@misc{behind-postmodern-conservatism, + url = {\url{https://isi.org/intercollegiate-review/rise-postmodern-conservatism/}}, + author = {Hochman, Nate}, + year = {2020}, + title = {Behind the Rise of Postmodern Conservatism} +} + +@InCollection{sep-logical-empiricism, + author = {Creath, Richard}, + title = {{Logical Empiricism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2021/entries/logical-empiricism/}}, + year = {2021}, + edition = {{F}all 2021}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{sep-schmitt, + author = {Vinx, Lars}, + title = {{Carl Schmitt}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2019/entries/schmitt/}}, + year = {2019}, + edition = {{F}all 2019}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@inBook{Genesis-128, + author = {Moses}, + title = {Genesis}, + chapter = 1, + version = {King James Version} +} + +@online{fertility-rate-by-religion, + title = {Total Fertility Rate by Religion, 2010-2015}, + organization = {Pew Research Center}, + url = {\url{https://www.pewforum.org/2015/04/02/religious-projections-2010-2050/pf_15-04-02_projectionsoverview_totalfertility_640px/}} +} + +@online{patent-expansion, + title = {U.S. Patent Activity Calendar Years 1790 to the Present}, + organization = {United States Patent and Trademark Office}, + url = {https://www.uspto.gov/web/offices/ac/ido/oeip/taf/h_counts.htm} +} + +@article{decline-of-whites-census, + url = {https://www.census.gov/content/dam/Census/library/publications/2020/demo/p25-1144.pdf}, + title = {Demographic Turning Points for the United States: Population Projections for 2020 to 2060}, + author = {Vespa, Johnathan and Medina, Lauren and Armstrong, David}, + organization = {U.S. Census Bureau}, + year = {2020} +} + +@suppbook{marxoids-and-luddites-have-one-struggle, + author = {Marx, Karl}, + title = {The Poverty of Philosophy}, + year = {1849}, + url = {\url{https://www.marxists.org/archive/marx/works/subject/hist-mat/pov-phil/ch02.htm}} +} + +@InCollection{sep-conservatism, + author = {Hamilton, Andy}, + title = {{Conservatism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/spr2020/entries/conservatism/}}, + year = {2020}, + edition = {{S}pring 2020}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@article{ThisLivingHandKeats, + author = {John Keats}, + title = {This Living Hand}, + year = {1819} +} + +@InCollection{sep-nietzsche-moral-political, + author = {Leiter, Brian}, + title = {{Nietzsche’s Moral and Political Philosophy}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/sum2021/entries/nietzsche-moral-political/}}, + year = {2021}, + edition = {Summer 2021}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{sep-nietzsche, + author = {Anderson, R. Lanier}, + title = {{Friedrich Nietzsche}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/sum2017/entries/nietzsche/}}, + year = {2017}, + edition = {Summer 2017}, + publisher = {Metaphysics Research Lab, Stanford University} +} + +@InCollection{stanford-fideism, + author = {Amesbury, Richard}, + title = {{Fideism}}, + booktitle = {The {Stanford} Encyclopedia of Philosophy}, + editor = {Edward N. Zalta}, + howpublished = {\url{https://plato.stanford.edu/archives/fall2017/entries/fideism/}}, + year = {2017}, + edition = {Fall 2017}, + publisher = {Metaphysics Research Lab, Stanford University} +} + + +@incollection{ Paul-Edwards-Critique-of-Cosmological, + author = "Paul Edwards", + editor = "Hector Hawton", + title = "A Critique of the Cosmological Argument", + year = "1959", + language = "English", + booktitle = "Philohopy : the quest for truth / [edited by] Louis P. Pojman, Lewis Vaughn.", + edition = "10" +} + + +@incollection { Five-Reasons, + author = "Thomas Aquinas", + translator= "Alyson Wieczorek", + title = "Third Article. Whether God Exists?", + shorttitle= "Whether God Exists?", + booktitle = "Summa Theologica", + publisher = "London : Burns, Oates \& Washburne, ltd.", + year = "1920", + language = "English", + volume = "2", + chapter = "2" +} + +@incollection{ The-Knight, + author="Geoffrey Chaucer", + title="The Knight", + booktitle="The Canterbury Tales", + year="1387" +} + +@article{what-alzheimers-disease, + author={{National Institute on Aging}}, + organization={National Institute on Aging}, + title="What Is Alzheimer's Disease?", + year="2017", + url="https://www.nia.nih.gov/health/what-alzheimers-disease" + +} + +@article{Dementia-Factsheet, + author={{The World Health Organization}}, + title="Dementia Fact sheet", + year="2020", + url="https://www.who.int/news-room/fact-sheets/detail/dementia" +} + +@article{Seth-Rogen-Alzhiemers, +author="Seth Rogen", +title="Seth Rogen's Alzheimer's Speech", +year="2014", +} + +@article{Seth-Rogen-Loves-Pot, +author="Eric Ditzian", +title="Seth Rogen: 'I Smoke A Lot Of Weed When I Write", +year="2011", +url="http://www.mtv.com/news/1671806/seth-rogen-50-50-weed/" +} + +@article{ Dementia-Research-and-Clinical-Trials, + author={{The National Institute on Aging}}, + title="Dementia Research and Clinical Trials", + year="2020", + url="https://www.nia.nih.gov/health/alzheimers/dementia-research-and-clinical-trials" +} + + +@incollection{ pardoners, + author = "Geoffrey Chaucer", + title = "The Pardoner’s Tale", + booktitle="The Canterbury Tales", + year = 1387 +} + +@article { IssuesAround, + title = "Do you have an issue around issues around?", + author = "Gill Francis", + year = 2012, + url = "http://www.macmillandictionaryblog.com/do-you-have-an-issue-around-issues-around" + +} + +@misc { GallupCongressTrust, + title = "Congress and the Public", + author="Gallup, Inc.", + url = "https://news.gallup.com/poll/1600/congress-public.aspx#15200531", + year = 2020, + month=8 +} + +@misc { PRRIrepresentation, + title="The Divide Over America’s Future: 1950 or 2050? Findings from the 2016 American Values Survey", + author="Betsy Cooper and Daniel Cox and Rachel Lienesch and Robert P. Jones Ph.D.", + year=2016, + url="https://www.prri.org/research/poll-1950s-2050-divided-nations-direction-post-election/", + month=10 +} + +@article {TrumpTwitter, + title="Twitter bans President Trump permanently", + author="Brian Fung", + year=2021, + url="https://edition.cnn.com/2021/01/08/tech/trump-twitter-ban/index.html", + month=1 +} + +@article {TheDonaldBan, + title="Twitch, Reddit crack down on Trump-linked content as industry faces reckoning", + author="Cristiano Lima", + year=2020, + url="https://www.politico.com/news/2020/06/29/reddit-bans-pro-trump-forum-in-crackdown-on-hate-speech-344698", + month=7 +} + +@article {ChapoTrapHouseBan, + url="https://www.buzzfeednews.com/article/juliareinstein/reddit-bans-subreddits-thedonald-chapotraphouse", + year=2020, + author="Julia Reinstein", + title="Reddit Banned A Ton Of Subreddits Including r/The\_Donald And r/ChapoTrapHouse", + month=6 +} +@article {ProJaredWhatIsWrongWithCancelCulture, + url="http://www.reflector-online.com/opinion/article\_20bf06a2-dd72-11e9-81b1-bf8d97d041fc.html", + year=2019, + author="Chris Lowe", + title="ProJared's situation embodies what is wrong with cancel culture", + month=9 +} + +@article {ProJaredSexuallySolicitingFans, + url="https://kotaku.com/youtuber-projared-accused-of-sexually-soliciting-fans-1834650673", + year=2019, + author="Cecilia D'Anastasio", + title="YouTuber ProJared Accused Of Sexually Soliciting Fans [UPDATE]", + month=5 +} + +@misc{ ProJaredYouveBeenLiedTo, + url="https://www.youtube.com/watch?v=BBywRBbDUjA", + year=2019, + month=8, + author="ProJared", + title="YOU'VE BEEN LIED TO" + +} + +@misc { ProJaredSocialBlade, + url="https://socialblade.com/youtube/user/dmjared/monthly", + year=2019, + author="SocialBlade", + title="Gained Subscribers \& Video Views Graphs for ProJared" +} + +@article { PBGTweetRemoval, + url="https://www.earnthenecklace.com/what-happened-to-projared-allegations-of-cheating-and-sexual-misconduct-hit-the-youtuber/", + year="2019", + author="Caroline John", + title="What Happened to ProJared? Allegations of Cheating and Sexual Misconduct Hit the YouTuber", + month=5 +} + +@misc { ProJaredNormalBootsRemoval, +url="https://twitter.com/NormalBoots/status/1126616736675983360/", +year=2019, +author="NormalBoots", +title="Here is our official statement.", +month=5 +} + +@incollection{ Federalist70, + author = "Pubilus", + title = "The Executive Department Further Considered", + booktitle="The Federalist Papers", + year = 1788, + month = 3, + number=70, + publisher="The New York Packet" +} + + diff --git a/LaTeX/Presentation/Presentation.tex b/LaTeX/Presentation/Presentation.tex new file mode 100644 index 0000000..d79f209 --- /dev/null +++ b/LaTeX/Presentation/Presentation.tex @@ -0,0 +1,169 @@ +\documentclass{beamer} +\usetheme{Copenhagen} + +\usepackage[style=mla,backend=biber]{biblatex} +\addbibresource{Biblio.bib} + +\title{Alzheimers} +\author{msglm} +\institute{Anonymized College Name} +\date{\today} + +\setbeamertemplate{title page}[default][colsep=-4bp,rounded=true] +\definecolor{ATUgold}{RGB}{255, 205, 0} +\definecolor{ATUgreen}{RGB}{17, 87, 64} +\definecolor{ATUspace}{RGB}{0, 47, 71} +\setbeamercolor{palette primary}{bg=ATUgreen,fg=ATUgold} +\setbeamercolor{palette secondary}{bg=ATUgreen,fg=ATUgold} +\setbeamercolor{palette tertiary}{bg=ATUgreen,fg=ATUgold} +\setbeamercolor{palette quaternary}{bg=ATUgreen,fg=ATUgold} +\setbeamercolor{structure}{fg=ATUspace} +\setbeamercolor{section in toc}{fg=ATUgold} +\setbeamercolor{normal text}{fg=ATUgold} +\setbeamercolor{background canvas}{bg=ATUspace} +%\setbeamercolor{background canvas}{bg=ATUsteel} + + +\begin{document} +\begin{frame} +\titlepage +\end{frame} + +\begin{frame}{Outline} + \tableofcontents +\end{frame} + +\section{Introduction} + +\begin{frame} + \frametitle{Alzheimers Overview} + \begin{itemize} + \item Alzheimers is a disease that primarily effects the brain + \item Memory Loss and Disorientation are common symptoms \autocite{what-alzheimers-disease} + \item This comes from neuron death caused by the disease \autocite{Alzheimer-Neuron-Death} + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{History} + \begin{itemize} + \item Discovered by Dr. Alois Alzheimer in 1906 + \item Dr. Alzheimer noticed unusual brain clumps in a woman who died of the disease + \item Those clumps are now called "Amyloid Plaques" and "Tau" \autocite{what-alzheimers-disease} + + \end{itemize} +\end{frame} + + +\begin{frame} + \frametitle{Causes} + \begin{itemize} + \item "Scientists don't yet fully understand what causes Alzheimer's Disease" + \item Age, genetics, and lifestyle are loose contributors + \item Vascular conditions and metabolic Conditions may have influance + \item Good nutrition, adequate exercize, proper socialization, mental stimulation, and sleep are all negative contributors \autocite{Alzheimer-cause} + \end{itemize} +\end{frame} + +\subsection{Mild} + +\begin{frame} + \frametitle{Mild Symptoms} + \begin{itemize} + \item Memory Loss + \item Poor Judgement + \item Wandering + \item Repeating Questions + \item Personality Changes \autocite{Alzheimer-Symptoms} + \end{itemize} +\end{frame} + +\subsection{Moderate} + +\begin{frame} + \begin{itemize} + \item Difficulty with language + \item Hallucinations and Paranoia + \item Increased Memory loss and Confusion + \item Problems recognizing loved ones \autocite{Alzheimer-Symptoms} + \end{itemize} +\end{frame} + +\subsection{Severe} + +\begin{frame} + \begin{itemize} + \item Inability to communicate + \item Weight loss + \item Loss of most bodily control + \item Difficulty Swallowing + \item Death + \end{itemize} +\end{frame} + +\section{Battling Alzhimers} +\subsection{Individually} +\begin{frame} + \frametitle{Cures} + Currently there is no known cure for Alzhimer's Disease. \autocite{what-alzheimers-disease} +\end{frame} + +\begin{frame} + \frametitle{Treatment} + Currently, treatments only slow Alzheimer's Disease progress and treat symptoms. + \begin{center} + \resizebox{0.6\pdfpagewidth}{!}{ + \begin{tabular}{ |c|p{2.3cm}|p{2.3cm}| } + \hline + & Treating \newline Symptoms & Reducing \newline Progression \\ + \hline + Mild-Moderate & Galantamine\newline Rivastigmine\newline Donepezil & Aducanumab (Theoretical) \\ + \hline + Moderate-Severe & N-methyl D-aspartate \newline Memantine-Donepezil Combination \newline Glantamine & Aducanumab (Theoretical)\\ + \hline + \end{tabular} + } + \end{center} + \small{\autocite{Alzheimer-Treatment}} +\end{frame} + +\begin{frame} + \frametitle{Prevention} + In order of most conclusive evidence on effect + \begin{itemize} + \item Lowering Blood Pressure + \item Cognative Training + \item Exercise + \autocite{Alzheimer-Prevention} + \end{itemize} +\end{frame} + + +\subsection{Societally} + +\begin{frame} + \frametitle{Research} + \begin{itemize} + \item "The National Institute on Aging (NIA) funds 33 Alzheimer's Disease Research Centers (ADRCs)." + \item There are currently no Research facilities in Arkansas. \autocite{Alzheimer-Research}. + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Charity} + \begin{itemize} + \item Alzheimer's Association + \item Alzheimer's Foundation of America + \item Alzheimer's Society + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Work Cited} + \printbibliography +\end{frame} + + +\end{document} + + diff --git a/LaTeX/ProcessAnalysis/.gitignore b/LaTeX/ProcessAnalysis/.gitignore new file mode 100644 index 0000000..237f49e --- /dev/null +++ b/LaTeX/ProcessAnalysis/.gitignore @@ -0,0 +1,288 @@ +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib diff --git a/LaTeX/ProcessAnalysis/HandOffProcess.png b/LaTeX/ProcessAnalysis/HandOffProcess.png Binary files differnew file mode 100644 index 0000000..7dd1cd6 --- /dev/null +++ b/LaTeX/ProcessAnalysis/HandOffProcess.png diff --git a/LaTeX/ProcessAnalysis/ProcessAnalysis.tex b/LaTeX/ProcessAnalysis/ProcessAnalysis.tex new file mode 100644 index 0000000..17b6c16 --- /dev/null +++ b/LaTeX/ProcessAnalysis/ProcessAnalysis.tex @@ -0,0 +1,123 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + + +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +% +%Doublespacing +% +\usepackage{setspace} +\doublespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Sexy, Sexy images... +% +\usepackage{graphicx} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + + +%Bibliography File +\addbibresource{Biblio.bib} + +\newcommand{\secheader}[1]{\textbf{#1}} + + +\begin{document} +\begin{flushleft} + +%%%%Title +\begin{center} +The GNU/Linux Operating System's Shutdown Process +\end{center} + + +%%%%Changes paragraph indentation to 0.5in +\setlength{\parindent}{0.5in} + +%%%%Begin body of paper here + +The shutdown process is a process that happens when one opts to cease using a computer. GNU/Linux is a libre operating system that, like many operating systems, has a shutdown process built into it. The shutdown process goes through many phases usually starting with the mass termination of processes and ending in a total power off. Figure 1 shows this process occurring. +\includegraphics{HandOffProcess.png} +\newline +Figure 1: msglm - Shutdown Stages +\newline +\newline +\secheader{Userland} +\newline + The shutdown process generally starts with the init system being told to initialize a shutdown. The init system proceeds from that by moving to runlevel 0 (where runlevels are a defined set of scripts that traditionally are used for system clean up and start up program configuration). Runlevel 0 generally consists of mass termination signals to all currently running programs along with other "system cleanup" scripts that unmount drives, save hardware clock time locally, turn off internet, and disable modifications to the main file system. Once this part is completed, and depending upon the nature of the clean up scripts and process termination, this may take an indeterminate amount of time, the init system calls upon the Linux Kernel to take over shutting down the computer before killing itself. +\newline +\newline + \secheader{Kernel Space} +\newline + Once the Linux Kernel takes over shutting the computer down, the processes in question become much more streamlined as it is based on already set configurations that came with the compiling of the kernel. The Kernel then calls upon a function that orders the CPUs to start shutting themselves down. This process depends on CPU architecture, thus, going forward, it will be assumed an AMD processor will be used. +\pagebreak +\newline +\newline + \secheader{CPU Shutdown} +\newline + In chronological order the disabling of the CPU happens as follows: CPU Interrupts (or requests for input from a piece of software) are disabled, Other CPUs the computer currently has in use are disabled, The controller that allows for multiprocessor systems is disabled (APIC), The APIC as a whole is then disconnected from the system that allows for CPU Interrupts, The High Precision Event Timer is then disabled, and CPU Input-Output Memory Management is disabled (a system that allows the virtual memory locations to be translated to physical memory). This entire series of disabling effectively kills the CPU, however keeps power running. +\newline +\newline + \secheader{Halting Computer} +\newline + In most cases, a power off signal is send and this instead avoids turning the CPU off. Instead it figures out the architecture of the CPU and directly gives information to the CPU that tells itself to terminate. As this is CPU dependent, a concise description of the process is not possible. Though, generally, some form of information the CPU can read is sent. In cases where the Linux Kernel doesn't have instructions for a CPU, a custom shutdown method is used to force a power off. +\newline +\newline + +%%%%Works cited + +\printbibliography + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/ProposalLetter/ProposalLetter.tex b/LaTeX/ProposalLetter/ProposalLetter.tex new file mode 100644 index 0000000..9e3b815 --- /dev/null +++ b/LaTeX/ProposalLetter/ProposalLetter.tex @@ -0,0 +1,110 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + + +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +% +%Doublespacing +% +\usepackage{setspace} +\doublespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + +% +%Fancy-header package to modify header/page numbering (insert last name) +% +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{} +\chead{} +\rhead{Anonymous \thepage} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +%To make sure we actually have header 0.5in away from top edge +%12pt is one-sixth of an inch. Subtract this from 0.5in to get headsep value +\setlength\headsep{0.333in} + +%Bibliography File +\addbibresource{Biblio.bib} + + + +\begin{document} +\begin{flushleft} + +%%%%First page name, class, etc +msglm\\ +Professor Anonymous \\ +Technical Writing \\ +\today\\ + +%%%%Title +\begin{center} +Title +\end{center} + +%%%%Changes paragraph indentation to 0.5in +\setlength{\parindent}{0.5in} + +%%%%Begin body of paper here + +%%%%Works cited +\pagebreak +\printbibliography + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/RecommendationMemorandum/RecommendationMemorandum.tex b/LaTeX/RecommendationMemorandum/RecommendationMemorandum.tex new file mode 100644 index 0000000..0c70406 --- /dev/null +++ b/LaTeX/RecommendationMemorandum/RecommendationMemorandum.tex @@ -0,0 +1,116 @@ +\documentclass{article} +\usepackage[style=mla,backend=biber]{biblatex} + +%for Copyleft Symbol +\usepackage{graphicx} + +%for URL embedding +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + + +% +%Margin - 1 inch on all sides +% +\usepackage[letterpaper]{geometry} +\geometry{top=1.0in, bottom=1.0in, left=1.0in, right=1.0in} + +% +%Doublespacing +% +\usepackage{setspace} +\singlespacing + +% +%Babel package for multiple language typesetting +% +%\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} + +% +%Setting the font +% +\usepackage{times} + +% +%Rotating tables (e.g. sideways when too long) +% +\usepackage{rotating} + +% +%For multiple rows in tables +% +\usepackage{multirow} + +% +%Line numbering in verse environment +% +\usepackage{lineno} + +% +%Fancy-header package to modify header/page numbering (insert last name) +% +\usepackage{fancyhdr} +\pagestyle{fancy} +\lhead{} +\chead{} +%\rhead{Anonymous \thepage} +\lfoot{} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\newcommand\tab[1][0.45cm]{\hspace*{#1}} +%To make sure we actually have header 0.5in away from top edge +%12pt is one-sixth of an inch. Subtract this from 0.5in to get headsep value +\setlength\headsep{0.333in} + +%Bibliography File +\addbibresource{Biblio.bib} + + + +\begin{document} +\begin{flushleft} + +%%%%Changes paragraph indentation to 0.5in +\setlength{\parindent}{0.5in} + +%%%%Begin body of paper here + + \tab\textbf{To:} Anonymous \hfill \today + \linebreak + \tab\textbf{From:} msglm + \linebreak + \tab\textbf{Subject: Movie Recommendation} + \linebreak + + Koyaanisqatsi: Life Out of Balance is a 1982 film that focuses on the out of balance nature of modern living. This is done by a non-traditional, experimental, music driven progression that shows clips of nature, human activity, human buildings, and human consumption. + + Koyaanisqatsi's over all message is critical of much of post-industrial society due to its high amount of waste, construction, and consumption. This is viewed through the music's dissonance in highly industrialized human environments and the image allegories that are present through the work. + + A couple notable allegories the movie points are as follows: Human cities, when looking at a satellite image, look extraordinarily similar to computer chips. This comparison highlights both's artificial and intricate nature. Another would be the comparability between human traveling, waiting, and task-preforming (for example, waiting in line for a movie) to road travel, with both making similar patterns that are observable to the viewer, highlighting their artificial, restricted nature by allegory. +1 + These allegories are complemented by American Score-writer Philip Glass's instrumental work that blends opera, neo-classical, minimalist, electronic, and ambient elements together to give the sequence of artificial images that compose Koyaanisqatsi the thrill and calmness necessary to understand the themes, motifs, and over all message of the work. + + All of this content put together gives the observer of the movie quite an interesting critique of modern society that is spoken without a single word being uttered. The movie, while not what some would describe as entertaining, is rhetorically effectual in allowing someone to understand the Luddite perspective on post-industrial society. + +%%%%Works cited +\printbibliography + +\end{flushleft} + +\scriptsize{ + \begin{center} + \vspace*{\fill} + Copyright \copyright \the\year{} msglm - + This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions. + \end{center} +} +\end{document} + diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_18-17-56-1-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_18-17-56-1-ema.jpg Binary files differnew file mode 100644 index 0000000..5192653 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_18-17-56-1-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-1.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-1.jpg Binary files differnew file mode 100644 index 0000000..f6bc0a4 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-1.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-63.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-63.jpg Binary files differnew file mode 100644 index 0000000..d87f7c1 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-63.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-93-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-93-ema.jpg Binary files differnew file mode 100644 index 0000000..ed63c4a --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-125/generated-11-27-2021_21-15-07-93-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-137/generated-11-30-2021_02-49-12-6-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-137/generated-11-30-2021_02-49-12-6-ema.jpg Binary files differnew file mode 100644 index 0000000..2321d11 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-137/generated-11-30-2021_02-49-12-6-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-137/generated-11-30-2021_02-51-00-33-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-137/generated-11-30-2021_02-51-00-33-ema.jpg Binary files differnew file mode 100644 index 0000000..e853d71 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-137/generated-11-30-2021_02-51-00-33-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-0-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-0-ema.jpg Binary files differnew file mode 100644 index 0000000..9d380d7 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-0-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-1-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-1-ema.jpg Binary files differnew file mode 100644 index 0000000..a56270d --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-1-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-2.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-2.jpg Binary files differnew file mode 100644 index 0000000..880060a --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-2.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-4-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-4-ema.jpg Binary files differnew file mode 100644 index 0000000..d66ea29 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-4-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-5-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-5-ema.jpg Binary files differnew file mode 100644 index 0000000..e4ea5ba --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-5-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-5.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-5.jpg Binary files differnew file mode 100644 index 0000000..ddbe92c --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-5.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-6-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-6-ema.jpg Binary files differnew file mode 100644 index 0000000..ba5dd75 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-6-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-6.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-6.jpg Binary files differnew file mode 100644 index 0000000..ae51ebf --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-6.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-7.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-7.jpg Binary files differnew file mode 100644 index 0000000..daaab80 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-43-15-7.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-17-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-17-ema.jpg Binary files differnew file mode 100644 index 0000000..2d6f5fe --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-17-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-35-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-35-ema.jpg Binary files differnew file mode 100644 index 0000000..81c3908 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-35-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-36.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-36.jpg Binary files differnew file mode 100644 index 0000000..7d712ab --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-36.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-39-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-39-ema.jpg Binary files differnew file mode 100644 index 0000000..63d2a5f --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-39-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-45-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-45-ema.jpg Binary files differnew file mode 100644 index 0000000..7437d4f --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-45-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-9-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-9-ema.jpg Binary files differnew file mode 100644 index 0000000..cf709e2 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_01-56-50-9-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-131-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-131-ema.jpg Binary files differnew file mode 100644 index 0000000..7e29e98 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-131-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-146.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-146.jpg Binary files differnew file mode 100644 index 0000000..82842c3 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-146.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-34-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-34-ema.jpg Binary files differnew file mode 100644 index 0000000..4597767 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-34-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-43-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-43-ema.jpg Binary files differnew file mode 100644 index 0000000..12626b5 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-150/generated-12-01-2021_02-09-09-43-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC-generated-63/generated-11-24-2021_19-41-51-20.jpg b/LaTeX/ResearchPaper/Pictures/DC-generated-63/generated-11-24-2021_19-41-51-20.jpg Binary files differnew file mode 100644 index 0000000..fcc2f02 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC-generated-63/generated-11-24-2021_19-41-51-20.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/0.jpg b/LaTeX/ResearchPaper/Pictures/DC/0.jpg Binary files differnew file mode 100644 index 0000000..3b6d267 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/0.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/125-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/125-ema.jpg Binary files differnew file mode 100644 index 0000000..5b60196 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/125-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/133-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/133-ema.jpg Binary files differnew file mode 100644 index 0000000..e0a93d1 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/133-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/133.jpg b/LaTeX/ResearchPaper/Pictures/DC/133.jpg Binary files differnew file mode 100644 index 0000000..ee42e6b --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/133.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/134-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/134-ema.jpg Binary files differnew file mode 100644 index 0000000..3b0de1c --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/134-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/134.jpg b/LaTeX/ResearchPaper/Pictures/DC/134.jpg Binary files differnew file mode 100644 index 0000000..eef5c82 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/134.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/135-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/135-ema.jpg Binary files differnew file mode 100644 index 0000000..d303a88 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/135-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/135.jpg b/LaTeX/ResearchPaper/Pictures/DC/135.jpg Binary files differnew file mode 100644 index 0000000..2285dfd --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/135.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/136-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/136-ema.jpg Binary files differnew file mode 100644 index 0000000..fa94a12 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/136-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/136.jpg b/LaTeX/ResearchPaper/Pictures/DC/136.jpg Binary files differnew file mode 100644 index 0000000..2d2d560 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/136.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/137-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/137-ema.jpg Binary files differnew file mode 100644 index 0000000..1b84d3c --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/137-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/137.jpg b/LaTeX/ResearchPaper/Pictures/DC/137.jpg Binary files differnew file mode 100644 index 0000000..cc20d8e --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/137.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/150-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/150-ema.jpg Binary files differnew file mode 100644 index 0000000..b876341 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/150-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/48-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/48-ema.jpg Binary files differnew file mode 100644 index 0000000..deb91fc --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/48-ema.jpg diff --git a/LaTeX/ResearchPaper/Pictures/DC/96-ema.jpg b/LaTeX/ResearchPaper/Pictures/DC/96-ema.jpg Binary files differnew file mode 100644 index 0000000..ca5c198 --- /dev/null +++ b/LaTeX/ResearchPaper/Pictures/DC/96-ema.jpg diff --git a/LaTeX/ResearchPaper/ResearchPaper.tex b/LaTeX/ResearchPaper/ResearchPaper.tex new file mode 100644 index 0000000..67aa726 --- /dev/null +++ b/LaTeX/ResearchPaper/ResearchPaper.tex @@ -0,0 +1,264 @@ +\documentclass[stu]{apa7} +\usepackage[style=apa,backend=biber]{biblatex} +\usepackage{blindtext} +%for URL embedding +\usepackage{animate} +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + linkcolor=black, + urlcolor=blue, + pdfborderstyle={/S/U/W 1}, + citecolor=black +} + +\addbibresource{Biblio.bib} + +\usepackage{caption} + +\begin{document} +\title{Machine Learning Generative Adversal Networks For Comic Book Art Synthesis on Consumer Grade Hardware} +\course{ENGL-2053} +\professor{Anonymous Anonymous} +\duedate{December 2nd, 2021} +\authornote{This work is licensed under the \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA 4.0} with a willingness to sell exceptions.} +\author{msglm} +\authorsaffiliations{Anonymized College Name} +\maketitle +\tableofcontents +\pagebreak +\listoffigures +\listoftables + +\pagebreak +\section{Abstract} +Machine learning algorithms can be used for generation for art. One Implementation of this is called a Generative Adversal Network (GAN). These GANs have been simplified and optimized for usage on lower grade hardware, including consumer hardware. Through various tweaks and optimizations to a lightweight implementation of a GAN a fully trained GAN capable of art generation can be created. To test the extent and capabilities of this, comic book pages are supplied to the GAN to use as training material. At various stages of testing, images are analyzed for their quality and closeness to the input images. +\clearpage +\section{Introduction} +Machine Leaning is a process where machines take in data about a task to be able to replicate or otherwise make inferences about new data that's related to the input data. For example, A machine learning algorithm could be trained to identify different flower breeds. For this use case, a machine will learn to produce comic book pictures by using a Generative Adversal Network. +\subsection{How AI Art Generation works} +Generative Adversal Networks (Also known as GANs) are a type of machine learning algorithm used for the creation of images similar to input data with machines. These networks work by training two algorithms at the same time, one that generates and one that discriminates. The Generative algorithms goal is to fool the Discriminator algorithm into thinking what it generates is apart of the input data set. The Discriminator algorithm's goal is to correctly identify what is a real part of the data set and what is not. \autocite{GANs} +\subsubsection{How Generation is Measured} +For the purposes of this paper, it will be assumed that 100\% completion is 150000 iterations (the standard amount that the program automatically sets) \autocite{lightweight-gan}. 1 iteration, on average, takes 5 seconds to complete. This means that the estimated completion time would be 750000 seconds or 208 hours (rounded down). This paper will use "percentage done" as a measurement of both time and iterations. A table for translation from percentages to iterations and time has been provided below: +\pagebreak +\def \tenpercentiteration{15000} +\def \tenpercenttimeinseconds{75000} +\begin{center} + \captionof{table}{Generation Measurement} + \resizebox{0.8\pdfpagewidth}{!}{ + \begin{tabular}{ |c|c|c|c| } + \hline + Percentage Done & Iterations Made & Real Time Taken \\ + \hline + 0.00000666666666666667\% & 1 & 5 sec \\ + \hline + 1\% & 1500 & 2.083 hrs \\ + \hline + 10\% & \the\numexpr \tenpercentiteration & \the\numexpr ((\tenpercenttimeinseconds)/60)/60 hrs \\ + \hline + 20\% & \the\numexpr \tenpercentiteration*2 & \the\numexpr ((\tenpercenttimeinseconds*2)/60)/60 hrs \\ + \hline + 30\% & \the\numexpr \tenpercentiteration*3 & \the\numexpr ((\tenpercenttimeinseconds*3)/60)/60 hrs \\ + \hline + 40\% & \the\numexpr \tenpercentiteration*4 & \the\numexpr ((\tenpercenttimeinseconds*4)/60)/60 hrs \\ + \hline + 50\% & \the\numexpr \tenpercentiteration*5 & \the\numexpr ((\tenpercenttimeinseconds*5)/60)/60 hrs \\ + \hline + 60\% & \the\numexpr \tenpercentiteration*6 & \the\numexpr ((\tenpercenttimeinseconds*6)/60)/60 hrs \\ + \hline + 70\% & \the\numexpr \tenpercentiteration*7 & \the\numexpr ((\tenpercenttimeinseconds*7)/60)/60 hrs \\ + \hline + 80\% & \the\numexpr \tenpercentiteration*8 & \the\numexpr ((\tenpercenttimeinseconds*8)/60)/60 hrs \\ + \hline + 90\% & \the\numexpr \tenpercentiteration*9 & \the\numexpr ((\tenpercenttimeinseconds*9)/60)/60 hrs \\ + \hline + 100\% & \the\numexpr \tenpercentiteration*10 & \the\numexpr ((\tenpercenttimeinseconds*10)/60)/60 hrs \\ + \hline + \end{tabular} +} +\end{center} + + +\subsection{Statement of Purpose} +The state of GAN-based art generation has progressed significantly since the first papers on it were published.\autocite{anonymous2021towards} Due to this, the ever looming question of "are we there yet" when it comes to consumer usage of these tools is in question. The purpose of this paper is the explore the capabilities of machine learning algorithms for the purpose of art generation on consumer hardware as to find out if we have reached a point in data science where this sort of usage is feasible. + +The more technical definition of this paper's goal is to see if a lightweight GAN, as defined by the paper \textit{Towards Faster and Stabilized {\{}GAN{\}} Training for High-fidelity Few-shot Image Synthesis}, is capable of producing artwork after 150000 trials. + +\subsection{Audience} +The audience in question is mainly focused on those who enjoy comic books, have consumer grade hardware, or are interested, in some way, with data science influenced art generation. This paper is also a class project so, in specific, my professor, Anonymous Anonymous, is apart of the list of people that this paper targets (if he wasn't already by any of the categories before). + +\subsection{Tools and Tool modifications} +Various tooling was used throughout this project as to obtain the results needed for analysis. +\subsubsection{Input} +The input data consists of 4340 JPEG image files of comic book pages harvested from a publicly accessible collection of DC comics made before the 1960s. The comics are either photographs or were scanned. Most comics are in color. The comics themselves come from various series that include, but aren't limited to, Wonder Woman, Movie Comics, and All Flash. Along with the standard comic books, several advertisement comics are included. +\subsubsection{Machine} +The hardware and software used for this has an influence on the speed, qualities, and capabilities of the GAN to produce images. Due to this, an enumeration of what tools are being used is required: +\clearpage +\begin{center} + \captionof{table}{Tooling Overview} + \resizebox{0.8\pdfpagewidth}{!}{ + \begin{tabular}{ |c|c|p{7cm}|c| } + \hline + Component Type & Tool Abbreviated Name & Technical Notes & Hardware or Software \\ + \hline + Machine Learning Software & lightweight\_gan & "A PyTorch implementation of the paper Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis" \autocite{lightweight-gan} & Software \\ + \hline + Programming Language & Python & Python version 3.9.9 is being used & Software \\ + \hline + Parallel Computing Platform & CUDA & Release V11.3.109 is being used. & Software \\ + \hline + Operating System & Devuan GNU/Linux Ceres (Unstable) & Linux user 5.14.0-4-amd64 \#1 SMP Debian 5.14.16-1 (2021-11-03) x86\_64 GNU/Linux & Software \\ + \hline + CPU & AMD Ryzen 5 1600 & Comes with 12 Threads, 6 cores, and has a base clock speed of 3.2GHz. \autocite{amd-ryzen-5-1600} & Hardware \\ + \hline + GPU & NVIDIA GeForce GTX 1050 Ti & Comes with 768 CUDA Cores with a base clock speed of 1290 MHz. Has 4GB of Virtual Memory. \autocite{geforce-gtx-1050} & Hardware \\ + \hline + \end{tabular} +} +\end{center} + +All hardware is consumer grade and can be purchased from white market or gray market sources. Most software (GNU/Linux, Python, and lightweight\_gan) is free software as defined by the Free Software Foundation \autocite{what-is-free-software} The CUDA toolkit is free of charge, however, comes with a number of licensing restrictions that make it possible for discrimination in downloading, usage, or sharing of the software. All projects that can be installed on a Debian-based operating system give a copy of their license when installed. The only exception is lightweight\_gan, however, this software comes with a LICENSE file in its git repository. + +The machine was also used as if it was a general purpose computer while generation happened. This was twofold in purpose, to allow the hardware to still be useful for casual use and for the purpose of testing if average consumer usage of hardware would negatively impact the performance or stability of the machine learning software. This process was ceased at times of user inactivity to give the system dedicated time with only minimal operations being ran (For example, background downloads and a lightweight desktop environment). Even with this reduction intensity, there were still times where the program would crash due to memory constraints. See the section on Complications for more detail. + +\subsubsection{Parameters} +The program has been modified with a number of parameters for the purpose of optimization, these are listed in the following table: +\begin{center} + \captionof{table}{Parameters Overview} + \resizebox{0.8\pdfpagewidth}{!}{ + \begin{tabular}{ |c|c|p{7cm}|c| } + \hline + Parameter Name & Value & \centering{Description} & In-line Parameter \\ + \hline + Name & DC & Sets the name of the outputted folder and file for images and AI Weights (models) & \texttt{--name DC} \\ + \hline + Batch Size & 8 & Sets the amount of images that are used to influence an output image from the generator algorithm & \texttt{--batch-size 8} \\ + \hline + Image Size & 512 & Sets the size of the images that the program will generate. Image size must be a power of 2 \autocite{lightweight-gan.py}. & \texttt{--image-size 512} \\ + \hline + Discriminator Output Size & 5 & "The Discriminator output size . . . leads to different results on different datasets . . . 5x5 works better for art than for faces, as an example..." \autocite{lightweight-gan}. "Discriminator output dimensions can only be 5x5 or 1x1" \autocite{lightweight-gan.py}. & \texttt{--disc-output-size 5} \\ + \hline + Gradient Accumulation & 4 & Sets the amount of pass-through the AI must go through before it saves its results to disc. & \texttt{--gradient-accumulate-every 4} \\ + \hline + Data Directory & ./data/DC & Sets the location of the generated model files for the AI & \texttt{--data ./data/DC}\\ + \hline + \end{tabular} +} +\end{center} + +Modifications that effect the GAN's manipulation or ability to work with the image were changed as to allow for the program to run on consumer grade hardware. This, in effect, lowered resource consumption, especially of GPU RAM, and allowed the program to work in most cases. If one were to run the lightweight\_gan program without any parameters on the same hardware, the program would likely crash due to memory constraints. + +Parameters such as "Name" and "Data Directory" were purely for categorizations purposes and had negligible to no effect on the speed of the tools. + +\section{Results} +The results, or output, of the machine learning art generator depends heavily on the amount of time that the AI trains. As there exists little way to objectively measure the "quality" of the output images except by the percentage towards completion made by the original developers, this section will subsist of mostly showing of produced images and descriptions of the images. As a general rule, the lower amount of progress that an image has, the lower likelihood that there will be anything decipherable in the image +\subsection{Complications} +Throughout the training process for the images, multiple crashes happened due to a lack of GPU Virtual Memory. This was due to the computer using high amounts of GPU Memory when rendering images, videos, or other graphics taxing processes such as Web Browsers, Video Games, or heavy chatting applications. These crashes did lead to loss of training during unsaved times, however, were not a significant enough in their loss to drastically lose speed. At times the training process had to be disabled for performance issues. In cases when software didn't crash the training process by taking too many resources, the software that did take resources ran quite poorly. This was due to the limited amount of graphical resources at the disposal of other applications. At times the whole system needed to be shutdown for hardware driver updates, security patches, or weather concerns. This impacted speed slightly in the same way that crashes did. +\subsection{Generated Images} +Images are rendered in two ways, 'ema' and 'default' \autocite{lightweight-gan}. 'EMA' uses a "rolling average" for the weights of data, meaning that it takes an average from each part of the training to construct the final model file. This is opposed to the 'default' behavior that only accumulates weights over time and doesn't take into account past data. \autocite{lightweight-gan.py}. + +The pictures that follow are handpicked examples of art generated by the AI: +\clearpage + +%\captionof{figure}{} +%\includegraphics[width=\linewidth]{./Pictures/DC} +%\pagebreak + +\subsection{Compilations} + +\captionof{figure}{A compilation of generated images at the AI's first Pictures in 'regular' mode.} +\includegraphics[width=\linewidth]{./Pictures/DC/0.jpg} +\pagebreak + +\captionof{figure}{A compilation of generated images at 32\% completion in ema mode.} +\includegraphics[width=\linewidth]{./Pictures/DC/48-ema.jpg} +\pagebreak + +\captionof{figure}{A compilation of generated images at 64\% completion in ema mode.} +\includegraphics[width=\linewidth]{./Pictures/DC/96-ema.jpg} +\pagebreak + +\captionof{figure}{A compilation of generated images at 83\% completion in ema mode.} +\includegraphics[width=\linewidth]{./Pictures/DC/125-ema.jpg} +\pagebreak + +\captionof{figure}{A compilation of generated images at 93\% completion in ema mode.} +\includegraphics[width=\linewidth]{./Pictures/DC/137-ema.jpg} +\pagebreak + +\captionof{figure}{A compilation of generated images at 100\% completion in ema mode.} +\includegraphics[width=\linewidth]{./Pictures/DC/150-ema.jpg} +\pagebreak + +\subsection{Hand Picked} + +\captionof{figure}{A generated "comic" that the AI created in regular mode (regular) (83\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-125/generated-11-27-2021_21-15-07-1.jpg} +\pagebreak + +\captionof{figure}{A vaguely dreary backdrop with facial features melded into it (ema) (83\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-125/generated-11-27-2021_18-17-56-1-ema.jpg} +\pagebreak + +\captionof{figure}{An extraordinarily pink comic (ema) (83\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-125/generated-11-27-2021_21-15-07-93-ema} +\pagebreak + +\captionof{figure}{A comic that seems to depict either trees or fire (ema) (92\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-137/generated-11-30-2021_02-51-00-33-ema.jpg} +\pagebreak + +\captionof{figure}{What seems to be the "cover page" of a comic book (ema) (92\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-137/generated-11-30-2021_02-49-12-6-ema.jpg} +\pagebreak + +\captionof{figure}{Another comic book cover page (ema) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_01-56-50-17-ema.jpg} +\pagebreak + +\captionof{figure}{A yellow comic with very humanoid characters (regular) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_01-43-15-6.jpg} +\pagebreak + +%\captionof{figure}{() (100\%)} +%\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/} +%\pagebreak + +\captionof{figure}{Filled with a high amount of detail that doesn't resemble anything at all (ema) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_01-56-50-39-ema.jpg} +\pagebreak + +\captionof{figure}{Vaguely defined orbs (ema) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_01-43-15-1-ema.jpg} +\pagebreak + +\captionof{figure}{More deformed humanoid figures (ema) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_01-56-50-45-ema.jpg} +\pagebreak + +\captionof{figure}{A blue crystal discussing something on a yellow background (regular) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_02-09-09-146.jpg} +\pagebreak + +\captionof{figure}{What seems to be a part of superman is on the left-middle panel (ema) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_02-09-09-34-ema.jpg} +\pagebreak + +\captionof{figure}{An attempt at a cover page mixed with text gibberish (ema) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_02-09-09-43-ema.jpg} +\pagebreak + +\captionof{figure}{A what seems to be Wonder Woman is depicted on the right(ema) (100\%)} +\includegraphics[width=\linewidth]{./Pictures/DC-generated-150/generated-12-01-2021_02-09-09-131-ema.jpg} +\pagebreak + + + + + +\section{Conclusion} + +The technology presented in this paper has quite the capabilities in producing interesting mockeries of the art forms given as input data. However, what it makes is just that, a mockery. The program doesn't seem capable of creation with intent as the machine is merely trying to deceive another program. Due to this, everything created fits most of the definitions of what a comic should be from a visual aspect, however, is missing the much needed direction to make story, humanoid characters, or anything consistent. A human, if presented with this many comics and the ability to learn would come up with something more akin to the input data than what the machine made. The machine's limitations in ability are especially apparent when given the technical restrictions of consumer grade hardware. Although these critiques are the case, the machine is an expert at making general shapes, themes, and motifs. Given simpler input data to copy, it would be reasonable to hypothesize that the machine will be able to create something that looks like a human made it. + +\printbibliography +\end{document} diff --git a/LaTeX/ResearchPaper/Resources/Software b/LaTeX/ResearchPaper/Resources/Software new file mode 100644 index 0000000..971f442 --- /dev/null +++ b/LaTeX/ResearchPaper/Resources/Software @@ -0,0 +1,2 @@ +https://github.com/lucidrains/lightweight-gan +https://github.com/lucidrains/stylegan2-pytorch diff --git a/LaTeX/ResearchPaper/Resources/apa7.pdf b/LaTeX/ResearchPaper/Resources/apa7.pdf Binary files differnew file mode 100644 index 0000000..593afa5 --- /dev/null +++ b/LaTeX/ResearchPaper/Resources/apa7.pdf diff --git a/LaTeX/ResearchPaper/Sources/Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis.pdf b/LaTeX/ResearchPaper/Sources/Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis.pdf Binary files differnew file mode 100644 index 0000000..ab4a93b --- /dev/null +++ b/LaTeX/ResearchPaper/Sources/Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis.pdf diff --git a/LaTeX/ResearchPaper/TransmissionLetter.tex b/LaTeX/ResearchPaper/TransmissionLetter.tex new file mode 100644 index 0000000..778e4ff --- /dev/null +++ b/LaTeX/ResearchPaper/TransmissionLetter.tex @@ -0,0 +1,14 @@ +\documentclass{letter} +\signature{msglm} +\address{Anonymized College Name \\ Russellville, Arkansas 72801} +\begin{document} +\begin{letter}{msglm \\ Anonymized College Name \\ Russellville, AR 72801} +\opening{Dear Anonymous.} +The following research report was requested by you for the purpose of completing Technical Writing. As you should know, I chose a practical data science research topic on the creation of comic books using machine learning. This topic comes from my personal experimentation with the technologies behind this. This, coupled with my interest and proficency in computers, allows me to translate this otherwise abstract topic into pratical and presentable terms. + + + +\closing{Sincerely,} +\end{letter} +\end{document} + diff --git a/README.md b/README.md new file mode 100644 index 0000000..a9885f0 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Java +Everything in the Java folder was from my 2020, high school programming class. + +# HTML +Everything in the HTML folder was from my 2021 web development class. +All the work was done out of the book "Basics of Web Design: HTML5 & CSS (5th Edition)". + +# LaTeX +Everything in the LaTeX folder was from my 2021 technical writing class. + +# C++ +Everything in the C++ Folder is from my 2021 and 2022 college Programming classes. + +# Anonymization +As much as possible, I have redacted the names of people and locations that could be identifiable. |