文件的存取链表的使用Word文档格式.docx

上传人:b****6 文档编号:18715516 上传时间:2022-12-31 格式:DOCX 页数:6 大小:15.65KB
下载 相关 举报
文件的存取链表的使用Word文档格式.docx_第1页
第1页 / 共6页
文件的存取链表的使用Word文档格式.docx_第2页
第2页 / 共6页
文件的存取链表的使用Word文档格式.docx_第3页
第3页 / 共6页
文件的存取链表的使用Word文档格式.docx_第4页
第4页 / 共6页
文件的存取链表的使用Word文档格式.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

文件的存取链表的使用Word文档格式.docx

《文件的存取链表的使用Word文档格式.docx》由会员分享,可在线阅读,更多相关《文件的存取链表的使用Word文档格式.docx(6页珍藏版)》请在冰豆网上搜索。

文件的存取链表的使用Word文档格式.docx

作业3:

实现学生信息的文件保存和读取。

作业4:

思考:

如何实现学生信息录入的动态长度控制?

提示:

使用链表,动态分配空间

Student*p1;

p1=malloc(sizeof(Student));

p1->

age=10;

structNode{

Studentstu;

Node*next;

}

代码:

1、用户从控制台输入一篇文章,输入完成以后,

#include<

stdio.h>

string.h>

intmain(intargc,constchar*argv[])

{chartext[2000];

charname[20];

charpath[100];

printf("

请输入内容\n"

);

gets(text);

请输入文件名\n"

scanf("

%s"

name);

strcpy(path,"

C:

\\Users\\Administrator\\Desktop\\"

strcat(name,"

.txt"

strcat(path,name);

//保存到文件

FILE*fp;

if((fp=fopen(path,"

w"

))==NULL)

{

printf("

无法读取文件"

return0;

}

fprintf(fp,"

%s\n"

text);

fclose(fp);

文件已成功写入"

return0;

2、实现学生信息的结构体定义

stdlib.h>

#defineNUM10

typedefstruct_Student{

charname[10];

intage;

intnumber;

intscore;

}Student;

{Studentstus[NUM];

//输入学生信息

请输入学生信息!

\n"

for(inti=0;

i<

NUM;

i++)

{printf("

请输入第%d个学生信息,格式:

姓名学号年龄成绩\n"

i+1);

scanf("

%s%d%d%d"

stus[i].name,&

stus[i].number,&

stus[i].age,&

stus[i].score);

}

//输出学生信息

学生信息:

\n姓名学号年龄成绩\n"

for(i=0;

i++)

%s%d%d%d\n"

stus[i].name,stus[i].number,stus[i].age,stus[i].score);

//最高分,最低分,平均分

typedefStudent*StuPointer;

StuPointersmax,smin;

smax=(StuPointer)malloc(sizeof(Student));

smin=(StuPointer)malloc(sizeof(Student));

*smax=stus[0];

*smin=stus[0];

intsum=stus[0].score;

floatave;

for(i=1;

if((*smax).score<

stus[i].score)

*smax=stus[i];

if((*smin).score>

stus[i].score)

*smin=stus[i];

sum=sum+stus[i].score;

ave=(float)sum/(float)NUM;

\n最高分的姓名和分数为:

%s%d\n"

(*smax).name,(*smax).score);

\n最低分的姓名和分数为:

(*smin).name,(*smin).score);

\n平均分为:

%f\n"

ave);

保存:

#defineNUM3

//写入文件

FILE*fp;

if((fp=fopen("

\\Users\\Administrator\\Desktop\\stu.txt"

"

打开文件失败!

{

stus[i].name,stus[i].number,stus[i].age,stus[i].score);

写入文件成功!

读取:

#include<

r"

))

==NULL)

exit(0);

inti=0;

while(!

feof(fp))

{fscanf(fp,"

stus

[i].age,&

i++;

//写出所读的学生信息

stus[i].name,stus[i].number,stus

[i].age,stus[i].score);

——————————————————————

charname[20];

intnumber;

intage;

intscore;

typedefstruct_Node{

Studentstu;

struct_Node*next;

}Node;

Node*head=NULL;

//定义第一个学生

voidreadStudent()

Node*p;

Node*newnode;

head=NULL;

FILE*fp;

if((fp=fopen("

\\Users\\Administrator\\Desktop\\Student.txt"

"

打开文件失败"

if((newnode=(Node*)malloc(sizeof(Node)))==NULL)

ERROR\n"

fclose(fp);

fscanf(fp,"

%d%s%d%d\n"

&

newnode->

stu.number,newnode->

stu.name,&

stu.age,&

stu.score);

if(head==NULL)

{head=newnode;

p=head;

else

p->

next=newnode;

p=newnode;

next=NULL;

printStudent();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1