C语言学生信息管理系统项目
学生信息管理系统项目说明文档
一、项目概述
1.1、产品描述
开发意图:为了使档案管理工作更方便,利用计算机提高工作人员的工作效率,减轻工作负担,实现档案管理的无纸化。
应用目标:通过使用本系统软件,帮助最终用户利用计算机,快速方便的对学生学籍管理进行管理、输入、输出、查找的所需操作,使散乱的人事档案能够具体化,直观化、合理化Linux操作系统 gcc编译器 EditPlus编辑器
二、功能概述
1.1、功能分块
1.2、主菜单
1.3、登陆
1.4、添加
1.5、排序
1.6、打印
1.7、另存为
1.8、保存
1.9、读取
1.10、查询
1.11、统计
1.12、退出
另附源代码:#include
#include
#include
#include
#include
#include
#include
#define User 10 //用户名最大宽度
#define Password 10 //密码最大宽度
#define Hight 24 //控制台高度
#define Width 80 //控制台宽度
#define DefaultUser "admin" //默认的用户名
#define DefaultPassword "123456" //默认的用户密码
#define StudentName 20 //学生姓名最大长度
#define OnePageNum 8 //一页显示信息条数
#define MARKLEN (Width-2-StudentName-8)/8 //除学号和姓名外其他项目所占长度
#define FILEADDR "data.txt" //默认文件名
#define FILE_NAME_NUM 8 //文件名长度
int WrongTimes = 3; //允许登录输错密码次数
int IsSaved = 0; //记录是否保存,0为已保存
int student_num = 0; //学生实际人数
int maxnum = 0; //最大学号
int sys_year = 0; //系统时间 年
int sys_mon = 0; //系统时间 月
int sys_day = 0; //系统时间 日
typedef struct del_node //存放缺漏的学号
{
int Sno;
struct del_node *next;
}del_Node, *del_list, *del_pointer;
typedef struct date_node
{
int Year; //年
int Month; //月
int Day; //日
}m_date;
typedef struct student_node
{
int Sno; //学号
char Name[20]; //姓名
m_date birthday; //生日
float score[5]; //五门成绩:语文,数学,英语,物理,化学
}student_info;
typedef struct node //学生信息的数据结构
{
student_info data;
struct node* next; //指向下一结点
}Node, *lklist, *pointer;
pointer p = NULL,q; //p为尾巴结点,用于添加 q用于其他
lklist head = NULL; //学生数据头结点
del_list del_head = NULL; //缺漏学号链表头结点
del_pointer del_last = NULL;//缺漏学号链表尾结点
/************************
功能:添加新的结点到链表中
参数:lklist head,链表头结点
lklist *last,链表尾结点指针
其他,学生结点信息
返回:链表头结点
************************/
lklist add(lklist head, lklist *las