资源简介
这是本人做的一个基于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个文件信息
相关资源
- 教你如何用Keil ,用c语言进行编程
- 数据结构基础(C语言版) 习题答案
- JPEG压缩的c语言实现
- 嵌入式linuxC语言程序设计基础教程
- C语言实用数字图像处理(日本的,看
- Cholesky MPI并行C语言实现
- ECOS求解器求解二阶锥问题C语言程序
- C语言小游戏217637
- 银行排号系统设计 C语言实现
- DBMS课程设计C语言实现全部源码与设计
- C语言经典算法100例.pdf
- VS2017平台下最简洁的基于C语言开发的
- C语言参考手册第五版(高清PDF中文版
- 数据结构c语言版本严蔚敏清华大学
- c语言版的类似qq源码
- 数据结构c语言版本
- 谭浩强C语言程序设计(第五版) -全
- c程序设计试题汇编
- 基于单片机的土壤自动节水灌溉系统
- vc++6.0中文版支持win7
- 郭天祥51单片机C语言教程配套光盘内
- C语言课程设计学生信息管理系统带文
- C语言图像处理代码
- c语言DOS界面菜单式四则运算自编菜单
- C Programming in Linux Linux下C语言
- 吃豆人C/c++实现
- 51单片机C语言程序设计教程 王云书本
- 数据结构C语言版第2版课后习题答案
- 个人所得税计算器c语言
- C语言经典算法大全(非常全的算法
评论
共有 条评论