资源简介
C语言课程设计,学生学籍管理系统,存入、修改、插入函数带有查重函数,可自动检查文件是否为空,带有密码登陆和修改密码功能

代码片段和文件信息
/* 学生信息管理系统
学生学籍管理系统
1、输入学生信息 当输入数据为0时停止输入
2、存入、修改、插入函数带有查重函数
3、可自动检查文件是否为空
4、带有密码登陆和修改密码功能
5、第一次打开时且文件内容为空时需存入数据再操作,否则可能会出错。
*/
#include
#include
#include
#include
struct date
{
char sno[15];
char name[14];
char sex[5];
int age;
char native[20];
char dept[20];
char major[20];
char clas[10];
};
typedef struct student
{
struct date d;
struct student * next;
}N;
void menu1();// 单函数
void menu2();//管理员菜单
void menu3(); //普通用户菜单函数
void file_save();//保存文件
void file_read();//读取文件
void creat_list();//创建链表
void insert_date();//添加数据
void delete_date();//删除数据
void treavese_list();//输出链表
void sort();//按学号排序
void modification(N * p1);//修改信息
void input(struct date * q);//输入数据
void output(struct date * q);//输出数据
int find(char n[]);//查找学生
int find2(char n[]);//查重
int enter();//登陆函数
N * Head * Pnew;//定义一个头指针与循环指针
int main()
{
system(“color fc“);
file_read();
menu1();
return 0;
}
void file_read()
{
FILE * fp;
if(NULL == (fp = fopen(“s_status.txt““rb“)))
{
fopen(“s_status.txt““wb“);
}
int a;
a = ftell(fp);
fseek(fp02);
if(a != ftell(fp))
{
//insert_date();
printf(“文件不为空\n“);
rewind(fp);
}
else
{
printf(“文件为空!请存入\n“);
rewind(fp);
}
Head = (N *)malloc(sizeof(N));
if(NULL == Head)
{
printf(“内存分配失败!!!“);
exit(-1);
}
Pnew = (N *)malloc(sizeof(N));
Head->next = Pnew;
struct date * q;//定义一个内层结构体指针,用来存放文件中的数据
q = &Pnew->d;
N * p1;//循环指针
p1 = Pnew;
while(fread(qsizeof(struct date)1fp))
{
p1 = Pnew;
Pnew = (N *)malloc(sizeof(N));
p1->next = Pnew;
q = &Pnew->d;
}
p1->next = NULL;
free(Pnew);//最后一个空间没有存放数据 ,释放掉。
}
void creat_list()
{
N * tail;
Head = tail = (N *)malloc(sizeof(N));
if(NULL == Head)
{
printf(“内存分配失败!!!“);
exit(-1);
}
int i = 0;//在第一次循环时不需要查重
while(1)
{
i++;
N * Pnew = (N *)malloc(sizeof(N));
printf(“\n“);
input(&Pnew->d);
if(i != 1 && 1 == (find2(Pnew->d.sno)))
{
printf(“此学号已存在!\n“);
continue;
}
if(Pnew->d.age == 0)
{
free(Pnew);
break;
}
tail->next = Pnew;
Pnew->next = NULL;
tail = Pnew;
}
}
void insert_date()
{
char n[20];
N * p1;// 循环指针
printf(“添加在哪个学号的后面:“);
scanf(“%s“n);
p1 = Head->next;
if(NULL == p1)
{
printf(“文件为空,请存入\n“);
return;
}
while(p1 != NULL)
{
if(strcmp(np1->d.sno) == 0)
{
Pnew = (N *)malloc(sizeof(N));
printf(“添加学生信息为:\n“);
input(&Pnew->d);
if(find2(Pnew->d.sno) == 1)
{
printf(“此学号已存在!\n“);
printf(“\n1、继续添加“);
printf(“\n2、返回菜
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 112 2016-11-21 16:55 s_status.txt
文件 0 2016-11-08 21:54 密码
文件 12352 2016-01-01 20:43 学生学籍管理系统.c
文件 141068 2016-11-21 16:56 学生学籍管理系统.exe
- 上一篇:c/c++解决迷宫问题
- 下一篇:408计算机综合教材书籍
相关资源
- 操作系统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语言的课
评论
共有 条评论