#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
#include<fcntl.h>
#include <setjmp.h>
#define ADUSER_NAME "admin"
#define ADPASSWORD "Admin"
#define STPASSWORD "000000"
typedef struct Student //类型首字母大写以和变量区分
{
char cName[50];
char iNumber[50];
int Score;
char lesson[50];
struct Student *next;
}STU;//因为类型相同所以递归定义
STU *phead = NULL;
STU *pEnd = NULL;
int icount;//全局定义链表长度
int judgeadmin = 1;
char Cl[20] = {0};
char STusername[50] = {0};
void SetPos(int x,int y);
void Login();
int Menu_select() ;
void Head();
void STHead();
STU* Creat();
void Print(STU *phead);
void ADDstu(char*iNumber,char*cName,int Score) ;
void sort(STU* pHead);
void Delete(STU*pHead,int index);
STU* delHead(STU *pHead);
STU* FreeAll_LINK(STU*pHead);
void Search_stu(STU* pHead);
void Revise_stu(STU *pHead);
void Caozuowei();
void backlogin_caozuowei();
void Shensucaozuowei();
void Chachong(STU *pHead);
void Savestu();
void Readstu();
void Backlogin();
void print_lessons();
int Stmenu_select();
char *choose_lesson();
void read_lesson();
void save_lesson();
int main()
{
system ("color f0");
char cName[50];
char iNumber[50];
int Score;
char lesson[50]={0};
system ("color f0");
printf("欢迎使用本系统!\n");
int i;
printf("\n\n\n\n\n\n\n\n\t\t\t\t\t");
char heihei[] = {"即将进入学生管理系统..."};
for(i = 0; i < strlen(heihei); i++)
{
printf("%c",heihei[i]);
Sleep(100);
}
system("CLS");
Login();
system("cls");
int iN;
Readstu();
if(judgeadmin==0)
{
system("cls");
STHead();
printf("\n\t\t\t\t\t*************学生端信息查询************\n");
int p = 0;
STU* pTemp = phead;
while(pTemp != NULL)
{
if(strcmp(pTemp->iNumber,STusername) == 0)
{
p++;
while(!judgeadmin)
{
iN=Stmenu_select();
switch(iN)
{
case 0:
system("cls");
printf("\n\n\n\t ");
for(int i = 0; i < 50; i++)
{
printf("* ");
Sleep(50);
}
printf("\n\t\t\t ");
printf("要返回登录界面按任意键\t\t要退出程序请按Esc键\n");
char cho;
fflush(stdin);
cho = getch();
if(cho == 0x1b)
{
FreeAll_LINK(phead);
exit(0);
}
else
{
fflush(stdin);
Savestu();
system("cls");
Backlogin();
}
break;
case 1:
system("cls");
print_lessons();
break;
case 2:
system("cls");
printf("\t\t\t\t学生信息如下:\n\t\t\t\t姓名: %s\n\t\t\t\t学号: %s\n\t\t\t\t成绩: %d\n\t\t\t\t课程: %s",pTemp->cName,pTemp->iNumber,pTemp->Score,pTemp->lesson);
Caozuowei();
break;
case 3:
system("cls");
save_lesson(choose_lesson());
strcpy(pTemp->lesson,choose_lesson());
Caozuowei();
break;
}
}
}
break;
}
pTemp = pTemp-> next;
if(p == 0)
{
printf("\n\n\n\t\t\t\t\t\t管理员还没有添加你的信息哦。");
}
free(phead);
backlogin_caozuowei();
}
else
{
system("cls");
Head();
while(judgeadmin)
{
iN = Menu_select();
switch(iN)
{
case 0:
system("cls");
printf("\n\n\n\t ");
for(int i = 0; i < 50; i++)
{
printf("* ");
Sleep(50);
}
printf("\n\t\t\t ");
printf("要返回登录界面按任意键\t\t要退出程序请按Esc键\n");
char cho;
fflush(stdin);
cho = getch();
if(cho == 0x1b)
{
FreeAll_LINK(phead);
exit(0);
}
else
{
fflush(stdin);
Savestu();
system("cls");
Backlogin();
}
break;
case 1:
// 创建
phead = Creat();
Savestu();
break;
case 2:
// 打印
Print(phead);
break;
case 3:
for(int in = 1; in <= 3 ; in++)
{
Sleep(200);
printf(".");
}
system("CLS");
Head(); printf("\n"); //追加
printf("\t\t\t\t学号:\n\t\t\t\t");
scanf("%s",iNumber);
for(int i=0;iNumber[i];i++)
{
if(48>iNumber[i]||iNumber[i]>57)
{
printf("\n\t●请重新输入学号:");
fflush(stdin);
scanf("%s",iNumber);
i=-1;
}
}
printf("\t\t\t\t姓名:\n\t\t\t\t");
scanf("%s",cName);
printf("\t\t\t\t成绩:\n\t\t\t\t");
scanf("%d",&Score);
while(Score>100||Score<0)
{
printf("\n\t●请重新输入正确成绩:");
fflush(stdin);
scanf("%d",&Score);
}
ADDstu(iNumber,cName,Score) ;
printf("\t\t\t\t");
printf("\t\t\t\t\n");
for(int in = 1; in <= 3 ; in++)
{
Sleep(200);
printf(".");
}
printf("\n\t\t\t\t添加成功!");
getch();
Caozuowei();
Savestu();
break;
case 4:
for(int in = 1; in <= 3 ; in++)
{
Sleep(200);
printf(".");
}
system("CLS");
Head(); puts(""); //排序
printf("\t\t\t\t\t*************数据排序************\n") ;
sort(phead);
getch();
Caozuowei();
fflush(stdin);
Savestu();
break;
case 5:
Revise_stu(phead);
Savestu();
break;
case 6:
for(int in = 1; in <= 3 ; in++)
{
Sleep(200);
printf(".");
}
system("CLS");
Head(); puts(""); //删除
printf("\t\t\t\t\t*************删除学生信息************\n\t\t\t\t请选择删除方式。\n\t\t\t\t1)删除输入的序号对应的学生。\t2)删除全部学生\n\t\t\t\t");
char ccho;
ccho = getche();
while(ccho != '1'&& ccho !='2')
{
ccho = getch();
}
if(ccho == '1')
{
int index;//要删除的学生序号
printf("\n\t\t\t\t请输入要删除的学生序号:\n\t\t\t\t");
scanf("%d",&index);
getchar();
if(index != 1)
Delete(phead,index);
else
{
phead = delHead(phead);
}
Savestu();
}
if(ccho == '2')
{
phead = FreeAll_LINK(phead);
for(int in = 1; in <= 3 ; in++)
{
Sleep(200);
printf(".");
}
phead = NULL;
printf("\n\t\t\t\t已清空!");
Savestu();
}
getch();
Caozuowei();
break;
case 7:
Search_stu(phead);
break;
}
system("CLS");
}
}
}
void Head()
{
printf("\n");
printf("\t\t\t\t\t╭ % ╮ ╭ ```╮ \n");
printf("\t\t\t\t\t(@^o^@) 学生信息管理系统 管理端(⌒:⌒)\n");
printf("\t\t\t\t\t(~):(~) (~)v(~) \n");
printf("\n\n\n");
}
void STHead()
{
printf("\n");
printf("\t\t\t\t\t╭ % ╮
yava_free
- 粉丝: 5379
- 资源: 2089
最新资源
- 三菱FX1N通讯E700变频器示例资料 硬件:fx1n-485bd板,fx1n plc,E700变频器一台 功能:控制功能包括正反转,停止,频率给定,读取动作包括运行频率,运行状态 百度,内容包括
- 8通道自动温度检测系统仿真 各通道温度依次显示 Proteus仿真 免开发板 51单片机汇编语言 无实物 含工程文件源码
- STM32 多回路电力表 远程电力仪表,远程电力表 采用stm32作为主控 支持电力统计,电能计算,电流输出 支持过流,过压,欠压保护 包括原理图,源代码 已移植量产使用,具有极高的参考价值
- 西门子1200PLC博图自动称重配料系统程序例程,组态画面采用KTP1200触摸屏 具体为1200和变频器Modbus RTU 通 讯,托利多电子称modbus RTU通讯,带 PID 温度控制程序
- maxwell、jmag、motorcad高速永磁电机、内转子永磁电机、直驱力矩电机、外转子永磁无刷直流电机设计、永磁同步电机设计
- Prescan ACC Simulink模型,自适应巡航模型 分为上下两层控制
- 基于元胞自动机的人口疏散模型MATLAB代码 通过设定危险度规则,使用基于双端队列的01bfs算法快速计算每个格子的危险度,使元胞自发地倾向危险度更低的方向来模拟人员疏散模型 双出口空间人口疏散,可自
- 与信号处理相关的学习资料,基于MATLAB的零极点、梳状和iir二阶数字滤波器设计,GUI界面 另有说 可实现功能和界面如下图所示
- 西门子1200PLC热站自控系统程序,2个循环泵,2个补水泵,循环泵与补水泵采用一用一备,硬件:昆仑通泰触摸屏,程序有完整注释和简易电路图供参考,打开软件版本博图V13
- 源代码,基于STM32F103的多种外围芯片驱动程序,集成在一个项目中,采用Keil开发,方便调试 EEPROM FRAM : AT24Cxx (ATMEL ,I2C 接口) EEPROM:
- 基于sobel算子的边缘检测FPGA程序,同时兼容彩色图像和灰度图像的边缘检测,而且不用将输出数据再使用matlab读取,在测试文件直接按照bmp格式将输出数据写到bmp中,直接在modelsim就可
- 3-新增input表单.html
- AUTO-MES 车间生产执行系统源代码 数据库,mysql 完整数据库脚本 源代码可以用IDEA打开 1,车间基础建模 1.1 工作中心 1.2 站点维护 1.3 工
- 基于labview开发的温度压力采集,可以生成波形图有最低最高和平均计算显示,结构清晰,动画仿真,适合学习参考
- 基于labview的连续时间系统的时频域分析 ①给出一个连续时间系统的微分方程,求出该系统的系统函数,单位冲激响应曲线;给出输入信号,求零状态响应曲线 ②画出系统的极零图,幅频特性曲线,相频特性曲线
- 博途西门子PLC模拟量滤波程序,西门子1200和1500通用,有电压或者电流或者热电偶选择,高低位和高高低低位报警,有滤波功能,非常实用的功能块,配有详细的注释,帮助快速理解 已经在工程案例使用过
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈