Pava del tío Geng

No escribí esto, pero puedo usarlo si lo modifico. Espero que ayude. . .

# incluir ltstdio.h gt

# incluir ltstring.h gt

# incluir ltstdlib.h gt

//

#define MAXSIZE 100 //El valor máximo se define como 100.

# define list _ init _ size 100 //El número máximo de usuarios de tarjetas de biblioteca se define como 100.

//Estructura del prestatario

Estructura Typedef Boro//Comportamiento del prestatario

{

char BNum[20] // El libro número del libro prestado

char RetDate[8] //Fecha de devolución

struct Boro * next

} Bor

typedef Enlace de estructura libro

{

Bor * next//El comportamiento de préstamo de esta tarjeta de biblioteca

char CNum[20] //Número de certificado

int Total//Cantidad de libros prestados

} lend[LIST _ INIT _ SIZE]; //Matriz de prestatarios

//Información de estructura de los libros

typedef estructura LNode

{

char card num[20]; //Número de ID de biblioteca

struct LNode * next

}Lista de enlaces; //Prestatario

libro de estructura typedef

{//Los contenidos a registrar para cada libro incluyen ISBN, título, autor, editorial e inventario total y inventario existente.

Número de carácter[20]; //Número de libro

char name[20]; //Título del libro

char auth[20];

char pub[20]; //Presionado

int TotNum//Inventario total

int NowNum//Inventario actual

LinkList * next//Personas que piden prestados libros

} ook[MAXSIZE];

//

int Retotal//Número de lectores

int total//Definir variables externas. Número de libros

//

//Inicialización de estructura

void InitBo(ook amp; Boo) //Inicializar información del libro

{

for(int I = 0; i ltMAXSIZEi )

{

Shh [i]. NowNum = 0;

Shh [yo]. tot num = 0;

Shh [yo]. next = NULL

}

}

void InitRe(lend amp; Lin) //Inicializar la información del prestatario

{

for(int I = 0; i ltLIST _ INIT _ TAMAÑOi )

Lin[i]. next = NULL

}

//

int mid = 0; //Función externa mid, utilizada para devolver la posición encontrada.

Método de búsqueda binaria booleana (OOkboo, Charsearchnum[])//Búsqueda binaria y número de libro de comparación.

{//Se utiliza la función bool, pero como la función no puede tener dos valores de retorno, se configura una variable externa mid para devolver la posición encontrada.

int bajo=0, alto = total-1

int encontrado = 0

mientras(bajo lt; = alto)

{

mid=(lowhigh)/2; //punto medio

If (strcmp (boo [mid]).num, search num)= = 0)/ /El El ISBN es el mismo.

{

Descubrido = 1;

Devuelve verdadero

} // Búsqueda exitosa.

if(strcmp(boo[mid]).num, SearchNum)! =0)//El ISBN es diferente.

Alto = medio 1;

si no, bajo = medio 1

}

si (buscar == 0)

Devuelve falso//La búsqueda falló.

}

Compra no válida (ook ampboo, char BuyNum[])

{/1. Editar almacenamiento: si se compra un libro nuevo, si es así. ya existe En la cuenta del libro, aumente su inventario (incluido

//incluido el inventario total y el inventario actual. Si el libro no existe, agregue un libro al libro y el inventario total y el inventario actual). ambos son 1.

If(BinarySearch(boo, BuyNum)) //Si este libro está en la biblioteca.

{

Shh [中]. totnum; //Suma 1 al inventario total

Shh [medio]. nownum; //Inventario actual más 1

Printf("Recibido correctamente.\n ");

Printf("La información de este libro en la biblioteca ha sido modificada. Número El autor del libro s para s es s, el editor es s, el inventario total actual es d, el inventario actual es d, \n ", boo[mid].num, boo[mid].name, boo[mid]. auth, boo[medio]. boo[medio]. Tottenham, boo[medio].

}

if (!BinarySearch(boo, BuyNum)

{

for(int I = total; i gt mid and mid. amp total; i-) // Insertar en la posición correcta y mantenerlo en orden.

boo[I]= boo[I-1]; // Deja la posición de inserción

Printf("No existe tal libro en la biblioteca. Para crear una nueva bibliografía, Complete los detalles de todo el libro.\n ");

strcpy(boo[i].num, BuyNum);

Printf("El número de libros comprados es : ");

scanf(" d ", ampsh[i].NowNum);

sh[i]. TotNum=boo[i]. Nome;

Printf("El nombre del libro es ");

scanf(" s ", ampSh[i].name); ("El autor de este libro es ");

scanf(" s ", ampsh[i].auth);

Printf("El editor de este libro es ") ;

scanf(" s ", ampboo[i].pub); //Información completa

boo[i].

next = NULL

total; //Cantidad total 1

Printf("La información de este libro ha sido agregada. El autor del libro numerado s es s, el editor es s y el actual El inventario total es d, y el inventario actual es d, \n ",boo[i].num,boo[i].name,boo[i].auth,boo[i].pub,boo[i ].totna Mu, shh [yo]. NowNum);

Printf("Recibido correctamente.\n "); >

Eliminación no válida (ook ampboo, char DeleteNum[])

{/2. Borrar inventario: un determinado libro no tiene valor retenido, por lo que se da de baja de los libros.

If (método de búsqueda binaria (boo, eliminar num) = = false | | total = = 0)//Si no hay ningún libro

Printf("El libro no está en la biblioteca.\n ");

If (método de búsqueda binaria (boo, eliminar num))//Si es así.

{

if(!Sh[中].Next)

{

for(int j = mid; j lt Total ; j )

boo[j]= boo[j 1];

strcpy(boo[j].num, boo[j 1].num);

strcpy(boo[j].nombre, boo[j 1].nombre);

strcpy(boo[j].auth, boo[j 1].auth);

strcpy(boo[j].pub, boo[j 1].pub);

boo[j]. TotNum=boo[j 1]. TotNum

boo[j]. AhoraNum=boo[j 1]. Nome;

Printf("El libro se ha eliminado correctamente.\n ");

}

Else printf("Este libro tiene un prestatario y no puede Eliminar.\n");

}

}

Préstamo no válido(ook ampboo, lend amplin, char BorrowNum[], char CaNum[])

{//3. Préstamo: si el inventario existente de un libro es mayor que cero, preste un libro y reduzca el inventario existente en 1.

//Y registrar el número de tarjeta de biblioteca del prestatario y el plazo de devolución.

Bor *p, * q;

Lista enlazada *m, * n;

If (! Método de búsqueda binaria (boo, lendum) | | Total = = 0)//Si no se encuentra este libro

Printf("Este libro no está en la biblioteca. \ n "); //Si tienes este libro,

If (método de búsqueda binaria (boo, lendnum)) //Hay algunos en la biblioteca.

{

if(boo[mid].NowNum gt0) //Compruebe si el inventario actual es mayor que 0.

{

Shh [中]. NowNum-; //Pide prestado un libro, 1 menos.

If(boo[mid].next==NULL) //Si la información del libro muestra que el libro no ha sido prestado.

{

m =(LinkList *)malloc(sizeof(LNode)); //Distribución

Sh[中]. next = m; //El primer nodo de la lista vinculada en la información del libro.

strcpy(m- gt; CardNum, CaNum);

m- gt; next = NULL // El último nodo está vacío.

}

Else //Si alguien ya está tomando prestado este libro.

{

m=boo[mid]. Next;

while(m->;Next) //Atravesar hasta el último nodo

m = m- gt;Next;

n = (LinkList *)malloc(sizeof(LNode)); //Asigna espacio y agrega 1 nodo.

m- gt; next = n;

strcpy(n- gt; CardNum, CaNum); //Registra el número de certificado

n->; siguiente = NULL

}

int I = 0;

for(I = 0; i ltRetotali )//

{< / p>

If (! Lin[i].CNum, CaNum))//Si ya tienes la información de esta tarjeta de biblioteca,

{

p = Lin [I]. Siguiente;

while(p->; next)p = p- gt; next; //Atravesar hasta el último nodo

q = (Bor *)malloc( sizeof(Boro) )); //Asignar espacio

p->; next = q;

strcpy(q- gt;BNum, BorrowNum); //Registrar número de libro

Printf("Ingrese la fecha de retorno: ");

scanf("s ", ampq->RetDate);

q->next = NULL

p>

Printf("El préstamo fue exitoso.\n ");

Break; //Si se encuentra el certificado, salga del ciclo.

}

}

If(i==Retotal)//Si no hay información sobre este certificado,

{

Lin[1]. CNum, CaNum); //Registra el número del certificado

p = (Bor *)malloc(sizeof(Boro)); //Asigna espacio

Lin[i]. next = p;

strcpy(p- gt; BNum, BorrowNum);

Printf("Ingrese la fecha de retorno:

scanf(" s). ", ampp->RetDate);

p->next = NULL

retotal; //Suma 1 a la información total del número de tarjeta de la biblioteca.

Printf("El préstamo fue exitoso. \ n ");

}

}

Else printf("El préstamo falló

}

}

Devolución no válida(ook ampboo, lend ampLin, char ReturnNum[] , char BorrowerNum[])

{/4. Devolución: cancela el registro del prestatario y cambia el número de libros existente.

Bor *p, * q;

Lista enlazada *m, * n;

int flag = 0 //Establecer parámetros

if(!BinarySearch(boo, ReturnNum)||!Total) // Sin libro.

Printf("No hay libros en la biblioteca. \ n ");

If (método de búsqueda binaria (boo, devuelve num)) // Hay libros.

{

m=boo[mid]. Siguiente;

If (!strcmp(m- gt; Cardnum, prestatarionum)//Si lo devuelve el primer prestatario.

{

Sh[ mid]. nownum; //Inventario actual más 1

Shh[mid]; //Eliminar nodo

Free(m);

}

Otros

{

while(m->; siguiente paso) // Encuentra el nodo prestatario del retornante.

{

If (! strcmp(m- gt; Next - gt; CardNum, BorrowerNum)) // Si se encuentra,

{

n = m- gt; next; //n es el nodo de préstamo del prestatario

m- gt; next = n- gt; //m apunta al siguiente nodo de préstamo del prestatario nodo

Free(n); //Liberar espacio

Sh nownum; //Inventario actual agregar 1

Descanso;

}

m = m- gt;Siguiente;

}

}

}

//Buscar la información del prestatario en la tabla de prestatarios

for(int I = 0; I ltRetotali)

{

if(!lin[I].cnum,borrowernum ))//si se encuentra al prestatario,

{

p = lin[ I]. Siguiente;

If (!strcmp(p- gt;BNum, return num))///Si se devuelve, es el primer libro prestado.

{

Lin [yo]. next = p- gt; next; //Señala el siguiente nodo prestado

Free (p); //Libera espacio en el nodo

Printf("El libro se devolvió correctamente.\ n ");

flag = 1;

Break;

}

Else //No encontrado.

{

while (p->; siguiente paso) // Encuentre el nodo de préstamo para devolver el libro.

{

if (!strcmp(p- gt; next- gt; BNum, ReturnNum)) //Si se encuentra.

{

q = p->; Siguiente; //q es el nodo de préstamo para devolver libros.

p->; next = q- gt; next; //p apunta al siguiente nodo prestado.

Free (q); //Liberar espacio

Printf("El libro se devolvió correctamente. \ n ");

flag = 1; p >

Pausa;

}

p = p- gt;Siguiente;

}

}

}

}

for(int k = 0; k ltRetotalk)

if (!lin[k].next)

{

for(int j = k; j ltRetotalj )

Lin[j]= Lin[j 1] //Avanzar un bit después de eso, sobrescribiendo el información actual.

Lin[j].CNum, ""; //Eliminar el número de tarjeta de la biblioteca

retotal-; //Disminuir el número de tarjetas de la biblioteca en 1

}// Elimina la información de la tarjeta de la biblioteca de los libros no prestados en el estado actual para ahorrar espacio.

If(flag==0) printf("No hay información sobre este certificado. \ n ");

}

//5. : Presione Buscar por una de las tres condiciones de consulta: buscar por número de libro,

//Buscar por título y autor. Nota: Es posible que no sea posible una búsqueda combinada, es decir, una búsqueda combinada de múltiples condiciones.

void search bynum(ook amp; boo, char SeaNum[])

{//BY NUM busca por número de libro.

Lista de enlaces * p;

p=boo[mid]. Siguiente;

If (método de búsqueda binaria (boo, seanum) == false) printf ("Lo siento, no puedo encontrar el libro que estás buscando.\n "); encontrado Método de búsqueda

Else//Si se encuentra.

{

{

printf("┏━━━━━━━┳━━━━━━━┳━━━━━━━ ━┳━━━━━━━━┳━━━━━┳━━━━━┓\n");

Printf("ISBN┃Título del libro┃Autor┃Editor┃Este número de inventario ┃Inventario total┃\n");

printf("┣━━━━━━━╋━━━━━━━╋━━━━━━━━╋━━━━ ━ ━━━╋━━━━━╋━━━━━┫\n”);

printf("┃14s┃14s┃16s┃16s┃10d┃10d┃\n",boo [ mid].num, boo[mid]. auth, boo[mid]. boo[mid];

printf("┗━━━━━┻━━━━━━━┻━ ━━━━━━━┻━━━━━━━━┻━━━━ ━┻━━━━━┛ \n");

if(boo[mid].Siguiente! =null)

{

printf("┏━━━━━━ ━┓\n");

Printf("El libro prestado┃\ n");

Printf("┃Número de biblioteca┃\n");

while(p)

{

printf ("┣━━━━━━━┫\n");

printf ("┃14s┃\n", p-gt; num de tarjeta

p =); p- gt; siguiente;

}

printf( "┗━━━━━━━┛\n");

}

}

while(p)

{

printf(" s ", p- gt; card num); // El número de tarjeta del prestatario; También se muestra en la función de búsqueda por número de libro.

p = p- gt; siguiente;

}

printf(" \ n ");

}//mostrar información sobre el libro que se busca.

}

Anular búsqueda por nombre(ook amp; boo)

{//Buscar por nombre y título.

char SeaName[20];

Printf("Ingrese el título del libro que está buscando: \ n ");

scanf(" s " , ampSeaName);

Printf("Los detalles del libro con este título encontrado son los siguientes:\ n ");

for(int I = 0; i lt total ; i )

{

If (strcmp (seaname, boo[i]).name)==0)//Si los títulos son iguales.

{

Printf("ISBN: s\nTítulo: s\nAutor: s\nEditorial: s\nStock total: d\nStock: d\n \n ", boo [ i]. num, boo [i]. Nombre, boo [

}//Muestra la información de todos los libros que coinciden con la información.

}

}

búsqueda nula por autenticación(ook amp; boo)

{//Buscar por autorización del autor

char sea auth[20];

Printf("Ingrese el autor del libro que desea encontrar: \ n ");

scanf(" s ", ampsea auth);

Printf( "El Los detalles para encontrar libros que coincidan con el autor son los siguientes: \ n ");

for(int I = 0; i lt total; i )

{

If (strcmp (seaauth, boo[i]).auth)= = 0)//Si los autores son los mismos.

{

Printf("ISBN: s\nTítulo: s\nAutor: s\nEditorial: s\nStock total: d\nStock: d\n \n ", boo [ i]. num, boo [i]. Nombre, boo [

}//Muestra la información de todos los libros que coinciden con la información.

}

}

//6. Ver: puede ver todos los libros prestados por un prestatario con un número de tarjeta de biblioteca, así como todos los libros vencidos.

Tarjeta de vista no válida (también ampboo). , lend amp林)

{//Ver todos los libros prestados por el prestatario con un número de tarjeta de biblioteca

Número de carácter [20]

Printf(" Ingrese el número de tarjeta de la biblioteca que desea ver:\ n ");

scanf(" s ", ampnum);

bor * p;

p>

int qqq = 0;

for(int I = 0; i ltRetotali )

{

If (strcmp (Lin [I] .cnum, num) = = 0) // Busca el certificado

{

Printf("El libro prestado por este certificado es: \ n "); >

p = lin[i].next;

mientras(p)

{

printf(" s ", p- gt; BNum ); //Número de libro

p = p- gt;

}

printf(" \ n "); > qqq = 1;

Romper

}

}

Si (qqq==0)

Printf("Este certificado no existe.

\n ");

}

anular ver libro(ook amp;boo,lend amp林)

{//Ver todos los libros vencidos. p>

char date[8];

bor * p;

Printf("Ingrese la fecha (ingrese en el formato 20060605): \n ");

scanf(" s ", amp fecha);

Printf("Todos los libros vencidos son: \ n ");

for(int I = 0; i ltRetotali )

{

p = 林[i].

Mientras(p)//cuando p no está vacío

{

if(strcmp(p- gt; RetDate, fecha) lt; 0) //Expirado

{

Printf( "ISBN s, número de certificado s, fecha de vencimiento s \n ", p- gt; CNum, p- gt;

}//Muestra información sobre todos los libros vencidos.

p = p- gt; siguiente

}

}

}

Menú nulo() //Menú

{

printf("┏————————————————m·e·n·u———— — ———————————┓\n”);

printf("││\ n ");

Printf("│ 1. Editar en biblioteca : Compra de un nuevo libro, si ya hay uno en la cuenta de libros, │\n");

Printf("│") aumentará su propio inventario (incluido el inventario total y el inventario actual). │\ n " );

Printf("│Si el libro no existe, agregue un libro a la cuenta de libros, │\ n ");

Printf("│Ambos el total inventario y el inventario existente Es un número de entrada │\ n ");

Printf("│ 2. Borrar inventario: un libro no tiene valor retenido y se da de baja de los libros. │\ n ");

Printf("│ 3. Préstamo: Si el inventario de un libro es mayor que cero, preste un libro y reduzca el inventario en 1, │\ n");

Printf("│ ") y registre el número de tarjeta de biblioteca del prestatario y el período de devolución. │\ n ");

Printf("│ 4. Devolución: cancelar el registro de prestatario y cambiar el número de libros existente. │\ n ");

Printf("│ 5. Buscar por ISBN │\ n ");

Printf("│ 6. Buscar por título. │\ n ");

Printf("│ Buscar. │\ n ");

Printf("│ 8. Verifique todos los libros prestados por un prestatario con un número de tarjeta de biblioteca. │\ n ");

Printf ("│ 9. Ver todos los libros vencidos │\ n ");

Printf("│ 0. Salga del sistema de gestión de libros.

│\ n ");

printf("││\ n ");

Printf ("┗————————————┛\n— Seleccione el deporte que necesita————————\n ");

}

void main()

{

Libro de libro

Prestado a Lin;

char BNum[20];

char CNum[20];

Printf (" -¡Bienvenido al sistema de gestión de bibliotecas! -\ n \ n ");

int Choice = 10

int SearchCho=10, ver CHO = 10; >

And(select!=0)

{

menu(); //Mostrar menú

scanf(" d ", amp select) ;

Cambiar (seleccionar)

{

Caso 1: //Edición y almacenamiento

Printf("Ingrese el Libro de almacenamiento número: ");

scanf(" s ",BNum);

Comprar(Bo,BNum);

Romper;

Caso 2: //Borrar inventario

Printf("Ingrese el ISBN del libro que desea borrar:");

scanf(" s ", BNum); /p>

Delete (Bo, BNum);

Break;

Caso 3: //Préstamo

Printf("Ingrese lo que desea Número de libro del libro prestado: \ n ");

scanf(" s ", ampBNum);

Printf("Ingrese el número de biblioteca: ");

scanf(" s ", ampCNum);

Préstamo(Bo, Lin, BNum, CNum);

Break; // Return

Printf("Ingrese el ISBN del libro que desea devolver: \ n "

scanf(" s ", ampBNum

);

Printf ("Ingrese el número de la biblioteca:");

scanf(" s ", ampCNum);

Return(Bo, Lin, BNum, CNum); /p>

Pausa;

Caso 5: //Buscar//Buscar por número de libro

Printf("Ingrese ISBN:"); //Ingrese el número de libro desea encontrar

scanf(" s ", ampBNum);

SearchByNum(Bo, BNum); >Caso 6: //Buscar por título.

buscar por nombre(Bo);

Break;

Caso 7: //Buscar por autor

SearchByAuth(Bo);

Descanso;

Caso 8: //Ver todos los libros prestados con tarjeta de biblioteca.

Ver tarjeta (Bo, Lin);

Pausa;

Caso 9: //Ver todos los libros vencidos.

ViewBook(Bo, Lin);

Break;

Caso 0: //Salir del sistema.

Salir(0); romper

Predeterminado: printf("¡Error de entrada! \n "); salir(0); /p>

}

}

上篇: 下篇: Historia de la nobleza británicaLa reina Victoria es la monarca con el reinado más largo en la historia británica, reinando durante 64 años. Fue la primera monarca británica en ser llamada "Reina del Reino Unido de Gran Bretaña e Irlanda y Reina de la India". Los 63 años de su reinado (1837-1901) fueron el período llamado "ocaso" más poderoso en Gran Bretaña. El reinado de la Reina, especialmente después de 1851, se conoce en la historia británica como la Era Victoriana. Sus más de 60 años de reinado coincidieron con la transición de Gran Bretaña del capitalismo liberal al capitalismo monopolista, una prosperidad económica y cultural sin precedentes y el pleno desarrollo de la monarquía constitucional, lo que convirtió a la reina Victoria en un símbolo de la paz y la prosperidad británicas. Reina Victoria, hija de Eduardo, duque de Kent. Ascendió al trono en 1837, a la edad de dieciocho años. En los primeros días de su ascenso al trono, participó activamente en la política y cooperó con el primer ministro vizconde Ram de Melbourne (1779-1848). Tendía al Partido Whig y era incompatible con el Partido Conservador. Después de 1846, la reina y su marido, el príncipe Alberto, se opusieron firmemente a la política exterior de Palmerston, lo que obligó a Palmerston a dimitir. Más adelante en su reinado, se pasó al Partido Conservador y se hizo amigo cercano del Primer Ministro Benjamín Disraeli, apoyando activamente su política de agresión colonial. Victoria se convirtió en reina de la India en 1876. Tras la muerte del primer ministro Disraeli en 1881, empezó a confiar en Salisbury y Chamberlain. En 1887 y 1897, Gran Bretaña celebró grandes ceremonias para celebrar los aniversarios 50 y 60 del ascenso al trono de la Reina, y celebró una Conferencia Colonial Imperial en Londres con ocasión de una reunión de representantes de varios territorios del imperio, utilizando la popularidad de la Reina para consolidar el dominio y la unidad interna del Imperio Británico. Durante el reinado de Victoria, Gran Bretaña pasó de ser un país europeo común y corriente a convertirse en un imperio poderoso. La reina Victoria y el príncipe Alberto tuvieron nueve hijos, casi todos casados ​​​​con nobles prominentes en ese momento. Los hijos de estos nueve niños pertenecían a casi todas las familias reales de Europa, por lo que la reina Victoria fue llamada la "abuela de Europa". A continuación se presentan a sus 9 hijos en orden de antigüedad. 1. La reina Victoria se casó con el príncipe de Prusia (más tarde Federico III), su hijo era el famoso Guillermo II y su hija Sofía era la reina de Grecia. 2. El Príncipe de Gales (más tarde Rey Eduardo VII de Inglaterra) se casó con la Princesa Alejandra, la hija mayor del Rey Cristián VIII de Dinamarca. Su segundo hijo fue el futuro rey Jorge V y su hija, la princesa Maud, fue rey de Noruega. 3. Alice Maud Marie, casada con Luis de Hessen-Dannstadt. Su hija menor fue la reina del último zar de Rusia, otra hija, Irene, se casó con el hijo de la hermana de Alice Maud Mary, y su único hijo se casó con el hermano de Alice Maud Mary, la hija del príncipe Alfred. 4. El príncipe Alfred se casó con la princesa María, hija del zar ruso Alejandro II, y su hija María es la reina de Rumania. 5. Princesa Elena, casada con Christian, duque de Sgler-Holstein. 6. Princesa Luisa, casada con John Campbell, noveno duque de Argyll. 7. El Príncipe Arturo se casó con la Princesa Margarita de Prusia, y su hija, la Princesa Margarita, fue la Princesa Heredera de Suecia (murió antes de que su marido sucediera en el trono), y el hijo de la Princesa Margarita de Suecia se convirtió en el futuro Rey de Suecia, cuyo Hija era madre de la reina Margarita II de Dinamarca, la reina Ingrid, recibió su nombre de su madre, quien murió prematuramente. 8. El príncipe Leopoldo se casó con la princesa Elena de las casas de Waldark y Pyrmont. 9. La princesa Beatriz, se casó con el príncipe Enrique de Baden-Powell, y su hija, la princesa Victoria, se casó con Alfonso XIII de España, quien más tarde se convirtió en la reina de España, la abuela del actual rey. Entonces, en la historia del Imperio Británico (ahora Reino Unido de Gran Bretaña e Irlanda del Norte), hubo dos reyes, Victoria y Eduardo. Victoria es la bisabuela de la actual reina Isabel, Eduardo es el abuelo de la actual reina Isabel y Victoria es la madre de Eduardo. Este fue el período más glorioso de la expansión exterior del Imperio Británico. Para ampliar su territorio, Gran Bretaña no dudó en utilizar cualquier medio. En 1857, la batalla entre Gran Bretaña y Francia por el dominio del Canal de Suez alcanzó un punto álgido. Sin embargo, una astuta conspiración permitió a Gran Bretaña obtener una participación mayoritaria en el Canal de Suez, y Francia tuvo que ceder.