CPT Lab 5-2




// 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;
}

Popular posts from this blog

เทคนิค ชนะ เกมเศรษฐี 14 ตารวด!!! ( Let's get Rich )

Using Google Chrome Inspect Element to Analyze the website

Easy way to download whole youtube play list and convert them to mp3