Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2012, 14:15   #1
alexeynov
Новичок
Джуниор
 
Регистрация: 16.01.2012
Сообщений: 1
По умолчанию задача на visual C++

реализовать программу выполняющую следующие действия
1 добавление записи в файл
2.отображение данной записи
3.отображение всех записи
4.удаление записи
5.измениние записи
Отображение заданной записи должно происходить по номеру записи
Данные записи должны храниться в бинарном файле
Каждая запись хранит следующую информацию: ФИО номер телефона
Текстовые данные могут иметь фиксированную длину
Программа должна работать следующим образом:
Base.exe add <перечисление полей>
В консоль выводится результат выполнения операции
Base.exe get <индификатор записи >
Base.exe del <индификатор записи >
И т.д….

приблизительный код:

Код:
// Base.cpp : Defines the entry point for the console application.
#include"stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

int main(int argc, char* argv[])
{
	struct adr
	{
		int number;
		char name[16];
		char mnum[12];
	};
	FILE *F;
	switch(*argv[1]) 
	{
	case 'a':
		char y;
		F=fopen("out.txt","wb");
		if((y=fgetc(F))!=EOF)
		{
			int k;
			fseek(F,29,SEEK_END);
			fscanf(F,"%d",&k);
			fseek(F,0,SEEK_END);
			fprintf(F,"\n%d) %s %s",k+1,argv[2],argv[3]);
		}
		else
			fprintf(F,"\n1) %s %s",argv[2],argv[3]);
		fclose(F);
		printf("\nВ файл добавлен новый элемент");
		break;
	///////////
	case 'g':
		int k;
		F=fopen("out.txt","rb");
		fscanf(F,"%d",&k);
		while(k!=(int (argv[1])))
		{
			fseek(F,30,SEEK_SET);
			fscanf(F,"%d",&k);
		}
		char s;
		int j;
		for(j=0;j<29;j++)
		{
			fscanf(F,"%c",&s);
			printf("%c",s);
		}
		fclose(F);
		printf("\nУказанная запись показана");
		break;
	///////////
	case 'q':
		char ch;
		F=fopen("out.txt","rb");
		while((ch=fgetc(F))==EOF)
			printf("%c",ch);
		fclose(F);
		printf("\nВсе записи показаны");
		break;
	////////////
	case 'd':
		F=fopen("out.txt","rb");
		int t;
		fseek(F,30,SEEK_END);
		fscanf(F,"%d",&t);
		struct adr *a;
		a=new struct adr[t-1];
		int i;
		for(i=0;i<t-1;i++)
		{
			if(i!=(int (argv[1])))
			{
				fscanf(F,"%d",&a[i].number);
				fseek(F,2,SEEK_SET);
				fscanf(F,"%s",&a[i].name);
				fseek(F,2,SEEK_SET);
				fscanf(F,"%s",&a[i].mnum);
			}
		}
		fclose(F);
		F=fopen("out.txt","wb");
		int l;
		for(l=0;l<t-1;l++)
			fprintf(F,"%d) %s %s",a[l].number,a[l].name,a[l].mnum);
		printf("\nУказанная запись удалена");
		break;
	/////////////
	case 'c':
		F=fopen("out.txt","rb");
		int p;
		fseek(F,30,SEEK_END);
		fscanf(F,"%d",&p);
		struct adr *b=new struct adr[p-1];
		int r;
		for(r=0;i<p-1;i++)
		{
			if(r!=(int (argv[1])))
			{
				fscanf(F,"%d",&b[r].number);
				fseek(F,2,SEEK_SET);
				fscanf(F,"%s",&b[r].name);
				fseek(F,2,SEEK_SET);
				fscanf(F,"%s",&b[r].mnum);
			}
		}
		fclose(F);
		F=fopen("out.txt","wb");
		int e;
		for(e=0;e<p;e++)
		{
			if(e!=(int (argv[1]))-1)
				fprintf(F,"%d) %s %s",b[e].number,b[e].name,b[e].mnum);
			else
			{
				fprintf(F,"%d) %s %s",b[e].number,b[e].name,b[e].mnum);
				fprintf(F,"%d) %s %s",argv[1],argv[2],argv[3]);
			}
		}
		printf("\nУказанная запись изменена");
		break;
	}
	return 0;
}

Последний раз редактировалось ACE Valery; 16.01.2012 в 18:59.
alexeynov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в Visual Basic ??? Seryoga228 Помощь студентам 1 10.10.2011 16:32
Задача по Visual C++ vidok_ Visual C++ 1 24.05.2011 21:32
задача на visual prolog sjua Помощь студентам 0 30.11.2010 21:29
Задача на Visual Basic Shen. Помощь студентам 2 22.06.2009 22:28
Задача на (MSDEV Visual c++ 6.0) JOFRIF Помощь студентам 4 07.06.2008 12:13