SOF103程序 写作、C++编程调试

” SOF103程序 写作、C++编程调试DESCRIPTION OF COURSEWORKCourse Code SOF103Course Name C and C++ ProgrammingLecturer Dr. Kamran SiddiqueAcademic Session 202009Assessment Title Project (Replacement of Class Test)A. Introduction/ Situation/ Background InformationThe key characteristics of object oriented programming (OOP) are encapsulation, inheritance, andpolymorphism. In order to comprehend and utilize the advantages of the OOP, a project has beendesigned to simulate the working of a banking account system. The students are expected toimplement it with an effective utilization of the characteristics of OOP focusing constructors, datahiding and abstraction Techniques, code reusability, virtual functions, input validations, and so on.This activity also highlights the significance or report writing and effective presentation.B. Course Learning Outcomes (CLO) coveredAt the end of this assessment, students are able to:CLO 1 Comprehend basic programming constructs of C and C++.CLO 2 Demonstrate an understanding of the concepts and principles of C and C++programming by solving real-world problems in particular.CLO 4 Evaluate the given C/C++ code segments using algorithm tracing technique.C. University Policy on Academic Misconduct1. Academic misconduct is a serious offense in Xiamen University Malaysia. It can be definedas any of the following:i. Plagiarism is submitting or presenting someone elses work, words, ideas, data orinformation as your own intentionally or unintentionally. This includes incorporatingpublished and unpublished material, whether in manuscript, printed or electronic form intoyour work without acknowledging the source (the person and the work).ii. Collusion is two or more People collaborating on a piece of work (in part or whole) whichis intended to be wholly individual and passed it off as own individual work.OFFICE OF ACADEMIC AFFAIRSReference No. : XMUM.OAA – 100/2/8-V2.0Effective Date : 23 APRIL 2018iii. Cheating is an act of dishonesty or fraud in order to gain an unfair advantage in anassessment. This includes using or attempting to use, or assisting another to use materialsthat are prohibited or inappropriate, commissioning work from a third party, falsifying data,or breaching any examination rules.2. All the assessment submitted must be the outcome of the student. Any form of academicmisconduct is a serious offense which will be penalised by being given a zero mark for theentire assessment in question or part of the assessment in question. If there is more than oneguilty party as in the case of collusion, both you and your collusion partner(s) will be subjectedto the same penalty.D. Instruction to StudentsSubmit the following:1. A folder of the project source code.2. A project report in MS Word containing the cover pages, table of contents, screenshots ofthe output of your application with appropriate captions, marking scheme, and any otherinformation you would like to highlight. The length (no. of pages) of this report dependson you as per your Work. Include the source code as Appendix in this file.3. An appropriate PowerPoint file showing the contributions of group members (if done in agroup) in addition to the presentation of the project.4. Submit your final zip file at Moodle with a format: Group_Name – Project_Leader_ID.5. Submission deadline: 6 January 2020.E. Evaluation BreakdownNo. Component Title Percentage(%)1. class BankAccount 202. class SavingAccount 203. Class CheckingAccount 304. Project Report 155. A PowerPoint Presentation File 15TOTAL 100F. Task(s) This is a group activity and maximum 4 students are allowed in one group. Analyze the requirements of the project carefully and divide the tasks among groupmembers to demonstrate an efficient teamwork. You should assign one member as a groupleader. The project should be implemented as a multi-file program i.e., using abstractionmethodology. You need to Submit the following information (See the shared file at OneDrive) about yourgroup till 27 December, 2020.o Group Nameo Group members name and ID (mention the group leader)Create a class BankAccount to hold at least the following data / information about a bankaccount: Account balance Total number of deposits Total number of withdrawals Interest rate e.g., annual rate = 0.05 Service charges per monthThe class should have the following member functions:Constructor To set the required data. It may be parameterized or users input.depositAmount A virtual function used to accept an argument for the amount tobe deposited. It should add the argument (amount) to the accountbalance. It should also increment the variable used to track thenumber of deposits.withdrawAmount A virtual function used to accept an argument for the withdrawamount operation. It should subtract the argument from theaccount balance. It should also increment the used to track thenumber of withdrawals.calculateInterest A virtual function which calculates the monthly interest of theaccount and then Updates the account balance by adding it to theprincipal amount.Note: Use the standard formulas/operations (monthly interestcalculation) to implement this function.monthlyProcessing A virtual function which calls the calculateInterest function,subtracts the monthly service charges from the balance, and thensets the corresponding variables such as no. of withdrawals, no.of deposits, monthly service charges and so on.getMonthlyStatistics A member function used to display the monthly statistics of theaccount such as deposit, withdrawals, service charges, balanceetc.Next, create a SavingAccount class which is derived from the generic class BankAccount.It should at least have one additional data member, i.e., status that will be used to show whetheraccount is active or inactive.If the balance of a savings account falls below RM 25, it becomes inactive and the account holderwill not be able to Perform withdraw operation anymore until the balance is raised above RM 25.If balance becomes greater than or equal to RM 25, the account will become active again.The most common member functions of the SavingAccount class are given below.depositAmount A function which first checks whether the account is active/inactive beforemaking a deposit. If inactive and the deposit brings the balance above RM25, the account will become active again. The deposit will then be madeby calling the base class version of the function.withdrawAmount A function which first checks whether the account is active/inactive beforemaking a withdrawal. If active, the withdrawal will be made by calling thebase class version of the function.monthlyProcessingThis function first checks the no. of withdrawals before calling the baseclass version of this function. If the number of withdrawals are more than4, a service charge of RM 1 for each withdrawal greater than or equal toRM 4 is added to the base class variable that holds the monthly servicecharges. Note: Check the account balance after applying the service charge.If the balance become lower than RM 25, the account becomes inactiveagain.Next step is to design a CheckingAccount class. It is also derived from the generic accountclass and should at least have the following member functions.withdrawAmount This function first determines whether a withdrawal request will cause thebalance to go below RM 0. If it falls below RM 0, a service charge of RM15 will be deducted from the account, and the withdrawal will not be made.If there is not enough amount to deduct the service charges, the balancewill become negative accordingly.monthlyProcessing This function applies a monthly fee of RM 5 plus RM 0.10 per withdrawalto the base class variable that holds the monthly service charges.Input Validations: Apply input validations wherever appropriate such as input data format foraccount number and title, and other validation checks applied in a practical banking system.Assume the account number is a 6-digit integer value (324561).Implement the above functionality using abstraction methodology. This project requires tosimulate one Saving and one Checking account, however, simulating multiple accounts (may beup to 5) is encouraged. If you Simulate multiple accounts, highlight it in your report and thepresentation file. You may need to add more member variables and functions than those listedabove. Your application should at least provide the following functionality (a sample run):Bank Account System1. Saving Account Number2. Saving Account Title3. Checking Account Number4. Checking Account Title5. Deposit in a Saving Account6. Deposit in a Checking Account7. Withdraw from Saving Account8. Withdraw from Checking Account9. Update and Display Account Statistics10. ExitUpon Selecting the desired option in the above menu, your application should perform therequired functionality.APPENDIX 1MARKING RUBRICSComponentTitle class BankAccount Percentage(%) 15CriteriaScore and Descriptors Weight(%) Good Marks(5)Average(3)Poor(0-1)ClassdeclarationAll required memberfunctions and variables aredeclaredRequired member functionsand data members aredeclared but some may notbe needed.Missing publicand private/protectedmembers 5ClassimplementationMember functions areproperly implemented andtestedMember functionsdefinitions can beimprovedMember functions are notimplemented, not tested 10TOTAL 15ComponentTitle class SavingAccount Percentage(%) 25CriteriaScore and Descriptors Weight(%) Good Marks(5)Average(3)Poor(0-1)ClassdeclarationAll required memberfunctions and variables aredeclared.Required member functionsand data members aredeclared but some may notbe needed.Missing publicand private/protectedmembers.5ClassimplementationMember Functions areproperly implemented withinput validations.Member functionsdefinitions can beimproved.Member functions are notimplemented.5Inheritance Showed effective use ofbase class public methods.Showed minimum usageof base class publicmethods.Poor use of base class publicmethods.5Polymorphism Showed effective use ofpolymorphism.The concept ofpolymorphism is notproperly utilized,Didnt Apply the concept ofpolymorphism. 5InputValidationsStrong input validation hasbeen applied.Partial validation of theinput data.Weak or no input validationhas Been applied. 5TOTAL 25ComponentTitle class CheckingAccount Percentage(%) 30CriteriaScore and Descriptors Weight(%) Good Marks(5)Average(3)Poor(0-1)ClassdeclarationAll required memberfunctions and variables aredeclared.Required member functionsand data members aredeclared but some may notbe needed.Missing publicand private/protectedmembers.5ClassimplementationMember functions areproperly implemented withinput validations.Member Functionsdefinitions can beimproved.Member functions are notimplemented.5Inheritance Showed effective use ofbase class public methods.Showed minimum usageof base class publicmethods.Poor use of base class publicmethods. 5Polymorphism Showed effective use ofpolymorphism.The concept ofpolymorphism is notproperly utilized,Didnt Apply the concept ofpolymorphism. 5InputValidationsStrong input validation hasbeen applied.Partial validation of theinput data.Weak or no input validationhas been applied. 5Driver programAble to produce correctresults in testing. Userinterface and outputs areclear and functioningcorrectly. Correctinstantiation and usage ofobject of the class. Able touse function calls by classobject.Able to produce correctresults but with minorFormatting mistakes.Correct user interface andoutput format. Able to useclass objects and functioncalls.Unable to produce the correctresults. Incorrect userinterface and output format.Unable to demonstrate theusage of function call by classobject.5TOTAL 30ComponentTitle Project Report Percentage(%) 15CriteriaScore and Descriptors Weight(%) Good Marks(6-8)Average(4-5)Poor(0-3)CodeexplanationProvided sufficient commentsthroughout the code,flowcharts/diagrams todescribe the flow of theprogram, important sections ofthe Program are explainedclearlyNeed more comments toexplain the code,flowcharts/diagrams toexplain the flow of theprogram, missing importantpoints in explanation of theprogramInsufficient comments todescribe the code, unclearexplanation, lack of flow chartor diagrams. Important sectionsof the programs are notexplained7ReportFormattingA well-formatted title page,table of contents, screenshotswith proper orientation, andappendix has been shown.Partial Demonstration of theformatting rules andscreenshots orientation.The report has many formattingflaws and minimal or nodemonstration of thescreenshots.8TOTAL 15ComponentTitle A PowerPoint Presentation File Percentage(%) 15CriteriaScore and Descriptors Weight(%) Good Marks(12-15)Average(8-11)Poor(0-7)PresentationqualityA professional look with clearcontents and images(screenshots etc). The role ofeach group member has beenclearly mentioned. Powerpointfeatures have also beenutilized Effectively, and agood teamwork has beenshown.Moderate presentation. Theroles of group members needmore clarity. Limited use ofPowerpoint features. Amoderate demonstration of theteamwork.Inappropriate selection of thepresentation theme. Contentsare not clear. The role ofgroup Members are either notgiven or not properlyassigned leading toinefficient or no teamwork.15TOTAL 15Note to students: Please print out and attach this appendix together with the submission ofcoursework如有需要,请加QQ:99515681 或WX:codehelp

添加老师微信回复‘’官网 辅导‘’获取专业老师帮助,或点击联系老师1对1在线指导