Автор работы: Пользователь скрыл имя, 21 Января 2012 в 19:56, курсовая работа
Важной вехой в развитии программирования явилось создание и широкое распространение языка С++. Этот язык, сохранив средства ставшего общепризнанным стандартом для написания системных и прикладных программ языка С (процедурно-ориентированный язык), ввел в практику программирования возможности нового технологического подхода к разработке программного обеспечения, получившего название “объектно-ориентированное программирование”. Внедрение в практику программирования объектно-ориентированной парадигмы дает развитие новых областей информатики, значительное повышение уровня технологичности создаваемых программных средств, сокращение затрат на разработку и сопровождение программ, их повторное использование, вовлечение в процесс расширения интеллектуальных возможностей ЭВМ.
Введение 3
1 Постановка задачи 4
1.1 Анализ предметной области 4
1.2 Описание метода решения задачи 5
2 Описание программного обеспечения 8
2.1 Входные данные 8
2.2 Выходные данные 9
2.3 Требования к надёжности 10
2.4 Структурная диаграмма 10
2.5 Описание функций 11
3 Описание работы программного модуля 13
3.1 Руководство пользователя 13
3.2 Тестирование 14
Заключение 16
Список использованных источников 17
Приложение А 18
file_vuvod();
break;
case 6:
graf();
break;
case 7:
formyla_red();
formyla_zag();
break;
case 8:
formyla_pros();
break;
case 9:
restart();
break;
case 10:
exit(0);
default:
printf("Указанного номера меню нет\n\n");
}
}
}
Текст файла
excel.h
#import "C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE12\\MSO.DLL" \
rename( "RGB", "MSORGB" )
using namespace Office;
#import "C:\\Program Files\\Common
Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.
using namespace VBIDE;
#import "C:\\Program Files\\Microsoft Office\\OFFICE12\\EXCEL.EXE" \
rename( "DialogBox", "ExcelDialogBox" ) \
rename( "RGB", "ExcelRGB" ) \
rename( "CopyFile", "ExcelCopyFile" ) \
rename( "ReplaceText", "ExcelReplaceText" )
using namespace Excel;
Текст файла
file.h
void file()
{
FILE *fp;
char q[10];
char file_name[10];
printf("Введите имя файла (.bin)\n");
scanf("%s",file_name);
strcpy(q,".bin");
strcat(file_name,q);
if ((fp=fopen(file_name,"r"))==
{
printf("Указанный файл не существует\n");
}
else
{
fread(&s,sizeof(info),1,fp);
printf("\nПрочитано\n");
printf("*****************\n");
printf("Ef = %f\n",s.Ef[0]);
printf("e= %f\n",s.e[0]);
printf("*****************\n");
}
}
Текст файла
file_vuvod.h
void file_vuvod()
{
FILE *fp;
int r=0;
float y,x,y1,y2;
int i,n;
char file_name[10];
char q[10];
if (s.Ef[0]!=0 && s.e[0]!=0)
{
do
{
x=s.Ef[0];
y1=exp((s.Ef[0]-h.Ed[0])/h.KT[
y2=exp((h.Ev[0]-s.Ef[0])/h.KT[
y=s.Ef[0]+0.1*(h.KT[0]*(log(((
s.Ef[0]=y;
r++;
g[0].kol=r;
g[r-1].na4=x;
g[r-1].kon=s.Ef[0];
}
while (fabs(x-s.Ef[0])>=s.e[0]);
printf("Введите имя файла\n");
scanf("%s",file_name);
strcpy(q,".txt");
strcat(file_name,q);
fp=fopen(file_name,"w");
if (fp==NULL)
printf("Ошибка открытия файла!\n");
else
{
printf("Файл успешно открыт и записан с расширением txt\n");
fwrite(g, sizeof(info3),1,fp);
}
fclose(fp);
}
else printf("Исходные данные должны быть введены\n\n");
}
Текст файла
formyla_pros.h
void formyla_pros()
{
FILE *fp;
fp=fopen("formyla","r");
fread(&h,sizeof(info3),1,fp);
printf("*****************\n");
printf("Плотность
состояний в зоне проводимости=%e\n",h.Nc[0]);
printf("Плотность состояний в пограничной зоне=%e\n",h.Nv[0]);
printf("Плотность донорных состояний=%e\n",h.Nd[0]);
printf("Энергия зоны проводимости=%f\n",h.Ec[0]);
printf("Энергия донорного уровня=%f\n",h.Ev[0]);
printf("Энергия пограничной зоны=%f\n",h.Ed[0]);
printf("KT=%f\n",h.KT[0]);
printf("Начало диапазона=%f\n",h.na4[0]);
printf("Конец диапазона=%f\n",h.kon[0]);
printf("*****************\n");
}
Текст файла
formyla_red.h
void formyla_red()
{
FILE *fp;
fp=fopen("formyla","w");
if (fp==NULL)
printf("Ошибка открытия файла!\n");
else
{
printf("Файл успешно открыт\n");
printf("Плотность состояний в зоне проводимости:\n");
scanf("%e",&h.Nc[0]);
printf("Плотность состояний в пограничной зоне:\n");
scanf("%e",&h.Nv[0]);
printf("Плотность донорных состояний:\n");
scanf("%e",&h.Nd[0]);
printf("Энергия зоны проводимости:\n");
scanf("%f",&h.Ec[0]);
printf("Энергия донорного уровня:\n");
scanf("%f",&h.Ev[0]);
printf("Энергия пограничной зоны:\n");
scanf("%f",&h.Ed[0]);
printf("KT:\n");
scanf("%f",&h.KT[0]);
printf("Начало диапазона:\n");
scanf("%f",&h.na4[0]);
printf("Конец диапазона:\n");
scanf("%f",&h.kon[0]);
fwrite(&h, sizeof(info3),1,fp);
printf("Формула успешно изменена\n");
}
fclose(fp);
}
Текст файла
formyla_zag.h
void formyla_zag()
{
FILE *fp;
fp=fopen("formyla","r");
fread(&h,sizeof(info3),1,fp);
}
Текст файла
graf.h
void graf()
{
char f[2],f2[4];
char f3[2],f4[4];
long i;
::CoInitialize(NULL);
try
{
using namespace Excel;
_ApplicationPtr excel("Excel.Application");
excel->Visible[0] = true;
_WorkbookPtr book = excel->Workbooks->Add();
_WorksheetPtr sheet = book->Worksheets->Item[1L];
sheet->Range["C1"]->
sheet->Range["D1"]->
for (i=2;i<g[0].kol+2;i++)
{
strcpy(f,"B");
sprintf(f2,"%d",i);
sheet->Range[strcat(f,
strcpy(f3,"C");
sprintf(f4,"%d",i);
sheet->Range[strcat(f3,
strcpy(f,"D");
sprintf(f2,"%d",i);
sheet->Range[strcat(f,
}
_WorksheetPtr charts=book->Charts->Add();
}
catch (_com_error& er)
{
char buf[1024];
sprintf(buf,"_com_error:\n"
"Error : %08lX\n"
"ErrorMessage: %s\n"
"Description : %s\n"
"Source : %s\n",
er.Error(),
(LPCTSTR)_bstr_t(er.
(LPCTSTR)_bstr_t(er.
(LPCTSTR)_bstr_t(er.Source()))
CharToOem(buf,buf);
printf(buf);
}
::CoUninitialize();
}
Текст файла
klav.h
void klav()
{
float ch(0);
float n(0);
int i=0,i2=0,i3=0;
printf("Введите
начальное значение Ef [%f;%f]:\n",h.na4[0],h.kon[0])
while (ch!=13)
{
ch=getch();
if (ch>47 && ch<58)
{
n=n*10+ch-48;
i++;
std::cout<<(char)ch;
}
else if (ch=='.')
{
i2=i;
std::cout<<'.';
}
else if (ch=='-')
{
i3++;
std::cout<<'-';
}
else if (ch==8)
{
n/=10;
std::cout<<(char)8<<' '<<(char)8;
}
}
if (i==1)
n=n;
else
{
i=i-i2;
n=n*pow(10,-i);
}
if (i3==1)
n*=-1;
while (n<=h.na4[0] || n>=h.kon[0])
{
i=0;
i2=0;
i3=0;
n=0;
ch=0;
printf("\nВы вышли из диапазона\n");
while (ch!=13)
{
ch=getch();
if (ch>47 && ch<58)
{
n=n*10+ch-48;
i++;
std::cout<<(char)ch;
}
else if (ch=='.')
{
i2=i;
std::cout<<'.';
}
else if (ch=='-')
{
i3++;
std::cout<<'-';
}
else if (ch==8)
{
n/=10;
std::cout<<(char)8<<' '<<(char)8;
}
}
if (i==1)
n=n;
else
{
i=i-i2;
n=n*pow(10,-i);
}
if (i3==1)
n*=-1;
}
s.Ef[0]=n;
i=0;
i2=0;
i3=0;
n=0;
ch=0;
printf("\nВведите точность e:\n");
while (ch!=13)
{
ch=getch();
if (ch>47 && ch<58)
{
n=n*10+ch-48;
i++;
std::cout<<(char)ch;
}
else if (ch=='.')
{
i2=i;
std::cout<<'.';
}
else if (ch==8)
{
n/=10;
std::cout<<(char)8<<' '<<(char)8;
}