Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string>
- #include <string.h>
- #include <stdlib.h>
- using namespace std;
- struct STUDENT{
- char ime[20];
- char EGN[10];
- int fakNomer;
- int nomerNaGrupa;
- int ocenki[10];
- float sredenUspeh;
- } student;
- int zadadenNomer;
- int broqch;
- FILE *fl;
- char imefl[30];
- //char firmaProizvoditelInput[30];
- int exist(char *ime)
- {
- FILE *f = fopen(ime,"r"); fclose(f);
- return f!=NULL;
- }
- void szdPrz(){
- char ch;
- if (exist(imefl)) {
- printf("Файла е създаден! \n");
- printf("Да го презапиша ли? \n");
- ch=getchar();
- if (ch == 'n') return;
- }
- fl=fopen(imefl,"w");
- fclose(fl);
- printf("Файла е създаден.\n");
- }
- //функция за въвеждане данните за едно лице
- void readStudent(STUDENT *student)
- {
- printf("Въведете името на студента: \n", "");
- scanf(" %20s", student->ime);
- printf("Въведете ЕГН на студента: \n", "");
- scanf(" %10s", student->EGN);
- printf("Въведете фак. номер на студента: \n", "");
- scanf(" %10s", student->fakNomer);
- printf("Въведете номер на групата: \n", "");
- while(scanf("%d",&student->nomerNaGrupa) <= 0){
- scanf("%*s");
- printf("Моля, въведете цяло число.\n");
- }
- for(int i =0; i<10;i++)
- {
- printf("Въведете оценка по дисциплина: %d \n ", i+1);
- while(scanf("%d",&student->ocenki[i]) <= 0){
- scanf("%*s");
- printf("Моля, въведете цяло число.\n");
- }
- }
- }
- void sredenUpsehStudent(STUDENT stud)
- {
- int sum = 0;
- for(int i =0; i<10;i++)
- {
- sum = sum +(stud.ocenki[i]);
- }
- stud.sredenUspeh = (sum/10);
- }
- /*
- //Функция за извеждане на данните на всички машини
- void writeMashina(MASHINA ms){
- printf("Име на машината: %s | Фирма производител: %s | Цена на закупуване: %d | година на закупуване: %d \n",
- ms.imeMashina,ms.firmaProizvoditel, ms.cenaNaZakupuvane, ms.godinaNaZakupuvane);
- if(ms.imeMashina[0]!=0)
- {
- k1++;
- }
- }
- */
- // Sreden uspeh nad 4.00 imashti 2 ili poveche dvoiki ot zadadena grupa
- void studentIzvejdane(STUDENT stud)
- {
- if((stud.sredenUspeh) > 4 && (stud.nomerNaGrupa == zadadenNomer))
- {
- int broiDvoiki = 0;
- for(int i=0; i++; i<10)
- {
- if(stud.ocenki[i] == 2)
- {
- broiDvoiki++;
- }
- }
- if(broiDvoiki>2)
- {
- printf("Фак номер: %-10s Среден успех: %d \n",
- stud.fakNomer,stud.sredenUspeh);
- broqch++;
- }
- }
- }
- //функция за добавяне на компоненти към файла
- void dobaviane(){
- char ch;
- char charChek;
- if (!exist(imefl)) {
- printf("Файлът не е създаден!\n");return;
- }
- fl=fopen(imefl,"a+b");
- do{
- readStudent(&student);
- fwrite(&student,sizeof(student),1,fl);
- printf("Ще продължите ли въвеждането(n за край)? \n");
- scanf(" %c", &charChek);
- }while (charChek != 'n');
- fclose(fl);
- }
- void writeStud(STUDENT stud){
- printf("Име на студента: %s | Фак. номер: %s \n",
- stud.ime, stud.fakNomer);
- }
- void obSpis(){
- int k;
- if (!exist(imefl)) {
- printf("Файлът е създаден!\n");
- return;
- }
- fl=fopen(imefl,"rb"); k=0;
- fread(&student,sizeof(student),1,fl);
- while (!feof(fl)){
- //k++;
- writeStud(student);
- fread(&student,sizeof(student),1,fl);
- }
- //if (k1==0) printf("Failyt e prazen\n");
- fclose(fl);
- }
- /*
- void obSpisOver(){
- if (!exist(imefl)) {
- printf("Файлът е създаден!\n");
- return;
- }
- fl=fopen(imefl,"rb"); k2=0;
- fread(&mashina,sizeof(mashina),1,fl);
- while (!feof(fl)){
- //k2++;
- writeMashinaOver(mashina);
- fread(&mashina,sizeof(mashina),1,fl);
- }
- if (k2==0) printf("Списъкът е празен, няма машини на стойност над 100 000 лева, закупени през последните 5 години.\n");
- fclose(fl);
- }
- */
- void obSpisInput(){
- printf("Въведи името на групата: ", "");
- scanf("%d", &zadadenNomer);
- if (!exist(imefl)) {
- printf("Файлът не е създаден!\n");
- return;
- }
- fl=fopen(imefl,"rb");
- fread(&student,sizeof(student),1,fl);
- while (!feof(fl)){
- //k2++;
- studentIzvejdane(student);
- fread(&student,sizeof(student),1,fl);
- }
- if (broqch==0)
- printf("Списъкът е празен. Липсват студенти със среден успех над 4.00 и две двойки \n");
- fclose(fl);
- }
- /*
- void iztrivane(){
- FILE *delFl; //Помощен файл за изтриване
- char imeMash[30];
- if (!exist(imefl)) {
- printf("Файлът не е създаден!\n");return;
- }
- printf("Въведете име на машината: ");gets(imeMash);
- fl=fopen(imefl,"rb");delFl=fopen("Del","wb");
- fread(&mashina,sizeof(mashina),1,fl);
- while (!feof(fl)){
- if (strcmp(mashina.imeMashina,imeMash)!=0)
- fwrite(&mashina,sizeof(mashina),1,delFl);
- else printf("Данни за машина %s са изтрити.\n",imeMash);
- fread(&mashina,sizeof(mashina),1,fl);
- }
- fclose(fl); fclose(delFl);
- remove(imefl); rename("Del",imefl);
- }
- */
- int main() {
- int c;
- setlocale(LC_ALL, "Bulgarian");
- printf("Име на файл: ");gets(imefl);
- do {
- printf("Меню операциите:\n","");
- printf("%26s1. Създаване на нов файл\n","");
- printf("%26s2. Добавяне на информация за студент \n","");
- printf("%26s3. Изтриване на компонент\n","");
- printf("%26s4. Извеждане на студенти с успех над 4.00 и две двойки \n","");
- printf("%26s5. Списък на всички студенти\n","");
- //printf("%26s6. Списък на всички машини над 100 000 лева, закупени през последните 5 години \n");
- printf("%20s Посочете 0 за край: ","");
- scanf("%d",&c);getchar();
- switch (c){
- case 1:szdPrz();break;
- case 2:dobaviane();break;
- //case 3:iztrivane();break;
- case 4:obSpisInput(); break; // 2 dvoiki i nad 4
- case 5:obSpis(); break;
- //case 6:obSpisOver(); break;
- }
- }while (c!=0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement