- จงเขียนโปรแกรม
1.1 รับข้อมูลนักศึกษาซึ่งประกอบด้วย รหัส 7 ตัวอักษร ชื่อไม่เกิน 20 ตัวอักษร และ คะแนนวิชา Math Eng ComPro และวิชา Bio เป็นจำนวนเต็ม แล้วเขียนข้อมูลลงแฟ้ม student.txt จำนวน 3 คน
#include <stdio.h> #include <stdlib.h> //use function 'exit' /* Code By Weerayut Hongsa (Kusumoto) Software Engineering Prince of Songkla University Phuket Campus http://kusumoto.co */ //writedata.c struct student { char id[7]; char name[20]; int math,eng,bio,compro; long max_cred; }; struct student stu_rec; int numofcus = 3; //Loop Construction FILE *fptr; void getstu(void); main(void) { //Open File for writing fptr = fopen("C:\\student.txt", "wb"); if (fptr == NULL) { //Check File in part printf("\n Error open file"); exit(1); } getstu(); //Run Function Input Data fclose(fptr); //Close File printf("\n"); return(0); } void getstu(void) { int i; for(i=0; i<numofcus; i++) { //Loop Input Method printf("======== No. %d ==========\n",i+1); printf("Student id :: "); rewind(stdin); gets(stu_rec.id); printf("Student Name :: "); rewind(stdin); gets(stu_rec.name); printf("Math score :: "); scanf("%d", &stu_rec.math); printf("Eng score :: "); scanf("%d", &stu_rec.eng); printf("Compro score :: "); scanf("%d", &stu_rec.compro); printf("Bio score :: "); scanf("%d", &stu_rec.bio); fwrite(&stu_rec, sizeof(struct student), 1, fptr); printf("Writing Student id : %s Complete\n", stu_rec.id); } } |
1.1 อ่านข้อมูลจากแฟ้ม student.txt ที่ได้จากข้อ 2.1 ขึ้นมาแล้วแสดงทั้งหมด พร้อมทั้งคะแนนเฉลี่ย แต่ละคน เมื่อพิมพ์ครบทุกคน ให้พิมพ์คะแนนเฉลี่ยของแต่ละวิชาในบรรทัดสุดท้าย
#include <stdio.h> #include <stdlib.h> //use function 'exit' /* Code By Weerayut Hongsa (Kusumoto) Software Engineering Prince of Songkla University Phuket Campus http://kusumoto.co */ //readdata.c struct student { char id[7]; char name[20]; int math,eng,bio,compro; long max_cred; }; struct student stu_rec; int numofcus = 3; //Loop Construction FILE *fptr; void readstu(void); main(void) { //Open File for reading fptr = fopen("C:\\student.txt", "rb"); if (fptr == NULL) { //Check File in part printf("\n Error open file"); exit(1); } readstu(); //Run Function Ouput Data fclose(fptr); //Close File printf("\n"); return(0); } void readstu(void) { float a; rewind(fptr); printf("Reading from file: student.txt\n"); printf("\nID\tName\t\tMath\tEng\tCompro\tBio\tMean"); do { fread(&stu_rec, sizeof(struct student), 1, fptr); if (feof(fptr)) break; a = (stu_rec.math+stu_rec.eng+stu_rec.bio+stu_rec.compro)/3; printf("\n%s\t%s\t%d\t%d\t%d\t%d\t%.2f",stu_rec.id,stu_rec.name,stu_rec.math,stu_rec.eng,stu_rec.compro,stu_rec.bio,a); }while (!feof(fptr)); } |