资源简介
综合索引文件和查找算法做的学生信息管理程序 用C语言写的 有源代码 课程设计报告和可执行的程序
代码片段和文件信息
/*文件名:student.cpp*/
#include
#include
#include
#define MaxRec 100 /*最多记录个数*/
typedef struct Index /*定义索引文件结构*/
{ char num[8]; /*学号*/
long offset; /*主文件中的记录号*/
}Index;
typedef struct sdata /*定义主文件结构*/
{ char num[8]; /*学号*/
char name[10]; /*姓名*/
int sex; /*性别*/
int age; /*年龄*/
char addr[30]; /*地址*/
char dep[20]; /*系别*/
char spec[20]; /*专业*/
}Student;
void DelAll() /*清除主文件和索引文件的全部记录*/
{
FILE *mfile*idxfile;
if((mfile=fopen(“main.dat““wb“))==NULL)
{ printf(“>>不能打开主文件\n“);
return;
}
if((idxfile=fopen(“index.dat““wb“))==NULL)
{ printf(“>>不能建立主文件\n“);
return;
}
fclose(mfile);
fclose(idxfile);
}
void InsertSort(Index R[]int n) /*对R[0..n-1]按递增有序进行直接插入排序*/
{
int ij;
Index temp;
for(i=1;i { temp=R[i];
j=i-1;
while(j>=0&&strcmp(temp.numR[j].num)<0)
{ R[j+1]=R[j]; /*将关键字大于R[i].key的记录后移*/
j--;
}
R[j+1]=temp; /*在j+1处插入R[i]*/
}
}
void CreatIdxFile() /*建立索引文件*/
{
FILE *mfile*idxfile;
Index idx[MaxRec];
Student st;
int n=0i;
if((mfile=fopen(“main.dat““rb“))==NULL)
{ printf(“>>不能打开主文件\n“);
return;
}
if((idxfile=fopen(“index.dat““wb“))==NULL)
{ printf(“>>不能建立索引文件\n“);
return;
}
i=0;
while((fread(&stsizeof(Student)1mfile))!=NULL)
{ strcpy(idx[i].numst.num);
idx[i].offset=++n;
i++;
}
InsertSort(idxn);
rewind(idxfile); /*对idx数组按no域值排序*/
for(i=0;i fwrite(&idx[i]sizeof(Index)1idxfile);
fclose(mfile);
fclose(idxfile);
}
void InputMainFile() /*添加一个主文件记录*/
{
FILE *mfile;
Student st;
mfile=fopen(“main.dat““ab+“);
if(mfile==NULL)
{ printf(“>>不能建立主文件\n“);
return;
}
printf(“>>学号,姓名,性别,年龄,地址,系别,专业:“);
scanf(“%s%s%d%d%s%s%s“st.numst.name&st.sex&st.agest.addrst.depst.spec);
if(fwrite(&stsizeof(Student)1mfile)!=1)
{ printf(“>>写主文件错误\n“);
return;
}
fclose(mfile);
}
void OutputMainFile() /*输出主文件全部记录*/
{
FILE *mfile;
Student st;
int i=0;
mfile=fopen(“main.dat““rb“);
if(mfile==NULL)
{ printf(“>>不能读主文件\n“);
return;
}
while((fread(&stsizeof(Student)1mfile))!=NULL)
{ printf(“>>记录号%d:“++i);
printf(“%s %s %d %d %s %s %s\n“st.numst.namest.sexst.agest.addrst.depst.spec);
}
fclose(mfile);
}
void OutputIdxFile() /*输出索引文件全部记录*/
{
FILE *idxfile;
Index irec;
int i=0;
idxfile=fopen(“index.dat““rb“);
if(idxfile==NULL)
{ printf(“>>不能读索引文件\n“);
return;
}
while((fread(&irecsizeof(Index)1idxfile))!=NULL)
printf(“>>(学号:记录号) %s: %d\n“irec.numirec.offset);
fclose(idxfile);
}
void ReadIndexFile(Index idx[MaxRec] int &len)
/*读索引文件数据存入idx数组中*/
{
FILE *idxfile;
int j;
if((idxfile=fopen(“index.dat““rb“))==NULL)
{ printf(“>>索引文件不能打开\n“);
return;
}
fseek(idxfile02);
j=ftell(idxfile); /*j求出文件长度*/
rewind(idxfile);
len=j/sizeof(Index); /*len求出文件的记录个数*/
fread(idxsizeof(Index)lenidxfile);
fclose(idxfile);
}
- 上一篇:MFC视频播放器(带播放列表VC++6.0源代码)
- 下一篇:c++线程安全日志类
相关资源
- 数据结构严蔚敏C语言第二版习题答案
- 数据结构的二叉树用C语言实现的代码
- 文章编辑数据结构课程设计c语言编写
- 数据结构上机题
- 数据结构C语言 一元多项式的加减法
- 数据结构 走迷宫大作业 c语言完整代
- 马踏棋盘的源程序,C语言编写,数据
- 数据结构c语言版上机题代码汇总
- 数据结构C语言之哈夫曼编码
- 数据结构表达式求值,c语言版,能计
- 银行管理系统——数据结构C
- c语言银行管理系统
- 严蔚敏.吴伟民等《数据结构(c语言版
- C++数据结构与算法(第4版) 完整版
- 数据结构栈、队列、二叉树、顺序查
- 数据结构实验和作业严蔚敏C)
- 胡学刚版 数据结构 实验3代码 合工大
- 数据结构题集答案(C语言版)严蔚敏
- 图书管理系统C语言+数据结构与算法
- 《数据结构(c语言版)习题答案》严
- 数据结构二叉树家谱
- 基于Huffman树的文件压缩C语言源码数据
- 基于顺序表的学生信息管理系统.cpp
- 数据结构课程设计 排序综合(C++)
- 二叉排序树C语言版的!.c
- 数据结构课设 运动会分数统计
- 循环列队数据结构课题舞会配对的问
- 校园导航系统c++数据结构
- 实现简单银行叫号模拟系统(C++版)
- 数据结构课设排序算法的可视化演示
评论
共有 条评论