c语言中savetofile的作用,C语言实习报告资料.docx

精品素材归纳

PAGE 页码页码/NUMPAGES 总页数总页数

素材归纳不易,仅供学习参考

题目一 线性结构的操作

1.用线性表的顺序存储(数组)保存数据

输入要待查找的学号

输入要待查找的学号

N输入的与学生里面的学

N

输入的与学生里面的学

号是否相等

Y

Y

输出没有此人输出该信息

输出没有此人

输出该信息

算法的N-S图或流程图

输入待删除的学号

输入待删除的学号

输入的与学生里面的学号是否相等

输入的与学生里面的学号是否相等

N

N

Y

Y

删除该学生学号没有该学生

删除该学生学号

没有该学生

2.用线性表的链式存储(链表)保存数据

s插入:

s

C1 ^H ^

C1 ^

H

^

HC1 ^

H

C1 ^

S

S

C2 H C1 ^Ci-1

C2

H

C1 ^

Ci-1

C1

C1

ps

p

s

删除:

An ^…Ai-1-… LAiA1

An ^

Ai-1-

L

Ai

A1

P

P

…Ai+1AI-1…LAn ^AiA1

Ai+1

AI-1

L

An ^

Ai

A1

r

include

#include

typedef struct

{

int num; //学号

char name[10]; //姓名

}student; //定义的抽象元素类型 Elemtype

typedef struct Node /*结点类型定义*/

{

student data;

struct Node *next;

}Node, *LinkList; /* LinkList为结构指针类型*/

static int count; //学生人数

//带头结点的尾插入法创建链表

void insert(LinkList head)

{

LinkList p,q; //p代表的待插元素代入最后一个元素

q=head; //q指向head结点

printf("输入学生人数:");

scanf("%d",&count);

for(int i=0;i

{

printf("\n输入第%d个学生信息:\n",i+1);

p = (LinkList)malloc(sizeof(Node)); //结点p申请一个空间

printf("输入学号:");

scanf("%d",&p->data.num); //输入结点p的数据°学号

printf("\n输入姓名:");

scanf("%s",p->data.name); //输入结点的数据域姓名 name为数组类型 数组名为首地址 所有此处不需要地ì址符号

if(i==0)

{

head->next = p; //i=0 链表中没有元素只有头节点把插入到head之后

}

else

{

q->next = p; //链表中已有结点元素结点采用尾插入法

}

q = p; //每插入一个元素就赋值于q q始终指向最后一个元素

}

p->next = NULL; //设置next域为空

}

void print(LinkList head)

{

LinkList x; //定义一个链表结点

x = head->next ; //该节点指向第一个元素

printf("学生信息如下\n");

while(x) //存在结点

{

printf("学号%d 姓名%s\n",x->data.num,x->data.name); //输出该结点的数据域学号和姓名

x = x->next ; //下一个元素

}

printf("\n");

}

//把链表中的文件信息放入文件中

//写入语句

void savetofile(LinkList head)

{

FILE*fp;

LinkList p;

p=head->next;

if((fp=fopen("d:\\st2.txt","wb+"))==NULL)

{

printf("不能打开文件");

return;

}

while(p)

{

fprintf(fp,"%d%s\r\n",p->data.num,p->data.name);

p=p->next;

}

printf("\n写入成功\n");

}

//功能菜单 提示性语句

void menu()

{

printf(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值