第一次实验
知识点:
结构体
文件读写
重点:
约定文件格式
按规定格式读取文件,存入结构体
主要内容:
项目流程:
打开文件:
FILE *fopen( const char * filename, const char * mode );
读写文件:
fgets(buff, 255, (FILE*)fp);
fputs("XXXX\n", fp);
关闭文件:
fclose(fp);
读取题库的核心代码:(自己写)
总结(自己写)
第二次实验
知识点:
链表操作
内存管理
随机数
重点:
新建节点
追加节点
求链表长度
获取节点
删除节点
清空节点
打印链表
随机取题
主要内容:
定义节点(只是提示,写的时候按照自己的代码写)
#define MAX_LEN 200
struct Question {
int _id;
char title[MAX_LEN];
char optA[MAX_LEN];
char optB[MAX_LEN];
char optC[MAX_LEN];
char optD[MAX_LEN];
char answer[5];
struct Question* pre = NULL;
struct Question* next = NULL;
};
链表核心代码(只是提示,写的时候按照自己的代码写)
写出链表【添加或删除或查找】任意一段的核心代码:
void chain_add(struct Question* qFirst, struct Question* qAdd) {...}
void chain_remove(struct Question** qFirst, struct Question* qRemove) {...}
struct Question* chain_get(struct Question* qFirst, int index) {...}
随机取题(只是提示,写的时候按照自己的代码写)
#define Q_COUNT 5
int getNextInt(int Scope) {
return rand()%Scope;
}
for(int i = 0; i<Q_COUNT; i++) {
int n = getNextInt(chain_count(q1));
Question* q = chain_get(q1, n);
printOneQuestion(q);
chain_remove(&q1, q);
}