INFORMATIONSSYSTEM FÖR PALLHANTERING Pallet management software
|
|
- Gustav Gustafsson
- för 9 år sedan
- Visningar:
Transkript
1 INFORMATIONSSYSTEM FÖR PALLHANTERING Pallet management software Philip Käll Henrik Olsson EXAMENSARBETE 2011 DATATEKNIK Postadress: Besöksadress: Telefon: Box 1026 Gjuterigatan (vx) Jönköping
2 Detta examensarbete är utfört vid Tekniska Högskolan i Jönköping inom ämnesområdet datateknik. Arbetet är ett led i det treåriga högskoleprogrammet Webbutveckling / Programmering och Datanät. Författarna svarar själva för framförda åsikter, slutsatser och resultat. Examinator: Inger Palmgren Handledare: Inger Palmgren Omfattning: 15 hp (grundnivå) Datum: Postadress: Besöksadress: Telefon: Box 1026 Gjuterigatan (vx) Jönköping
3 Abstract Abstract This report describes the work flow from analysis of a system, to a redevelopment with new functionality and improved design. The project is based on pallet balance systems that was purchased by Rudenstams Parti AB, but which haven t been used due to its flaws in design and functionality. Therefore we decided to analyze the system to find flaws, and develop a new and improved version of it, with emphasis on two questions. How do you implement new functionality in existing software? How do you create a good design with emphasis on usability? These are the two questions which this report will answer. Today, usability is a big concern in developing software, and that is the reason to why we chose it as a main question. With the help of different tools, like for example UML, the report will describe the development of a new software, based on an older version. The workflow includes concepts like SQL Server, VB and more, and will at the end result in a software written in C# which today is used by Rudenstams Parti AB 1
4 Sammanfattning Sammanfattning Denna rapport beskriver flödet från analys av ett system, till en nyutveckling av systemet med ny funktionalitet och förbättrad design. Projektet baseras på ett pallsaldosystem som är inköpt av Rudenstams Parti AB, men som inte kunnat användas på grund av designbrister och funktionalitetsbrister. Därför valde vi att i detta projekt göra en analys av detta system för att hitta brister, och till slut utveckla en egen version av systemet med extra tyngd på två frågor. Hur implementerar man ny funktionalitet i en befintlig mjukvara? Hur skapar man en bra design med tanke på användarvänlighet? Detta är de två frågor som denna rapport kommer att behandla. Idag är användarvänlighet ett stort begrepp inom mjukvaruutveckling, och det är anledningen till valet av just det som en huvudfråga i detta projekt. Med hjälp av olika verktyg som till exempel UML beskriver rapporten utvecklingen av ett nytt system, baserat på ett annat. Arbetet innefattar också begrepp som SQL Server, VB m.m. och mynnar till slut ut i en mjukvara skriven i C# som i dag används av Rudenstams Parti AB. Nyckelord.NET, C#, SQL, UML, DATABAS, XML. 2
5 Innehållsförteckning Innehållsförteckning 1 Inledning BAKGRUND OCH PROBLEMBESKRIVNING SYFTE OCH FRÅGESTÄLLNINGAR Syfte Frågeställning AVGRÄNSNINGAR DISPOSITION Teoretisk bakgrund LIVSCYKELMODELL PROTOTYPER VB.NET C# Objekt och klasser XML NET UML Användningsfallsmodeller Klassmodeller Interaktionsdiagram Tillståndsdiagram Aktivitetsdiagram DATABAS (SQL SERVER) Kommandon ANVÄNDARVÄNLIGHET Metod och genomförande LIVSCYKELMODELL ANVÄNDARVÄNLIGHET TEKNISK SPECIFIKATION Grundläggande beskrivning av systemets omfattning Teknisk uppbyggnad Flöde och funktioner UML Klassdiagram Användningsfall Tillståndsdiagram Interaktionsdiagram Aktivitetsdiagram DATABAS Databas relationer KOD Etikettdesign Utskrift Resultat SKÄRMDUMPAR Utleverans Återrapportering
6 Innehållsförteckning Etikettdesign Diskussion och slutsatser RESULTATDISKUSSION / DISKUSSION AV DESIGNPROCESSEN Frågor: METODDISKUSSION SLUTSATSER OCH REKOMMENDATIONER Referenser
7 Inledning 1 Inledning 1.1 Bakgrund och problembeskrivning Som en del av vårt program i datateknik ingår ett examensarbete. Under utbildningen har vi läst om flera programmeringsspråk och verktyg, däribland C#, ASP.NET, PHP, JavaScript, HTML, CSS m.fl. Språket som det har varit mest fokus på under utbildningen har varit just C# (uttalas C-sharp). Det p.g.a. att det anses vara ett av de programmeringsspråk som används mest vid utveckling av mer avancerade system och applikationer ute på företagen. Vi har fått utveckla projekt på det här sättet i skolan, dvs. projekten har skett i grupper och moment som planering, design, programmering och implementering har varit en naturlig del i projektet. Men för att få en känsla för hur det verkligen skulle vara att driva ett projekt i skarpt läge, med en kund på ett företag, valde vi att som examensarbete vidareutveckla en existerande mjukvara på Rudenstams Parti AB i Jönköping. Rudenstams Parti AB är beläget utanför Huskvarna och levererar frukt och grönt till företag runt om i Sverige. När varor lämnar företaget ska varje godkänd pall vara märkt med leveransinformation i form av en klisterlapp. Det är lagerpersonalens uppgift att skriva ut dessa lappar och placera dem på pallarna. För denna uppgift är tanken att en mjukvara som köpts in av Rudenstams Parti AB ska användas, men som i dagsläget inte används pga. dess brister i såväl design som funktionalitet. Det ska också med hjälp av mjukvaran finnas möjlighet för lastbilschaufförer att återrapportera dessa pallar. Problemen med den nuvarande mjukvaran kan delas in i två grupper; funktionalitets- och designbrister. I dagsläget så är programmet svårt att använda pga. dess design och layout. Tanken är att användaren ska kunna integrera med systemet både genom en touchskärm, alltså en bildskärm som användaren kan trycka på, samt genom ett vanligt tangentbord och en mus. Dock fungerar detta idag inte fullt ut, och det gör att programmet kan kännas mer som en börda än ett hjälpmedel att använda. En annan anledning till att mjukvaran inte används är funktionaliteten. Detta beror på att mjukvaran i första hand var utvecklad och designad för ett annat företag än just Rudenstams. Som exempel så vill företaget kunna designa sina etiketter i mjukvaran, vilket idag måste ske genom att manuellt redigera en XMLfil. 5
8 Inledning Mjukvaran i dagsläget är utvecklad i språket Visual Basic (VB), och kommer alltså att skrivas om till C#. Målet med examensarbetet kommer att vara att analysera den existerande mjukvaran och få en överblick på hur den fungerar. Det kommer även vara hur användarna hanterar mjukvaran, och att diskutera med anställda på företaget för att ta reda på vad som inte fungerar i det gamla systemet. För att sedan utveckla vår version av programmet där vi implementerar de anställdas krav samt flera nya funktioner, och skräddarsyr programmet för Rudenstams Parti AB. 1.2 Syfte och frågeställningar Syfte Syftet med detta projekt är att vidareutveckla ett redan existerande system åt ett företag som levererar och hämtar varor på lastpall. Det befintliga systemet som finns installerat hos företaget är inte i bruk då det saknar många viktiga funktionaliteter för att fungera korrekt. Syftet är också att genom ett nytt system minska kostnaderna för företaget, detta sker genom en mer fullständig övervakning av antal pallar som skickas till kunder. Eftersom det befintliga systemet inte används har inte företaget kunnat bokföra sin förlust av lastpallar. Detta innebär en extra kostnad för företaget då nya pallar måste införskaffas. Genom att skapa en ny modul och koppla detta till huvudsystemets databas ska man lätt kunna se antalet pallar varje kund är skyldig eller har tillgodo hos företaget. Syftet är också att skapa ett interface till detta nya system som integrerar med användaren på ett smidigt och bra sätt. Detta kommer ske genom att ändra det existerande systemet från grunden. Det nuvarande systemet är skrivet i VB och kommer nu att konverteras till C#. Programmet kommer också innehålla fler funktioner för att möta företagets önskemål Frågeställning Vårt projekt kommer sträva efter att nå målet med våra huvudsakliga frågor. Hur implementerar man ny funktionalitet i en befintlig mjukvara? Hur skapar man en bra design med tanke på användarvänlighet? 6
9 Inledning 1.3 Avgränsningar Analyseringen och kravspecifikationen som gjordes i början av projektet visade att examensarbetet skulle bli för stort och tidsmässigt inte hållas inom examensarbetes ramverk om alla önskemål skulle uppfyllas. Därför under utförandet av examensarbetet var avgränsningar nödvändiga att sättas upp för att inte arbetet skulle bli för stort. Från början tänkte vi även göra en del av systemet mobilt genom användning av streckkodsläsare, såväl på arbetsplatsen som ute hos kund. Detta var ett alternativ för företaget men tidsmässigt kunde detta inte uppfyllas. En andra avgränsning var en annan mobil lösning av systemet som vi inte hade tid att skapa. Detta var att skapa en applikation till en mobiltelefon men tidsmässigt kunde vi inte sätta in oss i ett nytt programmeringsspråk. 1.4 Disposition Rapporten är uppdelad i olika sektioner. Först finner man Teoretisk bakgrund, här beskrivs det kort om alla de teorier som användes för att skapa applikationen. Nästa sektion är Metod och genomförande, här beskrivs teknisk specifikation, UML och databaser för att förstå systemet. Resultat är den del som visar upp den färdiga produkten, här finner man bilder av det färdiga systemet, exempel på saker som var unikt för vårt system samt exempel på vissa C#-kodningar. Senare finner man diskussionen där man kan läsa om projektets gång och reflektioner om systemet. 7
10 Teoretisk bakgrund 2 Teoretisk bakgrund 2.1 Livscykelmodell Under utveckling av projektet har vi följt följande modell som har underlättat vårt arbete. Det första som sker när man väl har en produkt idé är att behov identifieras och en kravspecifikation framställs. I nästa steg tas en design fram som möter dessa krav i kravspecifikationen, och därefter byggs en prototyp. Som sista steg utvärderar man prototypen för att fastställa om denna möter alla krav. Om prototypen anses uppfylla kraven så är produkten färdig, annars startar processen om på steg ett. Motsvarande för en process är procedur och fungerar enligt en vattenfallmodellsprincipen, dvs. Man går från steg ett till två till tre osv. tills produkten är klar. 2.2 Prototyper Man brukar prata om två olika sorters prototyper när man arbetar inom utveckling av mjukvara, hi-fi och low-fi. En low-fi prototyp är en väldigt enkel skiss över hur den färdiga produkten kan tänkas se ut, detta kan vara så enkelt som en skiss på ett papper. En hi-fi prototyp är en mer detaljerad representation av produkten och kommer oftast senare i projektet när de olika detaljerna har tänkts ut. [14] 2.3 VB.NET VB är en förkortning för Visual Basic och är ett programspråk i BASIC-familjen. VB är ett fristående programspråk som ingår i utvecklingsmiljön Visual Studio. Andra programspråk som ingår i Visual Studio är C#, J# och C++. VB var konstruerat som ett lätt språk för nya programmerare att lära sig och skapa nya applikationer. Tidigare var språken betydligt mer avancerade och svåra att lära sig. Den första versionen av VB 1.0 var klar 1991 och det var den första drag-anddrop funktionaliteten som introducerades till programmerare. Denna funktion skulle hjälpa programmerare med såväl programmering som design. Den senaste versionen av original VB är 6.0 men som inte längre har någon support från sina skapare Microsoft. Efter version 6.0 introducerade Microsoft istället.net som var ett nytt ramverk som olika programspråk är kopplade till. Den nya versionen av VB har därefter fått sitt nya namn VB.Net och är det språk som programmerare använder sig av i dagsläget. [1] 2.4 C# C#, som uttalas C-sharp, är utvecklat av Microsoft och går under kategorin objektorienterat programmeringsspråk. Språket liknar till stor del Java, men sägs 8
11 Teoretisk bakgrund officiellt vara baserat på det lite äldre språket C++. C# som programmeringsspråk är plattformsoberoende och utvecklingsmiljöerna finns endast till Windows-baserade datorer. C# är en del av ramverket.net, vilket i sig är en systemkomponent som är del av Windows, vilket betyder att programutveckling i C# kan bli låst till operativsystemet Windows. Dock finns åtminstone två andra kompilatorer vilket gör det möjligt att mjukvara skrivet i C# på andra operativsystem än Windows, nackdelen är att dessa kompilatorer inte är fullständiga och saknar vissa komponenter. Till skillnad från C, eller C++ är C# det språk som har störst relation med det underliggande Common Language Infrastructure (CLI). CLI är i princip en beskrivning av en programmiljö där flera högnivåspråk ska kunna köras på olika operativsystem och plattformar utan att behöva skrivas om. Målet med C# är att det ska vara ett lättlärt, objektorienterat och robust programmeringsspråk. [2] Exempel på C#-kod i ett konsol program: using System; namespace HelloWorld class Hello static void Main() System.Console.WriteLine("Hello World!"); Objekt och klasser Som nämnt ovan så är C# ett objektorienterat programmeringsspråk. Det innebär att vid utvecklandet av mjukvara, använder man sig av så kallade klasser. Klasser kan ligga internt i den filen man arbetar i, men mer vanligt är att en klass skapas i en egen fil för att det enkelt ska kunna importeras och användas. Ett objekt är det man skapar när en instans av klassen skapas. Exempel: Bil.cs class Bil string color; string brand; string model; Program.cs class Program static void Main(string[] args) Bil volvo = new Bil(); volvo.brand = "volvo"; 9
12 Teoretisk bakgrund volvo.color = "red"; volvo.model = "v70"; Här har vi skapat en klass som heter Bil. Varje bil har några egenskaper, som till exempel modell, märke och färg. I vårt program skapar vi sedan ett objekt av denna klass. Varje objekt av typen bil har de tre olika egenskaperna, där vi sedan kan ange information om varje bil. 2.5 XML Extensible Markup Language (eller kanske mer känt som XML) är en standard för hur ett dokument ska läggas upp för att göra det kompatibelt med flera olika system. Ett XML dokument är uppbyggt i element, eller taggar, och liknar taggar som används i till exempel HTML. Vid skapandet av ett XML dokument finns ett antal element som är obligatoriska att inkludera för att det ska anses vara korrekt. Utöver det så kan elementen döpas efter eget tycke, men har självklart en förbestämd struktur för att koden sedan ska kunna läsas och översättas av till exempel en dator. Alla taggar, eller element, i dokumentet består av en starttagg och en sluttagg. XML gör också skillnad på versaler och gemener, vilket betyder att taggar med samma namn, men det ena i versaler och det andra i gemener, är två olika element. Förutom element så finns attribut. Liknande attribut i HTML, läggs attribut till i starttaggen i form av ett namn och ett värde och får bara förekomma en gång i en tagg. Värdet måste alltid stå inom enkla eller dubbla citationstecken. [3] Exempel på XML: <?xml version="1.0"?> <book> <author>henrik Olsson</author> <year>2011</year> <title>xml</title> </book> 10
13 Teoretisk bakgrund 2.6.NET DotNet är ett ramverk utvecklat av Microsoft för operativsystemet Windows. Ramverket innehåller bland annat ett stort kodbibliotek som förenklar vid skapandet av system och program..net har stöd för flera programmeringsspråk, vilket betyder att varje språk kan använda kod skriven i andra språk. Ramverkets Base Class Library tillhandahåller bland annat användarinterface, databaskopplingar och kryptering som programmerare kombinerar med sin egen kod för att skapa applikationer. Program skrivna i.net-ramverket exekverar till skillnad från vissa andra program i mjukvara, i en så kallad virtuell maskin. [4] 2.7 UML UML är en förkortning för Unified Modeling Language och introducerades först år UML är ett generellt objektorienterat språk för att skapa modeller till olika typer av system. Poängen med UML är att genom skapandet av modeller ska man lättare kunna förstå uppbyggnaden av det system man skapar. [5] Typiska modeller och diagram man brukar använda sig av är följande: Användningsfallsmodeller Dessa modeller har ett mer känt namn som UseCase diagram och varje användningsfall beskriver en eller flera olika scenarier om hur systemet agerar mot användaren eller mot ett annat system. [6] Exempel på ett användningsfall bankomat. 11
14 Teoretisk bakgrund Klassmodeller Klassmodeller visar upp strukturen i ett system genom att dela upp systemet i flera klasser. Dessa klasser symboliseras som rektanglar och innehåller beteende, data samt regler för systemet. [7] Exempel på klassmodell Lager Interaktionsdiagram Dessa diagram visar hur ett system agerar mot en individuell användare eller system. De olika scenarierna kan vara uppbyggda av antingen olika interaktioner eller scenarier av möjliga aktioner man kan göra. [8] Exempel på en orderbeställning. 12
15 Teoretisk bakgrund Tillståndsdiagram Ett tillståndsdiagram är ett diagram som visar relationer mellan olika interaktioner med systemet. Här visas en startpunkt och en slutpunkt och olika interaktioner däremellan. [9] Exempel på en mail sida. 13
16 Teoretisk bakgrund Aktivitetsdiagram Ett aktivitetsdiagram visar olika flöden av aktiviteter. Dessa diagram används ofta för att komplettera UseCase diagram. [10] Exempel på skapa ett konto. 14
17 2.8 Databas (Sql server) Teoretisk bakgrund SQL Server är Microsofts egna databashanterare och är av typen relationsdatabas. När man vill anropa något i databasen skapar man olika frågor, mer känt som querys och får ut sina svar beroende på hur tabeller i databasen ser ut. [11] Kommandon Kommandon man kan skriva in i Sql Server följer T-SQL och ANSI-SQL som standard och några typiska följer. [11] SELECT Select är ett vanligt kommando för att just hämta information från en databas. Detta är bra om man vill visa upp något och presentera resultatet i t.ex. ett vanligt Excel dokument. Ex. I en databas finns det tabeller som man vill presentera informationen från. En tabell heter Folk och är i en databas som lagrar kvinnliga och manliga namn. Vi har också en kolumn för städer och en för namn runt om i världen. För att få ut alla namn kopplade till en specifik stad ur databasen skriver vi följande. Kommando; I text blir det; SELECT * SELECT: Hämta all information, FROM Folk FROM: från tabellen Folk, WHERE stad= Rome WHERE: där kolumnen stad har innehållet Rome INSERT Insert används endast då man vill lägga till något värde i databasen. Man kan t.ex. lägga till nya namn eller städer i vår egna databas. Ex. I databasen vill man lägga till namnet Johan och han bor i London. Dvs. Insert Into tabellen Folk och kolumnerna namn och stad. De värden som ska in är Johan och London. INSERT INTO Folk (namn, stad) VALUES ( Johan, London ) 15
18 Teoretisk bakgrund DELETE Denna används då man vill ta bort något ur sin databas. Här kan vi nu ta bort alla med namnet Erik i vår databas Ex. DELETE FROM WHERE Folk namn= Erik Det är viktigt att man kommer ihåg sin WHERE, om man inte tar denna så tar man bort hela tabellen Folk UPDATE Om man vill ändra något i en existerande rad i databasen kan man använda sig av en UPDATE. Här kan vi ändra raden vi la till med vårt INSERT kommando. Här la vi till i kolumnen namn och stad som fanns i tabellen Folk. Nu ändrar vi på den till John fast har kvar samma stad. Ex. UPDATE SET WHERE Folk namn = John namn= Johan AND stad= London I vår WHERE skrevs nu ett extra kommando AND. AND är precis vad man kan tro. Där kolumn namn är Johan och staden är London ersätt med namn John. 16
19 2.9 Användarvänlighet Teoretisk bakgrund Den grad i vilken användare i ett givet sammanhang kan bruka en produkt för att uppnå specifika mål på ett ändamålsenligt, effektivt och för användaren tillfredsställande sätt. [12] Ovanstående citat är definitionen för användarvänlighet, eller som det i mer professionella sammanhang kallas, användbarhet. Användbarhet används för att mäta hur användbar en produkt är, dvs. hur lätt den är att använda, hur effektiv den är och så vidare. Användbarhet gäller i princip vilken produkt som helst, men har på senare tid förknippas allt mer med IT, dvs. webbplatser, olika system m.m. Användbarhetskvalitéerna brukar ofta delas upp i två frågor; Kan jag använda produkten? Om jag fick välja, skulle jag fortfarande använda produkten? Svaret på den första frågan kanske i slutändan inte ger så mycket mer än att systemet, mjukvaran, eller vad det nu kan vara överhuvudtaget går att använda. Det är när den andra frågan ställs till användarna som man får ett riktigt mått på hur användbar produkten är. Det är viktigt att komma ihåg att användarvänlighet för en person, kanske inte uppfyller kraven för en annan. Ofta måste en produkt eller ett system vända sig mot en specifik målgrupp. Ta till exempel en guide för nybörjare, denna är förmodligen väldigt bra och användbar för just nybörjaren, men frustrerande för experten. [13] 17
20 Metod och genomförande 3 Metod och genomförande 3.1 Livscykelmodell Under projektets gång har livscykelsmodellen följts och den har jobbats med som en process, dvs. att man kan gå tillbaka något steg om man måste ändra något. 3.2 Användarvänlighet Livscykel process När projektet startade valdes några enkla steg att följa. Det var för att förenkla och hjälpa utvecklingen samt sträva efter en bra design med användarvänlighet. Det första steget som gjordes var att samla information från personal som skulle använda sig av programmet. Nästa steg var att analysera den information som samlats in och identifiera olika behov samt skriva en kravspecifikation. Information som, vad som personalen ville använda sig av och hur de ville hantera programmet. När kravspecifikationen var klar var det dags att gå vidare till design steget. Här gjordes planer på hur programmet ska skapas så att det kommer kunna möta förväntningarna skrivet i kravspecifikationen. Exempel på saker som togs upp i designen var; Många av knapparnas namn skulle ha en självförklarande funktion bakom sig för att underlätta för användaren. Typiska knappar var Snabbutskrift. De färger som valdes var bl.a. grå, svart och vit. Färger på knappar och texter ska enligt tron på att det skulle skapa en bra kontrast för användaren, (grå/vit/svart). 18
21 Metod och genomförande De knappar som kommer användas ofta har valdes att förstärkas med t.ex. versaler. Placering av olika inmatningsfält, informationsfält, logga samt knappar har valts noga för att proceduren för utskrift och inmatning ska underlättas. Nästa steg var att skapa olika prototyper, en pappersbaserad lo-fi prototyp av det befintliga systemet, hi-fi prototyp av SQL Server databasen samt en hi-fi prototyp av det nya systemet. Det sista steget var att utvärdera resultatet av prototyperna, har prototyperna det innehåll som sattes upp i design steget och håller designen det som lovats i kravspecifikationen. 3.3 Teknisk specifikation I ett möte med Rudenstams Parti AB fastställdes följande tekniska specifikationer Grundläggande beskrivning av systemets omfattning Systemet är uppdelat i flera delar. Dels ska det kunna hantera etikettutskrift som sedan ska sitta på de lastpallar som frukten skickas på. Här väljs vilka palltyper som används, och detta registreras sedan i en databas för att kunna spåra hur många pallar som man skickat till ett företag, och sedan veta hur många kunden ska skicka tillbaka. Mjukvaran har också en funktion att återrapportera lastpallar som lämnas tillbaka från kund till Rudenstams. Detta sker på två olika sätt; dels kan återrapporteringen ske direkt i systemet genom att man anger kundnumret och sedan väljer hur många av varje sort de lämnar tillbaka. Ett annat sätt är att chaufförerna som är ute i butikerna har en streckkodsläsare, där de kan lagra hur många pallar som de tar med sig från varje kund. Denna information läses sedan in i systemet och rapporteras tillbaka till databasen. En annan del i systemet är ett designläge för etiketterna. Här kan användaren dra runt på olika platshållare för bland annat logga, tester och streckkod för att designa hur etiketten ska se ut när den skrivs ut. Man kan också definiera teckenstorlekar, om det ska vara versaler, kursiv/fet stil med mera. Den sista delen är ett pallsaldobesked där användaren kan se hur många pallar som varje kund är skyldiga företaget Teknisk uppbyggnad Systemet kommer i grunden att ha en befintlig Microsoft SQL databas. Uppe på det kommer programmet vara skrivet i språket C# i.net ramverket. 19
22 Metod och genomförande Flöde och funktioner Plocka order/skriv ut etiketter 1. Lagerpersonalen hämtar en plocklista och anger ordernumret i programmet. 2. Ordern hämtas och information visas i huvudfönstret. 3. Användaren väljer att skriva ut etiketter antingen genom snabbutskriften eller genom att skriva ut flera etiketter på en gång. 4. Antalet etiketter av de olika typerna för ordern lagras i en temporär tabell i databasen. 5. Etiketterna skrivs ut av skrivaren och användaren trycker på rensa för att programmet ska vara redo för nästa person och order. (Formuläret rensas också efter x antal sekunders inaktivitet). 6. När ordern är färdigplockad slår användaren in ordernumret igen och trycker på avsluta order. Antalet korrigeras (om det behövs) och det tas sedan bort från den temporära tabellen och läggs in i systemet Återrapportera pallar 1. Chauffören skriver in kundnumret och information om kunden hämtas och visas. 2. Användaren anger hur många av varje sort som lämnas tillbaka och klickar på klar. 3. Antalet pallar registreras och dras från kundes skuld i databasen Ändra etikettdesign 1. Användaren drar runt på de platshållarna som finns för respektive text, logga osv. 2. Övriga alternativ för respektive platshållare ändras (storlek, formatering osv.). 3. Användaren klickar på spara och den nya designen sparas i en XML-fil. 20
23 3.4 UML Metod och genomförande För att få en inblick i systemets uppbyggnad har vi skapat olika diagram som är lätta att följa. Dessa skapades också för att förenkla utvecklandet av systemet Klassdiagram Klassdiagram över företagets aktörer. Alla tillhör klassen aktörer men finns subklasser som personal och system. Dessa har i sin tur subklasser under sig, detta för att få en struktur av hur systemet reagerar och relaterar till varandra. 21
24 Metod och genomförande Användningsfall Här bifogas tre olika exempel på användningsfall i systemet Återrapportera Detta fall är för aktörerna chaufför och databas. Chaufför har olika alternativ aktören kan göra; plus och minus. Lägger till eller drar ifrån pallantal för kunder. Informationen skickas sedan till databas. Tillståndsdiagram Tillståndsdiagramen visar hur det går till och vilka olika alternativa vägar aktörerna kan utföra i olika situationer i systemet Återrapportering Följande figur illustrerar tillstånden och de olika val som kan ske när en chaufför ska återrapportera pallar i systemet. 22
25 Metod och genomförande Interaktionsdiagram Här bifogas ett subdiagram till interaktionsdiagram dvs. sekvensdiagram Återrapportering Detta sekvensdiagram visar hur återrapportering i systemet går till. De tre aktörerna är chaufför, pallsaldosystem och databas. 23
26 Metod och genomförande Aktivitetsdiagram Återrapportering Följande diagram beskriver vad respektive aktör har för uppgift vid återrapportering av pallar till systemet. 24
27 3.5 Databas Metod och genomförande I utvecklingsstadiet kan det vara bra att ha en temporär databas, som ser precis likadan ut som den databas som sedan ska användas. Anledningen till att ha en temporär databas är att eftersom den riktiga databasen används av andra delar av systemet, kan mjukvaran som vi utvecklar skapa fel som gör att resten av systemet inte kan använda databasen. Så därför var ett av de första stegen att sätta upp en server och installera en databas som vi kunde använda oss av vid utvecklingen. Beslut togs om att sätta upp en server som vi kunde komma åt från vilken dator som helst, vilket skulle underlätta då utvecklingen inte alltid skedde i det när där servern står lokalt. Som databas valde vi att köra SQL Server 2008 R2, detta pga. att vi hade en del erfarenhet av denna version innan, och att den server som sedan skulle användas i skarpt läge är en SQL Server. Tabellnamn och kolumnnamn hittades genom en analys av det tidigare systemet, men för att göra systemet enkelt att konfigurera för andra tabell och kolumnnamn används variabler i SQL-syntaxerna, som enkelt kan ändras i en klass och därmed i alla syntaxer. string table1 = "Table"; string column1 = "Column"; protected void getdata() string SQL = "SELECT " + column1 + " FROM " + table1; Databas relationer Nedan är en bild som beskriver relationerna mellan de olika tabellerna. Notera att samma kolumn finns i flera tabeller, det är en av de brister vi har hittat i databasen, men som inte kommer att ordnas då Rudenstams Parti AB inte ville att vi ska redigera deras databas. Tabellerna innehåller fler fält men av säkerhetsskäl visas endast vissa utvalda delar av våra kopplingar mellan tabellerna. 25
28 Metod och genomförande 3.6 Kod Etikettdesign Beskrivning För att utveckla den föregående versionen av mjukvaran ville vi implementera lite ny funktionalitet. Efter ett möte med Rudenstams Parti AB så framgick det att en funktion för att grafiskt kunna designa hur etiketterna ska se ut efter att det har skrivits ut var nödvändig. Innan kunde denna design också göras, men då i textform i ett XML-dokument. Det betyder att man inte direkt kunde se hur etiketten skulle se ut när den skrevs ut, och det var alltså ett klumpigt sätt att designa etiketterna. Vi bestämde oss då för att implementera ett grafiskt sätt att designa etiketterna där man kan dra runt på platshållare för diverse texter och bilder och direkt få en uppfattning om hur etiketten kommer se ut. Under etikettdesign fliken kan man, utöver att ändra position för texter och bilder, ändra teckenstorlek för en text, format på texten (dvs. fet, understruken, kursiv och om texten ska vara i versaler). Det finns också nöjlighet att ändra på storleken på loggan. När designen på etiketten är färdig sparar man denna genom att klicka på knappen SPARA. Alla inställningar sparas då i ett XML-dokument som sedan används som en mall vid utskrift av en etikett. 26
29 Metod och genomförande Det finns också en knapp kallad DEFAULT som kan användas för att ställa tillbaka alla inställningar till en fördefinierad design. Knappen TESTETIEKTT används för att skriva ut en etikett för att få ett exempel på hur etiketten ser ut Kod Här under beskrivs kodsnuttar som på något sätt är specifikt för just detta projekt. En viktig del i etikettdesignen var att man skulle kunna dra runt på objekten genom att klicka och dra med musen. Koden för detta beskrivs nedan. Den första delen av koden är en funktion som kontrollerar att texten som ska skrivas ut är innanför ramarna för etiketten. Här skickas positionen in, tillsammans med en höjd och bredd på kontrollen. Funktionen returnerar sedan en punkt, denna punkt kan vara justerad för att den låg utanför ramarna. // Funktion för att kontrollera att en // kontroll är innanför ramarna för panelen. private Point checkbounds(point pos, int width, int height) // Justering för att få en // snyggare placering height = height + 5; // Om positionen är utanför toppen // av panelen if (pos.x >= 0 && pos.y < 0) pos.y = 0; // Om positionen är utanför den vänstra // sidan av panelen else if (pos.x < 0 && pos.y >= 0) pos.x = 0; // Om positionen är utanför både toppen // och den vänstra delen av panelen else pos.x = 0; pos.y = 0; // Om positionen för kontrollen är utanför den högra sidan av panelen if (pos.x > panelpreview.width - width && pos.y <= panelpreview.height - height) // Räkna ut den nya positionen för // kontrollen pos.x = panelpreview.width - width; 27
30 Metod och genomförande // Om positionen är utanför botten av panelen else if (pos.x <= panelpreview.width - width && pos.y > panelpreview.height - height) // Justera positionen pos.y = panelpreview.height - height; // Om positionen är utanför både // höger och botten gränsen else // Räkna ut den nya positionen pos.x = panelpreview.width - width; pos.y = panelpreview.height - height; return pos; Följande kod beskriver vad som händer när ett musklick sker på en av kontrollerna i designdelen. För att på ett bra sätt kunna implementera detta så används en variabel som kontrollerar om musen är nedtryckt. När man klickar så sätts denna variabel alltså till true som syns här under. // Vid klick med musen private void lbldesign_date_mousedown(object sender, MouseEventArgs e) // Sätt att musen nu är nedtryckt mousedowndate = true; När musen dras in över kontrollen så vill vi också att markören ska ändras till en ikson som beskriver att denna kontroll kan flyttas. // När musen dras in över labeln private void lbldesign_date_mouseenter(object sender, EventArgs e) // När musen kommer in över denna label // ska musens markör ändras till en // "flytta" markör. this.cursor = Cursors.SizeAll; När musen sen lämnar kontrollen måste vi ställa tillbaka markören till den normala // När musen lämnar labeln private void lbldesign_date_mouseleave(object sender, EventArgs e) // När musen lämnar labeln så ska // markören ändras tillbaka till // den "normala" markören. this.cursor = Cursors.Default; 28
31 Metod och genomförande När man drar musen över kontrollen, och har vänster musknapp intryckt, så ska kontrollen flytta sig tillsammans med musen. Därför kontrolleras först om variabeln är satt till true och om den är det så räknas positionen för kontrollen ut, samt kontrolleras för att vara säker på att positionen inte är utanför ramarna för panelen. // När musen flyttas private void lbldesign_date_mousemove(object sender, MouseEventArgs e) // Om musen är nedtryckt if (mousedowndate) // Räkna ut labelns centrum int wcenter = lbldesign_date.width / 2; int hcenter = lbldesign_date.height / 2; // Skapa en punkt som är beskriver en // plats inom panelens ramar. Point pos = panelpreview.pointtoclient(new Point(MousePosition.X - wcenter, MousePosition.Y - hcenter)); // Kontrollera att punkten inte går utanför panelens ramar pos = checkbounds(pos, lbldesign_date.width, lbldesign_date.height); // Sätt labelns position till denna punkt lbldesign_date.location = pos; // Sätt koordinaterna i textboxarna txtdesign_date_posx.text = pos.x.tostring(); txtdesign_date_posy.text = pos.y.tostring(); För att få en korrekt placering måste kontrollens position också sättas när musknappen släpps upp. Vad som är unikt här är att variabeln som håller information om musknappen är intryckt sätts till false. // När musknappen släpps upp private void lbldesign_date_mouseup(object sender, MouseEventArgs e) // Räkna ut centrum för labeln int wcenter = lbldesign_date.width / 2; int hcenter = lbldesign_date.height / 2; // Skapa en punkt som är beskriver en // plats inom panelens ramar. Point pos = panelpreview.pointtoclient(new Point(MousePosition.X - wcenter, MousePosition.Y - hcenter)); // Kontrollera att punkten inte går utanför panelens ramar pos = checkbounds(pos, lbldesign_date.width, lbldesign_date.height); // Sätt labelns position till denna punkt lbldesign_date.location = pos; // Sätt att musknappen nu släppts upp mousedowndate = false; // Sätt koordinaterna i textboxarna txtdesign_date_posx.text = pos.x.tostring(); txtdesign_date_posy.text = pos.y.tostring(); 29
32 Metod och genomförande Följande funktion används för att justera storleken på texten för alla kontroller. Detta skulle kunna gjorts i varje knapptryck eller liknande, men för att effektivisera koden så skrevs detta som en funktion där man skickar in labeln som storleken ska ändras på, samt comboboxen som inställningen gjordes i. Här hämtas sedan storleken som är satt i comboboxen och textstorleken i labeln ändras. private void checkfontsizeall(label lbltest, ComboBox comb) try int i = comb.selectedindex; float currsize; switch (i) case 0: currsize = 10F; lbltest.font = new Font(lblTest.Font.FontFamily, currsize); break; case 1: currsize = 14F; lbltest.font = new Font(lblTest.Font.FontFamily, currsize); break; case 2: currsize = 18F; lbltest.font = new Font(lblTest.Font.FontFamily, currsize); break; case 3: currsize = 22F; lbltest.font = new Font(lblTest.Font.FontFamily, currsize); break; case 4: currsize = 26F; lbltest.font = new Font(lblTest.Font.FontFamily, currsize); break; case 5: currsize = 30F; lbltest.font = new Font(lblTest.Font.FontFamily, currsize); break; case 6: currsize = 34F; lbltest.font = new Font(lblTest.Font.FontFamily, currsize); break; catch MessageBox.Show("Något gick fel med fontsize"); 30
33 Metod och genomförande Utskrift Beskrivning Den andra delen av koden vi valde att beskriva lite närmare är utskriften. Detta är pga. att vi skriver ut på etiketter som är av en speciell storlek och kräver lite speciell kod för att få placeringar med mera, precis som Rudenstams ville ha det. Vi valde att skriva denna kod i from av en klass. Klassen ärver funktionerna från den inbyggda klassen PrintDocument, och det klassen gör är att skriva över vissa funktioner som PrintDocument har, men våra egna. Poängen med klassen är att kunna placera ut texterna, dvs. kundnamn, datum, leveransadress, m.m. precis där vi vill Kod De första raderna av klassen består av deklarering av variabler samt funktioner för att hämta och sätta värden av dessa variabler. Placering av innehållet som ska skrivas ut hämtas från en XML-fil som tidigare har laddats in. class Printer : PrintDocument // Deklarera variabler private Font myfont; private string customername; private string date; private string pickedby; private string deliveryaddress; LoadXML xmlfile; // Funktion för att hämta/sätta texten som ska skrivas ut public LoadXML xml set xmlfile = value; public string customernametext get return customername; set customername = value; public string datetext get return date; set date = value; public string pickedbytext get return pickedby; set pickedby = value; public string deliveryaddresstext get return deliveryaddress; set deliveryaddress = value; 31
34 Metod och genomförande // Funktion för att hämta/sätta fonten som ska användas public Font PrinterFont get return myfont; set myfont = value; När en instans av klassen skapas så sätts variablerna till tomma strängar. base()innebär att vi ärver allt som finns i konstruktorn för klassen PrintDocument. // Konstruktor public Printer() : base() customername = string.empty; date = string.empty; pickedby = string.empty; deliveryaddress = string.empty; När dokumentet börjar att skrivas ut vill vi införa lite nya kod i vissa av funktionerna som körs. Därför använder vi nyckelordet override för att skriva över den befintliga funktionen. I detta fall ändras fonten (om den är null, dvs. att den inte har angetts) till Times New Roman och sätter textstorleken till 10. // När dokumentet ska skrivas ut, ändra fonten som ska användas protected override void OnBeginPrint(PrintEventArgs e) base.onbeginprint(e); if (myfont == null) myfont = new Font("Times New Roman", 10); När dokumentet väl skrivs ut ska all text få sin placering på dokumentet, så därför skrivs även denna funktion över. Det första som görs är att variabler deklareras. // När dokumentet ska skrivas ut, ändra marginaler protected override void OnPrintPage(PrintPageEventArgs e) base.onprintpage(e); Int32 lines; Int32 chars; StringFormat format = new StringFormat(StringFormatFlags.LineLimit); // CustomerName int customernameheight = 50; int customernamewidth = 433; FontStyle fontstyle = new FontStyle(); 32
35 Metod och genomförande Eftersom det är möjligt att ändra textstorlekar, stilar m.m. på texten så måste dessa inställningar läsas in vid utskriften. Det första som kontrolleras är vilken stil texten har, dvs. om den är fet, kursiv eller understruken. Detta finns alltså lagrat i en XML-fil som vi tidigare har läst in och som nu ligger lagrat i en klass. switch (xmlfile.customernamefstyle) case "Regular": fontstyle = FontStyle.Regular; break; case "Bold": fontstyle = FontStyle.Bold; break; case "Italic": fontstyle = FontStyle.Italic; break; case "Underline": fontstyle = FontStyle.Underline; break; Nästa sak som sker är att vilken storlek texten ska ha läses in, också denna från XML klassen, och en ny font skapas med hjälp av denna storlek. PrinterFont = new Font("Arial", (float)xmlfile.customernamefsize, fontstyle); Om det finns en inställning om att texten ska vara versaler görs textsträngen om till versaler. if (xmlfile.customernameucase == 1) customername = customername.toupper(); Nästa sak som sker är att en rektangel skapas med hjälp av marginaler som läses in från XML klassen. Det är sedan denna rektangel som beskriver arean som behövs för denna text på etiketten. Vi mäter också textsträngen och får ut hur många rader texten blir på. Efter det ritas texten ut, med den fonten och arean som angetts. Samma sak sker för varje textsträng som ska skrivas ut på etiketten. RectangleF customernameprintarea = new RectangleF(xmlFile.customerNameLMargin, xmlfile.customernametmargin, customernamewidth, customernameheight); e.graphics.measurestring(customername, PrinterFont, new SizeF(customerNameWidth, customernameheight), format, out chars, out lines); e.graphics.drawstring(customername, PrinterFont, Brushes.Black, customernameprintarea, format); 33
36 Metod och genomförande Det sista som sker är att vi laddar in loggan och ritar ut denna på etiketten, samma sak här med hjälp av en rektangel. Etiketten skrivs sedan ut. // Logo Image img = Image.FromFile("rudenstams_logo.png"); RectangleF logoprintarea = new RectangleF(xmlFile.logoLMargin, xmlfile.logotmargin, xmlfile.logow, xmlfile.logoh); e.graphics.drawimage(img, logoprintarea); 34
37 Metod och genomförande 4 Resultat 4.1 Skärmdumpar Här visas skärmdumpar på hela systemet samt förklaringar till alla knappar och funktioner kopplade till dem Utleverans När programmet startas kommer man till fliken utleverans. Här finner man många olika knappar som är kopplade till olika funktioner i hela systemet Förklaring utleverans Bilden visar en skärmdump på utleverans och förklaringar nedanför. 1. Skriv ut etiketter: När man trycker på denna knapp startas ett nytt formulär där man kan fylla i olika typer på pallar man skickar till kund. Formuläret heter Print och visas nedan. 35
38 Metod och genomförande 2. Avsluta order: När man är klar med sin order trycker man på denna knapp och ett nytt formulär kommer upp. Formuläret heter CloseOrder och visas nedan. 3. Snabbutskrift: Dagens datum: Skriver ut en etikett med dagens datum. Tom etikett: Skriver ut en tom etikett. Helpall: Lägger till en godkänd helpall till vald kund och skriver ut en etikett. Halvpall: lägger till en halvpall till vald kund och skriver ut etikett. Rullcontainer: lägger till en rullcontainer till till vald kund och skriver ut etikett. Sjöpall: lägger till en sjöpall till vald kund och skriver ut etikett. Extrapall: lägger till en extra godkänd helpall till vald kund men skriver ej ut etikett. Ej godkänd: lägger till en ej godkänd helpall till vald kund och skriver ut etikett. 4. Konfigurera: När man trycker på denna knapp öppnas ett nytt formulär där man kan ändra inställningar för fliken Utleverans. Här kan man ändra startvärden på ordernummer för att göra processen snabbare. Man kan också lägga till, ändra och ta bort lagerpersonal. Detta formulär heter Config och visas nedan. 5. Kontrollera: Knapp för att kontrollera om det finns öppna order i systemet. Formuläret OpenOrders öppnas och visas nedan. 6. Knappar 0-9: Dessa knappar är kopplade till ordernummer och fyller i det textfältet. 7. Töm och : Dessa knappar är kopplade till ordernumrets textfält. Töm knappen tar bort allt utan startvärdet i textfältet. tar bort en siffra i taget. 36
39 Metod och genomförande Formulär Print Här väljer man antal pall till utskrift Formulär CloseOrder Här godkänner man antal pallar man valt till utskrift. 37
40 Metod och genomförande Formulär Config Här finner man funktionerna för att ändra på startvärdet på ordernummer och funktionerna till lagerpersonalen. Underformulär till Config: Config_AddPickers Formulär OpenOrders Här ser man en översikt på de order som ej har rapporterats in i systemet. 38
41 Metod och genomförande Återrapportering När man trycker på fliken Återrapportering kommer man till följande skärm Förklaring återrapportering Bilden visar fliken återrapportering innan knapptryck, förklaring nedan. 1. Återrapportera: När man trycker på återrapportera så uppdateras databasen med det nya pallsaldot. En ny knapp kommer upp med en ångra funktion för ett snabb val. 2. Pallsaldobesked: Här kommer ett nytt formulär upp som heter CustomerPallets och visar en överblick över alla kunders pallsaldon. Visas nedan. 3. Knappar för returnerade pallar: Här finner man fyra knappar, två plus samt två minus. Dessa är kopplade till textfälten mellan dem och här kan man lägga till de pallar som man hämtat från kund. 4. Pallsaldo skyldig: Här visas antalet pallar som vald kund är skyldig. Helpall och rullcontainer visas. Knappar 0-9, töm samt är samma som fliken utleverans. 39
42 Metod och genomförande Bilden visar fliken återrapportering efter knapptryck på återrapportera, förklaring nedan. Kund Ica Maxi med kundnummer 1000 är skyldig företaget 15 helpall och 35 rullcontainer. Efter knapptryck på återrapportering uppdateras allt automatiskt och det visas att en rc var återrapporterad. Här finns nu möjligheten att ångra den senaste återrapporteringen Formulär CustomerPallets Här visas en lista på alla kunder och vad de är skyldiga företaget. 40
43 Metod och genomförande Etikettdesign När man trycker på fliken etikettdesign kommer man till följande skärm. (Se stycket med kod för mer information) 41
44 Diskussion och slutsatser 5 Diskussion och slutsatser 5.1 Resultatdiskussion / Diskussion av designprocessen Frågor: Under utvecklingen av vårt projekt har vi stävat efter att uppnå våra två punkter vi satte upp i frågeställningen av rapporten Hur förbättrar och förnyar man en befintlig mjukvara? Som det är nämnt i den tekniska specifikationen för projektet så var anledningen till att den föregående mjukvaran inte användes att denna inte fungerade som önskat, varken ur designsynpunkt, men inte heller ut funktionalitetssynpunkt. Hur gör man då för att utveckla en ny version på denna mjukvara, som inte har dessa brister? Det första steget vi gjorde var att själva gå igenom mjukvaran, steg för steg, för att själva skaffa oss en uppfattning om hur det fungerade, samt vilka brister det hade. Vi ritade också ut en karta över funktionerna och hur de relaterade till varandra. Detta var en viktig del i processen att förstå det gamla systemets uppbyggnad, och gav oss en klar överblick hur det såg ut och hur funktionerna relaterade till varandra. Efter det gjordes intervjuer med anställda som ska använda detta program, för att få svar på vad just de hade för synpunkter och förslag på förbättringar till det nya systemet. Detta resulterade sedan i den tekniska specifikationen. Vi diskuterade efter detta möjliga förbättringar och vad vi ville införa för ny funktionalitet. Eftersom föregående program var skrivet i VB.NET kunde inget av koden användas, utan föregående projekt användes endast i utbildande syfte, och för att kunna ta fram punkter där förbättringar kunde göras. Vi fick inte lika mycket hjälp av det gamla systemet, som vi från början trodde vi skulle få. Detta var till största del på grund av att vi ansåg att de flesta lösningarna som fanns där, inte var de bästa. 42
45 Diskussion och slutsatser Hur skapar man en bra design med tanke på användarvänlighet? HEPH Pallsaldo design För att skapa förbättrad version på föregående mjukvara höll vi hela tiden användaren i åtanke. Programmet skulle vara ett verktyg som hjälper användaren, snarare än att begränsa den. Programmet vi skapade ska fungera på en touch skärm på ett lager och därav den design vi valde. Vi har fokuserat på designen som helhet men lagt mer fokus på den viktigaste delen för vårt program, användarvänligheten. Navigering i vårt program var en stor del av användarvänligheten och vi har försökt att göra det så självförklarande som möjligt. De färgteman vi valde var för en enkel och lättförståelig design, och vi lyckades få en bra kontrast där man lätt kan se allt av intresse. Vi blev mycket nöjda med slutresultatet av vår produkt och tycker vi gjorde en produkt som har en bra användarvänlighet och är lättförståeligt. 5.2 Metoddiskussion En av metoderna som användes i detta projekt är UML. Detta användes för att rita ut flöden, och se hur programmet ska fungera i olika situationer. Detta har legat som en bra grund vid själva utvecklingen, då funktionaliteten redan var uttänkt, och det enda som var kvar var att implementera dessa funktioner i mjukvaran. Fördelen med att använda UML är att man tidigt i projektet kan se problem som kan uppstå, och redan innan implementeringen kan hitta sätt att lösa detta. Vid designen av mjukvaran har användarvänlighet varit en stor fråga och vi har hela tiden försökt att förbättra designen för att göra det enklare för användaren. Ett av problemen med föregående mjukvara var just att den hade brister i interfacet mot användaren, och kunde ibland mer vara ett hinder än en hjälp för användaren, detta var också en anledning till varför den inte var i bruk överhuvudtaget. Vid själva kodningen av mjukvaran har vi arbetat mycket efter objektorienterad programmering, dvs. skapande av klasser och objekt. Valet att arbeta på detta sätt har varit mycket positivt, då det många gånger har förenklat utvecklingsprocessen. Som programmeringsspråk valde vi att arbeta med C# och.net ramverket. Anledningen till detta val är att det är det språk som vi under vår utbildning har läst, och lärt oss väldigt mycket om. Samtidigt är det ett mycket smidigt språk att utveckla mjukvara i. 43
Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08
Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...
Grundläggande programmering med C# 7,5 högskolepoäng
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)
Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.
Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär
Omtentamen i OOSU2, 21 augusti 2014
Omtentamen i OOSU2, 21 augusti 2014 Maxpoäng: 50. Betygsgränser: A: 90 % + B: 80 % + C: 70 % + D: 60 % + E: 50 % + Mindre än 50 % ger underkänd tentamen. Är det något du inte uppfattar så förklara hur
Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
Övningar Dag 2 En första klass
Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt
Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)
Databasföreläsning Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Tabeller Personer Databas Nummer Namn Födelseår 1 Tina 1950 2 Siv 1965 3 Olle 1980 Platt databas: all information
OOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Webservice & ERP-Integration Rapport
Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...
Introduktion till arv
Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering
Manual för version V2
Innehållsförteckning 1. Om 2. Installera Administration 3. Programmets skrivbord 4. Lägga upp din första kund 5. Kontaktpersoner 6. Besiktningsadresser 7. Kontrollpunkter/Besiktningspunkter 8. Koppla kontrollpunkter/besiktningspunkter
Introduktion till integrering av Schenkers e-tjänster. Version 2.0
Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen
Tentamen i Objektorienterad programmering
CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar
Tentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Tips och tricks 1 Cadcorp SIS 5.2 2003-03-03
Tips och tricks 1 Cadcorp SIS 5.2 2003-03-03 Skapa en raster pensel från en Windows bakgrund (1) 1. Kontrollera att Paper är uppsatt som koordinatsystem/projektion 2. Öppna en Bitmap fil i ett tom fönsterfil
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :
Föreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Objektorienterad programmering
Objektorienterad programmering Föreläsning 19 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Konstruktion av egna grafiska komponenter Kontsruktion av egen komponent Att rita upp
Teknikprogrammet, inriktning informations- och medieteknik
Teknikprogrammet, inriktning informations- och medieteknik Varför välja oss? Kursplan Presentation av våra datatekniska kurser Eftersom företag mycket sällan anställer gymnasieelever (de vill att ni ska
Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?
Programmeringsteknik och Matlab Övning 6 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.
Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel
Slutrapport för JMDB.COM. Johan Wibjer 2012-06-03
Slutrapport för JMDB.COM Johan Wibjer 2012-06-03 Abstrakt Den här rapporten kommer handla om mitt projekt som har handlat om att gör en webb sida för ett personligt media bibliotek, hur jag har jobbar
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: Onsdagen 15 december 2004, 8:30 till 13:30 Plats: M Ansvarig lärare: Katarina Blom, tel 772 10 60. Läraren besöker tentamen kl
Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)
Objektorienterad programmering Föreläsning 15 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Grafiska användargränssnitt (GUI Graphical User Interface) Standardklassen (Control)
Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)
Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)
Objektsamlingar i Java
1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och
Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#
PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C# Vi gör ett enkelt glosförhör Allt det du gör idag ska ligga i samma projekt (och mapp). Du kan om du tycker det behövs använda flera forms
725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack
725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den
Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...
Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener ... 3 Typsnitt ... 3 Övergångar ... 4 Mall för slide ... 5 , ...
Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Webbdesign Process till produkt
Webbdesign Process till produkt Umeå Universitet Mediaproduktion för www II 7,5hp Isak Madoun Introduktion; VÅR-KOKBOK Är en kokbok som i sin första upplgaga kom ut på 50-talet. Boken innehåller mer av
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
WCMS-15, Webbutvecklare CMS
WCMS-15, Webbutvecklare CMS Övningstentamen, delkurs Dynamiska webbplatser (20 YH-poäng) Plats: Medieinstitutet, Malmö Tid: 25 november 2015, kl. 13.00-16.00 Tillåtna hjälpmedel: Papper, penna, suddgummi,
Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102
Tentamen på kursen DA7351, Programmering 1 051102, kl 08.15-12.15 Tillåtna hjälpmedel: Valfri bok om Java. Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de krav på programkvalitet (strukturering,
Programmering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
Objektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
För att skriva CSS-kod använder man sig av olika kommandon. Ett exempel på hur man kan skriva kod för att ändra textfärg kan vara:
Hemsida CSS Introduktion till Cascading Style Sheets (CSS) Detta är en mycket kort genomgång av CSS med exempel på hur sådan kod ska läsas och hur den kan användas på IdrottOnline-sidor. Är man ute efter
Migrera till Word 2010
I den här guiden Microsoft Microsoft Word 2010 skiljer sig rent utseendemässigt mycket, så vi har skapat den här guiden för att hjälpa dig att snabbare lära dig programmet. Här kan du läsa om de viktigaste
Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.
Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen
UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
UML Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 UML Unified Modelling Language Grafiskt modelleringsspråk för att beskriva olika aspekter av objektorienterade system. Vi kommer
OOP Objekt-orienterad programmering
OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym
App-klient för smartphones... 2. Power BI... 3. Arbetsflöde... 4. CRM Online... 5. Webb-klienten... 6. Dokumenthantering... 7. Molnet...
Nyheter i Dynamics NAV 2016 Innehåll App-klient för smartphones... 2 Power BI... 3 Arbetsflöde... 4 CRM Online... 5 Webb-klienten... 6 Dokumenthantering... 7 Molnet... 8 Elektronisk fakturering... 9 App-klient
En snabb titt på XML LEKTION 6
LEKTION 6 En snabb titt på XML Bokstaven x i Ajax står för XML, ett mycket användbart beskrivningsspråk som gör det möjligt för Ajax-tillämpningar att hantera komplex strukturerad information. I den här
Interaktions- och klassdiagram, kap 12-16 F4 vt -07
Interaktions- och klassdiagram, kap 12-16 F4 vt -07 Viktigt i kapitel 13 är bild 13.5 och avsnitten 13.7 och 13.8: De meddelanden som sänds från gränssnittssiktet till domänskiktet är de meddelanden som
ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Language Integrated Query, LINQ, och databaser
Language Integrated Query, LINQ, och databaser 1 Imperativ eller deklarativ programmering Imperativ programmering Du som programmerare beskriver i detalj alla steg som måste utföras för att lösa en viss
Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004
Programmering hh.se/db2004 Föreläsning 10: Objektorienterad programmering - datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Påminnelse: en datatyp för bilder Vad är
Kort om klasser och objekt En introduktion till GUI-programmering i Java
Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på
Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: 2014-12-17 Tid: 9.00-12.00 (OBS 3 tim) Rum: V
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Erland Holmström Göteborg 16 dec 2014 Examination i PROGRAMMERINGSTEKNIK F1/TM1
Att använda pekare i. C-kod
Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare
Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar
Klassbegreppet och C++ OOP UML Klasser och objekt i C++ Uppdelning i filer Attribut och metoder Inkappsling - åtkomst Klassattribut - objektattribut Objekt-orienterad programmering Att använda ett objektorienterat
Editering, Kompilering och Exekvering av Javaprogram
UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)
Föreläsning 10. ADT:er och datastrukturer
Föreläsning 10 ADT:er och datastrukturer ADT:er och datastrukturer Dessa två begrepp är kopplade till varandra men de står för olika saker. En ADT (abstrakt datatyp) är just abstrakt och är inte kopplad
Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc
Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp
Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker
Sid 1 Laborationer i kursmomentet Datoranvändning E1 http://www.etek.chalmers.se/~hallgren/eda/ : Mer om FrameMaker 1996, 1997 Magnus Bondesson 1998 och 99-09-22 Thomas Hallgren 1 Introduktion I Laboration
Tentamen i Objektorienterad modellering och design
Lunds Tekniska Högskola Datavetenskap Tentamen EDA061 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Vid bedömningen kommer hänsyn att tas till lösningens kvalitet. UML-diagram
Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen 20150613, kl. 9.00-12.00
Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 FACIT Tentamen 20150613, kl. 9.00-12.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del
Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.
Laboration 1, Databashantering med MySQL Av: Marcus Rejås I denna laboration skall du se till att du kommer åt databasmotorn och att det fungerar. Du kommer också att skapa en tabell
Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic
Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt
Föreläsning 7. Träd och binära sökträd
Föreläsning 7 Träd och binära sökträd Föreläsning 7 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Läsanvisningar och
INSTRUKTION Specifikation E modul.doc
1 (13) Syfte Detta är en instruktion för hur det är tänkt att specifikationen ska fyllas i vid beställning av en E modul. Förhoppningen är dock att specifikationsmallen är självinstruerande så att detta
Matriks Automate 1.4 E-postmallar. Navision / Microsoft Dynamics NAV. Hur du gör e-postmallar för Matriks Automate. Joakim Hansson 2009-08-19
Matriks Automate 1.4 E-postmallar Navision / Microsoft Dynamics NAV Hur du gör e-postmallar för Matriks Automate. Joakim Hansson 2009-08-19 Det är min förhoppning att du har nytta av den erfarenhet som
Användarmanual för Hemsida
Användarmanual för Hemsida Sida 1 av 44 Inledning Detta dokument är en användarmanual för redigerbara hemsidor utvecklade av. Du kan själv, i ett wordliknande gränssnitt, enkelt uppdatera din egen hemsida
Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).
Arbeta med databas Översikt Arbeta med Entity Data Models. LINQ (Language Integrated Query). Lektion 1: Arbeta med Entity Data Models Introduktion till ADO.NET Entity Framework. Stöd i ADO.NET Entity Framework.
Snabbguide Visma Compact API Version 5.1 Copyright 2006-2008 Visma Spcs AB Visma Compact API
Snabbguide Visma Compact API Version 5.1 Copyright 2006-2008 Visma Spcs AB Visma Compact API Introduktion Visma Compact API är ett programmeringsgränssnitt framtaget för att underlätta integration av Visma
TUTORIAL: KLASSER & OBJEKT
TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Användarhandledning Rapportgenerator Version: 1.1
Användarhandledning Rapportgenerator Version: 1.1 Umefast AB 2008 www.umefast.se Innehåll 1. Rapportgenerator... 2 1.1. Syfte och avgränsningar... 2 1.2. Wizards... 2 1.3. Förutsättningar för arbete med
Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33
Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation
Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll 2010-04-22
Översikt 732G11 PROGRAMMERING 1 Institutionen för datavetenskap Om kursen Vad är programmering (bra för)? Programmeringsspråket Java Utvecklingsmiljön Eclipse Genomgång av några programexempel Programmering
Lumbago - Förord. Välkommen till Journalprogrammet Lumbago.
Lumbago - Förord Välkommen till Journalprogrammet Lumbago. Vår förhoppning är att du ska få mer tid över för dina patienter och att du ska ha nytta av alla de effektiva funktioner som Lumbago erbjuder.
DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.
1 (8) DUGGA: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt namn, personnummer och e-postadress på försättsbladet. Skriv rent dina svar.
Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/
Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller
RVS5000PC. Allmänt. RVS5000PC produktblad
1 RVS5000PC Allmänt RVS5000PC är ett hjälpmedel och ett administrativt verktyg för RVS5000 systemet. Det hjälper och underlättar hanteringar av artiklar och styckevikter, gör att ansvariga kan göra produktionsuppföljningar
Inspektion Användarmanuel
Onix AS Version 1.0.5.0 16.12.2014 2014 Inspektion Användarmanuel Denna applikation kan du enkelt kontrollera utrustningar i Utrustningsportalen. 0 S i d a INNEHÅLLSFÖRTECKNING Sida INLEDNING... 3 STARTA
TNM065 Johan Eliasson johel964 Dokumentstrukturer Kristina Engström krien026
Tamriel Rating Tamriel Rating är en sida för recensioner för de olika värdshuset i Tamriel. Tamriel är ett fiktivt land inom spelserien Elders Scrolls. Systemet Användaren kan bläddra genom en lista av
Chapter 3: Using Classes and Objects
Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop
TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.
Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:
TENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter
Datavetenskap Opponenter: Daniel Jansson Mikael Jansson Respondenter: Mats Almgren Erik Hansen Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter Oppositionsrapport,
19. Skriva ut statistik
19. Skiva ut statistik version 2006-05-10 19.1 19. Skriva ut statistik Den här dokumentationen beskriver hur man skriver ut statistik från SPFs medlemsregister via Internet. Observera att bilderna är exempel
Får jag be om ordet!
Får jag be om ordet! Får jag be om ordet är ett datorprogram för läs- och skrivutveckling, utvecklat av logoped Bitte Rydeman. Det innehåller åtta olika delprogram, där man på olika sätt arbetar med ordbilder,
Laboration 10 - NetBeans
Laboration 10 - NetBeans Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass
F4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Labbrapport: HTML och CSS
Labbrapport: HTML och CSS Utförd av: Natalie Olmosse Mailadress: natalie.olmosse@gmail.com Datum: 2015 12 18 Kursansvarig: Karin Fahlquist Övriga lärare: Ulrik Söderström Första inlämningen Resultat (Godkänd/Retur):
Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.
Webbprogrammering Provmoment: Ladokkod: Tentamen ges för: Om-Tentamen NWP011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2014-06-13
ADAD-net. Användarmanual INDIVIDEN. Råbe och Kobberstad Februari 2010
ADAD-net Användarmanual INDIVIDEN Råbe och Kobberstad Februari 2010 1 INNEHÅLLSFÖRTECKNING INNEHÅLLSFÖRTECKNING... 1 INLOGGNING OCH BEHÖRIGHETER... 2 STARTA PROGRAMMET OCH LOGGA IN... 2 BEHÖRIGHETSSYSTEM...
QlikView - Lathund för Flödesmodellen bas
QlikView - Lathund för Flödesmodellen bas För att komma åt en applikation i QlikView (hädanefter QV) krävs QV-pluginlicens samt behörighet till applikationen. Beställning av både licens och behörighet
TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
PDA-applikationer med.net
Sid 1 av 7 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se) Tentamen i PDA-applikationer med.net (fristående kurs) lördag 17 december 2005 kl 14:00-19:00
GYMKEEPER ANDREAS SÖDERSTRÖM
GYMKEEPER ANDREAS SÖDERSTRÖM 20120529 ABSTRAKT En post mortem på mitt ios-projekt. Utmaningen låg i att under 10 veckors tid sätta sig in i en plattform och programspråk jag aldrig använt förut. Jag har
Laboration 1 Introduktion till Visual Basic 6.0
Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.
Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09
Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 1. Introduktion till webbprogrammering Webbprogrammering består av ett antal
Föreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
Objektorienterad programmering D2
Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste
Distribuerade System, HT03
UMEÅ UNIVERSITET 21 oktober 2003 Institutionen för Datavetenskap Laborationsrapport Laboration Middleware Distribuerade System, HT03 Jini Namn: Anders Holm, c00asm@cs.umu.se Kjell Johansson, c00kjn@cs.umu.se