Курсовая работа: Програмний комплекс для роботи розробки візитних карток
Для індексного списку також може використовуватися індексне збереження. Нехай, наприклад, мається список B= з елементами
K1=(338,Z), K2=(145,A), K3=(136,H), K4=(214,I), K5 =(146,C),K6=(334,Y), K7=(333,P), K8=(127,G), K9=(310,O), K10=(322,X).Потрібно розділити його на сімох підсписків, тобто X= таким чином, щоб у кожен список B1,B2,...,B7 попадали елементи, що збігаються в першому компоненті першими двома цифрами. Список Х, у свою чергу, будемо індексувати списком індексів Y=, щоб у кожен список Y1,Y2,Y3 попадали елементи з X, у яких у першому компоненті збігаються перші цифри. Якщо списки B1,B2,...,B7 зберігати пов'язано, а списки індексів X,Y індексно, те такий спосіб збереження списку B називається зв'язаним індексним збереженням. Графічне зображення цього збереження приведене на мал.25.
Рис.13. зв'язане індексне збереження списку.
Практична частина
Результатом нашої роботи є програмний комплекс для роботи (розробки) візитних карток (мал. 1). Для економії часу при розробці програми ми використали деякі вже готові функції для роботи з графікою.
Мал. 1. Лістинг модуля функцій для роботи з графікою.
Основною частиною програми є модуль для роботи з графічним форматом BMP (лістинг 1).
Лістинг 1.
/* windows bmp format image storage */
BMPsave(int x,int y,int x1,int y1,char a[])
{
struct bmp
{unsigned char name[3];
unsigned char dummy[15];
unsigned int x;
unsigned char dummy1[2];
unsigned int y;
unsigned char dummy2[1];
}bmphead;
FILE *fp,*fq;
int xlen,ylen,i,j,count;
unsigned char c,ch;
fp=fopen(a,"wb");
fq=fopen("electron.bmp","rb");
/*fq=fopen("electron.bmp","rb");*/
if (fp==NULL) return(-1);
fread(&bmphead,sizeof(struct bmp),1,fq);
xlen=x1-x+1;
ylen=y1-y+1;
bmphead.x=xlen;
bmphead.y=ylen;