下载此文档

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


文档分类:办公文档 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
第4章-与文件管理有关的系统功能调用实践作业第4章与文件管理有关的系统功能调用实践作业参照“强化实践能力培养课程内容”中“文件操作实践能力培养考核选例”程序,请构造一个能管理文本文件的学生成绩表的简单数据库管理系统。设文本文件的学生成绩表中每条学生成绩记录有3个字段构成:学号20个字节,姓名20个字节,成绩10个字节,字段间用空格分割对齐。简单数据库管理系统具有基本的功能有:追加一条记录,(仅允许文件主)按学号读出一条记录,按学号升序列出所有记录.(提示:可建立一个学生成绩表文件和一个以学号为主键的索引文件。)答:实验代码及说明#include<>#include<>#include<>#defineLENsizeof(structscore)#defineDEBUG#include<>typedefstructscore{ charno[20];//记录号 charnumber[20];/*学号*/ charname[20];/*姓名*/ chargrades[10];//成绩 structscore*next;//下一个节点}score;intm,n;score*load(score*head){ score*p1,*p2; intm=0; charfilepn[10]; FILE*fp; printf("请输入文件路径机文件名\n"); scanf("%s",filepn); if((fp=fopen(filepn,"r+"))==NULL) { printf("不能打开文件\n"); exit(0); } p1=(score*)malloc(LEN); head=NULL; while(!feof(fp)){ n=n+1; if(n==1)head=p1; elsep2->next=p1; p2=p1; p1=(score*)malloc(LEN); fscanf(fp,"%s%s%s%s",p1->no,p1->number,p1->name,p1->grades); } p2->next=p1; p1->next=NULL; n++; fclose(fp); returnhead;}//追加score*append(score*head){ score*p1,*p2,*p3; p3=(score*)malloc(LEN); printf("输入学生信息:\n"); printf("记录号学号姓名成绩\n"); scanf("%s%s%s%s",p3->no,p3->number,p3->name,p3->grades); 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++; returnhead;}score*insert(score*head){ score*p1,*p2,*p3;p3=(score*)malloc(LEN);printf("输入学生信息:\n");printf("记录号学号姓名成绩\n");scanf("%s%s%s%s",p3->no,p3->number,p3->name,p3->grades); 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++; returnhead;}score*del(score*head){ score*p1,*p2,*p3;p3=(score*)malloc(LEN);printf("输入删除学生信息:\n");printf("记录号:\n");scanf("%s",p3->no);p1=head; if(head==NULL){//如果链表为空head=p3;//p3->next=NULL; printf("删除失败\n"); returnhead;}else{if(p1->next==NULL){ if(p1->no==p3->no) head==NUL

第4章-与文件管理有关的系统功能调用实践作业模板 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人读书百遍
  • 文件大小32 KB
  • 时间2020-01-17