9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..

Størrelse: px
Starte visningen fra side:

Download "9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter.."

Transkript

1 9.8 Kildekode Pakke Klasse Sidenummer db Aktivitetstype 91 Behandler 91 ConnectDB 92 DagensKommentar 93 Helligdag 94 IkkePrimaerTid 94 Patient 96 Patientaftale 96 PatientAktivitet 97 Patientgruppe 98 PatientgruppeItem 99 PatientList 99 Regl (Regel) 95 ResElement 101 UgeAktivitet 101 UpdFortsaet 103 main Konstanter 104 MainUgeover 104 test Datotest 104 ugeoversigt AftalteBehandlingerModel 105 Aktivitet 106 Aktivitetsliste 106 AndreAkt 107 BookModel 108 Dagsoversigt 109 Patientbehandling 110 PatientbehandlingExt 111 Request 112 TidligereBehandlingerModel 113 Ugeoversigt 114 fortsætter.. side 88

2 Pakke Klasse Sidenummer util CprKontrol 116 Date 117 Kolonner 121 TimeMin 121 View 121 view BehandlerRenderer 122 Booking 122 Coordinate 125 East 127 FortsaetRenderer 122 PatientValg 132 TegneFlade 133 UgeView 136 side 89

3

4 3 //Class Aktivitetstype 8 9 /* 10 Klassen indholder aktivitestyperne 11 f.eks patientbehandling(5), fri 12 */ 13 package db; 14 import java.sql.*; public class Aktivitetstype{ 17 private static Aktivitetstype inst = null;//designpattern Singleton 18 private String [] aktivitetsnavn; 19 private String [] farve; private Aktivitetstype() throws Exception{ 23 /*Antal rækker findes og anvendes til init. af arrays. 24 Kun OK ved enkelbruger */ 25 ResultSet rs = ConnectDB.getDB(). 26 executequery("select Count(*) as size FROM Aktivitetstype"); int size = 0; 29 while(rs.next()){ 30 size = rs.getint("size"); 31 } 32 aktivitetsnavn = new String[size]; 33 farve = new String[size]; 34 rs = ConnectDB.getDB(). 35 executequery("select * FROM Aktivitetstype ORDER BY type"); for(int i=0; i < size; i++){ 38 rs.next(); 39 aktivitetsnavn[i] = rs.getstring("aktivitetsnavn"); 40 farve[i] = rs.getstring("farve"); 41 //Farven der beskriver akt.typ. dog ikke patinetbehandling 42 } 43 } private static void testinit(){ 46 if (inst == null) 47 { 48 try { 49 Aktivitetstype.inst = new Aktivitetstype(); 50 } 51 catch (Exception e){ 52 e.printstacktrace(); side javax.swing.joptionpane.showmessagedialog(null, 54 "Kan ikke indlæse Aktivitetstype","Fejlmeddelelse", 55 javax.swing.joptionpane.error_message); 56 } 57 //System.out.println("Aktivitetstype hentet"); 58 } 59 } public static String[] getaktivitetsnavn(){ 62 testinit(); 63 return Aktivitetstype.inst.getNavn(); 64 } private String[] getnavn(){ 67 return aktivitetsnavn; 68 } public static String getaktivitetsnavn(int type){ 71 testinit(); 72 return Aktivitetstype.inst.getNavn(type); 73 } private String getnavn(int type){ 76 return aktivitetsnavn[type]; 77 } public static String getfarve(int type){ 80 testinit(); 81 return Aktivitetstype.inst.getfarve(type); 82 } private String getfarve(int type){ 85 return farve[type]; 86 } 87 } 3 //Class Behandler 8 9 /* 10 Klassen indholder oplysninger 11 om de 2 behandlere 12 */ 13 package db; 14 import java.sql.*; 15 public class Behandler{

5 16 private static Behandler inst = null; 17 private String behandlernavn0; 18 private String behandlernavn1; 19 private String titel0; 20 private String titel1; 21 private String farve0; 22 private String farve1; private Behandler() throws Exception{ 25 ResultSet rs = ConnectDB.getDB(). 26 executequery("select * FROM Behandler"); 27 while(rs.next()){ 28 int behandlerid = rs.getint("behandlerid"); 29 String behandlernavn = rs.getstring("behandlernavn"); 30 String titel = rs.getstring("titel"); 31 String farve = rs.getstring("farve"); if(behandlerid==0){ 34 this.behandlernavn0 = behandlernavn; 35 this.titel0 = titel; 36 this.farve0 = farve; 37 } if(behandlerid==1){ 40 this.behandlernavn1 = behandlernavn; 41 this.titel1 = titel; 42 this.farve1 = farve; 43 } if(behandlerid<0 behandlerid>1){ 46 System.out.println("Fejl i behandlerid"); 47 } 48 } 49 } private static void testinit(){ 52 if (inst == null) 53 { 54 try { 55 Behandler.inst = new Behandler(); 56 } 57 catch (Exception e){ 58 e.printstacktrace(); 59 javax.swing.joptionpane.showmessagedialog(null, 60 "Kan ikke indlæse behandlerinfo","fejlmeddelelse", 61 javax.swing.joptionpane.error_message); 62 } 63 //System.out.println("Behandlere hentet"); 64 } 65 } public static String getbehandlernavn(int behandlerid){ side testinit(); 69 return Behandler.inst.getNavn(behandlerId); 70 } private String getnavn(int behandlerid){ 73 if(behandlerid==0) return behandlernavn0; 74 if(behandlerid==1) return behandlernavn1; 75 else return "Fejl i behandlerid"; 76 } public static String getbehandlertitel(int behandlerid){ 79 testinit(); 80 return Behandler.inst.getTitel(behandlerId); 81 } private String gettitel(int behandlerid){ 84 if(behandlerid==0) return titel0; 85 if(behandlerid==1) return titel1; 86 else return "Fejl i behandlerid"; 87 } public static String getbehandlerfarve(int behandlerid){ 90 testinit(); 91 return Behandler.inst.getFarve(behandlerId); 92 } private String getfarve(int behandlerid){ 95 if(behandlerid==0) return farve0; 96 if(behandlerid==1) return farve1; 97 else return "Fejl i behandlerid"; 98 } } 3 //Class ConnectDB 8 9 /* 10 Klassen skaber forbindelsen til databasen, hvis den ikke 11 allerede findes. Datakildenavn: 'Aftalekalender' 12 */ 13 package db; 14 import java.sql.*; 15 public class ConnectDB{ 16 private static Statement stmt;

6 17 public static Statement getdb()throws Exception{ 18 if (stmt == null){ 19 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 20 Connection forb = DriverManager. 21 getconnection ("jdbc:odbc:aftalekalender"); 22 stmt = forb.createstatement(); 23 System.out.println("DB etab"); 24 } 25 return stmt; 26 } 27 } 3 //Class DagensKommentar 8 9 /* 10 Klassen henter dagens kommentarer 11 */ package db; 14 import java.util.*; 15 import java.sql.*; 16 public class DagensKommentar{ 17 private static DagensKommentar inst = null; 18 private int [] datoer;//size bliver sat ved init; 19 private String [][] kommentar; private DagensKommentar() throws Exception{ 23 //Antal rækker findes og anvendes til init. af arrays 24 ResultSet rs = ConnectDB.getDB(). 25 executequery("select Count(*) as size FROM DagensKommentar"); 26 int size = 0; 27 while(rs.next()){ 28 size = rs.getint("size"); 29 } 30 datoer = new int[size]; 31 kommentar = new String[size][3]; rs = ConnectDB.getDB(). 34 executequery("select * FROM DagensKommentar ORDER BY dato"); int i = 0; 37 while(rs.next()){ 38 datoer[i] = rs.getint("dato"); 39 kommentar[i][0] = rs.getstring("kommentar"); side kommentar[i][1] = rs.getstring("kommentar1"); 41 kommentar[i][2] = rs.getstring("kommentar2"); 42 i++; 43 } 44 } private static void testinit(){ 47 if (inst == null) 48 { 49 try { 50 DagensKommentar.inst = new DagensKommentar(); 51 } 52 catch (Exception e){ 53 e.printstacktrace(); 54 javax.swing.joptionpane.showmessagedialog(null, 55 "Kan ikke indlæse DagensKommentar","Fejlmeddelelse", 56 javax.swing.joptionpane.error_message); 57 } 58 //System.out.println("DagensKommentar hentet"); 59 } 60 } public static String getdagenskommentarnavn(int dato, int linie){ 64 testinit(); 65 return DagensKommentar.inst.getKommentar(dato, linie); 66 } private String getkommentar(int dato, int linie){ 69 int index = Arrays.binarySearch(datoer,dato); 70 if (index < 0) return null; 71 return kommentar[index][linie]; 72 } public static String[][] getugekommentar(util.date datemon) 77 throws Exception{ 78 testinit(); 79 String[][] ugekom = new String[5][3];//5 dage tre linier 80 for(int i=0; i<5; i++){ 81 int dato = 82 (util.date.fromdaynumber(datemon.todaynumber()+i)) 83.getDatoIntFormat(); 84 int index = Arrays.binarySearch(inst.datoer,dato); 85 if (index >= 0) { 86 ugekom[i][0]= inst.kommentar[index][0]; 87 ugekom[i][1]= inst.kommentar[index][1]; 88 ugekom[i][2]= inst.kommentar[index][2]; 89 } 90 }

7 91 return ugekom; 92 } } 3 //Class Helligdag 8 9 /* 10 Klassen henter navne på Helligdagene 11 */ package db; 15 import java.util.*; 16 import java.sql.*; 17 public class Helligdag{ 18 private static Helligdag inst = null; 19 private int [] datoer;//size bliver sat ved init; 20 private String [] helligdagnavn; private Helligdag() throws Exception{ 23 //Antal rækker findes og anvendes til init. af arrays 24 ResultSet rs = ConnectDB.getDB(). 25 executequery("select Count(*) as size FROM Helligdag"); 26 int size = 0; 27 while(rs.next()){ 28 size = rs.getint("size"); 29 } 30 datoer = new int[size]; 31 helligdagnavn = new String[size]; rs = ConnectDB.getDB(). 34 executequery("select * FROM Helligdag ORDER BY dato;"); int i = 0; 37 while(rs.next()){ 38 datoer[i] = rs.getint("dato"); 39 helligdagnavn[i] = rs.getstring("helligdagnavn"); 40 i++; 41 } 42 } private static void testinit(){ 45 if (inst == null) side { 47 try { 48 Helligdag.inst = new Helligdag(); 49 } 50 catch (Exception e){ 51 e.printstacktrace(); 52 javax.swing.joptionpane.showmessagedialog(null, 53 "Kan ikke indlæse Helligdag","Fejlmeddelelse", 54 javax.swing.joptionpane.error_message); 55 } 56 //System.out.println("Helligdage hentet"); 57 } 58 } public static String gethelligdagnavn(int dato){ 61 testinit(); 62 return Helligdag.inst.getNavn(dato); 63 } private String getnavn(int dato){ 66 int index = Arrays.binarySearch(datoer,dato); 67 if (index < 0) return null; 68 return helligdagnavn[index]; 69 } } 3 //Class IkkePrimaerTid 8 9 /* 10 Klassen indeholder reglerne for ikke primær tid 11 Er lavet tidligt i projektet 12 Tager udgangspunkt i om det enkelte tidspunkt skal tegnes op. 13 Burde bare tegne felterne hvor der findes regler 14 Class Regl findes sidst i filen 15 */ package db; 18 import java.util.*; 19 import java.sql.*; public class IkkePrimaerTid{ 22 private ArrayList list /* Liste med de datoer og tidspunkter*/ 23 = new ArrayList();

8 24 private static IkkePrimaerTid inst = null; private IkkePrimaerTid() throws Exception{ 27 ResultSet rs = ConnectDB.getDB().executeQuery( 28 "SELECT * FROM IkkePrimaerTid ORDER BY patgrpid, ugedag, fratimemin" 29 ); 30 while(rs.next()){ 31 addiptregl( //IkkePrimaerTidsRegl 32 rs.getint("patgrpid"), rs.getint("ugedag"), 33 rs.getint("fratimemin"), rs.getint("tiltimemin")); 34 } 35 } private static void testinit(){//er tabel tidligere blev hentet? 38 if(inst == null){ 39 try { 40 IkkePrimaerTid.inst = new IkkePrimaerTid(); 41 } 42 catch (Exception e){ 43 e.printstacktrace(); 44 javax.swing.joptionpane.showmessagedialog(null, 45 "Kan ikke indlæse ikkeprimaertid","fejlmeddelelse", 46 javax.swing.joptionpane.error_message); 47 } 48 //System.out.println ("IkkePrimaerTid hentet"); 49 } 50 } void addiptregl(int patgrpid, int ugedag, int fratimmin, int tiltimmin){ 54 list.add( new Regl(patGrpId,ugeDag,fraTimMin,tilTimMin)); 55 } public static boolean ikkeprimaertid(int patgrpid, int ugedag, int TimeMin) { 58 testinit(); 59 return IkkePrimaerTid.inst.ikkePriTid(patGrpId,ugeDag,TimeMin); 60 } private boolean ikkepritid(int patgrpid, int ugedag, int TimeMin){ 63 /*Reglerne er sorteret i (patgrpid, ugedag, fratimemin), hvorved 64 antallet af test kan begrænses*/ 65 Iterator i = list.iterator(); 66 while( i.hasnext() ){ 67 Regl regl = (Regl) i.next(); 68 //Regler indlæs 69 int patgrpidr = regl.getpatgrpid(); 70 int ugedagr = regl.getugedag(); 71 int fratimeminr = regl.getfratimemin(); side int tiltimeminr = regl.gettiltimemin(); 73 //Hvis det aktuelle patgrpid er mindre end regl kan test stoppes 74 if(patgrpid < patgrpidr) return false; 75 if(patgrpid == patgrpidr){ 76 //Hvis den aktuelle ugedag er mindre end regl kan test stoppes 77 if(ugedag < ugedagr) return false; 78 //Hvis den ugedag der spørges om er før regl return false 79 if(patgrpid == patgrpidr && ugedag == ugedagr){ 80 if(fratimeminr <= TimeMin && TimeMin < tiltimeminr) 81 return true; 82 } 83 } 84 } 85 return false; 86 } 87 /* 88 public static void main(string[] args)throws Exception{ 89 System.out.println(IkkePrimaerTid.ikkePrimaerTid(0, 1, 1000)); 90 System.out.println(inst.list); 91 System.out.println("PatGrpId => altid false :"+IkkePrimaerTid.ikkePrimaerTid(0, 1, 1130)); 92 System.out.println("før false :"+IkkePrimaerTid.ikkePrimaerTid(1, 1, 1045)); 93 System.out.println("primo true :"+IkkePrimaerTid.ikkePrimaerTid(1, 1, 1100)); 94 System.out.println("true :"+IkkePrimaerTid.ikkePrimaerTid(1, 1, 1130)); 95 System.out.println("ultimo true :"+IkkePrimaerTid.ikkePrimaerTid(1, 1, 1200)); 96 System.out.println("efter false: "+IkkePrimaerTid.ikkePrimaerTid(1, 1, 1230)); 97 System.out.println("IkkePrimoTid grp2 mandag true :"+IkkePrimaerTid.ikkePrimaerTid(2, 0, 1015)); 98 System.out.println("IkkePrimoTid grp1 onsdag false :"+IkkePrimaerTid.ikkePrimaerTid(1, 2, 845)); 99 System.out.println("IkkePrimoTid grp1 onsdag true :"+IkkePrimaerTid.ikkePrimaerTid(1, 2, 900)); 100 System.out.println("IkkePrimoTid grp1 onsdag false :"+IkkePrimaerTid.ikkePrimaerTid(1, 2, 1015)); 101 System.out.println("IkkePrimoTid grp1 fredag false :"+IkkePrimaerTid.ikkePrimaerTid(1, 4, 1000)); 102 } 103 */ 104 } class Regl{ 108 private int patgrpid; 109 private int ugedag; 110 private int fratimemin;

9 111 private int tiltimemin; Regl(int patgrpid, int ugedag, int fratimemin, int tiltimemin){ 114 this.patgrpid = patgrpid; 115 this.ugedag = ugedag; 116 this.fratimemin = fratimemin; 117 this.tiltimemin = tiltimemin; 118 } public int getpatgrpid(){ 121 return patgrpid; 122 } public int getugedag(){ 125 return ugedag; 126 } public int getfratimemin(){ 129 return fratimemin; 130 } public int gettiltimemin(){ 133 return tiltimemin; 134 } 135 public String tostring(){ 136 return (patgrpid+" "+ugedag+" "+fratimemin+" "+tiltimemin); 137 } 138 } 3 //Class Patient 8 9 /* 10 Klassen patient er element i PatientList 11 */ package db; public class Patient{ 17 private String patcprnr; 18 private String patnavn; 19 private int patgrpid; 20 private int pataftaleid; 21 private String patbemaerkning; side public Patient(String patcprnr, String patnavn, int patgrpid, 24 int pataftaleid,string patbemaerkning){ 25 this.patcprnr = patcprnr; 26 this.patnavn = patnavn; 27 this.patgrpid = patgrpid; 28 this.pataftaleid = pataftaleid; 29 this.patbemaerkning = patbemaerkning; 30 } public String getpatcprnr(){ 33 return patcprnr; 34 } public String getpatnavn(){ 37 return patnavn; 38 } public int getpatgrpid(){ 41 return patgrpid; 42 } public void setpatgrpid(int patgrpid){ 45 this.patgrpid = patgrpid; 46 } public int getpataftaleid(){ 49 return pataftaleid; 50 } public void setpataftaleid(int pataftaleid){ 53 this.pataftaleid=pataftaleid; 54 } public String getpatbemaerkning(){ 57 return patbemaerkning; 58 } public String tostring(){ 61 return patnavn+" "+patgrpid+" "+patbemaerkning; 62 } 63 } 3 //Class Patientaftale 8

10 9 package db; 10 import java.sql.*; 11 public class Patientaftale{ 12 private static Patientaftale inst = null; 13 private String [] pataftalenavn; private Patientaftale() throws Exception{ 16 //Antal rækker findes og anvendes til init. af arrays 17 ResultSet rs = ConnectDB.getDB().executeQuery( 18 "SELECT Count(*) as size FROM Patientaftale"); 19 int size = 0; 20 while(rs.next()){ 21 size = rs.getint("size"); 22 } 23 pataftalenavn = new String[size]; rs = ConnectDB.getDB().executeQuery( 26 "SELECT * FROM Patientaftale ORDER BY pataftaleid;"); for(int i=0; i < size; i++){ 29 rs.next(); 30 pataftalenavn[i] = rs.getstring("pataftalenavn"); 31 } } private static void testinit(){ 36 if (inst == null) 37 { 38 try { 39 Patientaftale.inst = new Patientaftale(); 40 } 41 catch (Exception e){ 42 e.printstacktrace(); 43 javax.swing.joptionpane.showmessagedialog(null, 44 "Kan ikke indlæse Patientaftale","Fejlmeddelelse", 45 javax.swing.joptionpane.error_message); 46 } 47 //System.out.println("Patientaftale hentet"); 48 } 49 } public static String[] getpataftale(){ 52 testinit(); 53 return Patientaftale.inst.patAftaleNavn; 54 } public static String getpataftalenavn(int pataftaleid){ 57 testinit(); 58 return Patientaftale.inst.getNavn(patAftaleId); 59 } 60 side private String getnavn(int pataftaleid){ 62 return pataftalenavn[pataftaleid]; 63 } } 3 //Class PatientAktivitet 9 Henter patientbehandlingsoplysninger til de to JTable 10 returnerer ArrayListen patbehlist 11 afgrænsningen er ud fra historik dvs. før eller efter dd */ package db; 16 import java.sql.*; 17 import ugeoversigt.*; 18 import util.date; 19 import java.util.arraylist; public class PatientAktivitet{ public static ArrayList hentpatientbehandlinger(date idag, 24 int patidnr, boolean historik ){ 25 try{ 26 ArrayList patbehlist = new ArrayList(); String datovalg; 29 if(!historik) 30 datovalg = ">="; 31 else 32 datovalg = "<"; String SQL = 35 "SELECT Aktivitet.aktivitetId, patidnr, fortsaet,"+ 36 " dato, fratid, tiltid, behandlerid, behandling," 37 +" us, udeblivelse, sekundaerakt "+ 38 "FROM Patientbehandling RIGHT JOIN Aktivitet ON " 39 +"Patientbehandling.aktivitetId ="+ 40 " Aktivitet.aktivitetId WHERE patidnr="+patidnr 41 +" AND dato"+ datovalg +Date.DateInt(idag) + 42 " ORDER BY dato, tiltid"; ResultSet rs = ConnectDB.getDB().executeQuery(SQL);

11 45 while (rs.next()){ 46 int aktivitetid = rs.getint("aktivitetid"); 47 int datoint = rs.getint("dato"); 48 Date dato = new Date(datoInt/10000, 49 ((datoint%10000)/100),(datoint%100)); 50 int behandlerid = rs.getint("behandlerid"); 51 int fratid = rs.getint("fratid"); 52 int tiltid = rs.getint("tiltid"); 53 boolean sekundaerakt =rs.getboolean("sekundaerakt"); 54 String behandling = rs.getstring("behandling"); 55 int fortsaet = rs.getshort("fortsaet"); 56 boolean us = rs.getboolean("us"); 57 boolean udeblivelse = rs.getboolean("udeblivelse"); patbehlist.add(new PatientbehandlingExt(aktivitetId, 60 fratid,tiltid, patidnr, sekundaerakt, behandling, 61 fortsaet, dato,behandlerid, us, udeblivelse)); 62 } 63 return patbehlist; 64 } 65 catch(exception e){ 66 javax.swing.joptionpane.showmessagedialog(null, 67 "Kan ikke indlæse PatientAktivitet","Fejlmeddelelse", 68 javax.swing.joptionpane.error_message); 69 return new ArrayList(); 70 } 71 } 72 } 3 //Class Patientgruppe 9 PatientgruppeItem er sidst i filen 10 */ package db; 13 import java.util.*; 14 import java.sql.*; public class Patientgruppe{ 17 private ArrayList list/*m. patientgrupper*/ = new ArrayList(); 18 private static Patientgruppe inst = null; private Patientgruppe() throws Exception{ side ResultSet rs = ConnectDB.getDB(). 22 executequery("select * FROM Patientgruppe"); 23 while(rs.next()){ addpatientgruppeitem( 26 rs.getint("patgrpid"),rs.getstring("patgrpnavn"), rs.getstring 27 ("farveledigtid"), rs.getstring("farveikkeprim")); 28 } 29 } private static void testinit(){ 32 if(inst == null){ 33 try { 34 Patientgruppe.inst = new Patientgruppe(); 35 } 36 catch (Exception e){ 37 e.printstacktrace(); 38 } 39 //System.out.println ("Patientgrupper hentet"); 40 } 41 } void addpatientgruppeitem(int patgrpid, String patgrpnavn, 45 String farveledigtid, String farveikketid){list.add(patgrpid, 46 new PatientgruppeItem(patGrpNavn,farveLedigTid, farveikketid)); 47 } public static String[] getpatgrp(){ 50 testinit(); 51 int size = inst.getlistsize(); 52 String [] res = new String[size]; 53 for(int i=0;i<size;i++){ 54 res[i] = getnavn(i); 55 } 56 return res; 57 } private int getlistsize(){ 60 return list.size(); 61 } public static String getnavn(int patgrpid) { 64 testinit(); 65 return Patientgruppe.inst.getPatGrpNavn(patGrpId); 66 } private String getpatgrpnavn(int patgrpid){ 69 return ((PatientgruppeItem)list.get(patGrpId)).getPatGrpNavn(); 70 } public static String getfarveledigtid(int patgrpid) {

12 73 testinit(); 74 return Patientgruppe.inst.getPatGrpFarveLedigTid(patGrpId); 75 } private String getpatgrpfarveledigtid(int patgrpid){ 78 return ((PatientgruppeItem)list.get(patGrpId)). 79 getfarveledigtid(); 80 } public static String getfarveikkeprim(int patgrpid) { 83 testinit(); 84 return Patientgruppe.inst.getGrpFarveIkkePrim(patGrpId); 85 } private String getgrpfarveikkeprim(int patgrpid){ 88 return ((PatientgruppeItem)list.get(patGrpId)). 89 getfarveikkeprim(); 90 } 91 /* 92 public static void main(string[] args)throws Exception{ 93 System.out.println(Patientgruppe.getNavn(0)); 94 System.out.println(Patientgruppe.getNavn(2)); 95 String[] test = Patientgruppe.getPatGrp(); 96 for(int i=0;i<test.length;i++){ 97 System.out.println(test[i]); 98 } 99 } 100 */ 101 } class PatientgruppeItem{ 105 private String patgrpnavn; 106 private String farveledigtid; 107 private String farveikkeprim; PatientgruppeItem(String patgrpnavn, String farveledigtid, 110 String farveikkeprim){ 111 this.patgrpnavn = patgrpnavn; 112 this.farveledigtid = farveledigtid; 113 this.farveikkeprim = farveikkeprim; 114 } public String getpatgrpnavn(){ 117 return patgrpnavn; 118 } public String getfarveledigtid(){ 121 return farveledigtid; 122 } public String getfarveikkeprim(){ side return farveikkeprim; 126 } 127 } 3 //Class PatientList package db; 11 import java.util.*; 12 import java.sql.*; public class PatientList{ 15 private ArrayList list/*med patienter*/ = new ArrayList(); 16 private static PatientList inst = null; private PatientList() throws Exception{ 19 ResultSet rs = ConnectDB.getDB(). 20 executequery("select * FROM Patient ORDER BY patidnr"); 21 int index=0; 22 while(rs.next()){ 23 int tabelindex = rs.getint("patidnr"); 2Ved slettede patienter oprettes for sikre index 25 while(tabelindex>index){ 26 addpatient(index,"","patient slettet",0,0,""); 27 index++; 28 } addpatient( 31 index, rs.getstring("patcprnr"), rs.getstring("patnavn"), 32 rs.getint("patgrpid"), rs.getint("pataftaleid"), 33 rs.getstring("patbemaerkning")); 34 index++; 35 } 36 } private static void testinit(){//er Patientdata blev hentet? 39 if(inst == null){ 40 try { 41 PatientList.inst = new PatientList(); 42 } 43 catch (Exception e){ 44 e.printstacktrace(); 45 javax.swing.joptionpane.showmessagedialog(null,

13 46 "Kan ikke indlæse patienter","fejlmeddelelse", 47 javax.swing.joptionpane.error_message); 48 } 49 //System.out.println ("Patientliste hentet"); 50 } 51 } void addpatient( int patidnr, String patcprnr, String patnavn, 55 int patgrpid, int pataftaleid,string patbemaerkning){ 56 list.add(patidnr, new Patient(patCprNr, patnavn, patgrpid, 57 pataftaleid, patbemaerkning)); 58 } public static Patient getpatient(int patidnr){ 61 testinit(); 62 return PatientList.inst.getPat(patIdNr); 63 } private Patient getpat(int patidnr){ 66 return ((Patient)list.get(patIdNr)); 67 } public static int setpatient(patient pat) throws Exception{ 70 int index, indexdb, antalopd; 71 testinit(); 72 PatientList.inst.list.add(pat); 73 index = inst.list.indexof(pat); 74 indexdb=getdbindex()+1; 75 //System.out.println("pi"+index+" dbi"+indexdb); antalopd = ConnectDB.getDB().executeUpdate 78 ("INSERT INTO Patient VALUES ("+index+ "," + 79 "'"+pat.getpatcprnr()+"', '"+pat.getpatnavn()+"',"+ 80 pat.getpatgrpid()+","+ 81 +pat.getpataftaleid()+",'"+pat.getpatbemaerkning()+"' )"); //Kontrol af antal opdateringer 84 if (antalopd!=1){ 85 javax.swing.joptionpane.showmessagedialog(null, 86 "PatientList, indeksfejl setpatient","fejlmeddelelse", 87 javax.swing.joptionpane.error_message); 88 } return index;//der svarer til patidnr; 91 } public static void updatepatient(int patidnr, Patient pat) 94 throws Exception{ 95 int antalopd; 96 testinit(); side PatientList.inst.list.set(patIdNr, pat); 98 antalopd = ConnectDB.getDB().executeUpdate 99 ("UPDATE Patient SET patcprnr= '"+ 100 pat.getpatcprnr()+"', patnavn= '"+pat.getpatnavn()+"', "+ 101 "patgrpid= "+pat.getpatgrpid()+", pataftaleid = "+ 102 pat.getpataftaleid()+", patbemaerkning ='"+pat. 103 getpatbemaerkning()+"' WHERE patidnr ="+patidnr); //Kontrol af antal opdateringer 106 if (antalopd!=1){ 107 javax.swing.joptionpane.showmessagedialog(null, 108 "PatientList, indeksfejl updatepatient","fejlmeddelelse", 109 javax.swing.joptionpane.error_message); 110 } } public static void sletpatient(int patidnr) throws Exception{ 115 int antalopd = ConnectDB.getDB().executeUpdate 116 ("DELETE patidnr FROM Patient WHERE patidnr="+patidnr); 117 inst = null; 118 testinit(); 119 } private static int getdbindex() throws Exception{ 123 testinit(); 124 ResultSet rs = ConnectDB.getDB(). 125 executequery("select MAX(patIdNr) AS antalid FROM Patient "); 126 rs.next(); 127 return rs.getint("antalid"); 128 } public static String getpatientcprnr(int patidnr) { 131 testinit(); 132 return PatientList.inst.getPatCprNr(patIdNr); 133 } private String getpatcprnr(int patidnr){ 136 return ((Patient)list.get(patIdNr)).getPatCprNr(); 137 } public static String getpatientnavn(int patidnr) { 140 testinit(); 141 return PatientList.inst.getPatNavn(patIdNr); 142 } private String getpatnavn(int patidnr){ 145 return ((Patient)list.get(patIdNr)).getPatNavn(); 146 } public static int getpatientgrpid(int patidnr) {

14 149 testinit(); 150 return PatientList.inst.getPatGrpId(patIdNr); 151 } private int getpatgrpid(int patidnr){ 154 return ((Patient)list.get(patIdNr)).getPatGrpId(); 155 } public static int getpatientaftaleid(int patidnr) { 158 testinit(); 159 return PatientList.inst.getPatAftaleId(patIdNr); 160 } private int getpataftaleid(int patidnr){ 163 return ((Patient)list.get(patIdNr)).getPatAftaleId(); 164 } public static String getpatientbem(int patidnr) { 167 testinit(); 168 return PatientList.inst.getPatBemaerkning(patIdNr); 169 } private String getpatbemaerkning(int patidnr){ 173 return ((Patient)list.get(patIdNr)).getPatBemaerkning(); 174 } public static ArrayList soegpatientfracpr(string soegecprnr) 177 throws Exception{ 178 ArrayList soegeres = new ArrayList(); 179 soegecprnr = soegecprnr+"%"; 180 ResultSet rs = ConnectDB.getDB(). 181 executequery("select patnavn,patidnr FROM Patient"+ 182 " WHERE patcprnr Like '"+soegecprnr+"' "); 183 while(rs.next()){ 184 soegeres.add(new ResElement(rs.getInt("patIdNr"), 185 rs.getstring("patnavn"))); 186 } 187 return soegeres; 188 } public static ArrayList soegpatient(string soegenavn) 191 throws Exception{ 192 ArrayList soegeres = new ArrayList(); 193 soegenavn = "%"+soegenavn+"%"; 194 ResultSet rs = ConnectDB.getDB(). 195 executequery("select patnavn,patidnr FROM Patient"+ 196 " WHERE patnavn Like '"+soegenavn+"' "); 197 while(rs.next()){ 198 soegeres.add(new ResElement(rs.getInt("patIdNr"), 199 rs.getstring("patnavn"))); 200 } side return soegeres; 202 } } 3 //Class ResElement 9 Objekter af klassen returneres ved søgning af patient 10 Se soegpatient() i PatientList 11 */ package db; 14 public class ResElement{ 15 int patidnr; 16 String patnavn; 17 ResElement(int patidnr, String patnavn){ 18 this.patidnr = patidnr; 19 this.patnavn = patnavn; 20 } 21 public String tostring(){ 22 return (patidnr+" "+patnavn); 23 } public int getpatidnr(){ 26 return patidnr; 27 } 28 public String getpatnavn(){ 29 return patnavn; 30 } } 3 //Class UgeAktivitet 9 Henter, gemmer og sletter patientbehandlinger og anden akt. 10 */

15 11 12 package db; 13 import java.sql.*; 14 import ugeoversigt.*; 15 import util.date; public class UgeAktivitet{ public static void hentaktiviteter(ugeoversigt uo, Date datemon, 20 Date datefri )throws Exception{ 21 String minsql = 22 "SELECT Aktivitet.aktivitetId, dato, behandlerid, patidnr, "+ 23 "fratid, tiltid, type, sekundaerakt, behandling, fortsaet FROM " 24 +"Patientbehandling RIGHT JOIN Aktivitet ON Patientbehandling."+ 25 "aktivitetid = Aktivitet.aktivitetId WHERE dato>=" 26 +Date.DateInt(dateMon)+ " AND dato<= "+Date.DateInt(dateFri)+ 27 " ORDER BY dato, behandlerid, fratid, sekundaerakt DESC "; ResultSet rs = ConnectDB.getDB().executeQuery(minSQL); 31 while (rs.next()){ 32 int aktivitetid = rs.getint("aktivitetid"); 33 int datoint = rs.getint("dato"); 34 Date dato = new Date 35 (datoint/10000,((datoint%10000)/100),(datoint%100)); 36 int behandlerid = rs.getint("behandlerid"); 37 int kolnr = util.kolonner.getkolnr(dato.weekday(), 38 behandlerid); 39 int patid = rs.getint("patidnr"); 40 int fratid = rs.getint("fratid"); 41 int tiltid = rs.getint("tiltid"); 42 int type = rs.getint("type"); 43 boolean sekundaerakt =rs.getboolean("sekundaerakt"); 44 String behandling = rs.getstring("behandling"); 45 int fortsaet = rs.getshort("fortsaet"); switch(behandlerid){ 48 case 0: //Tandlæge 49 uo.getday(dato.weekday()).getakttandlaege(). 50 addaktiviteter(aktivitetid, fratid,tiltid, 51 kolnr,patid,sekundaerakt,type,behandling,fortsaet); 52 break; 53 case 1: //Tandplejer 54 uo.getday(dato.weekday()).getakttandplejer(). 55 addaktiviteter(aktivitetid, fratid,tiltid,kolnr,patid, 56 sekundaerakt,type,behandling,fortsaet); 57 break; 58 default: 59 javax.swing.joptionpane.showmessagedialog(null, 60 "Fejl i aktiviteter, indlæsningsswitch", 61 "Fejlmeddelelse", 62 javax.swing.joptionpane.error_message); side } } 66 } public static void gemaktivitet(ugeoversigt.aktivitet akt, 69 util.date date ) throws Exception{ 70 int antalopd;//antal opdateringer, 1 forventes int index=0; 73 int dato = date.getyear()*10000+date.getmonth()* date.getday(); 75 String SQL = 76 "SELECT MAX(aktivitetId) AS index FROM Aktivitet"; ResultSet rs = ConnectDB.getDB().executeQuery(SQL); 79 while (rs.next()){ 80 index = rs.getint("index"); 81 } 82 index++; if (akt.getakttype()==5){ 85 /*Det er bedst at opdatere Patientbehandling først for hvis 86 det går galt bliver ingen af tabellerne opd */ 87 Patientbehandling pbeh = (Patientbehandling) akt; 88 SQL = "INSERT INTO Patientbehandling VALUES("+index+","+ 89 pbeh.getpatidnr()+","+pbeh.getsekakt()+",'"+ 90 pbeh.getbehandling()+"',false,false,+0)"; 91 antalopd = ConnectDB.getDB().executeUpdate(SQL); if (antalopd!=1){ 94 javax.swing.joptionpane.showmessagedialog(null, 95 "Kan ikke gemme patientbehandlinger korrekt", 96 "Fejlmeddelelse", 97 javax.swing.joptionpane.error_message); 98 } } SQL = "INSERT INTO Aktivitet VALUES("+index+","+ 103 (akt.getkolnr()%2)+","+dato+","+(akt.getfratidspunkt())+ 104 ","+(akt.gettiltidspunkt())+","+(akt.getakttype())+")"; antalopd = ConnectDB.getDB().executeUpdate(SQL); if (antalopd!=1){ 109 javax.swing.joptionpane.showmessagedialog(null, 110 "Kan ikke gemme i tabellen Aktivitet korrekt", 111 "Fejlmeddelelse", 112 javax.swing.joptionpane.error_message); 113 } 114

16 115 } public static void sletaktivitet(ugeoversigt.aktivitet akt) 119 throws Exception{ 120 int aktivitetid = akt.getaktivitetid(); 121 int akttype = akt.getakttype(); 122 int antalopd; 123 String SQL, besked; if(akt.getakttype() == 5){ 126 SQL = "DELETE FROM patientbehandling WHERE aktivitetid = "+ 127 aktivitetid; 128 antalopd = ConnectDB.getDB().executeUpdate(SQL); 129 if (antalopd!=1){ 130 javax.swing.joptionpane.showmessagedialog(null, 131 "Kan ikke slette i tabellen patientbehandling korrekt", 132 "Fejlmeddelelse", 133 javax.swing.joptionpane.error_message); 134 } 135 } SQL = "DELETE FROM Aktivitet WHERE aktivitetid = " 138 +aktivitetid; 139 antalopd = ConnectDB.getDB().executeUpdate(SQL); 140 if (antalopd!=1){ 141 javax.swing.joptionpane.showmessagedialog(null, 142 "Kan ikke slette i tabellen Aktivitet korrekt", 143 "Fejlmeddelelse", 144 javax.swing.joptionpane.error_message); 145 } 146 } } 3 //Class UpdFortsaet 9 Opdaterer fortsatbehandling i databasen 10 */ package db; 13 import java.sql.*; 14 public class UpdFortsaet{ 15 side public static void updfortsaet() throws Exception{ 18 //Burde være afgrænset på dag Statement stmt = ConnectDB.getDB(); 21 int res; 22 String [] SQL = new String[5]; 23 String SQLdel0 = "UPDATE QPatientbehandling AS kopia,"+ 24 " QPatientbehandling AS kopib SET kopia.fortsaet ="; 25 String SQLdel1 = 26 "WHERE kopia.patidnr = kopib.patidnr AND"+ 27 " kopia.dato = kopib.dato AND "; 28 String SQLdel2a = 29 " AND kopia.behandlerid = 0 AND kopib.behandlerid =1"; 30 String SQLdel2b = 31 " AND kopia.behandlerid = 1 AND kopib.behandlerid =0"; //Slettet poster der ikke er Null inden der opdateres igen 34 SQL[0] = 35 "UPDATE Patientbehandling SET Patientbehandling.fortsaet =" 36 +" null WHERE Patientbehandling.fortsaet <> null"; 37 String SQLStart;//Start SQL-streng kan flyttes over her 38 //Opdater 1 Til tandlæge 39 SQL[1] = 40 SQLdel0+" 1 "+SQLdel1+"kopiA.fraTid = kopib.tiltid"+sqldel2a; 41 //Opdater 2 til tandplejer 42 SQL[2] = 43 SQLdel0+" 2 "+SQLdel1+"kopiA.tilTid = kopib.fratid"+sqldel2b; 4Opdater 3 Fra tandlæge 45 SQL[3] = 46 SQLdel0+" 3 "+SQLdel1+"kopiA.fraTid = kopib.tiltid"+sqldel2b; 47 //Opdater 4 Til tandplejer3 Fra tandlæge 48 SQL[4] = 49 SQLdel0+" 4 "+ SQLdel1+"kopiA.tilTid = kopib.fratid"+sqldel2a; for(int i=0; i<5;i++){ 52 res = stmt.executeupdate(sql[i]); 53 } 54 } } 57

17 1 /********************************************************************* 3 //Class Konstanter 9 Opsætter navn samt første og sidste tid 10 */ 11 package main; public class Konstanter{ 14 public final static String KLINIK_NAVN = 15 "Aftalekalender for tandlæge Annelise Bom";//Titel til vindue 16 public final static int START_TIME = 8;//Tidligste tid 8~kl.8:00 17 public final static int SLUT_TIME = 18;//Seneste tid 18 } 3 //Class MainUgeover 9 Klassen har mainmetoden der starter starter programmet 10 */ 11 package main; 12 import ugeoversigt.*; 13 public class MainUgeover{ 14 public static void main( String[] args ) throws Exception{ 15 new view.ugeview(konstanter. 16 KLINIK_NAVN, new ugeoversigt.ugeoversigt()); 17 } 18 } 3 //Class Datotest 9 Kontrol af dato og ugeberegning for og */ side package test; 13 import java.sql.*; 14 import util.date; 15 import db.connectdb; public class Datotest{ 18 private int linie; //Dato før teststart , fase 1 21 private Date aktdato = new Date(1994,12,31); //Dato før teststart , fase 2 24 private final Date aktdato2 = new Date(2094,12,31); Datotest() throws Exception{ 27 ResultSet rs = ConnectDB.getDB(). 28 executequery("select * FROM Testdato"); while(rs.next()){ 31 linie = rs.getint("linie"); 32 if(linie == 4019){ //skift til fase 2 33 aktdato = aktdato2;//dato før teststart , fase 2 34 } if(linie >= 4019)//true = fase 2 37 linie = linie-4018;//linier fra fase1 trækkes fra int dag = rs.getint("dag"); 40 int maaned = rs.getint("maaned"); 41 int aar = rs.getint("aar"); 42 int uge = rs.getint("uge"); 43 //Dato ved beregning 44 Date nrtest = 45 Date.fromdaynumber(aktDato.todaynumber()+linie); //Direkte fra tabel 48 Date test = new Date(aar, maaned, dag); 49 /* 50 Hvis ugenummer beregnet ud fra datoen ikke er lig med 51 tabelugenr 52 */ 53 if(test.weeknumber()!=uge){ 54 System.out.print("Fejl i ugeberegning"); 55 System.out.print(test.getDatoLangStreng()); 56 System.out.println 57 ("weeknumber: "+test.weeknumber()+" uge: "+uge+" "); 58 } if(!ensdatoer(nrtest, test)){//hvis datoer ikke er ens 61 System.out.print("Fejl i datoberegning"); 62 System.out.print(" nrtest: "+nrtest.getdatolangstreng());

18 63 System.out.println(" test: "+test.getdatolangstreng()); 64 } 65 } 66 System.out.println("Færdig"); 67 } 68 public static boolean ensdatoer(date dato1, Date dato2){ 69 if(dato1.getyear()!= dato2.getyear()) 70 return false; 71 if(dato1.getmonth()!= dato2.getmonth()) 72 return false; 73 if(dato1.getday()!= dato2.getday()) 74 return false; 75 return true; 76 } public static void main(string[] args) throws Exception{ 79 Datotest test = new Datotest(); 80 } 81 } 3 //Class AftalteBehandlingerModel 9 Model der indeholder data til den øverste JTable 10 Henter data i ugeoversigten der har data for aktuel patient. 11 */ 12 package ugeoversigt; 13 import javax.swing.table.*; 14 import java.util.arraylist; 15 import util.date; public class AftalteBehandlingerModel extends AbstractTableModel { 18 private Ugeoversigt ugeoversigt; 19 private boolean [] flyt ; 20 private boolean [] slet ; public AftalteBehandlingerModel(Ugeoversigt ugeoversigt){ 23 this.ugeoversigt = ugeoversigt; 24 slet = new boolean[ugeoversigt.getaftaltebeh().size()]; 25 flyt = new boolean[ugeoversigt.getaftaltebeh().size()]; 26 } public String getcolumnname(int kolnr){ 29 switch(kolnr){ 30 case 0: 31 return " "; side case 1: 33 return "Dato"; 34 case 2: 35 return "Tid"; 36 case 3: 37 return "Behandler"; 38 case 4: 39 return "Behandling"; 40 case 5: 41 return "Flyt"; 42 case 6: 43 return "Slet"; 44 default: 45 return null; 46 } 47 } public int getcolumncount(){ 50 return 7; 51 } public int getrowcount(){ 54 return ugeoversigt.getaftaltebeh().size(); 55 } public boolean iscelleditable(int row, int kolnr){ 58 return kolnr > 4;//Kun flyt og slet kan sættes 59 } public void setvalueat( Object value, int row, int kolnr){ if( kolnr == 5){ 64 Boolean b = (Boolean) value; 65 flyt[row] = b.booleanvalue(); 66 } 67 if( kolnr == 6){ 68 Boolean b = (Boolean) value; 69 slet[row] = b.booleanvalue(); 70 } 71 firetabledatachanged(); 72 } public Object getvalueat (int row, int kolnr){ 76 switch( kolnr ){ 77 case 0: return new Integer(((PatientbehandlingExt)ugeoversigt. 78 getaftaltebeh().get(row)).getfortsaet()); case 1: return ((PatientbehandlingExt)ugeoversigt. 81 getaftaltebeh().get(row)).getdato().getdatomellem(); case 2:

19 84 int fratid = ((PatientbehandlingExt)ugeoversigt. 85 getaftaltebeh().get(row)).getfratidspunkt(); 86 int tiltid = ((PatientbehandlingExt)ugeoversigt. 87 getaftaltebeh().get(row)).gettiltidspunkt(); 88 return Date.ttmmToString(fraTid)+"-"+ 89 Date.ttmmToString(tilTid); case 3: return new Integer( 92 ((PatientbehandlingExt)ugeoversigt.getAftalteBeh().get(row)) 93.getBehandlerId()); case 4: return 96 ((PatientbehandlingExt)ugeoversigt.getAftalteBeh().get(row)) 97.getBehandling(); case 5: return new Boolean(flyt[row]); case 6: return new Boolean(slet[row]); default: return null; 104 } 105 } public Class getcolumnclass(int column){ 108 Class datatype = super.getcolumnclass(column); 109 if(column > 4){ 110 datatype = Boolean.class; 111 } 112 return datatype; 113 } 114 } 19 int kolnr){ 20 this.aktivitetid = aktivitetid; 21 this.fratidspunkt = fratidspunkt; 22 this.tiltidspunkt = tiltidspunkt; 23 this.kolnr = kolnr; 24 } 25 public abstract String tostring(); 26 public abstract void tegnaftale 27 (java.awt.graphics bg, view.coordinate coord); 28 public abstract boolean aktiveret(); public int getaktivitetid(){ 31 return aktivitetid; 32 } public int getfratidspunkt(){ 35 return fratidspunkt; 36 } public int gettiltidspunkt(){ 39 return tiltidspunkt; 40 } public int getkolnr(){ 43 return kolnr; 44 } public abstract int getakttype(); 47 public abstract boolean clicked(request req); } 3 //Class Aktivitet 9 Superklasse til AndreAkt og patientbehandling 10 Definere de grundlæggende metoder for aktiviteter 11 */ 12 package ugeoversigt; 13 public abstract class Aktivitet{ 14 private int aktivitetid;//nummer i DB 15 private int fratidspunkt; 16 private int tiltidspunkt; 17 private int kolnr; 18 Aktivitet(int aktivitetid, int fratidspunkt, int tiltidspunkt, side //Class Aktivitetesliste 9 Container for aktiviteterne 10 Sender metodekald videre til de enkelte aktiviter 11 */ package ugeoversigt; 16 import java.util.*; 17 import java.awt.point; 18 import java.awt.font; 19

20 20 public class Aktivitetsliste{ 21 private ArrayList aktiviteter = new ArrayList(); 22 private ArrayList getaktivitetsliste(){return aktiviteter;} public void addaktiviteter(int aktivitetid, int fratidspunkt, 25 int tiltidspunkt, int kolnr, int patidnr, boolean sekakt, 26 int akttype, String behandling, int fortsaet){ if (akttype!= 5){aktiviteter.add(new AndreAkt(aktivitetId, 29 fratidspunkt, tiltidspunkt, kolnr, akttype));} 30 //værdi 5 er patientbehandling else aktiviteter.add(new Patientbehandling(aktivitetId, 33 fratidspunkt, tiltidspunkt, kolnr, 34 patidnr, sekakt, behandling, fortsaet)); } public Aktivitet getaktivitet(int index){ 39 return (Aktivitet) aktiviteter.get(index); 40 } 41 //Tegner på Tegnefladen 42 public void tegnaftale(java.awt.graphics bg, 43 view.coordinate coord){ 44 Iterator i = aktiviteter.iterator(); 45 while (i.hasnext()){ 46 Aktivitet a = (Aktivitet) i.next(); 47 a.tegnaftale(bg, coord); 48 } 49 } //Metoden aktiveres når der klikkes Tegnefladen 52 public Aktivitet clicked(request req){ 53 Iterator i = aktiviteter.iterator(); 54 while (i.hasnext()){ 55 Aktivitet akt = (Aktivitet) i.next(); 56 if(akt.clicked(req)){ 57 return akt; 58 } } 61 //set Maxtid 62 int tid = req.gettid(); 63 Iterator ii = aktiviteter.iterator(); 64 int nextii = 1; 65 while (ii.hasnext()){ 66 Aktivitet akt = (Aktivitet) ii.next(); 67 if(nextii<aktiviteter.size()){ 68 Aktivitet aktnext = (Aktivitet) aktiviteter.get(nextii); 69 if(akt.getfratidspunkt()>tid){ 70 req.setmaxtid(akt.getfratidspunkt()); 71 break; side } if(akt.getfratidspunkt()<tid && aktnext. 75 getfratidspunkt()>tid){ 76 req.setmaxtid(aktnext.getfratidspunkt()); 77 break; 78 } 79 } 80 nextii++; 81 } return null; 84 } } 3 //Class AndreAkt 9 Anvendes til rep. af anden aktivitet 10 Klassen tegner på Tegnefladen ud fra sine værdier 11 Ved museklik på tegnefladen kan tidsinterval bekræftes eller 12 afkræftes 13 */ package ugeoversigt; public class AndreAkt extends Aktivitet{ 18 private int akttype; 19 public AndreAkt(int aktivitetid, int fratidspunkt, int tiltidspunkt, 20 int kolnr,int akttype){ 21 super(aktivitetid, fratidspunkt, tiltidspunkt, kolnr); 22 this.akttype = akttype; 23 } public boolean aktiveret(){return false;} 26 //Bruges ikke. Fejloprettet i superklassen public boolean clicked(request req){ 29 if(req.timeequals(this)) return true; 30 return false; 31 } 32

21 33 public int getakttype(){ 34 return akttype; 35 } public void tegnaftale(java.awt.graphics bg, view.coordinate coord){ 38 int fratid = util.date.ttmmtomin(getfratidspunkt()); 39 int varighed = util.date.ttmmtomin(gettiltidspunkt())-fratid; 40 java.awt.color color = util.view.nyfarve(db.aktivitetstype. 41 getfarve(akttype)); 42 bg.setcolor(color); 43 java.awt.point point = coord.topoint(getkolnr(), fratid); 44 bg.fillrect(point.x,point.y, coord.getkolwidth(), coord. 45 getheight(varighed)); 46 } public String tostring(){ 49 return db.behandler.getbehandlernavn(getkolnr()%2)+"\n" 50 +db.aktivitetstype.getaktivitetsnavn(akttype)+"\n" 51 +getfratidspunkt()+" - "+gettiltidspunkt()+"\n"/*+"aktivitetsid"+ 52 getaktivitetid()*/; 53 } 54 } 3 //Class BookModel 9 Model der holder data til booking 10 */ package ugeoversigt; 13 import java.util.*; 14 public class BookModel extends Observable{ 15 private int patidnr, kolnr,akttype; 16 private util.date dato; 17 private int fratid, tiltid, maxtid; 18 private String behandling; 19 private Ugeoversigt ugeoversigt; public BookModel( int kolnr, util.date dato, int fratid, 22 int maxtid, Ugeoversigt ugeoversigt ){ 23 this.ugeoversigt = ugeoversigt; 24 this.kolnr = kolnr; 25 if(ugeoversigt.geterpatvalgt()){ side this.patidnr = ugeoversigt.getpatidnr(); 27 //Der er her åbent for patienten bliver valgt efter at 28 //booking er lavet. Er ikke implementeret 29 } 30 this.dato = dato; 31 this.fratid = fratid; 32 this.tiltid = fratid; 33 this.change15min(true); 34 this.maxtid = maxtid; 35 akttype = 5;//Patientbehandling 36 } public int getkolnr(){ 39 return kolnr; 40 } public String getbehandlernavn(){ 43 return db.behandler.getbehandlernavn(kolnr%2); 44 } public String getpatientnavn(){ 47 if(ugeoversigt.geterpatvalgt()){ 48 return db.patientlist.getpatientnavn(patidnr); 49 } 50 return "'ikke valgt'"; } public int getakttype(){ 55 return akttype; 56 } public void setakttype(int akttype){ 59 this.akttype= akttype; 60 fire(); 61 } public String getbehandling(){ 64 return behandling; 65 } public void setbehandling(string behandling){ 68 this.behandling = behandling; 69 } public util.date getdate(){ 72 return dato; 73 } public String getfratidstreng(){ 76 String tidstring = ""; 77 if (fratid<1000){

22 78 tidstring="0"; 79 } 80 tidstring += fratid+""; 81 return (tidstring.substring(0,2)+":"+(tidstring.substring(2,4))); 82 } public int getfratid(){ 85 return fratid; 86 } public String gettiltidstreng(){ 89 String tidstring = ""; 90 if (tiltid<1000){ 91 tidstring="0"; 92 } 93 tidstring += tiltid+""; 94 return tidstring.substring(0,2)+":"+tidstring.substring(2,4); 95 } public int gettiltid(){ 98 return tiltid; 99 } public void change15min(boolean pos ){ 102 if(pos){ 103 tiltid = util.timemin.timemin(tiltid,15); 104 } 105 if(!pos){ 106 tiltid = util.timemin.timemin(tiltid,-15); 107 } 108 fire(); 109 } public int getmaxtid(){ 112 return maxtid; 113 } private void fire(){ 116 setchanged(); 117 notifyobservers(); 118 } } 3 //Class Dagsoversigt side Del af struktur. 10 For en enkel dag holdes to behandlere 11 Sender metodekaldene videre fra ugeoversigt til de to behandlere 12 */ package ugeoversigt; 16 import util.date; 17 import java.util.*; public class Dagsoversigt{ 20 private Aktivitetsliste akttandlaege, akttandplejer; 21 private String helligdagsnavn; 22 private Date date; Dagsoversigt(Date date){ 25 akttandlaege = new Aktivitetsliste(); 26 akttandplejer = new Aktivitetsliste(); 27 this.date = date; 28 } 29 public Aktivitetsliste getakttandlaege(){return akttandlaege;} 30 public Aktivitetsliste getakttandplejer(){return akttandplejer;} 31 public Date getdate(){return date;} public String tostring(){ 34 return 35 " "+"Dato: "+getdate()+"\n"+ 36 " "+db.behandler.getbehandlertitel(0)+" "+ 37 db.behandler.getbehandlernavn(0)+ 38 akttandlaege.tostring()+"\n"+ 39 " "+db.behandler.getbehandlertitel(1)+" "+ 40 db.behandler.getbehandlernavn(1)+ 41 akttandplejer.tostring()+"\n"; 42 } public void tegnaftale(java.awt.graphics bg,view.coordinate coord){ 45 akttandlaege.tegnaftale(bg, coord); 46 akttandplejer.tegnaftale(bg, coord); 47 } public Aktivitet clicked(request req){ 50 if(req.getkol()%2 == 0){ 51 return akttandlaege.clicked(req);} 52 return akttandplejer.clicked(req); 53 } 54 }

23 3 //Class Patientbehandling 9 Anvendes til rep. af Patientbehandling 10 Klassen tegner på Tegnefladen ud fra sine værdier 11 Ved museklik på tegnefladen kan tidsinterval bekræftes eller 12 afkræftes 13 */ package ugeoversigt; 16 import java.util.*; 17 import java.awt.point; 18 import java.awt.font; public class Patientbehandling extends Aktivitet{ 21 private int patidnr; 22 private boolean sekakt; 23 private String behandling; 24 private int fortsaet; 25 private final static int AKTTYPE=5; public Patientbehandling(int aktivitetid, int fratidspunkt, 28 int tiltidspunkt, int kolnr, int patidnr, boolean sekakt, 29 String behandling, int fortsaet){ super(aktivitetid, fratidspunkt, tiltidspunkt, kolnr); 32 this.patidnr = patidnr; 33 this.sekakt = sekakt; 34 this.behandling = behandling; 35 this.fortsaet = fortsaet; 36 } public int getpatidnr(){ 39 return patidnr;} public boolean getsekakt(){ 42 return sekakt;} public String getbehandling(){ 45 return behandling; 46 } public int getfortsaet(){ 49 return fortsaet; 50 } public int getakttype(){ side return AKTTYPE; 54 } public boolean clicked(request req){ 57 if(req.timeequals(this) &&!req.issekakt() &! sekakt) { 58 return true;} 59 if(req.timeequals(this) && req.issekakt() && sekakt) return true; 60 //true gør at sekakt nås 61 return false; 62 } public void tegnaftale(java.awt.graphics bg, 66 view.coordinate coord){ int fratid = util.date.ttmmtomin(getfratidspunkt()); 69 int varighed = util.date.ttmmtomin(gettiltidspunkt())-fratid; 70 java.awt.color color = util.view.nyfarve(db.behandler. 71 getbehandlerfarve(getkolnr()%2)); 72 bg.setcolor(color); 73 java.awt.point point = coord.topoint(getkolnr(), fratid); 74 bg.fillrect(point.x,point.y, coord.getkolwidth(), 75 coord.getheight(varighed)); 76 //Marker sekundærbehandling 77 if (sekakt){ 78 bg.setcolor(java.awt.color.orange); 79 bg.setfont( new Font( "Arial", Font.PLAIN, 80 coord.getfontsize(.9) ) ); 81 bg.drawstring("2aft", point.x+(int)(coord.getkolwidth()*.2), 82 point.y+(int)coord.getheight(15)*8/10 ); 83 } //Forsatbehandling 87 bg.setcolor(java.awt.color.black); 88 if (fortsaet == 1){//tandlægen modtager pat. 89 bg.drawline(point.x+(int) coord.getkolwidth()/2, 90 point.y+(int)+(int)coord.getheight(15)/2, 91 point.x+coord.getkolwidth(),point.y); 92 } 93 if (fortsaet == 2){//tandplejer afgiver patient 94 bg.drawline(point.x+(int)coord.getkolwidth()/2, point.y+ 95 coord.getheight(varighed)-(int) coord.getheight(15)/2, 96 point.x,point.y+coord.getheight(varighed)); } if (fortsaet == 3){//tandplejer modtager pat. 101 bg.drawline(point.x,point.y, point.x+(int) 102 coord.getkolwidth()/2, point.y+(int) coord.getheight(15)/2); 103 } 104 if (fortsaet == 4){//tandlæge afgiver pat.

24 105 bg.drawline(point.x+(int)coord.getkolwidth()/2, point.y+coord. 106 getheight(varighed)-(int) coord.getheight(15)/2, 107 point.x+coord.getkolwidth(),point.y 108 +coord.getheight(varighed)); 109 } } public String tostring(){ 115 return "\n "+getfratidspunkt()+" - "+gettiltidspunkt()+ 116 " Patient: "+db.patientlist.getpatientnavn(patidnr)+ 117 " Behandling: "+behandling/*+"aktivitetsid"+getaktivitetid()*/; 118 } 119 public boolean aktiveret(){return false;} 120 //Metoden anvendes ikke. Fejloprettet i superklasse 121 } 3 //Class PatientbehandlingExt 9 Klassen er en udvidelse af Patientbehandling. Superklassen 10 anvendes i datastrukturen til Tegnefladen. Denne klasse 11 anvendes til visning/redigering af patientbehandlinger 12 i det 2 JTable, hvor der er behov for flere oplysninger. 13 kolnr anvendes ikke 14 */ package ugeoversigt; public class PatientbehandlingExt{ 19 private Patientbehandling patbeh; 20 private util.date dato; 21 private int behandlerid; 22 private boolean us; 23 private boolean udeblivelse; public PatientbehandlingExt(int aktivitetid, int fratidspunkt, 26 int tiltidspunkt, int patidnr, boolean sekakt, String behandling, 27 int fortsaet, util.date dato, int behandlerid,boolean us, 28 boolean udeblivelse ){ patbeh = new Patientbehandling(aktivitetId, fratidspunkt, 31 tiltidspunkt, 0/*kolNr*/, patidnr, sekakt, 32 behandling, fortsaet); side this.dato = dato; 34 this.behandlerid = behandlerid; 35 this.us = us; 36 this.udeblivelse = udeblivelse ; 37 } public int getaktivitetid(){ 40 return patbeh.getaktivitetid(); 41 } public int getfratidspunkt(){ 44 return patbeh.getfratidspunkt(); 45 } public int gettiltidspunkt(){ 48 return patbeh.gettiltidspunkt(); 49 } //public int getkolnr(){} må ikke anvendes public int getpatidnr(){ 54 return patbeh.getpatidnr(); 55 } public boolean getsekakt(){ 58 return patbeh.getsekakt(); 59 } public String getbehandling(){ 62 return patbeh.getbehandling(); 63 } public int getfortsaet(){ 66 return patbeh.getfortsaet(); 67 } public int getakttype(){ 70 return patbeh.getakttype(); 71 } public util.date getdato(){ 74 return dato; 75 } public int getbehandlerid(){ 78 return behandlerid; 79 } public boolean getus(){ 82 return us; 83 } 84

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

5. Teknisk beskrivelse af programmet 5.1 Programmets primære strukturer Datastruktur 1-6 3-6 Datastruktur

5. Teknisk beskrivelse af programmet 5.1 Programmets primære strukturer Datastruktur 1-6 3-6 Datastruktur 5. Teknisk beskrivelse af programmet Afsnittet indeholder en beskrivelse af de vigtigste klasser i programmet. (Den tekniske beskrivelse af databasen er givet i afsnit 3.3 Databasedesign på side 20.) Dette

Læs mere

Eksempel på en database: studenter, kurser, eksamener

Eksempel på en database: studenter, kurser, eksamener Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser

Læs mere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter

Læs mere

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

Web- og serverprogrammering

Web- og serverprogrammering Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Web- og serverprogrammering Databasekommunikation - dag 7 Strategier til databaseadgang JDBC (Java DataBase Connectivity)

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4 DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens

Læs mere

Klienten. import java.util.*;

Klienten. import java.util.*; Klienten import java.util.*; * Aktiviteter er et model element, som indeholder blandt andet psimetiks beskrivleser. * @author rling public class Aktivitet extends Beholder implements HarEOgA, HarTilknytning,

Læs mere

public Set(int size) { this.listelement = new LinkedList<Integer>(); }

public Set(int size) { this.listelement = new LinkedList<Integer>(); } // Henri AYCARD import java.util.linkedlist; public class Set { private LinkedList listelement; public Set(int size) { this.listelement = new LinkedList(); public boolean contains(int

Læs mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere

Objektorienterede metoder

Objektorienterede metoder Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags

Læs mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

Læs mere

Tree klassen fra sidste forelæsning

Tree klassen fra sidste forelæsning Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Geografisk lokalisering i JSP

Geografisk lokalisering i JSP Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i JSP Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004 Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),

Læs mere

Opgaven fortsat. Opfølgning på Opgave 2 og Use Cases. Opgaven. Trin 1: Væsentlige begreber. Resultatliste: 100 bryst, herrer

Opgaven fortsat. Opfølgning på Opgave 2 og Use Cases. Opgaven. Trin 1: Væsentlige begreber. Resultatliste: 100 bryst, herrer Opfølgning på Opgave 2 og Use Cases originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University of Denmark Opgaven fortsat Efter

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Vejledende løsninger

Vejledende løsninger Roskilde Universitetscenter side 1 af 8 sider Vejledende løsninger Opgave 1 Spørgsmål 1.1 a = b - a; b = b - a; a = b + a; Opgaven har flere løsninger. En anden løsning er: a = b + a; b = a - b; a = a

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 3 Skabende designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Eksempel: Forskellige slags

Læs mere

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 7 Swing og MVC Swing: MVC, Datamodeller, JTable, evt. JTree Evt.: Swing: Præsentations og kontroldel Læsning: VP 6 Dette materiale er under Åben Dokumentlicens, se

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Introduktion til SQL queries

Introduktion til SQL queries Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i

Læs mere

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections; PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7

DM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7 DM01 DM01 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 13/5-2003 Side 1 af 7 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DNA2:...4 2.1.1 METODER:...4

Læs mere

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML SQL kap 6-7 + 17-20 DDL og DML 1 De vigtigste SQL-sætninger Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en

Læs mere

DB undervisning 01-01

DB undervisning 01-01 Databaser... 2 Tabeller... 2 Redundans... 3 Første regel... 4 Anden regel... 4 Tredje regel... 5 Relationer... 5 Opskrift... 6 SQL sætninger til at oprette tabeller... 7 SQL sætninger til at indsætte data...

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Bilag 1 Rige billeder Ordremodtagelse

Bilag 1 Rige billeder Ordremodtagelse Bilag1 Rigebilleder Ordremodtagelse Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 71 Overordnet Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 72 Produktionsgulvet Tværfagligtprojektpå2.Semester

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

Læs mere

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge

Læs mere

BRP 6.9.2006 Kursusintroduktion og Java-oversigt

BRP 6.9.2006 Kursusintroduktion og Java-oversigt BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University

Læs mere

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin Trin 1: Lav en Domain model Opgave beskrivelse - Scandic hotel kæde Lav en domain model af Hotel-kæden.

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere

En kort introduktion til JDBC

En kort introduktion til JDBC En kort introduktion til JDBC af Henrik Bulskov Datalogi Roskilde Universitetscenter 22. marts 2001 JDBC er et generelt klassebibliotek til kommunikation med databaser. Det er ikke målrettet en bestemt

Læs mere

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker

Læs mere

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:

Læs mere

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999 sammenligninger, hvor Programmering 1999 Forelæsning 17, tirsdag 2 november 1999 Søgning efter en given værdi i en tabel Lineær søgning og binær søgning Effektivitet: maskinuafhængig vurdering af køretid

Læs mere

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse

Læs mere

Virkefeltsregler i Java

Virkefeltsregler i Java Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten

Læs mere

Offset til terminalskærm i Java

Offset til terminalskærm i Java Denne guide er oprindeligt udgivet på Eksperten.dk Offset til terminalskærm i Java Ikke en atikkel - men en Classe til java der gør det nemt at skrive ud på avancerede måder når man kun opererer i dosvindue.

Læs mere

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004 Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret

Læs mere

Nye features i Java 1.7/7.0

Nye features i Java 1.7/7.0 Denne guide er oprindeligt udgivet på Eksperten.dk Nye features i Java 1.7/7.0 Denne artikel beskriver nye features i Java 1.7/7.0, som blev releaset 28. juli 2011. Den forudsætter et vist kendskab til

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) 1: KLASSE METODE KONSTRUKTØR EKS. PÅ TYPE (VARIABLE) PUBLIC/PRIVATE OBJECT UD FRA KLASSE KALD METODE TILFØR PARAMETER TIL METODE RETURNERE VARIBEL.

Læs mere

Løsning af møntproblemet

Løsning af møntproblemet Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet

Læs mere

Klasser og nedarvning

Klasser og nedarvning Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere

Læs mere

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

Læs mere

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1. Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:

Læs mere

Tabeller (I) Tabeller

Tabeller (I) Tabeller Tabeller (I) Klassediagrammer (III) Tabeller og qualified associations Michael R. Hansen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark En tabel fra en mængde A til

Læs mere

HTML, PHP, SQL, webserver, hvad er hvad??

HTML, PHP, SQL, webserver, hvad er hvad?? Dagens menu HTML og PHP: Baglæs fra output til input PHP: Variable, strenge og arrays Funktioner, oprettelse og kald (og variable på tværs af funktioner) echo vs return? if-else konstruktioner MySQL: Hvad

Læs mere

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden. Programmering 1999 Forelæsning 5, tirsdag 14. september 1999 Oversigt Mere om klasser og objekter Klassefelter: static Konstante felter: final Indkapsling og synlighed: private og public Overlæsning af

Læs mere

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter

Læs mere

Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense

Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 7 DM -. Obligatoriske Opgave Løsning af ligningssystem vha. fipunktmetoden Jacob Christiansen, 8 moffe@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense. Opgaven Der skal implementeres

Læs mere

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 9 Andre designmønstre Andre designmønstre: Uforanderlig, Fluevægt, Lagdelt Initialisering, Komposit/Rekursiv Komposition, Kommando/Ændring Fremlæggelse af programmering/status

Læs mere

SigmaT.

SigmaT. Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt

Læs mere

Løsning af skyline-problemet

Løsning af skyline-problemet Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle

Læs mere

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel

Læs mere

Views etc. Databaser

Views etc. Databaser Views etc. Databaser Views Med Views kan vi gemme nogle af de lange select sætninger. I vores eksempel fra tidligere er det f.eks. forbundet med en del besvær at finde telefon nr og bilmærker for en sælger

Læs mere

Hent filoplysninger fra billeder og filer

Hent filoplysninger fra billeder og filer Hent filoplysninger fra billeder og filer I denne vejledning bliver det gennemgået, hvordan man via Power Forespørgsel kan hente filoplysninger fra en mappe ind i Excel. Der skal opbygges følgende elementer:

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

SQL for MySQL-begyndere

SQL for MySQL-begyndere Denne guide er oprindeligt udgivet på Eksperten.dk SQL for MySQL-begyndere I denne artikel vil jeg prøve at beskrive MySQL på begynderniveau. SQL står for Structured Query Language, og er et sprog til

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

DATALOGI 0GB. Skriftlig eksamen mandag den 7. juni 2004

DATALOGI 0GB. Skriftlig eksamen mandag den 7. juni 2004 Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0GB Skriftlig eksamen mandag den 7. juni 2004 Dette opgavesæt består af 6 nummererede sider. Eksamensdeltagerne bør straks sikre

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag ArrayList klassen Gør det let at lave en objektsamling (collection) med et variabelt antal elementer Der er mange andre slags objektsamlinger (se Collection interfacet i JavaDoc)

Læs mere

Sekvenser af længde mellem 1 og 4 ord repræsenteres ved en klasse Segment, som uden grundlæggende ser således ud:

Sekvenser af længde mellem 1 og 4 ord repræsenteres ved en klasse Segment, som uden grundlæggende ser således ud: Besvarelse af opgave til formuleret til øvelserne 10. september 2002 Datastrukturer og algoritmer Henning Christiansen 22/9-2002 Følgende er ikke en eksakt besvarelse af opgaven, idet den benytter hashtabeller

Læs mere

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

Læs mere

Rekursion og dynamisk programmering

Rekursion og dynamisk programmering Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller

Læs mere

Tredjepart webservices

Tredjepart webservices Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output

Læs mere

Parallelle algoritmer

Parallelle algoritmer Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:

Læs mere

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

PROJEKT 3. The Design Diaries. LINK TIL BLOG:  Af Mikkel Borg Svendsen & Sebastian Frank MUL B PROJEKT 3 The Design Diaries LINK TIL BLOG: http://mbsgraphic.dk/blog/ Af Mikkel Borg Svendsen & Sebastian Frank MUL B 1 INDHOLDS- FORTEGNELSE HVEM ER BLOGGERNE? 3 USE CASE 4 ATTRIBUT TABEL 5 PHP CODE

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere