|
|
I need to calculate total grades for students with files and arrays. user first enters course they are calculating grades from. all data files use this course file as part of their name. Outer loop to read the records from the master name file. Inner loop or loop insidefunction to read the records for each student.When processing the records from a student file each one should be done separately and not assumed they are grouped in any particular order.
Program reads a record, decides what category it is in updates the running total for that category. Once the entire file has been read, you can compute the average for each category based on the number of items that should be in that category, which may be more than the number of records in the file for items turned in.
I am horrible and I mean horrible at this and I have literally put in about 35 hours into trying to make this work and this is my 8th program I have redone and really need any guidance on what I should do or if I should restart again or what I am doing wrong.
I am receiving errors on line 29 "unexpected symbol 'while' in class,struct, or interface member declaration and
line 29 and 32 "unexpected symbol ')' in class, struct or interface member declaration"
line 36 "unexpected symbol 'string',expecting 'class','delegate', 'enum',..."
using System;
using System.IO;
using System.Collections.Generic;
using IntroCS;
namespace GradeProgram {
class Gradebook {
static void Main()
{
string fileName = UIF.PromptLine ("Please enter the comp course with no spaces: ");
string categoryFileName = "categories_" + fileName + ".txt";
var reader = new StreamReader (categoryFileName);
while (!reader.EndOfStream) {
string line = reader.ReadLine ();
Console.WriteLine (line);
}
}
string studentFileName = "student_" + fileName + ".txt";
var reader2 = new StreamReader (studentFileName);
while (!reader2.EndOfStream) {
string student = reader2.ReadLine ();
Console.WriteLine (student);
}
}
static string[] GetStringArray(string input)
{
string[] parts = input.Split(',');
return parts;
}
static int[] GetIntArray(string input)
{
string[] parts = input.Split(',');
int[] intparts = new int[parts.Length];
for (int i = 0; i < parts.Length; i++)
intparts[i] = int.Parse(parts[i]);
return intparts;
}
static int codeIndex(string code, string[] categories)
{
for (int i = 0; i < categories.Length; i++)
{
if (categories[i].StartsWith(code))
{
return i;
}
}
return -1;
}
static string[] GetCatNames(string file)
{
var reader = new StreamReader(file);
string categories = reader.ReadLine();
string[] catnames = GetStringArray(categories);
for (int i = 0; i < catnames.Length; i++)
Console.WriteLine("Category at position {0} = {1}", i, catnames[i]);
return catnames;
}
static int[] GetWeights(string file)
{
int targetLine = 2;
int counter = 1;
int[] weightvalues = new int[0];
var reader = new StreamReader(file);
while (!reader.EndOfStream)
{
string weights = reader.ReadLine();
if (counter == targetLine)
{
weightvalues = GetIntArray(weights);
}
counter++;
}
for (int i = 0; i < weightvalues.Length; i++)
{
Console.WriteLine("Category at position {0} = {1}", i, weightvalues[i]);
}
return weightvalues;
}
static int[] GetNumOfItems(string file)
{
int targetLine = 3;
int counter = 1;
int[] itemsvalues = new int[0];
var reader = new StreamReader(file);
while (!reader.EndOfStream)
{
string items = reader.ReadLine();
if (counter == targetLine)
{
itemsvalues = GetIntArray(items);
}
counter++;
}
for (int i = 0; i < itemsvalues.Length; i++)
{
Console.WriteLine("Category at position {0} = {1}", i, itemsvalues[i]);
}
return itemsvalues;
}
static string[] GetStudent(string file)
{
var reader = new StreamReader(file);
while (!reader.EndOfStream)
{
string items = reader.ReadLine();
string[] itemsvalues = GetStringArray(items);
for (int i = 0; i < itemsvalues.Length; i++)
Console.WriteLine("Category at position {0} = {1}", i, itemsvalues[i]);
}
return null;
}
}}
|
|
|
|
|
I suspect that much of your problems comes from not matching your braces. I would start by putting the left-braces ( { ) where they belong so you can see them more easily. Then perhaps, print the code and draw lines to match them up so you can more easily see the structure of your code.
|
|
|
|
|
The first thing I notice here is that you have got a closing braces wrong.
For e.g.
while (!reader.EndOfStream) {
string line = reader.ReadLine ();
Console.WriteLine (line);
}
}
The second brace above is incorrect and should be removed.
Remove the brace, build again and check what errors you get after the build.
|
|
|
|
|
ok thank you that made the errors go away but now when I try to test the code after I press enter this shows up on the screen...
"dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/login) is setuid or setgid
Last login: Thu Apr 11 00:19:19 on ttys000
Megans-MacBook-Pro meganspanier$ clear; cd "/Users/meganspanier/Projects/prac_hw3/prac_hw3/bin/Debug"; "/Library/Frameworks/Mono.framework/Versions/2.10.11/bin/mono" --debug --debugger-agent=transport=dt_socket,address=127.0.0.1:63263 "/Users/meganspanier/Projects/prac_hw3/prac_hw3/bin/Debug/prac_hw3.exe" ; echo; read -p 'Press any key to continue...' -n1; exit
"
|
|
|
|
|
|
A few tips.
1. Perhaps it's better to take the logic out of the GradeBook class that contains the main method (= entrypoint of your application.) Mostly Visual Studio will create a file Program.cs with the main method in there.
2. Always use {} even for single line statements after the control statement. (there are some who don't mind this, but I find it best practice to do so)
3. write //end ... (for, if while) after each ending curly bracket (}) that indicates what it ends.
4. in Visual studio you can highlight matching braces. put your cursor on a start bracket ({) and scroll down to the matching one. (if you did #3 you'll occasionally notice that when there are missing brackets you have an //end for written instead of the if statement you started from)
5. I think it's best you take a step back and try to translate the necessary functionality into technical solution (what classes do you need, what methods, write some pseudocode).
In your code after the main method you seem to start a new method, but it is not declared. The part between main and GetStringArray is not what it's supposed to be.
Hope this helps.
|
|
|
|
|
i have smartcard dll which support smartcardmanager.oncardinsertevnthanler. How i use the event handler for detcting the event when i insert the card into reader or ejec from reader.iam using c# language
|
|
|
|
|
|
Hi,
I am trying to export gridview data to excel. It is working fine except the first row in the excel is blank.
The code i used for the excel is shown below:
HttpContext.Current.Response.Clear();
Response.ClearContent();
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=GrpFile.xls");
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
HtmlForm frm = new HtmlForm();
gvCampGrp.Parent.Controls.Add(frm);
frm.Attributes["runat"] = "server";
frm.Controls.Add(gvCampGrp);
frm.RenderControl(hw);
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
I also included the following code.
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
How to export data to excel without making its first row empty?
Please help.
Dhyanga
|
|
|
|
|
i removed the htmlform code from the section and now it worked fine.
HttpContext.Current.Response.Clear();
Response.ClearContent();
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=GrpFile.xls");
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
gvCampGrp.RenderControl(hw);
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
and
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
Dhyanga
|
|
|
|
|
hello everyone. i believe u have seen the apps that put some christmas lights on ur screen that keep blinking while u use ur desktop or whatever. i am planning to write a similar app. i have quite a good programming experience but i am not sure how to achieve this thing, i mean how to i make a bulb appear on desktop while the desktop can be used by the user aswell. btw i am working in c#.
|
|
|
|
|
Create a transparent[^] form, and make sure that the border isn't transparent.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
but that transparent form will recieve click events rather than desktop itself, right?
|
|
|
|
|
Johnny English wrote: but that transparent form will recieve click events rather than desktop itself, right? Wrong. Alternatively, you can set a specific color to become transparent.
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
static class Program
{
public static void Main()
{
using (var f = new Form())
{
var b = new Button();
b.Text = "Hello world";
f.Controls.Add(b);
f.BackColor = Color.Red;
f.TransparencyKey = Color.Red;
f.AllowTransparency = true;
f.WindowState = FormWindowState.Maximized;
f.ShowDialog();
}
}
}
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
well using ur technique if i draw something on form that is red, it wont appear.
|
|
|
|
|
I'd recommend using a different transparency-key than red. Pick one that's not in use yet.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
i am making an app that will display lots of light bulbs of different colors, so i dont think this transparency key thing will work.
|
|
|
|
|
Anytime there is a completely transparent item in WPF it is basically invisibile. I often will have a minimum transparency when I actually want to be able to interact with a control.
|
|
|
|
|
You are looking at widget development.
Developing a gadget for Windows Sidebar[^] should help you get started.
This will help you create a widget which can run in the background while you can continue and work on the desktop.
|
|
|
|
|
not a widget, have u seen twinkle bulbs app?
|
|
|
|
|
|
Sooooo what is this post about again??
I'm not clicking that link.
|
|
|
|
|
C'mon Dave, where's your sense of adventure...
I wasn't, now I am, then I won't be anymore.
|
|
|
|
|
I'm married. My sense of adventure was killed about 7 years ago.
|
|
|
|