#include<stdio.h>
#include <conio.h>//定义了通过控制台进行 数据输入 和数据输出的函数,如getch函数。
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#include<windows.h>
#define N 20
#define M 1000
#define chengji "student.txt"
#define teacher "teacher.txt"
#define xuesheng "xuesheng.txt"
//存储结构,链式表
struct student
{
int xuehao;//学号
char name[N];//姓名
char kecheng[N];//课程名
float pingshi;//平时成绩
float kaoshi;//考试成绩
double zongping;//综合成绩
int banji;//班级
struct student* next;//下一个指针结点
};
//排序结构,结构体数组
struct sttu
{
int xuehao;
char name[N];
char kecheng[N];
float pingshi;
float kaoshi;
double zongping;
int banji;
}stu[M];
struct denglu//学生账号密码系统
{
int zhanghao;
char mima[N];
struct denglu* next;
};
typedef struct student* stud;
typedef struct student stude;
typedef struct sttu sdent;
void jinru();//进入选项
void menu();//显示主菜单
void teach();//老师界面
void xuesh(int zhanghao);//学生界面
void show();//显示老师菜单
void showxue();//显示学生菜单
int getchoose();//获取用户选择的内容
void input();//添加信息选项
stud Createstudent();//创建学生信息
stud Getaddr(int num);//返回指定编号学生节点上一个节点
stud Getaddr2(int num, stud pstu);//返回指定编号学生节点上一个节点
int addstudent(stud pstu);//添加学生信息进链表
int getin();//接收输入的学生学号
int Question(const char* pstr);//接收输入判断
void change(int num);//修改学生信息
void Dest(int num);//删除某学号学生信息
void Deall();//删除所有学生信息
void Delete();//删除选项
int dayin1(stud pstu);//打印查找结果1
int dayin2(stud pstu);//打印查找结果2
void xingfind();//根据姓名查找
void banfind();//根据班级查找
void xuefind();//根据学号查找
void kefind();//根据课程名查找
void zongsort();//综合成绩排序
void sorty(int cout, int n);//排序函数,n=1,2,3分别表示综合成绩、平时成绩、考试成绩
void ShowAll();//打印所有信息
void save();//保存学生信息至文件
void filew();//从文件读取学生信息
int Showcount();//显示学生数量
void enda();//结束语
void teachdenglu();//老师登录界面
void studdenglu();//学生登录界面
int teah(int zhanghao, char mima[N]);//老师登录验证
int xueh(int zhanghao, char mima[N]);//学生登录验证
void change1(int zh);//修改密码
int tongji();//统计文件学生数
void xuefind1(int zhanghao);//学生查自己的成绩
int tongjicj();//统计成绩记录数量
void changemm(int zhanghao, char mima[N]);//修改函数
void hai();//表头
void pingjun();//平均分
void zhuce();//学生注册系统
stude head;//头节点
void teachdenglu()//老师登录界面
{
int zhanghao, k;
char mima[N];
system("cls");
hai();
printf("\n\n请输入老师账号: ");
scanf("%d", &zhanghao);
printf("\n请输入老师密码: ");
scanf("%s", mima);
k = teah(zhanghao, mima);
printf("\n\n");
system("cls");
hai();
printf("\n\n正在登陆。。。");
Sleep(2000);//暂停1秒
system("cls");
hai();
if (k == 1)
{
printf("\n\n登录成功!3秒后进入教师端口。。。");
Sleep(1000);
system("cls");
hai();
printf("\n\n登录成功!2秒后进入教师端口。。。");
Sleep(1000);
system("cls");
hai();
printf("\n\n登录成功!1秒后进入教师端口。。。");
Sleep(1000);
teach();
}
else
{
if (k == -1)
{
int n;
printf("密码错误,是否重新输入?(1.是 2.否): ");
scanf("%d", &n);
if (n == 2)
{
jinru();
}
teachdenglu();
}
if (k == 0)
{
printf("账号错误!!!按任意键返回主菜单!!!\n");
getch();
jinru();
}
}
}
int teah(int zhanghao, char mima[N])//老师登录验证
{
FILE* fp;
int zhanghao1;
char mima1[N];
if ((fp = fopen(teacher, "r")) == NULL)
{
system("cls");
printf("\n还没有老师账户!!!");
getch();
}
for (; !feof(fp);)
{
fscanf(fp, "%d\t%s\n", &zhanghao1, mima1);
if (zhanghao == zhanghao1)
{
if (strcmp(mima, mima1) == 0)
return 1;
else
return -1;
}
}
return 0;
}
void studdenglu()//学生登录界面
{
int zhanghao, k;
char mima[N];
system("cls");
printf("\n\n请输入学生账号: ");
scanf("%d", &zhanghao);
printf("\n请输入学生密码(初始密码为:123): ");
scanf("%s", mima);
k = xueh(zhanghao, mima);
system("cls");
hai();
printf("\n\n正在登陆。。。");
Sleep(2000);//暂停1秒
system("cls");
hai();
if (k == 1)
{
printf("\n\n登录成功!3秒后进入学生界面。。。");
Sleep(1000);
system("cls");
hai();
printf("\n\n登录成功!2秒后进入学生界面。。。");
Sleep(1000);
system("cls");
hai();
printf("\n\n登录成功!1秒后进入学生界面。。。");
Sleep(1000);
xuesh(zhanghao);
}
else
{
if (k == -1)
{
int n;
printf("密码错误,是否重新输入?(1.是 2.否): ");
scanf("%d", &n);
if (n == 2)
{
jinru();
}
studdenglu();
}
if (k == 0)
{
printf("账号错误!!!按任意键返回主菜单!!!\n");
getch();
jinru();
}
}
}
int xueh(int zhanghao, char mima[N])//学生登录验证
{
FILE* fp;
int zhanghao1;
char mima1[N];
if ((fp = fopen(xuesheng, "r")) == NULL)
{
system("cls");
printf("\n还没有学生账户!!!");
getch();
}
for (; !feof(fp);)
{
fscanf(fp, "%d\t%s\n", &zhanghao1, mima1);
if (zhanghao == zhanghao1)
{
if (strcmp(mima, mima1) == 0)
return 1;
else
return -1;
}
}
return 0;
}
void zhuce()//学生注册系统
{
FILE* fp;
int zhanghao;
char mima1[N],mima2[N],jname[N];
char hit=0;
if((fp=fopen(xuesheng,"r"))==NULL)
{
fp=fopen(xuesheng,"w");
fclose(fp);
}
system("cls");
hai();
fp = fopen(xuesheng, "a");
for (;;)//输入两次密码确认,两次相同才能确认
{
printf("\n请输入注册账户(学号): ");
scanf("%d",&zhanghao);
printf("\n请输入姓名: ");
scanf("%s",jname);
printf("\n请输入密码: ");
scanf("%s",mima1);
printf("\n请再次输入密码: ");
scanf("%s",mima2);
if(strcmp(mima1,mima2)==0)
{
fprintf(fp,"%d\t%s\n",zhanghao,mima1);
break;
}
else
{
printf("两次输入的密码不一致!\n");
printf("继续创建按回车,退出Esc");
hit = getch();
if (hit == 27)
{
jinru();
}
system("cls");
}
}
fclose(fp);
printf("创建成功^_^按任意键返回!!!");
getch();
jinru();
}
void jinru()//主菜单选项
{
int n;
menu();
printf("\n请选择菜单(1 -- 3,按enter键结束): ");
while (1 != scanf("%d", &n) || n < 1 || n > 4)
{
menu();
printf("选择菜单错误,请重新选择(1--3): ");
fflush(stdin);//清空输入缓冲区
}
switch (n)
{
case 1:teachdenglu(); break;
case 2:studdenglu(); break;
case 3:zhuce(); break;
case 4:enda(); break;
}
}
void menu()//主菜单
{
system("cls");
printf("\n\n\n");
printf(" 欢迎使用蓝海成绩管理系统 \n");
printf("********************************************\n");
printf(" 请选择你的用户类别 \n");
printf("********************************************\n");
printf("\n\t\t1.老师\n");
printf("\n\n\t\t2.学生\n");
printf("\n\n\t\t3.学生注册账号\n");
printf("\n\n\t\t4.退出系统\n");
printf("********************************************\n");
}
void teach()//老师界面
{
int a = 1;
int n;
while (a)
{
show();
printf("\n�
没有合适的资源?快使用搜索试试~ 我知道了~
基于C语言学生成绩管理系统
共11个文件
txt:4个
exe:2个
win:1个
5星 · 超过95%的资源 需积分: 8 1 下载量 84 浏览量
2023-03-16
20:35:45
上传
评论 3
收藏 582KB RAR 举报
温馨提示
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算机的发明应用,被视为人类的第三次重大的科学技术革命,是一次飞跃。过去的革命最高成就就是“用机器制造机器”,是手的延长,而计算机的出现却能做到“用机器控制机器”,是脑的延伸。计算机是提高生产效率的主要工具及途径。 随着本国的改革开放和经济的快速发展,如今的高校日常的管理当中,学生成绩管理系统已是其中非常重要的一环,特别是当前大学生规模大,学生管理系统更具有非常大的实际意义。而其计算机的运行速度快,处理能力强,这是人工无法比的。所以做好一个学生管理系统将会给学校老师和学生带来极大的便利。所以打算制作一个学生成绩管理系统。 能够实现:学生信息的录入(即添加)、显示学生个人信息和各科成绩、显示所有学生的信息和各科成绩、学生信息的插入、学生信息的查寻、学生信息的删除(包括删除某个学生的信息和删除全部学生的信息)、学生信息的修改、平均分的计算(包括个人所有科目的平均分和某科目的平均分)、把学生信息保存到文档中、从文件中读取学生信息、显示学生信息总量和将学生成绩进行排序
资源推荐
资源详情
资源评论
收起资源包目录
Student.rar (11个子文件)
Student
xuesheng.txt 32B
main.cpp 31KB
123代码.txt 33KB
main.exe 152KB
Makefile.win 1KB
成绩管理.dev 904B
main.o 1001KB
teacher.txt 14B
student.txt 259B
成绩管理.exe 1.09MB
成绩管理.layout 97B
共 11 条
- 1
黄小浩的世界
- 粉丝: 100
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页