t084: T904(成績檔案讀寫)
標籤 : TQC 成績檔案讀寫
通過比率 : 0人/0人 (0%) [非即時]
評分方式:
Tolerant

最近更新 : 2022-06-24 01:14

內容

設計說明:
(1) 開啟CPD09-1.c ,利用fprintf函數,將下列學生的姓名及其對應的C語言分數,寫入專案資料夾的目錄下 score.dat檔案。
(2) 可以利用某一條件,讓寫入的動作結束,如當輸入分數為負的分數時,則結束寫入動作. 資料得輸入樣本如下:
    請輸入學生的姓名(分數輸入負分的分數時結束):Peter
    請輸入此學生C語言分數:90
    請輸入學生的姓名(分數輸入負分的分數時結束):Mary
    請輸入此學生C語言分數:80
    請輸入學生的姓名(分數輸入負分的分數時結束):Nancy
    請輸入此學生C語言分數:88
    請輸入學生的姓名(分數輸入負分的分數時結束):John
    請輸入此學生C語言分數:-2
(3)開啟CPD09.2c,將專案資料夾目錄下 score.dat檔案內容,利用fscanf將其讀出,再以printf印出。

本題題意為:
1.輸入資料寫入檔案 score.dat。
2.讀取檔案 score.dat 並輸出資料。

基於 judge 系統不做 c 程式檔分開及檔案讀寫動作,因此本題改為:
1.以函數 writeData 輸入資料到 score 陣列。
2.以函數 print 將 score 陣列資料輸出。
3.兩函數原形如下:
void writeData(Student **);
void print(Student *);

4.主程式參考如下:

#include <stdio.h>
#include <stdlib.h>
#define NAMEL 19 //最多19字元

typedef struct stdp Student;

struct stdp{
 char name[NAMEL+1];
 int score;//成績
 Student *next;//指向下一位學生
};

void writeData(Student **);
void print(Student *);

int main(){
    Student *student=NULL;
    writeData(&student);
    print(student);
    return(0);
}

void writeData(Student **p){


}

void print(Student *p){

}

此題是非常基本的動態記憶體宣告,從副程式取得記憶體並傳回主程式,請用心參考。

輸入說明
輸出說明

1)小數點有效位數最多到 16 位。
2)資料數量未知。

範例輸入 #1
Peter
90
Mary
80
Nancy
88
John
-2

範例輸出 #1
請輸入學生的姓名(分數輸入負分的分數時結束):Peter
請輸入此學生C語言分數:90
請輸入學生的姓名(分數輸入負分的分數時結束):Mary
請輸入此學生C語言分數:80
請輸入學生的姓名(分數輸入負分的分數時結束):Nancy
請輸入此學生C語言分數:88
請輸入學生的姓名(分數輸入負分的分數時結束):John
請輸入此學生C語言分數:-2
Peter的c語言分數是90
Mary的c語言分數是80
Nancy的c語言分數是88

測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (50%): 1.0s , <1K
提示 :
標籤:
TQC 成績檔案讀寫
出處:
TQC 題庫084 [管理者: zero(管理員) ]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」