|
|
Subject:
Problam with Array in Visual Basic
Category: Reference, Education and News > Homework Help Asked by: googlygas2005-ga List Price: $20.00 |
Posted:
01 Mar 2005 18:52 PST
Expires: 31 Mar 2005 18:52 PST Question ID: 483242 |
Hello, My name is Greg. I am a student at Franklin University, in Columbus, Ohio. I am taking Programming In Visual Basic. I am programming in Visual Basic .NET, in a console application. I am doing the following assignment; ??. A company pays its salespeople on a commission basis. The salespeople receive $200 per week, plus 9% of their gross sales for that week. For example, a salesperson who grosses $5000 in sales in a week receives $200 plus 9% of $5000, or a total of $650. Develop a console program (using a one-dimensional array of counters) that determines how many of the salespeople earned salaries in each of the following ranges (assume that each salesperson?s salary is truncated to an integer amount): a) $200-$299 b) $300-$399 c) $400-$499 d) $500-$599 e) $600-$699 f) $700-$799 g) $800-$899 h) $900-$999 i) $1000 an over The program should first ask how many salespeople are in the company, and then input as integers their grossed sales for that week. .... I understand the formula for figuring out the salary; (grosssales * .09) + 200 for the earned salary. I also understand arrays to a point. What I cannot figure out is how to have the calculated salary fall into the array, which by my understanding cannot have ranges in the elements (e.g. 200 - 299) and add to the counter or frequency for the salary range. I have considered creating Case statements for the ranges and using those but, I am still unsure of how I would have the return variable fall into the array. Please help. Thanks, Greg |
|
There is no answer at this time. |
|
Subject:
Re: Problam with Array in Visual Basic
From: willcodeforfood-ga on 01 Mar 2005 21:19 PST |
Don't use the salary amount as the array index. Make an array with 9 elements, with each one representing the salary categories. Write a function into which you can pass in the salary amount and have it return an integer from 0 to 8, based on which range the salary fell. Use a case statement in the function that would return 0 if salary $200-$299 and 1 if salary $300-$399, etc. Say you call your 9-element array SalaryCounts, the function GetGroupIndex and the salary amount is in a variable called salaryAmount. You can increment your array like this: SalaryCounts( GetGroupIndex(salaryAmount) ) += 1 Just as a side note, what is supposed to happen if the salary is $299.50? Also, what if the salary is $50.00? It's always good to explicitly define these gray areas in your solutions. |
Subject:
Re: Problem with Array in Visual Basic
From: googlygas2005-ga on 01 Mar 2005 23:07 PST |
Thank you very much. The case statements worked like a charm! I have the following and as I step through I go through 9 iterations I believe. Is the array setup correctly? Sub Main() Dim salespeople As Double Console.WriteLine("Please input number of salespeople:") salespeople = Console.ReadLine While salespeople <> 0 Dim grosssales As Double Console.WriteLine("Please input gross sales for salesperson: {0}", salespeople) grosssales = Console.ReadLine Dim salary As Double salary = (grosssales * 0.09) + 200 Console.WriteLine("Salary is:{0} ", salary) getgroupindex(salary) Dim Salarycounts As Integer() Salarycounts = New Integer(9) {} For salaryamount = 0 To Salarycounts.GetUpperBound(0) Salarycounts(getgroupindex(salaryAmount)) += 1 Next Console.WriteLine("Salary Amount is : {0}", salaryamount) We have not covered exception handling yet, so I am unsure. I am assuming (bad thing to do, I know) that I will have to use a windows message box, as in our example on pp 250 - 254 of Visual Basic .NET, 2nd Ed., Dietel, 2002, Upper Saddle River, NJ, ISBN 0-13-029363-3. To properly display the results. Or figure the best way in the console app to display that and allow for the tie into the # of sales people. Thanks again for all your help. Greg Kinda of tired and delerious (spelling?) right now |
Subject:
Re: Problam with Array in Visual Basic
From: willcodeforfood-ga on 02 Mar 2005 16:20 PST |
You're on the right track. This will help you along a bit: Sub Main() ' put all your declarations and initialization up here Dim salespeople As Double Dim grosssales As Double Dim salary As Double Dim Salarycounts As Integer() Salarycounts = New Integer(9) {0,0,0,0,0,0,0,0,0} ' be sure to initialize arrays before using them Console.WriteLine("Please input number of salespeople:") salespeople = Console.ReadLine While salespeople <> 0 Console.WriteLine("Please input gross sales for salesperson: {0}", salespeople) grosssales = Console.ReadLine salary = (grosssales * 0.09) + 200 Console.WriteLine("Salary is:{0} ", salary) ' increment the appropriate salary-range counter Salarycounts(getgroupindex(salary)) += 1 salespeople -= 1 Wend ' display program output Console.WriteLine("Salary $200-$299 : {0}", Salarycounts(0) ) Console.WriteLine("Salary $300-$399 : {1}", Salarycounts(0) ) ... End Sub Function getgroupindex(ByVal s as Integer) Select Case s Case 200 To 299 Return 0 ... and so on, or however you've defined this function End Function |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
Search Google Answers for |
Google Home - Answers FAQ - Terms of Service - Privacy Policy |