CPT Lab 5




// CPT Lab05 Simple text file
/*
ไฟล์ num.txt ประกอบด้วยข้อมูลตัวเลข
  - บรรทัดที่ 1 บอกจำนวนตัวเลขที่ต้องการหาผลรวม
  - บรรทัดต่อไป ตัวเลขจำนวนเต็ม บรรทัดละ 1 ตัวเลข
 
จงเขียนโปรแกรมเพื่อหาผลรวามของตัวเลข ที่อยู่หลังบรรทัดที่ 1
 
ตัวอย่างไฟล์ num.txt
3
7
2
1
 
รูปแบบการแสดงผล
=10
 
 
หากมีการแก้ไขไฟล์ num.txt อาจทำให้ testing failed.
*/
#include<stdio.h>
 
int main(){
  FILE *fp;
int i,input,sum=0,num;
  fp = fopen("num.txt","rb");
fscanf(fp,"%d",&num);
  for(i=0;i<num;i++){
    fscanf(fp,"%d",&input);
  sum+=input;
 }
printf("=%d",sum);
fclose(fp);
  return 0;
}


// Coe CPT lab5 Read Binary File
/*
จงเขียนโปรแกรมที่ทำการอ่านไฟล์ไบนารี ชื่อ employee.bin
โดยไฟล์จะเริ่มต้นจากตัวเลขจำนวนเต็ม บอกจำนวนข้อมูลพนักงานที่บันทึกไว้ในไฟล์ จากนั้นประมวลผลข้อมูลให้อยู่ในรูปของ struct employee ที่กำหนดให้ แล้วทำการแสดงข้อมูลของพนักงานทุกคน พร้อมแสดงผลเงินเดือนรวม
 
***ทำการแสดงผลจากการอ่านออกทางหน้าจอ สำหรับการอ่านไฟล์นั้นจะต้องทำการกดปุ่ม L-Test ก่อน เพื่อ download ไฟล์มาเก็บไว้ในเครื่องโดยอัตโนมัติ แล้วค่อยทำการรันโปรแกรม***
 
รูปแบบการแสดงผล
John Doe:3000.0
Mark Ken:2300.0
Sucy Merc:2000.0
=7300.0
*/
#include <stdio.h>
struct employee {
 
char name[128];
 
float salary;
};
typedef struct employee Employee;
 
int main() {
 
int num;
  Employee e,
*ep=&e;
 
float total = 0.0;
 
FILE *fp;
 
  fp
= fopen("employee.bin","rb");
       
fread(&num,sizeof(num),1,fp);
 
while(num--){
   
fread(&e,sizeof(Employee),1,fp);
   
printf("%s:%.1f\n", e.name, e.salary);
    total
+=e.salary;
   
}
printf("=%.1f\n", total);
fclose(fp);
 
return 0;    
}/*
เขียนโปรแกรม เพื่อดึงตัวเลขจำนวนเต็มที่ถูกบันทึกไว้ในไฟล์ไบนารี num.dat โดยโปรแกรมจะถูกเขียนโดยไม่ทราบล่วงหน้าว่า มีตัวเลขจำนวนกี่ตัวในไฟล์ดังกล่าว และไม่มีการอ่านข้อมูลทั้งหมดขึ้นสู่อาเรย์
 
โปรแกรมจะรับข้อมูลจากผู้ใช้ ว่า ต้องการทราบตัวเลขลำดับใด (ให้ลำดับแรกคือ 1) หลังจากนั้น จะแสดงตัวเลขที่อยู่ ณ. ตำแหน่งที่กำหนด
 
โปรแกรมจะหยุดการทำงานเมื่อผู้ใช้ใส่ตำแหน่งเป็น 0 หรือค่าติดลบ ทั้งนี้ให้ถือว่า ผู้ใช้จะไม่ใส่ตำแหน่งที่ไม่มีอยู่จริงในไฟล์
 
ตัวอย่างการแสดงผล
Enter: &amp;amp;lt;1&amp;amp;gt;
= 40
Enter: &amp;amp;lt;372&amp;amp;gt;
= 68
Enter: &amp;amp;lt;250&amp;amp;gt;
= 12
Enter: &amp;amp;lt;0&amp;amp;gt;
Done.
 
***ทำการแสดงผลจากการอ่านออกทางหน้าจอ สำหรับการอ่านไฟล์นั้นจะต้องทำการกดปุ่ม L-Test ก่อน เพื่อ download ไฟล์มาเก็บไว้ในเครื่องโดยอัตโนมัติ แล้วค่อยทำการรันโปรแกรม***
*/

//CPT lab5 part3

#include&amp;amp;lt;stdio.h&amp;amp;gt;
int main(){
   
FILE *fp;
   
int d,position;
    fp
= fopen("num.dat","rb");
       
while(1){
           
printf("Enter: ");
           
scanf("%d",&amp;amp;amp;position);
           
if(position==0)
               
break;
           
fseek(fp,(position-1)*sizeof(int),SEEK_SET);
           
fread(&amp;amp;amp;d,sizeof(d),1,fp);
           
printf("= %d\n", d);
           
       
}
printf("Done.\n");
   
fclose(fp);
   
return 0;
}

No comments:

Post a Comment