Yasin DEMİR

#herseypaylasmakicin

———————————————————————————————————

Linux da C ile shell yazmak

———————————————————————————————————

.

text dosyasını buradan indirebilirsiniz…

.

#include<stdio.h>
#include<sys/types.h>
#include<string.h>
#include<unistd.h>
#include<signal.h>
#include<stdlib.h>

void  setup(char *, char *[]);
void calistir(char *[]);
void INThandler(int );

char command[128][256];
char  input[256];
char  *arg[128];

int count=0;
int i;
int cnt=0;

int main(void)

{

signal(SIGINT, INThandler);

while (1) {
printf(“COMMAND–>”);

gets(input);
printf(“\n”);
setup(input, arg);
if (strcmp(arg[0], “exit”) == 0)
exit(0);
calistir(arg);

}
}
void  setup(char *input, char *arg[])
{
while (*input != ”) {
while (*input == ‘ ‘ || *input == ‘\t’ || *input == ‘\n’ ){
*input++ =”;

}
*arg = input;
*arg++;

while (*input != ” && *input != ‘ ‘)
input++;

}
*arg = ”;
}

void calistir(char *arg[])

{

int j=0;

pid_t  pid;
if ((pid = fork()) < 0)
{
printf(“ERROR IN EXECUTING FORK\n”);
exit(1);
}
else if (pid == 0) {

if(execvp(*arg,arg)<0)
{
printf(“INVALID COMMAND\n”);
exit(1);
}

} else {

for(i=cnt;;i++)
{
for (j=0; arg[j]!=”; j++)
{
if (j>=1)
strcat(command[i],” “);
strcat(command[i],arg[j]);
}
strcat(command[i],””);
cnt++;
break;
}

wait(NULL);

}

}

void INThandler(int sig)
{
char c;
int i,j=1;
int n;

signal(sig, SIG_IGN);

printf(“command history\n”);
for (i=cnt-1; i>=0; i–,j++)
{
if (j==10) break;
printf(“%d – %s\n”,i,command[i]);

}
printf(“\nPress any number to execute it again   -1 for exit\n”);

do{
scanf(“%d”,&n);
setup(command[n],arg);
calistir(arg);
}  while(n!=-1);

fflush(stdout);

}

.

———————————————————————————————————

C de text oluşturma, kullanıcıdan öğrencilerin numarasını, notlarını alıp bunlar üzerinden search yapma , grade belirleme ,en yüksek en düşük notlu olanları ekrana çıkartma vs fonksiyonlarını yapmak.

———————————————————————————————————

.

c_project.exe yi buradan indirebilirsiniz…

.

#include <stdio.h>
#include<time.h>
#include<ctype.h>
#include<string.h>

struct student_info{
char name[20];
char surname[20];
int number;
char grade[5];
char grade2;
}student[100];

void list(int size)
{
int number;
char name[20],surname[20],grd[5];
FILE *f;
if((f=fopen(“c:/Examination Results.txt”,”r”))==NULL)
printf(“Couldnt Open File”);
else
{
while(!feof(f)){

fscanf(f,”%d %s %s %c %c %c %c %c\n”,&number,name,surname,&grd[0],&grd[1],&grd[2],&grd[3],&grd[4]);
printf(“%d %s %s %c %c %c %c %c\n”,number,name,surname,grd[0],grd[1],grd[2],grd[3],grd[4]);
}

}
}

void sortnumber(struct student_info student[],int size)
{
FILE *f;
int num,numbers[100],cnt=0,i,k,flag,temp,j,deneme[100];
char name[20],surname[20],t[5];

if((f=fopen(“c:/Examination Results.txt”,”r”))==NULL)
printf(“Couldnt Open File”);
else
{
while(!feof(f)){
fscanf(f,”%d %s %s %c %c %c %c %c\n”,&num,name,surname,&t[0],&t[1],&t[2],&t[3],&t[4]);
student[cnt].number=num;
numbers[cnt]=num;
for(i=0;i<20;i++)
{
student[cnt].name[i]=name[i];
student[cnt].surname[i]=surname[i];
}
for(i=0;i<5;i++)
student[cnt].grade[i]=t[i];

cnt++;
}
}

fclose(f);

for (i = 0; i <size – 1; ++k) {
flag = 1;
for (k = 0; k < size – 1; ++k)
if (numbers[k] > numbers[k + 1]) {
temp = numbers[k];
numbers[k] = numbers[k + 1];
numbers[k + 1] = temp;
flag = 0;
}
if (flag == 1)
break;
}

for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
{
if(numbers[i]==student[j].number)
deneme[i]=j;
}
}

for(i=0;i<size;i++)
printf(“%d %s %s\n”,student[deneme[i]].number,student[deneme[i]].name,student[deneme[i]].surname);

}

void grades(struct student_info student[],int size)
{
FILE *f;
int i;

f=fopen(“c:/Students Grades.txt”,”w”);

for(i=0;i<size;i++)
fprintf(f,”%d\t%s\t%s\t%c\n”,student[i].number,student[i].name,student[i].surname,student[i].grade2);
fclose(f);
printf(“File is created\n”);
}

void listpassed()
{
FILE *f;
int num,flag=0;
char name[20],surname[20],t;
if((f=fopen(“c:/Students Grades.txt”,”r”))==NULL)
printf(“Couldnt Open File”);
else
{
printf(“Passed Students….\n”);
while(!feof(f)){
fscanf(f,”%d %s %s %c\n”,&num,name,surname,&t);
if(t==’A’ || t==’B’ || t==’C’ || t==’D’)
{
printf(“%d %s %s %c\n”,num,name,surname,t);
flag=1;
}
}
}
if(flag==0)
printf(“No Passed Students\n”);
}
void listfailed()
{
FILE *f;
int num,flag=0;
char name[20],surname[20],t;
if((f=fopen(“c:/Students Grades.txt”,”r”))==NULL)
printf(“Couldnt Open File”);
else
{
printf(“Failed Students….\n”);
while(!feof(f)){
fscanf(f,”%d %s %s %c\n”,&num,name,surname,&t);
if(t==’E’ || t==’F’)
{
printf(“%d %s %s %c\n”,num,name,surname,t);
flag=1;
}
}
}
if(flag==0)
printf(“No Failed Students\n”);
}
void highest()
{
FILE *f;
int num,flag=0;
char name[20],surname[20],t;
if((f=fopen(“c:/Students Grades.txt”,”r”))==NULL)
printf(“Couldnt Open File”);
else
{
printf(“Highest Grade Students….\n”);
while(!feof(f)){
fscanf(f,”%d %s %s %c\n”,&num,name,surname,&t);
if(t==’A’)
{
printf(“%d %s %s %c\n”,num,name,surname,t);
flag=1;
}
}
}
if(flag==0)
printf(“No Highest Grade\n”);

}

void lowest()
{
FILE *f;
int num,flag=0;
char name[20],surname[20],t;
if((f=fopen(“c:/Students Grades.txt”,”r”))==NULL)
printf(“Couldnt Open File”);
else
{
printf(“Lowest Grade Students….\n”);
while(!feof(f)){
fscanf(f,”%d %s %s %c\n”,&num,name,surname,&t);
if(t==’F’)
{
printf(“%d %s %s %c\n”,num,name,surname,t);
flag=1;
}
}
}
if(flag==0)
printf(“No Lowest Grade\n”);
}

void searchans(char searchname[],char searchsurname[])
{
FILE *f;
int num,flag=0;
char name[20],surname[20],t[5];

if((f=fopen(“c:/Examination Results.txt”,”r”))==NULL)
printf(“Couldnt Open File”);
else
{
while(!feof(f)){
fscanf(f,”%d %s %s %c %c %c %c %c\n”,&num,name,surname,&t[0],&t[1],&t[2],&t[3],&t[4]);
if(strcmp(searchname,name)==0 && strcmp(searchsurname,surname)==0)
{
printf(“%d %s %s %c %c %c %c %c\n”,num,name,surname,t[0],t[1],t[2],t[3],t[4]);
flag=1;
}
}
}
if(flag==0)
printf(“%s %s Not Found in students list\n”,searchname,searchsurname);
}

void letter(int searchnumber)
{
FILE *f;
int num,flag=0;
char name[20],surname[20],t;
if((f=fopen(“c:/Students Grades.txt”,”r”))==NULL)
printf(“Couldnt Open File”);
else
{
while(!feof(f)){
fscanf(f,”%d %s %s %c\n”,&num,name,surname,&t);
if(searchnumber==num)
{
printf(“%d %s %s %c\n”,num,name,surname,t);
flag=1;
}
}
}
if(flag==0)
printf(“%d Not Found in students list\n”,searchnumber);

}

/*—————————-MAIN FUNCTION—————————————-*/

int main()
{

struct student_info student[100];
FILE *f;
int cnt=0,count=0,i,deneme[100],j,size,ch,answer1[5],answer2[5],random1,random2,cnta=0,searchnumber;
int num,numbers[100];
char name[20],surname[20],t[5],searchname[20],searchsurname[20];

printf(“Bu Program Sayesinde Matamatik Dersi Sorulari Sorulacak\n\n”);
printf(“Enter How many Students: “);
scanf(“%d”,&size);

for(i=0;i<size;i++)
{
printf(“Enter Student Number: “);
scanf(“%d”,&student[i].number);
printf(“Enter %d. Student Name, Surname: “,i+1);
scanf(“%s%s”,student[i].name,student[i].surname);

for(j=0;j<5;j++)
{

printf(“Please Select Your %d. Question Type ‘+ =>1′,’- =>2′,’/ =>3′,’* =>4′ “,j+1);
scanf(“%d”,&ch);
if(ch>4)
{
printf(“Please…Choose Between 1 and 4 \n”);
j–;
}
else
{
if(ch==1)
{
srand(time(NULL));
random1=rand()%100;
random2=rand()%100;

answer1[j]=random1+random2;

printf(“%d+%d = “,random1,random2);
scanf(“%d”,&answer2[j]);

if(answer2[j]==answer1[j])
{
student[i].grade[j]=’T’;
cnta+=1;
}
else
student[i].grade[j]=’F’;
}

if(ch==2)
{
srand(time(NULL));
random1=rand()%100;
random2=rand()%100;

answer1[j]=random1-random2;

printf(“%d-%d = “,random1,random2);
scanf(“%d”,&answer2[j]);

if(answer2[j]==answer1[j])
{
student[i].grade[j]=’T’;
cnta+=1;
}
else
student[i].grade[j]=’F’;
}

if(ch==3)
{
srand(time(NULL));
random1=rand()%100;
random2=rand()%100;

answer1[j]=random1/random2;

printf(“%d/%d = “,random1,random2);
scanf(“%d”,&answer2[j]);

if(answer2[j]==answer1[j])
{
student[i].grade[j]=’T’;
cnta+=1;
}
else
student[i].grade[j]=’F’;
}

if (ch==4)
{
srand(time(NULL));
random1=rand()%100;
random2=rand()%100;

answer1[j]=random1*random2;

printf(“%d*%d = “,random1,random2);
scanf(“%d”,&answer2[j]);

if(answer2[j]==answer1[j])
{
student[i].grade[j]=’T’;
cnta+=1;
}
else
student[i].grade[j]=’F’;
}
}

}
if(cnta==5)
student[i].grade2=’A’;

else if (cnta==4)
student[i].grade2=’B’;

else if (cnta==3)
student[i].grade2=’C’;

else if (cnta==2)
student[i].grade2=’D’;

else if (cnta==1)
student[i].grade2=’E’;
else
student[i].grade2=’F’;
cnta=0;
}

f=fopen(“c:/Examination Results.txt”,”w”);
for(i=0;i<size;i++)
fprintf(f,”%d %s %s %c %c %c %c %c\n”,student[i].number,student[i].name,student[i].surname,student[i].grade[0],student[i].grade[1],student[i].grade[2],student[i].grade[3],student[i].grade[4]);
fclose(f);

do{
printf(“—————– MENU —————————\n”);
printf(“1.    List content of *Examination Results.txt* file.\n”);
printf(“2.    List *Examination Results.txt* file according to student numbers.\n”);
printf(“3.    Create *Student Grades.txt* file.\n”);
printf(“4.    List students who passed from the exam.\n”);
printf(“5.    List student who failed from the exam.\n”);
printf(“6.    List students who get the highest point.\n”);
printf(“7.    List students who get the lowest point. \n”);
printf(“8.    Enter the name and surname to display his answers.\n”);
printf(“9.    Enter the student number to display his letter grade with name and surname.\n”);
printf(“10.    Exit from menu.\n”);

scanf(“%d”,&ch);
switch (ch)
{
case 1:
list(size);

break;

case 2:
sortnumber(student,size);

break;

case 3:
grades(student,size);

break;

case 4:
listpassed();

break;

case 5:
listfailed();

break;

case 6:
highest();

break;

case 7:
lowest();

break;

case 8:
printf(“Enter Student Name and Surname = “);
scanf(“%s %s”,searchname,searchsurname);
searchans(searchname,searchsurname);

break;

case 9:
printf(“Enter Student Number = “);
scanf(“%d”,&searchnumber);
letter(searchnumber);

break;

case 10:
continue;
}

}while (ch!=10);
return 0;
}

Yasin DEMİR