تبلیغات
دانلود پروژه های ++C - Student
 
پنجشنبه 19 خرداد 1390 :: نویسنده : حمیدرضا باقری

باعرض سلام و خسته نباشید خدمت شما بازدید کنندگان محترم

باید ببخشید که یک چند وقتی نتونستم در خدمتتون باشم

امروز یک برنامه بسیار عالی و پر کاربرد براتون گذاشتم که تو این برنامه مشخصات کامل یک دانشجو را از ورودی گرفته و در یک فایل ذخیره میکند که برای آن چند تا جستجو مختلف گذاشتم و مهمتر از همه اینه که میشه اطلاعات کل فایل رو پاک کرد

برای دریافت کد به ادامه مطلب بروید ----------------------->

 

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include "mylib.h"

typedef struct{
   long int StID;
   char Name[20];
   char Major[20];
   char City[20];
   float Avg;
   int valid;
}Student;

FILE *fp;
Student RECORD;

char Display(void);
void stdinput(char path[], int len, long int Max);
void newstd(char path[], int len);
void AZid(char path[]);
void AZname(char path[]);
void AZavg(char path[]);
void Findid(char path[], long int Max);
void Findname(char path[]);
void printrec(Student *REC, int x, int y);

const long start=8343000;
const len=800;

int main(void)
{
   char *path={"stud.dat"};
   char key;

   while(key=Display())
   {
  clrscr();
     switch(key)
  {
   case '0': newstd(path, len);
                break;
   case '1': stdinput(path, len, start);
                break;
   case '2': AZid(path);
                    break;
   case '3': AZname(path);
                      break;
   case '4': AZavg(path);
                      break;
   case '5': Findid(path, start);
                      break;
   case '6': Findname(path);
                        break;
   case '7': return(0);
  }
   }
   return(0);
}

char Display(void)
{
 clrscr();
 char ch;
 cout << "Student's DataBase \n";
 cout << "------------------ \n\n";
 cout << "\t 0) Reset Data File." << endl;
 cout << "\t 1) Enter New Student." << endl;
 cout << "\t 2) View list by ID." << endl;
 cout << "\t 3) View list by Name." << endl;
 cout << "\t 4) View list by Avrage." << endl;
 cout << "\t 5) Find by ID." << endl;
 cout << "\t 6) Find by Name." << endl;
 cout << "\t 7) Exit" << endl << endl;
 cout << " Select: " ;
 ch = getch();
 return (ch);
}
void stdinput(char path[], int len, long int Max)
{
   if(fopen(path, "r")==NULL)
  newstd(path, len);

   fp = fopen(path, "r+");
   int n, count=0;
   cout << endl << "Enter New Student's Information:"
        << endl << "--------------------------------"
        << endl << " How many student? ";
   cin >> n;
   for(int i=0; i<n; i++)
   {
  cout << (i+1) << ") " << endl;
  cout << "Name: ";
      gets(RECORD.Name);
  cout << "ID: ";
    cin >> RECORD.StID;
  cout << "Major: ";
    gets(RECORD.Major);
  cout << "City: ";
 gets(RECORD.City);
  cout << "Avrage: ";
 cin >> RECORD.Avg;
  cout << endl;
    RECORD.valid=1;
  if(RECORD.StID-Max < len && RECORD.StID-Max >= 0)
    {
     fseek(fp, (RECORD.StID-Max)*sizeof(Student) , SEEK_SET);
  fwrite(&RECORD, sizeof(Student), 1, fp);
  fflush(fp);
         count++;
      }
      else
 cout << "\nID is out of range.\n";
   }
   fclose(fp);
   cout << endl << count << " New entry.";
   getch();
}

void newstd(char path[],int len)
{
   char key;
   cout << "Student's DataBase \n";
   cout << "------------------ \n\n";
   cout << "\t Do you want to create blank data file ? (Y/N) ";
   while((key=getch())!='n' && key!='N')
 if(key=='y' || key=='Y')
 {
 cout << 'Y' ;
 fp = fopen(path, "w");
    RECORD.valid=0;
 for(int i=0; i<len; i++)
   fwrite(&RECORD, sizeof(Student), 1, fp);
    fclose(fp);
 cout << "\n\t New data file created.";
 getch();
    break;

 }
}

void AZid(char path[])
{
   if((fp=fopen(path, "r"))==NULL)
   {
  cout << "file not found.";
  getch();
  return;
   }
   cout << endl << "Student's Information (Sorted bt ID)"
        << endl << "-----------------------------------"
 << endl << "ID\t\tName\t\tAvrage\tMajor\tCity\n\n";


 int y=6;
   while(fread(&RECORD,sizeof(Student),1,fp))
  if(RECORD.valid == 1)
  {
  printrec(&RECORD, 1, y);
    y++;
  }
   fclose(fp);
   getch();
}
void AZname(char path[])
{
   if((fp=fopen(path, "r"))==NULL)
   {
  cout << "file not found.";
  getch();
  return;
   }

   cout << endl << "Student's Information (Sorted bt Name)"
        << endl << "--------------------------------------"
        << endl << "ID\t\tName\t\tAvrage\tMajor\tCity\n\n";

   Student arr[len];
 int i=0,j;
   while(fread(&RECORD,sizeof(Student),1,fp))
  if(RECORD.valid==1)
    {
  j=i;
   while(j>0 && cmpstr2(arr[j-1].Name, RECORD.Name)>0)
   {
    arr[j]=arr[j-1];
    j--;
   }
   arr[j]=RECORD;
 i++;
    }
   fclose(fp);
   for(j=0; j<i; j++)
 printrec(&arr[j], 1, j+6);
   getch();
}
void AZavg(char path[])
{
   if((fp=fopen(path, "r"))==NULL)
   {
  cout << "file not found.";
  getch();
  return;
   }

   cout << endl << "Student's Information (Sorted bt Avrage)"
        << endl << "---------------------------------------"
        << endl << "ID\t\tName\t\tAvrage\tMajor\tCity\n\n";

   Student arr[len];
 int i=0,j;
   while(fread(&RECORD,sizeof(Student),1,fp))
  if(RECORD.valid==1)
    {
     j=i;
    while(j>0 && arr[j-1].Avg<RECORD.Avg)
   {
    arr[j]=arr[j-1];
    j--;
   }
   arr[j]=RECORD;
       i++;
    }

   for(j=0; j<i; j++)
    printrec(&arr[j], 1, j+6);

   getch();
}
void Findid(char path[], long int Max)
{
   if((fp=fopen(path, "r"))==NULL)
   {
  cout << "file not found.";
  getch();
  return;
   }

 long num;
   cout << endl << "Find Student by Std ID"
        << endl << "----------------------"
        << endl << "Enter Student ID: ";
 cin >> num;

   cout << endl << "ID\t\tName\t\tAvrage\tMajor\tCity\n\n";

 fseek(fp, (num-Max)*sizeof(Student) , SEEK_SET);
   if(fread(&RECORD,sizeof(Student),1,fp))
  if(RECORD.valid==1 && RECORD.StID == num)
  {
   printrec(&RECORD, 1, 8);
   fclose(fp);
  }
   else
  cout << "Not found.";

   getch();
}
void Findname(char path[])
{
   if((fp=fopen(path, "r"))==NULL)
   {
  cout << "file not found.";
  getch();
  return;
   }

 char name[25];
   int flag=0;
   cout << endl << "Find Student by Name"
        << endl << "--------------------"
 << endl << "Enter Student Name: ";
 gets(name);

   cout << endl << "ID\t\tName\t\tAvrage\tMajor\tCity\n\n";

   while(fread(&RECORD,sizeof(Student),1,fp))
     if(RECORD.valid==1 && cmpstr3(RECORD.Name, name)==0)
      {
  printrec(&RECORD, 1, flag+8);
  flag++;
      }
 cout << endl << flag << " item(s) found.";

   fclose(fp);
   getch();
}
void printrec(Student *REC, int x, int y)
{
    gotoxy(x,y);
    cout << REC->StID;
 gotoxy(x+15,y);
    cout << REC->Name;
    gotoxy(x+33,y);
    cout << REC->Avg;
    gotoxy(x+41,y);
    cout << REC->Major;
 gotoxy(x+48,y);
      cout << REC->City;
}





نوع مطلب : کدهای سی پلاس پلاس ، 
برچسب ها :
لینک های مرتبط :


یکشنبه 17 دی 1391 11:45 ب.ظ
سلام
وبلاگ عالی‏ای دارید امیدوارم موفق باشید..
خوشحال میشم به وبلاگ ماهم یه سری بزنید..
پنجشنبه 30 آذر 1391 11:23 ق.ظ
سلام
توی این برنامه، mylib اینکلود کردی. این کتابخونه رو خودتون درست کردید ولی توی این برنامه نگذاشتید
یکشنبه 4 تیر 1391 11:32 ق.ظ
سلام
من برنامه student لازم دارم اما تو محیط
visual c++ , win 32 , win32 console application
اگه تبدیلش کنید ممنون میشم.
یکشنبه 4 تیر 1391 11:27 ق.ظ
سلام
باعرض خسته نباشید
میشه برنامه student توی
visual c++ , win32 , win32 console application
اجراش کرد؟
اگه واسم تبدیلش کنید ممنون میشم.
پروژه دارم فوری لازمش دارم.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
نظرات پس از تایید نشان داده خواهند شد.


دانلود پروژه های ++C
خواستن، توانستن است
درباره وبلاگ

خواستن، توانستن است.
فقط با کمی تلاش و کوشش می توان تمام قله های ترقی را طی کرد.

مدیر وبلاگ : حمیدرضا باقری
نویسندگان
آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :