最新第4章 与文件管理有关的系统功能调用实践作业资料

精品文档

第4章 与文件管理有关的系统功能调用实践作业

参照“强化实践能力培养课程内容”中“文件操作实践能力培养考核选例”程序,请构造一个能管理文本文件的学生成绩表的简单数据库管理系统。设文本文件的学生成绩表中每条学生成绩记录有3个字段构成:学号20个字节,姓名20个字节,成绩10个字节,字段间用空格分割对齐。简单数据库管理系统具有基本的功能有:

追加一条记录,(仅允许文件主) 按学号读出一条记录, 按学号升序列出所有记录.

(提示:可建立一个学生成绩表文件和一个以学号为主键的索引文件。)

答:实验代码及说明 #include

#include #include

#define LEN sizeof(struct score) #define DEBUG #include typedef struct score { char no[20];//记录号 char number[20];/*学号*/ char name[20];/*姓名*/ char grades[10];//成绩 struct score *next;//下一个节点 }score; int m,n;

score* load(score *head) { score *p1,*p2; int m=0; char filepn[10]; FILE *fp;

printf(\请输入文件路径机文件名\\n\scanf(\

if((fp=fopen(filepn,\{ printf(\不能打开文件\\n\ exit(0); }

p1=(score *)malloc(LEN); head=NULL;

精品文档

精品文档

while(!feof(fp)){ n=n+1; if(n==1)head=p1; else p2->next=p1; p2=p1; p1=(score *)malloc(LEN); fscanf(fp,\ } p2->next=p1; p1->next=NULL; n++; fclose(fp); return head; }

//追加

score *append(score *head) { score *p1,*p2,*p3; p3=(score *)malloc(LEN);

printf(\输入学生信息:\\n\

printf(\记录号 学号 姓名 成绩\\n\

scanf(\p1=head;

if(head==NULL)

{//如果链表为空 head=p3; p3->next=NULL; } else{ if(p1->next==NULL) { p1->next=p3; p3->next=NULL; }else{ }

}

while(p1->next!=NULL)//若是还没有到尾端的话 { p2=p1; p1=p1->next; }

p1->next=p3; p3->next=NULL;

精品文档

精品文档

n++; return head; }

score * insert(score *head){ score *p1,*p2,*p3;

p3=(score *)malloc(LEN); printf(\输入学生信息:\\n\

printf(\记录号 学号 姓名 成绩\\n\

scanf(\ p1=head; if(head==NULL) {//如果链表为空 head=p3;

p3->next=NULL; } else{

if(p1->next==NULL) {

p1->next=p3; p3->next=NULL; }else{

while(p1!=NULL&&strcmp(p1->no,p3->no)<=0)//若是还没有到尾端的话 {

p2=p1;

p1=p1->next; }

//p1->next=p3; //p3->next=NULL; p2->next=p3; p3->next=p1; } } n++; return head; }

score *del(score *head) { score *p1,*p2,*p3;

p3=(score *)malloc(LEN);

printf(\输入删除学生信息:\\n\ printf(\记录号:\\n\ scanf(\精品文档


最新第4章 与文件管理有关的系统功能调用实践作业资料.doc 将本文的Word文档下载到电脑
搜索更多关于: 最新第4章 与文件管理有关的系统功能调用实践作业资料 的文档
相关推荐
相关阅读