基于文件的C语言学生信息管理系统

●题目名称
C语言学生信息管理系统

●题目分析
将文件引入学生信息管理系统,完善学生信息数据的处理,包括信息的读取、保存、刷新。编写与文件有关的程序,需要考虑将对文件以什么方式操作,文件能否被打开,文件在什么位置。为了程序的可读性,一般将文件的读取、存盘、操作自定义为函数。

●算法构造
●●刷新学生信息update()函数

<1>以只读方式打开指定文件,判断文件是否为空,若为空,则提示:文件为空!
<2>循环读入学生信息,并累加当前记录的学生人数n
<3>输出提示:刷新成功!
<4>关闭文件
●●查询学生信息seek()函数
<1>用户输入要进行的操作:1.按学号查询;2.按姓名查询;3.退出本菜单
<2>选择1:输入要查询的学生的学号;判断输入的学号和存好的学号一致;一致则输出学生的信息,不一致则输出:该学号不存在!
<3>选择2:输入要查询的学生的姓名;判断输入的姓名和存好的姓名一致;一致则输出学生的信息,不一致则输出:该姓名不存在!
●●修改学生信息modify()函数
<1>输入要修改的学生的学号
<2>比较输入的学号和文件存好的学号是否一致,选择要进行的操作编号:1.修改姓名;2.修改年龄;3.修改性别;4.修改C语言成绩;5.修改高等数学成绩;6.修改大学英语成绩;7.退出本菜单
<3>选择1:输入新的姓名s2;新的姓名s2替换原来的姓名;保存新的姓名
<4>选择2:输入新的年龄age;新的姓名age替换原来的年龄;保存新的年龄
<5>选择3:输入新的性别sex1;新的性别sex1替换原来的性别;保存新的性别
<6>选择4:输入新的C语言成绩score1;新的C语言成绩score1替换原来的C语言成绩;保存新的C语言成绩
<7>选择5:输入新的高等数学成绩score1;新的高等数学成绩score1替换原来的高等数学成绩;保存新的高等数学成绩
<8>选择6:输入新的大学英语成绩score1;新的大学英语成绩score1替换原来的姓名;保存新的大学英语成绩
<9>选择7:返回主菜单
●●插入学生信息函数insert()函数
<1>输入待增加的学生数n
<2>循环依次输入每个学生的学号、姓名、性别、年龄、C语言成绩、高等数学成绩、大学英语成绩
<3>将这些信息依次写入文件
<4>提示:添加成功!
<5>调用按学号排序函数,将信息排序好
<5>关闭文件
●●按学号删除信息del()函数
<1>输入要删除学生的学号s1
<2>初始化flag=0,进入循环,比较输入的学号和文件记录的学号是否一致,若一致则令flag=1,循环将后面的学生记录向前移动
<3>判断flag=0,提示:该学号不存在!
<4>判断flag=1,学生人数-1并保存,提示:删除成功!
<5>关闭文件
●●显示当前信息display()函数
<1>打开文件
<2>读取文件信息;若文件为空,则提示:文件为空!若文件不为空,则循环依次输出每个学生的学号、姓名、性别、年龄、C语言成绩、高等数学成绩、大学英语成绩
<3>关闭文件
●●保存当前学生信息fileWrite()函数
<1>打开文件
<2>读取文件信息;若文件为空,则提示:文件为空!若文件不为空,则循环依次写入每个学生的学号、姓名、性别、年龄、C语言成绩、高等数学成绩、大学英语成绩
<3>关闭文件

●源代码

#include<stdio.h>    /*I/O函数*/
#include<stdlib.h>  /*其它说明*/
#include<string.h>  /*字符串函数*/
#define max 100
#define LEN 15      /* 学号和姓名最大字符数,实际请更改*/
#define N 100        /* 最大学生人数,实际请更改*/
int k=1,n=0, m=0;/* n代表当前记录的学生人数*/
//学生信息结构体
struct student 
{
    char no[LEN];//学号
    char name[LEN];//姓名
    char sex[LEN];//性别
    int age;//年龄
    float C;//c语言成绩
    float M;//数学成绩
    float E;//英语成绩
}stu[N];
void fileWrite();


//系统帮助及说明
void help() 
{
    printf("\n0.欢迎使用系统帮助!\n");
    printf("\n1.初次进入系统后,请先选择增加学生信息;\n");
    printf("\n2.按照菜单提示键入数字代号;\n");
    printf("\n3.增加学生信息后,切记保存;\n");
    printf("\n4.谢谢您的使用!\n");
}


//刷新学生信息
void update()
{
    in
  • 22
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值