BILAGA F till Programvaruprojekt BRISTFÄLLIGT GRÄNSSNITT. multipc_logic_c Rev 1.

Storlek: px
Starta visningen från sidan:

Download "BILAGA F till Programvaruprojekt BRISTFÄLLIGT GRÄNSSNITT. multipc_logic_c Rev 1."

Transkript

1 BRISTFÄLLIGT GRÄNSSNITT 1(6) BILAGA F till Programvaruprojekt BRISTFÄLLIGT GRÄNSSNITT. multipc_logic_c Rev 1. Gränssnittet öppnar för att anropas på fel sätt. Jämför med delkapitlet om gränssnittstest i bokens del 3. Förbättrad variant av gränssnittet visas i bilaga G. Fetstil indikerar funktion som modifieras i Rev 2, bilaga G. #ifndef MULTIPC_LOGIC_C_H #define MULTIPC_LOGIC_C_H ========================================================== Fil : multipc_logic_c.h Författare: Håkan Lindegren MultiPC Historik : Rev 1 ========================================================== #include "problem_generator_c.h" #include "answers_log_c.h" #include "detailed_answers_log_c.h" #include "statistics_log_c.h" #include "multidb_c.h" Konstanter för felhantering vid läsning och skrivning av elevnamn typedef enum { DB_OK, DB_CORRUPT, WRITE_FAILED, DB_FULL } db_status_t; class multipc_logic_c { public: Ska returnera en unik instans av multipc_logic_c Parametrar: INGA Retur: Pekare till unik instans Felhantering: INGEN static multipc_logic_c *get_instance(); Returnerar status för elev DB För anrop INNAN get_first_pupil/get_next_pupil Parametrar: INGA Retur: Status hos elev DB: DB_OK eller DB_CORRUPT

2 BRISTFÄLLIGT GRÄNSSNITT 2(6) Felhantering: Via statusvärdet Om status är DB_CORRUPT kommer ny och tom elevfil att skapas. Anroparen kan sedan fortsätta. Jämför med detaljkraven under db_status_t get_db_status(); För att loopa över och läsa in elevnamn Parametrar: first_name: för lagring av elevs förnamn, minst 40 tecken last_name: för lagring av elevs efternamn, minst 40 tecken item_found: sätts till 1 om elev fanns, 0 annars Retur: item_found = 1 ==> det fanns en elev, namn lagrade i first_name och last_name item_found = 0 ==> Ingen elev, övriga param oförändrade Felhantering: INGEN void get_first_pupil( char last_name[], void get_next_pupil( char last_name[], Sätter aktuell elev Parametrar: first_name: elevens förnamn, max 40 tecken last_name: elevens efternamn, max 40 tecken Retur: INGEN Felhantering: INGEN void set_pupil( char last_name[] ); Ger tillbaka namn på aktuell elev Parametrar: first_name: elevens förnamn, minst 40 tecken last_name: elevens efternamn, minst 40 tecken Retur: Namndata i first_name och last_name Felhantering: INGEN void get_pupil( char last_name[] ); För lagring av nytt elevnamn Sätter också aktuell elev, d.v.s. anropar set_pupil Parametrar: first_name: elevens förnamn, max 40 tecken last_name: elevens efternamn, max 40 tecken db_status: sätts till DB_OK om det gick bra

3 BRISTFÄLLIGT GRÄNSSNITT 3(6) Retur: db_status = DB_OK ==> skrivning gick bra db_status = WRITE_FAILED ==> skrivning misslyckades, elev EJ lagrad db_status = DB_FULL ==> redan fullt i elev-db elev EJ lagrad Felhantering: Via db_status void store_name( char last_name[], db_status_t &db_status ); För inställning av tabell Parametrar: table: heltal inom [1.. 10] Retur: INGEN Felhantering: INGEN void set_table( int table ); Returnerar inställd tabell Parametrar: INGA Retur: Vald tabell, ett heltal inom [1.. 10] Felhantering: INGEN int get_table(); Ska ge nästa framslumpade problem Parametrar: operand_a: får värdet av första operanden operand_b: får värdet av andra operanden Retur: operand_a inom [1.. 10], operand_b = aktuell tabell Felhantering: INGEN void get_next_problem( int &operand_b ); Rensar den interna svarsloggen För anrop innan ett prov startar Parametrar: INGA Retur: INGEN Felhantering: INGEN void clear_answers(); För lagring av ett besvarat tal Parametrar: operand_a: värdet av första operanden [1.. 10]

4 BRISTFÄLLIGT GRÄNSSNITT 4(6) operand_b: värdet av andra operanden [1.. 10] answer: svaret [ ] elapsed_time: förfluten tid innan svaret Retur: INGEN Felhantering: INGEN void store_answer( int operand_a, int operand_b, int answer, int elapsed_time); För att loopa över de givna svaren i ett prov Parametrar: operand_a: får värdet av första operanden [1.. 10] operand_b: får värdet av andra operanden [1.. 10] answer: får svaret [ ] elapsed_time: får förfluten tid innan svaret correct_answer: får korrekt svar [ ] item_found: sätts till 1 om svar fanns, 0 annars Retur: item_found = 1 ==> svar fanns, data lagrade i övriga param item_found = 0 ==> Inget svar, övriga param oförändrade Felhantering: INGEN void get_first_answer( int &elapsed_time, void get_next_answer( int &elapsed_time, För att loopa över statistiken i vald tabell Parametrar: operand_a: får värdet av första operanden [1.. 10] operand_b: får värdet av andra operanden [1.. 10] no_of_answers: får antal avgivna svar på talet no_of_correct_answers: får antal korrekta svar [0.. no_of_answers] item_found: sätts till 1 om statistik fanns, 0 annars Retur: item_found = 1 ==> statistik fanns, data i övriga param item_found = 0 ==> Ingen statistik, övriga param oförändrade Felhantering: INGEN void get_first_stats( int &no_of_answers, int &no_of_correct_answers, void get_next_stats(

5 BRISTFÄLLIGT GRÄNSSNITT 5(6) int &no_of_answers, int &no_of_correct_answers, För att ställa in aktuellt tal för detaljstatistiken Ska kombineras med set_table() Parametrar: operand_a: värdet av första operanden Retur: INGEN Felhantering: INGEN void set_details_number( int operand_a ); Returnerar inställt details_number Parametrar: INGA Retur: Inställd detaljoperand, ett heltal inom [1.. 10] Felhantering: INGEN int get_details_number(); För att loopa över detaljstatistik för vald tabell och valt detaljnummer Parametrar: answer: får svar som avgivits correct_answer: får korrekt svar item_found: sätts till 1 om svar fanns, annars 0 Retur: item_found = 1 indikerar att det fanns ytterligare svar item_found = 0 ==> Inget svar, övriga parametrar oförändrade Felhantering: INGEN void get_first_detail( void get_next_detail( private: Privat konstruktor, allt enligt Singleton multipc_logic_c(); Den unika instansen. Instansieras av get_instance(), allt enligt Singleton multipc_logic_c *unique_instance; Instansvariabler. Instansieras av konstruktorn

6 BRISTFÄLLIGT GRÄNSSNITT 6(6) }; problem_generator_c *problem_generator; answers_log_c *answers_log; detailed_answers_log_c *detailed_answers_log; statistics_log_c *statistics_log; multidb_c *multidb; #endif MULTIPC_LOGIC_C_H Kommentar Problemet med det här gränssnittet är att flera av funktionerna tar flera heltalsparametrar efter varandra. Om värdena kastas om vid anrop kommer inte kompilator eller länkare att protestera. Förhoppningsvis ger sådana misstag tydliga fel ut mot användaren. Få av funktionerna kontrollerar indata. Det är också en brist. Behöver man skriva det, att INGEN felhantering förekommer? Om det behövs kan alltid diskuteras. Då man gör det blir bristen tydlig. Samma mall har använts ovanför varje funktionshuvud. Det förenklar arbetet för en granskare som förväntar sig just den mallen.

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans

Läs mer

7 GRUNDERNA I PROGRAMMERING

7 GRUNDERNA I PROGRAMMERING Grunderna i programmering 7 GRUNDERNA I PROGRAMMERING Detta kapitel är bokens största kapitel och kanske det viktigaste. Vi kommer här att gå igenom grunderna för sekventiell programmering. Det vi går

Läs mer

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt:

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt: 8. Objektorientering Skälet till att C++ är ett av de mest använda programspråken är att det är objektorienterat. Detta bygger vidare på begreppet struct (ursprungligen från språket C som inte är objektorienterat),

Läs mer

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer Föreläsning 4 Metodanrop switch-slingor Rekursiva metoder Repetition av de första föreläsningarna Inför seminariet Nästa föreläsning Metodanrop - primitiva typer Vid metodanrop kopieras värdet av en variabel

Läs mer

Heltal(int) Programmeringsteknik 54

Heltal(int) Programmeringsteknik 54 Heltal(int) Datatypen int används tillsammans med char, short int och long int för att lagra heltal i C. Matematisk sett finns det oändligt många heltal. På en dator måste det införas en begränsning på

Läs mer

Tillgång till patienter vid annan enhet hantering i BORIS

Tillgång till patienter vid annan enhet hantering i BORIS i Sverige Tillgång till patienter vid annan enhet hantering i BORIS I detta dokument beskrivs hur man i BORIS hanterar patienter som behöver göras tillgängliga för flera enheter i BORIS, pga. att de remitteras

Läs mer

Hur använder du som elev Fronter?

Hur använder du som elev Fronter? Hur använder du som elev Fronter? Fronter är en lärplattform. Det är ett digitalt verktyg som du som elev ska använda dig av för att hitta uppgifter, länkar och dokument från alla dina lärare, lämna in

Läs mer

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Föreläsning 3

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Föreläsning 3 Föreläsning 3 3.3 for-satsen I programmering talar man om tre sätt på vilket ett programflöde kan vara beskaffat: 1. Saker kan hända efter varandra, i sekvens. 2. Flödet kan innebära att ett val görs,

Läs mer

Problemlösarna har fyra konkreta tips på vad som gör ett lyckat studiebesök:

Problemlösarna har fyra konkreta tips på vad som gör ett lyckat studiebesök: Problemlösarna har fyra konkreta tips på vad som gör ett lyckat studiebesök: 1. Var medveten om vilken målgruppen är I Problemlösarna är det elever i årskurs 8-9 som är målgruppen. Många ungdomar i den

Läs mer

Titel. En kort sammanfattning av arbetet (max 5 meningar) eller en underrubrik skrivs under titeln. Johannes Hedbergsgymnasiet Helsingborg

Titel. En kort sammanfattning av arbetet (max 5 meningar) eller en underrubrik skrivs under titeln. Johannes Hedbergsgymnasiet Helsingborg Johannes Hedbergsgymnasiet Helsingborg Håll framsidan så enkel som möjligt! Den ser tråkig ut utan bild, men framsidan på större arbeten ska endast innehålla text och vara informativ! Placera skolans logotype

Läs mer

PROV. 10 Uppräknade datatyper

PROV. 10 Uppräknade datatyper 10 10.1 10.2 Definition 10.3 Användning och regler 10.4 switch-satsen 10.5 Iteration över samtliga värden 10.6 Instansvariabler och instanstjänster 10.7 Värdespecifika implementationer 10.1 Hur ser vi

Läs mer

Introduktion till Planering

Introduktion till Planering Introduktion till Planering Planering är ett verktyg för lärare att skapa planeringar. Läraren skapar planeringen och kopplar den till en undervisningsgrupp som finns i schemat. När planeringen kopplas

Läs mer

Checklista. Hur du enkelt skriver din uppsats

Checklista. Hur du enkelt skriver din uppsats Checklista Hur du enkelt skriver din uppsats Celsiusskolans biblioteksgrupp 2013 När du skriver en uppsats är det några saker som är viktiga att tänka på. Det ska som läsare vara lätt att få en överblick

Läs mer

Utvecklingssamtalet Hur går det för ditt barn i skolan?

Utvecklingssamtalet Hur går det för ditt barn i skolan? Utvecklingssamtalet Hur går det för ditt barn i skolan? Utvecklingssamtalet En gång varje termin ska du och ditt barn träffa läraren eller klassföre ståndaren för att ha ett utvecklingssamtal. Samtalet

Läs mer

3. Författare: Ange samtliga författare. Gör så här:

3. Författare: Ange samtliga författare. Gör så här: Gör så här: 1. Logga in i DiVA http://kau.diva-portal.org/login med ditt Net ID (studentkonto). 2. Välj publikationstyp: Studentuppsats (Examensarbete) är förvald. Klicka på fortsätt. Du kan alltid spara

Läs mer

RIKTLINJER & REGLER KRING SOCIALA MEDIER FÖR GISLAVEDS KOMMUN

RIKTLINJER & REGLER KRING SOCIALA MEDIER FÖR GISLAVEDS KOMMUN RIKTLINJER & REGLER KRING SOCIALA MEDIER FÖR GISLAVEDS KOMMUN ANTAGEN AV KOMMUNSTYRELSEN 2015-02-25 Om sociala medier Det finns flera definitioner av vad begreppet sociala medier står för. I det digitala

Läs mer

UTBILDNINGSFÖRVALTNINGEN IKT-FUNKTIONEN

UTBILDNINGSFÖRVALTNINGEN IKT-FUNKTIONEN UTBILDNINGSFÖRVALTNINGEN IKT-FUNKTIONEN UTREDNING Projekt: Författare: Version: Elever i behov av särskilt IT-stöd v3.3.017 Förvaltning/avdelning: Godkänd av beställare: Senast ändrad: Utbildningsförvaltningen,

Läs mer

TITEL. Johannes Hedberggymnasiet. Laborantens namn: Medlaboranters namn: Klass: Skola: Påbörjad: Inlämnad:

TITEL. Johannes Hedberggymnasiet. Laborantens namn: Medlaboranters namn: Klass: Skola: Påbörjad: Inlämnad: Johannes Hedberggymnasiet Ha gärna med skolans namn högst upp i vänstra hörnet, det ger framsidan lite guldkant Johannes Hedbergloggan är väldigt snygg att ha uppe i hörnet. Kopiera gärna denna. TITEL

Läs mer

Ekonomiavdelningen 2013-04-12. Åtgärda en faktura

Ekonomiavdelningen 2013-04-12. Åtgärda en faktura Åtgärda en faktura När du har fakturor hos dig för åtgärd ser du det genom att klicka på menyn Under Uppgifter arbetsflöde visas de antal fakturor som finns för behandling. Antalet fakturor framgår inom

Läs mer

Så surfar du säkrare 2 Skydda surfvanor på din dator 2 Skydda det du skickar 4 Skydda din identitet 4

Så surfar du säkrare 2 Skydda surfvanor på din dator 2 Skydda det du skickar 4 Skydda din identitet 4 Sus Andersson Så surfar du säkrare Så surfar du säkrare 2 Skydda surfvanor på din dator 2 Skydda det du skickar 4 Skydda din identitet 4 Digitalt Källskydd - en introduktion Sus Andersson, Fredrik Laurin

Läs mer

18 Eldorado 4 A Lärarbok Undervisning att skapa förutsättningar för elevers lärande

18 Eldorado 4 A Lärarbok Undervisning att skapa förutsättningar för elevers lärande Undervisning att skapa förutsättningar för elevers lärande Eleverna behöver få möta aktiviteter där de får möjlighet att konkret uppleva ett nytt begrepp eller en ny metod, reflektera gemensamt och med

Läs mer

Word och Excel. - en kort handledning Av Dag Kihlman och Martin Gellerstedt

Word och Excel. - en kort handledning Av Dag Kihlman och Martin Gellerstedt Word och Excel - en kort handledning Av Dag Kihlman och Martin Gellerstedt Innehållsförteckning 1 Microsoft Word... 1 1.1 Formatering av stilar (eller rättare sagt formatmallar)... 1 1.1.1 Vad är en formatmall?...

Läs mer

Rådgivning inom livsmedelskontrollen

Rådgivning inom livsmedelskontrollen Rådgivning inom livsmedelskontrollen FÖR FÖRETAGARE 2 Inledning I våra möten med er livsmedelsföretagare ser vi att det finns efterfrågan på mer rådgivning och information från kontrollmyndigheterna. Samtidigt

Läs mer

EPiServer 7.5 CMS. Användarhandbok för administratörer

EPiServer 7.5 CMS. Användarhandbok för administratörer EPiServer 7.5 CMS Användarhandbok för administratörer Användarhandbok för administratörer EPiServer 7.5 CMS Utgåva A, 2013 Innehållsförteckning 3 Innehållsförteckning Innehållsförteckning 3 Introduktion

Läs mer

TIPS OCH TRIX MED ENTERPRISE GUIDE JESPER ARNFLO NORDIN BI-KONSULT, SAS XPERIENCE

TIPS OCH TRIX MED ENTERPRISE GUIDE JESPER ARNFLO NORDIN BI-KONSULT, SAS XPERIENCE TIPS OCH TRIX MED ENTERPRISE GUIDE JESPER ARNFLO NORDIN BI-KONSULT, SAS XPERIENCE ÖVERBLICK 10 inställningar I Enterprise Guide 3 tips för processflöden Utforska med Data Explorer 5 användbara kortkommandon

Läs mer

Att arrangera en studiecirkel Läkemedel och äldre

Att arrangera en studiecirkel Läkemedel och äldre Att arrangera en studiecirkel Läkemedel och äldre Förslag till upplägg av en studiecirkel Studiecirkeln är en grupp om minst tre personer med gemensamt intresse för det aktuella ämnet. Cirkelledaren håller

Läs mer

Du startar Jag Vill genom öppna mappen och klicka på programfilen Jag_Vill

Du startar Jag Vill genom öppna mappen och klicka på programfilen Jag_Vill Börja med att placera mappen med JagVill på Skrivbordet. Byt namn på mappen till något passande 12 oktober Man klickar på en av de 8 rutorna och då kan en röst spelas upp om man lagt in en sådan t ex till

Läs mer

Elektronisk personvåg med kroppsanalys

Elektronisk personvåg med kroppsanalys B R U K S A N V I S N I N G Elektronisk personvåg med kroppsanalys Artikelnummer 9530-1485 1 Elektronisk personvåg med kroppsanalys Artikelnummer 9530-1485 Förutom vikt mäter vågen kroppsfett, vattenhalt,

Läs mer

ATT UNDERVISA MULTIPLIKATION OCH DIVISION MED 10, 100 OCH 1000

ATT UNDERVISA MULTIPLIKATION OCH DIVISION MED 10, 100 OCH 1000 EN UTVECKLINGSARTIKEL PUBLICERAD FÖR PEDAGOG STOCKHOLM ATT UNDERVISA MULTIPLIKATION OCH DIVISION MED 10, 100 OCH LEARNING STUDY I PRAKTIKEN Författare: Tina Edner E-post: tina.edner@stockholm.se Skola:

Läs mer