Permalänk
Medlem

Blandade frågor om c#

Hej,

Jag har en skoluppgift som jag behöver hjälp med. Tyvärr har vi bara en lärare under vår programmeringslektion så han hinner inte hjälpa alla så mycket. Så då vänder jag mig till er som är erfarna i csharp. Själv är jag inte himla bra på just programmera. Om ni har förslag eller vet hur det ska se ut visa gärna med koden istället för att förklara eller du kan både visa och förklara.

Programmeringsuppgift:

Ni ska läsa in personer av olika nationalitet. Minst tre olika typer av identifikation.
T.ex. Svensk - Personnummer (9201027890)
Engelsman – National Insurance Number (AB123456C)
Amerikan – Social Security Number (123-45-6789)
Vidare så skall nationaliteten, uträknat på id:t ovan, ge automatisk sättning av landskoden till telefonnumret.
T.ex. en svensk person får +46 som landskod i telefonnumret, britter +44 och amerikaner +1

Så här har jag gjort:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassLibrary1
{
public class Class1
{
public static string GetPerson()
{
Console.Write("Ange förnamn: "); //frågar efter namn
string land = Console.ReadLine();

return land;
}
}
}

//en metod som retunerar

public static string GetPerson(int PersonalNumber, int TelephoneNumber,string country,string firstname,string lastname)
{
return "Personnummer: " + PersonalNumber + " telefonnummer: " + TelephoneNumber + " land: " + country + " förnamn: " + firstname + " efternamn: " + lastname + ".";
}

Jag har inte kommit så långt i uppgiften som ni ser så jag hoppas ni förstod vad uppgiften handlade om och kan bidra med hjälp.

Tack!

Permalänk
Medlem

frågar du alltså om ett svar på hela uppgiften?

Permalänk
Medlem
Skrivet av Azodan:

frågar du alltså om ett svar på hela uppgiften?

Nej, jag frågar efter hur jag går till väga eller hur ska jag göra uppgiften liksom vad ska jag koda efter det kodningen jag skrev på inlägget.

Men om du vill fixa uppgiften till mig, så är du välkommen lol...
tror inte nån skulle ha tid och lust för sånt.

Permalänk
Medlem

mja, jag vet inte om du lär dig så mycket om jag skulle göra allt

är det bara nationaliteten som programmet ska lista ut? plus att lägga till landskoden till telefonnummret?

har ni pratat om klasser och objekt?

vad har NAMESPACE/NAMNRYMDER med frågan att göra?

Permalänk
Medlem

Jo da om du gör den å sätter kommentar på varje rad du kodar så begriper jag det.
Asså programmet ska skriva ut var personen kommer ifrån och personnummer och telefonnummer. Och det är de tre nationaliteten: swe, usa, eng

Vet inte riktigt vad det har att göra med namespace/namnrymder...men det är i alla fall uppgiften.

Blir väldigt tacksam om kan få den gjord...

Permalänk
Hedersmedlem
Skrivet av tjalol:

Blir väldigt tacksam om kan få den gjord...

Ingen kommer ge dig en fullständig lösning, men vi svarar gärna på mera specifika frågor.

Permalänk
Medlem

Ja, tack gör så. Har inte bett om en fullständigt lösning det var du som fråga så...men hur ska jag gå till väga nu då?

Permalänk
Hedersmedlem
Skrivet av tjalol:

Ja, tack gör så. Har inte bett om en fullständigt lösning det var du som fråga så...men hur ska jag gå till väga nu då?

Tja, hur långt har du kommit? Har du testat att anropa till exempel GetPerson och se vad som händer (för övrigt verkar det lite suspekt att läsa in namnet till variabeln land)?

Permalänk
Medlem

kan du ens köra programmet? Noterade att namespace var 'ClassLibrary1', vilket är default om du skapar ett klassbibliotek, har du en main metod någonstans?

Permalänk
Medlem
Skrivet av Elgot:

Tja, hur långt har du kommit? Har du testat att anropa till exempel GetPerson och se vad som händer (för övrigt verkar det lite suspekt att läsa in namnet till variabeln land)?

Tja

Jo jag har bara gjort det lilla som jag skrev på första inlägget sen har jag inte gjort mer vet inte hur jag ska gå tillväga.

Hur anropar man Getperson

Vet inte det där med variablen land har fått lite hjälp från skolan å så.

Permalänk
Medlem
Skrivet av Azodan:

kan du ens köra programmet? Noterade att namespace var 'ClassLibrary1', vilket är default om du skapar ett klassbibliotek, har du en main metod någonstans?

Okej och vad menar du med det att namespace är default? ska jag ändra på den eller?

en main metod har jag inte och det går inte att köra programmet än.

men det bara sätta ditt en public static void (string args[]) ?

Permalänk
Medlem

Personligen tycker jag att du har kört fast alldeles för fort, jag föreslår att du går tillbaka och kollar i boken och tidigare uppgifter. Nu ska jag sova.

Permalänk
Hedersmedlem
Skrivet av tjalol:

Hur anropar man Getperson

Kanske borde du, för att få lite känsla för vad som händer, börja enklare. Skapa ett nytt projekt av typen "Console application" och kopiera in

Console.Write("Ange förnamn: "); //frågar efter namn string land = Console.ReadLine();

i main-funktionen. Tryck sedan på F5.

Permalänk
Medlem

Måste säga att jag inte förstår uppgiften riktigt. Vi ska alltså mata in persondata: namn, personnummer(motsvarande) och telefonnummer och sen beroende av personnummrets formatering ska vi lägga till korrekt landskod till telefonnumret?

Visa signatur

MBP: 13" - M1
Stationär: Win11 - Ryzen 5900X - 128GB - GTX 4080
Server: Ubuntu - i5 4670k - 32GB - 4x5TB Raid-Z
Server: Rpi4 8GB, 1TB USB SSD

Permalänk
Medlem
Skrivet av tifius:

Måste säga att jag inte förstår uppgiften riktigt. Vi ska alltså mata in persondata: namn, personnummer(motsvarande) och telefonnummer och sen beroende av personnummrets formatering ska vi lägga till korrekt landskod till telefonnumret?

Typ. Som jag förstår det ska algoritmen använda sig av personnumret för att avgöra nationalitet. När nationaliteten är bestämd visas en sammanfattning med personens namn, personnummer, nationalitet och telefonnumrets landsprefix.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Typ. Som jag förstår det ska algoritmen använda sig av personnumret för att avgöra nationalitet. När nationaliteten är bestämd visas en sammanfattning med personens namn, personnummer, nationalitet och telefonnumrets landsprefix.

Jah där satt den! finaly fick jag nån att förstå uppgiften, men man behöver dock inte ha förnamn och efternamn, du ska bara mata in personnummer antingen svenskt, engelsk eller amerikans så ska programmet lista ut och skriva ut vilket nationalitet personen tillhör och landskod.

Permalänk
Medlem
Skrivet av tjalol:

Jah där satt den! finaly fick jag nån att förstå uppgiften, men man behöver dock inte ha förnamn och efternamn, du ska bara mata in personnummer antingen svenskt, engelsk eller amerikans så ska programmet lista ut och skriva ut vilket nationalitet personen tillhör och landskod.

Den ska även mata ut personnummret som du matade in!

Permalänk
Medlem

hjälp

Hur skriver man att if satsen ska inte ha första tecknet som en bokstav när man matar in 10 tecken?
Här har jag försökt.

if (Char.IsLetter(s[0] == !! && s.Length > 9 && s.Length < 11)

Permalänk
Medlem

c# hjälp

Hej, kan ni hjälpa mig att skriva den lilla koden.

Hur skriver man att if satsen ska inte ha första tecknet som en bokstav när man matar in 10 tecken?
Här har jag försökt. I den här if satsen så ska inmatningen vara 10 siffror lång och inte ha det första tecknet som en bokstav.

consoleWriteline("Skriv siffror");
console.readline;

if (Char.IsLetter(s[0] == !! && s.Length > 9 && s.Length < 11)

Permalänk
Medlem

Syntax för writeline

Console.WriteLine("Skriv siffror");

Du måste spara inläsningen i en sträng

string line = Console.ReadLine();

Kollar om första bokstaven i line är en siffra och om line har längden 10

if (line[0].IsNumber() && line.Length == 10) { //skriv kod här }

För att kolla om något inte är sant kan man använda !
T.ex.

if (!line[0].isNumber()) { }

kollar att första bokstaven inte är en siffra.

För att kolla om något inte är lika med något annat skriver man !=.
Kollar om line Inte har längden 10

if (line.Length != 10) { }

Permalänk
Medlem
Skrivet av smurfzg:

Syntax för writeline

Console.WriteLine("Skriv siffror");

Du måste spara inläsningen i en sträng

string line = Console.ReadLine();

Kollar om första bokstaven i line är en siffra och om line har längden 10

if (line[0].IsNumber() && line.Length == 10) { //skriv kod här }

För att kolla om något inte är sant kan man använda !
T.ex.

if (!line[0].isNumber()) { }

kollar att första bokstaven inte är en siffra.

För att kolla om något inte är lika med något annat skriver man !=.
Kollar om line Inte har längden 10

if (line.Length != 10) { }

det där blir fel när man skriver blir röda markeringar under.
if (s[0].IsNumber() && line.Length == 10)

Permalänk
Medlem
Skrivet av tjalol:

det där blir fel när man skriver blir röda markeringar under.
if (s[0].IsNumber() && line.Length == 10)

förlåt skrev fel

if (line[0].IsNumber() && line.Length == 10) {
//skriv kod här
}

men jag bytte line till s då min sträng hette string s = ...

men den pekar fel på line[0].IsNumber()

Permalänk
Medlem

c# HJÄLP

Hej,

Hur skriver man till en if sats att den ska inte ha någon bindesträck och det ska bara vara 10 siffror.

Här ar jag försökt:

Console.Write("Skriv siffror");
string siffra = Console.ReadLine();

if (siffra.Length == 10 && vet inte hur man skriver det men inmatningen ska inte ha nån bindesträck)
{
koden
}

Permalänk
Medlem
Skrivet av tjalol:

förlåt skrev fel

if (line[0].IsNumber() && line.Length == 10) {
//skriv kod här
}

men jag bytte line till s då min sträng hette string s = ...

men den pekar fel på line[0].IsNumber()

vad står det i errorloggen?

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk
Medlem

den säger overflow +1 nånthing.

Permalänk
Medlem

Vet du hur man skriver till en if sats att den ska inte ha någon bindesträck och det ska bara vara 10 siffror.

Här ar jag försökt:

Console.Write("Skriv siffror");
string siffra = Console.ReadLine();

if (siffra.Length == 10 && vet inte hur man skriver det men inmatningen ska inte ha nån bindesträck)
{
koden
}

Permalänk
Medlem

personnummer (om det nu gäller det) kan ju innehålla plustecken också
Det enklaste är att kasta det till en int och sedan fånga alla exceptions. Då vet du att det bara är siffror. (google på lite c# read integer cast)
Jag skulle ha lagt det i en personnummerklass där du bland annat har en validerings metod.

EDIT: Ta bort tråden när jag ska posta... grr!
EDIT 2: Använd gärna kod taggarna!
EDIT 3: Läste denna tråden, då du tog bort den förra, och nu tror jag att jag förstår hur du tänker.

line[0] != '-'

EDIT4: Om du bara vill veta om det finns en "-" i en sträng så kan du använda dig av IndexOf(string). Den returnerar positionen av strängen, om den inte hittar någon så returnerar den -1.

Visa signatur

citera!

Permalänk
Medlem

fattar inte...men kan du visa? du kan bara copypasta koden å visa.

Permalänk
Medlem
Skrivet av tjalol:

fattar inte...men kan du visa? du kan bara copypasta koden å visa.

det verka vara rätt mycket ud inte greppat, kanske bäst att kolla med din lärare?

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk
Medlem

men den markerar med rödgrej under "line"

if (s.Length == 10 && line[0] != '-')
{
}