// 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;lt;1&amp;gt;
= 40
Enter: &amp;lt;372&amp;gt;
= 68
Enter: &amp;lt;250&amp;gt;
= 12
Enter: &amp;lt;0&amp;gt;
Done.
***ทำการแสดงผลจากการอ่านออกทางหน้าจอ สำหรับการอ่านไฟล์นั้นจะต้องทำการกดปุ่ม L-Test ก่อน เพื่อ download ไฟล์มาเก็บไว้ในเครื่องโดยอัตโนมัติ แล้วค่อยทำการรันโปรแกรม***
*/
//CPT lab5 part3
#include&amp;lt;stdio.h&amp;gt;
int main(){
FILE *fp;
int d,position;
fp = fopen("num.dat","rb");
while(1){
printf("Enter: ");
scanf("%d",&amp;amp;position);
if(position==0)
break;
fseek(fp,(position-1)*sizeof(int),SEEK_SET);
fread(&amp;amp;d,sizeof(d),1,fp);
printf("= %d\n", d);
}
printf("Done.\n");
fclose(fp);
return 0;
}
No comments:
Post a Comment