Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- struct STUD
- { //Тип с данните за едно лице
- char ime[31]; char EGN[11]; long FN; int oc[10]; float sru;
- };
- FILE* fl;
- char imefl[30];
- //char filename[40];
- STUD stud;
- //функция за във. данните за едно лице
- void readStud(STUD* st)
- {
- int i;
- printf("Име: "); gets(st->ime);
- printf("Фак. номер:");
- scanf("%ld", &st->FN);
- printf("Оценки по 10-те дисциплини\n");
- for (i = 0; i < 10; i++) {
- printf("По %d-а дисциплина:", i + 1);
- scanf("%d", &st->oc[i]);
- }
- getchar();
- }
- //функция за изв. данните за едно лице
- void writeStud(STUD st)
- {
- int i;
- printf("Име: %s\n", st.ime);
- printf("Факултетен номер:%06ld\n", st.FN);
- printf("Оценки: ", st.oc);
- //gets(bf);
- getchar();
- }
- int exist(char* ime)
- {
- FILE* f = fopen(strcat(ime, ".txt"), "r"); fclose(f);
- return f != NULL;
- }
- void chetene(char filename[30]){
- FILE *fp;
- fp = fopen(filename, "rb");
- if (fp == NULL)
- {
- printf("немога да прочета файла");
- getchar();
- exit(1);
- }
- while (fread(&stud, sizeof(struct STUD), 1, fp) == 1)
- {
- printf("%d", sizeof(stud.oc));
- for (int i = 0; i < sizeof(stud.oc); i++){
- printf("%s", stud);
- }
- //printf("\n********************\n");
- }
- fclose(fp);
- }
- //функция за създаване на празен файл}
- void szdPrz(char filename[30])
- {
- /*char ch;
- fl = fopen(filename, "r");
- fclose(fl);
- if (NULL != fl)
- {
- printf("Файлът съществува! ");
- printf("Да го презапиша ли?");
- ch = getchar();
- if (ch == 'n') return;
- }
- printf("\n Файлът е създаден.\n");*/
- char ch;
- FILE *file;
- if ((file = fopen(filename, "r")) != NULL)
- {
- // file exists
- printf("Файлът съществува!\n");
- printf("Да го презапиша ли?");
- ch = getchar();
- if (ch == 'n') return;
- strcpy(imefl, filename);
- fclose(file);
- }
- else
- {
- strcpy(imefl, filename);
- file = fopen(filename, "wb");
- fclose(file);
- printf("Файлът е създаден.\n");
- return;
- //File not found, no memory leak since 'file' == NULL
- //fclose(file) would cause an error
- }
- }
- //функция за добавяне на компоненти към файла
- void dobaviane(char filename[30])
- {
- char ch;
- if (!exist(imefl))
- {
- printf("Файлът не e създаден!\n"); return;
- }
- FILE *fl;
- fl = fopen(imefl, "w");
- do {
- readStud(&stud);
- fwrite(&stud, sizeof(struct STUD), 1, fl);
- fclose(fl);
- printf("Ще продължите ли въвеждането? y/n");
- ch = getchar();
- } while (ch != 'n');
- }
- void main()
- {
- system("chcp 1251");
- int c;
- printf("Име на файл: "); gets(imefl);
- do {
- printf("%20sМЕНЮ НА ИЗПЪЛНЯВАНИТЕ ОПЕРАЦИИ:\n", "");
- printf("%26s1. създаване на нов файл\n", "");
- printf("%26s2. добавяне на компоненти\n", "");
- printf("%26s3. списък от фак. № на всички студенти с не повече от две двойки.\n", "");
- printf("%20sПосочете операция или 0 за край: ", "");
- scanf("%d", &c); getchar();
- switch (c) {
- case 1:szdPrz(strcat(imefl, ".txt")); break;
- case 2:dobaviane(strcat(imefl, ".txt")); break;
- case 3:chetene(strcat(imefl, ".txt")); break;
- }
- getchar();
- } while (c != 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement