Gå til innhold

Laboppgave grunnkurs programmering:


Anbefalte innlegg

Hadde en laboppgave her forleden som ble dyttet til side pga mye aktivitet i andre fag, men har lyst å få den til likevel.

 

Oppgaven går ut på å lage et program der brukeren skal skrive inn navnet og få opp en meny med forskjellige valg som endrer måten navnet blir skrevet ut på. Jeg har grunnkoden, men mangler noen få kommandoer som kan endrer på hvordan navnet skrives ut;

 

Tast ett av følgende tall:

1: Skriver ut navnet

2: Bytter rekkefølge på fornavn og etternavn

3: Skriver navnet med store bokstaver

4: Skriver navnet med små bokstaver

5: Skriver ut initialene

6: Skriver ut fornavnet

 

Foreløpig har jeg 1, 3 og 4.

 

Setter virkelig pris på svar angående dette :>

Lenke til kommentar
Videoannonse
Annonse

Går ut i fra at du lagrer input navnet i en streng her. Det enkleste ville jo vært om du kunne prompte først etter fornavn og så etternavn, slik at du lett kan lagre dem i egen strenger.

 

Hvis du skal likevel lagre hele navnet i en streng må du klare å skille om hva som er er for- og hva som er etternavnet. Dette er greit nok, men kan bli problematisk om en person har et dobbelt navn.

Feks: Ole Birger Nordmann

Her er det vanskelig å avgjøre ved hjelp av vanlig kode hvilken del av navnet som er fornavnet og hva som er etternavnet.

Hvis du tar noen forutsetninger angående dette blir det nok lettere å hjelpe deg videre

Lenke til kommentar

Setter pris på kommentaren. Jeg har spurt litt rundt angående det med å lage input for hvert navn, som ville gjøre det lettere å trikse med dem, men som du selv sa blir det problematisk om folk har mer enn to navn. Er fortsatt ganske ny innen programmering i java om du lurte :p

 

Kan vise koden jeg allerede har om det er til noe hjelp.

 

package lab3;

import java.util.Scanner;

public class Øving3 {

public static void main(String[]args){
	menyOving3();

	}
	public static void menyOving3(){
		Scanner kommando = new Scanner(System.in);

			boolean fortsett = true;
			String navn = getNavn();
			if (navn.equalsIgnoreCase("xx")){
				fortsett=false;
				System.out.println("Avslutter...");
			}

			while (fortsett){
				meny();
				int Kommando = kommando.nextInt();
				executeCom(Kommando, navn);
			}

	}

		public static String getNavn(){

			Scanner navn = new Scanner(System.in);
			System.out.println("Oppgi et navn (Navn / Etternavn)");
			String Navn = navn.nextLine();

			return Navn;
		}

		public static void meny(){

			System.out.println("1. Skriver ut navnet");
			System.out.println("2. Bytter rekkefølge på fornavn og etternavn");
			System.out.println("3. Skriver navnet med store bokstaver");
			System.out.println("4. Skriver navnet med små bokstaver");
			System.out.println("5. Skriver ut initialene");
			System.out.println("6. Skriver ut fornavnet");
			System.out.println("   Gi en kommando:	 ");

		}

		public static void executeCom(int valg, String navn){

			if (valg == 1) {
				System.out.println(navn);
			}

			else if(valg == 2){
				System.out.println();
			}

			else if(valg == 3){
				System.out.println(navn.toUpperCase());
			}

			else if(valg == 4){
				System.out.println(navn.toLowerCase());
			}

			else if(valg == 5){
				System.out.println();
			}

			else if(valg == 6){
				System.out.println();
			}
		}
}

Lenke til kommentar
  • 3 uker senere...
Hvis du har noe greier i en streng, e.g.:

 

String strengen = "En streng med mange mellomrom";

så blir

String[] splitted = strengen.split(" ");

til følgende tabell:

String[] {"En", "streng", "med", "mange", "mellomrom"}

 

Og til nummer 5 trenger du i tillegg f.eks. metoden substring. Se dokumentasjon her.

Lenke til kommentar
Feks: Ole Birger Nordmann

Her er det vanskelig å avgjøre ved hjelp av vanlig kode hvilken del av navnet som er fornavnet og hva som er etternavnet.

Hvis du tar noen forutsetninger angående dette blir det nok lettere å hjelpe deg videre

 

Det er strengttatt ikke noe problem. I norge kan du anta at alle har ETT etternavn.

 

Slik at om navnet hadde vært Ole Birger Hansen Nordmann

Så vil etternavnet være Nordmann og et formellt brev til denne personen ville vært adressert

Nordmann, Ole Birger Hansen

 

Ergo bare ET etternavn

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...