资源简介
这是本人做的一个基于DOS窗口的学生管理系统,使用的是VS2012的平台,该系统经过海量的数据测试,基本把所有的bug都给排除掉了,该系统可以提供给初学者进行学习使用。

代码片段和文件信息
#include
#include
#include “linker.h“
extern const char fileFullPath[40];
extern Student* head;
extern int maxId;
//函数功能:从文件中读取学生数据到链表
int readFromFile()
{
FILE *fp;
int nodeNumber = 0;
if((fp = fopen(fileFullPath “rb“)) == NULL){//读方式打开二进制文件,允许读数据,文件必须存在。
printf(“无法打开数据文件! \n“);
return -1;
}
printf(“正在从文件中读取学生数据到链表,请稍候...... \n“);
do{
Student * newStudent = (Student *)malloc(sizeof(Student));
if(fread(newStudent sizeof(Student) 1 fp) == 1) {//读取数据成功!
newStudent->next = NULL; //新结点作为尾结点插入
if(maxId < newStudent->id) maxId = newStudent->id;
//将新结点添加到链表尾部
addNode(&head newStudent);//注意:多次调用addNode方式—代码效率高,运行效率低(每次要从前往后遍历整个链表,大家可以自己写效率更高的代码:指针总是指向链表尾结点,从文件中读一个结点,就插入链表尾。)
nodeNumber++; //读取结点数加1
}else{
if(feof(fp)){//读取数据完毕
fclose(fp);
printf(“读取结束,共读取了%d名学生数据! \n“ nodeNumber);
system(“pause“);
system(“cls“);
return 1;
}
}
}while(1);
fclose(fp);
}
//函数功能:将学生链表结点数据写入到文件,便于数据长久保存
void saveToFile()
{
FILE *fp;
int nodeNumber = 0;
Student *p = head;
if((fp = fopen(fileFullPath “wb+“)) == NULL){//w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
printf(“无法打开数据文件! \n“);
return ;
}
printf(“正在将链表中的数据保存到文件,请稍候...... \n“);
while(p!=NULL){
if(fwrite(p sizeof(Student) 1 fp) == 1)
nodeNumber++;
else
printf(“学号为:%d,姓名为:%s 的学生数据保存文件失败 \n“p->idp->name);
p = p->next;
}
fclose(fp);
printf(“保存结束,共保存了%d名学生数据! \n“ nodeNumber);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-18 18:07 学生管理系统\
目录 0 2017-02-28 15:02 学生管理系统\Debug\
文件 38912 2017-02-28 15:03 学生管理系统\Debug\学生管理系统.exe
文件 269560 2017-02-28 15:03 学生管理系统\Debug\学生管理系统.ilk
文件 470016 2017-02-28 15:03 学生管理系统\Debug\学生管理系统.pdb
文件 162 2017-03-17 10:50 学生管理系统\~$课程综合设计.docx
目录 0 2017-03-18 17:13 学生管理系统\学生管理系统\
目录 0 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\
文件 18900 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\CL.read.1.tlog
文件 13234 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\CL.write.1.tlog
文件 7414 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\cl.command.1.tlog
文件 9401 2017-03-01 17:13 学生管理系统\学生管理系统\Debug\fileOperate.obj
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
文件 2 2017-03-09 17:00 学生管理系统\学生管理系统\Debug\li
............此处省略128个文件信息
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论