• 大小: 1.81MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-25
  • 语言: C/C++
  • 标签: C语言  

资源简介

这是本人做的一个基于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\link-cvtres.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link-cvtres.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link-rc.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link-rc.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.10584-cvtres.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.10584-cvtres.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.10584-rc.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.10584-rc.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.10584.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.10584.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.1152-cvtres.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.1152-cvtres.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.1152-rc.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.1152-rc.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.1152.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.1152.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.12320-cvtres.read.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.12320-cvtres.write.1.tlog
     文件           2  2017-03-09 17:00  学生管理系统\学生管理系统\Debug\link.12320-rc.read.1.tlog
............此处省略128个文件信息

评论

共有 条评论