【链表】学生信息管理系统

#include <iostream>

#include<iomanip>//定位小数点的头文件setprecision()

#include <string>

using namespace std;

struct List//定义数据结构存取文件里的数据

{

char name[20];

char id[20];

float score[2];

};

struct PList//定义链表结构体,如果在c语言中务必添加typedef struct来定义一个PList

{

struct PList *prior;//前一个节点

char name[20];

char id[20];

float score[2];

struct PList *next;//后一个节点

};

PList *head=NULL,*p,*p1,*p2;

char FileName[20],Judge;//文件名和判断字符

int i,n;//n学生人数

void Create()//创造链表

{

int j,k;

p1=new PList;

List *stu=new List[n];//new学生结构体

FILE *fp;

fp=fopen(FileName,"a+");//附加方式打开,若无则新建一个FileName的文件

if(fp!=NULL)

{

fseek(fp,0,0);//文件指针挪到起始位置

for(i=0;i<n;i++)//利用结构体读取数据后传给链表

{

j=fgetc(fp);//j判断是否到文件末尾

if(j==EOF)

break;//到文件末尾则跳出

k=i;

fseek(fp,k*sizeof(struct List),0);//按学生结构体字节移动文件指针

fread(&stu[i],sizeof(struct List),1,fp);//结构体开始读取文件内容

p=new PList;//给p分配地址 相当于c语言中的p=(struct PList*)malloc(sizeof(struct PList)); strcpy(p->name,stu[i].name);//值传递到链表中

strcpy(p->id,stu[i].id);//值传递到链表中

p->score[0]=stu[i].score[0];//值传递到链表中

【链表】学生信息管理系统相关文档

最新文档

返回顶部