Avatar billede Smoxa Nybegynder
10. juli 2014 - 10:59 Der er 6 kommentarer

CPR nr. løbenr

Hej,

Jeg har lavet et program, hvor man indtaster hele CPR-nummeret inkl. løbenr. som så beregner om det er gyldigt.

Nu vil jeg lave lidt om på det.
Det jeg vil lave er at man indtaster de første 6 cifre i nummeret, og derefter kommer mulige løbenummer.

Mvh.
Avatar billede moddi100 Seniormester
10. juli 2014 - 11:34 #1
Og hvad er det så du har behov for hjælp til?
Hvad har du prøvet?
Hvordan ser din kode ud?
Avatar billede Smoxa Nybegynder
10. juli 2014 - 12:23 #2
Koden ser således ud til det første:

#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;

int main()
{
    system("CLS");

    int multi[10] = {4, 3, 2, 7, 6, 5, 4, 3, 2, 1};
    int i;
    string cprnr;
    int Sum = 0;

    cout << "Skriv hele CPR-nummeret uden bindestreger (-)" << endl;
    cout << "CPR: ";
    getline(cin,cprnr);
   
    if(cprnr.length() != 10)
    {
        cout << "Der er ikke indtastet 10 cifre! Pr\x9B v igen." << endl;
        main();
    }
    else{
    for(i=0; i < 10; i++)
    {
        Sum += std::stoi(cprnr.substr(i, 1)) * multi[i];
    }
    if ((Sum % 11) !=0)
    {
        system("CLS");
        cout << "--------------------------------------------" << endl;
        cout << "CPR-nummeret: " << cprnr << ". IKKE OK!" << endl << endl;
        cout << "--------------------------------------------" << endl;
    }
        else
        {
        system("CLS");
        cout << "--------------------------------------------" << endl;
        cout << "CPR-nummeret: " << cprnr << ". OK!" << endl << endl;
        cout << "--------------------------------------------" << endl;
        }

    }

    int valg;

    cout << "Hvad vil du nu?" << endl;
    cout << "1. Indtast ny CPR nummer." << endl;
    cout << "2. Luk programmet" << endl;
    cin >> valg;

    if(valg == 1)
    {
        main();
    }
    if(valg == 2)
    {
        system("exit");
    }
}
10. juli 2014 - 14:34 #3
Der er ikke længere modulus-kontrol af CPR-numre.
Avatar billede claes57 Ekspert
10. juli 2014 - 15:34 #4
Avatar billede moddi100 Seniormester
10. juli 2014 - 17:41 #5
Selvom man ikke anvender modulus-kontrol længere, er det jo et fint eksempel til indlæring.

Men Smoxa, vi ser gerne at du prøver selv, og så nævner de konkrete ting, der volder dig problemer. Hvis det er mere overordnet hvordan du skal gøre det, så er en metode (se claes57's link) at gennemløbe alle 10.000 muligheder for CPR-nummeret når du har de første 6 cifre. Ud fra det kan du så danne en liste over gyldige CPR-numre, som kan foreslås til brugeren.
Avatar billede Smoxa Nybegynder
11. juli 2014 - 07:35 #6
Mange tak for svarene. Det er en god øvelse, for at blive lidt klogere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester