I need help with this project. Project #1 (Due Date: 10/20/2017) C++ Objectives:
ID: 3597466 • Letter: I
Question
I need help with this project.
Project #1 (Due Date: 10/20/2017) C++ Objectives: In this homework, we will explore some of the basics of C++ programming. In particular, we will practice working with: multiple data type variable declarations, input with cin, output with cout, formatting, arithmetic operations, Boolean logic, while/do-while loops/for loops, if-else, nested if-else and/or switch branching Tasks: You will calculate the grade of a student based on the marks. Total marks of a student are calculated as follows Total marks = Lab marks*25% + Project marks*25% + Exam marks* 50% 3 Projects are assigned to the student and you need to consider the maximum of all the marks as the Project marks. Each project is evaluated to 100 marks Student will be having 5 labs. You need to calculate the average of all labs as lab marks. Each lab is evaluated to 100 marks Students will write 2 exams. You need to calculate the weighted mean of those marks using the below formula. Each exam is evaluated to 100 marks Weighted means (2"maximum marks + minimum marks)/3) 1. 2. 3. Grade should be assigned based on the following criteria If Total marks>90 Total marks between 80 and 89, grade-B, Comments-Good Total marks between 70 and 79, grade-C, Comments- Needs to improve Total marks between 60 and 69, grade-D, Comments- Warning of probation Total marksExplanation / Answer
void raw_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
{ {
u_int length = h->len;
u_int caplen = h->caplen;
/* At this point we start extracting data from the packet, with the var idx keeping up with where we are in the packet */
// Print total packet size
printf(" Packet Length %d bytes", h->len);
// Decode Ethernet (Layer 2) Header Info
int idx; // counter variable for indexing through packet
char eth_destination[6]; // var to store the ethernet destination address
char eth_source[6]; // var to store the ethernet source address
short eth_type; // var to store the ethernet type value
char eth_payload[10]; // string array to store payload description
char eth_bcast[6] = "0xFF";
// Extract Ethernet Destination Address (1st 6 bytes)
for ( idx = 0; idx < 6; idx++)
{
eth_destination[idx] = p[idx];
}
// Extract Ethernet Source Address (2nd 6 bytes)
for ( idx = 6; idx < 12; idx++)
{
eth_source[idx-6] = p[idx];
}
// Combine two byte Ethernet Type/Length field into one value
eth_type = p[12] * 256 + p[13];
// Check the packet type and increment related counter
if ( eth_type >= 0x600) {
switch ( eth_type )
{
case 0x800: // Check to see if the type indicates that the packet is IP
ctrIP++;
strcpy(eth_payload, "IP");
break;
case 0x806: // Check to see if the type indicates that the packet is ARP
ctrARP++;
strcpy(eth_payload, "ARP");
break;
default:
break;
}
}
// Check to see if the destination was a broadcast packet and increment related counter
/*
if ((eth_destination[0] == 0xFF ) && (eth_destination[1] == 0xFF ) && (eth_destination[2] == 0xFF ) && (eth_destination[3] == 0xFF ) && (eth_destination[4] == 0xFF ) && (eth_destination[5] == 0xFF )) {
ctrBCAST++;
}
*/
// Print Ethernet (Layer 2) Header Info
printf("Layer Field Value ");
printf("ETHERNET Destination %02x:%02x:%02x:%02x:%02x:%02x ", eth_destination[0],eth_destination[1],eth_destination[2],eth_destination[3],eth_destination[4],eth_destination[5]);
printf(" Source %02x:%02x:%02x:%02x:%02x:%02x ", eth_source[0],eth_source[1],eth_source[2],eth_source[3],eth_source[4],eth_source[5]);
printf(" Type 0x%02x ", eth_type);
printf(" Payload %s ", eth_payload);
// All packets will have ethernet info (decoded and printed above).
// At this point we have to determine what kind of data is at the next layer up (layer 3) and decode/print the data accordingly.
// This is done based on the eth_type variable.
if ( eth_type >= 0x600) {
switch ( eth_type )
{
case 0x800: // IP Packet
// insert code to decode and print IP (should this be a separate sub-routine?
break;
case 0x806: // ARP Packet
// insert code to decode and print ARP
break;
default:
break;
}
}
exit(0);
}