c语言学生成绩管理系统步骤

1. 前言

目前课程设计已经上传到github上,并且在不断的更新,希望大家支持 访问地址

本篇源码请在文章末尾获取

2. 需求分析

用户:管理员,老师,学生

管理员:添加老师,编辑老师的信息

老师:添加学生,添加学生成绩,修改学生成绩

学生:查看自己的成绩

3. 项目截图

c语言学生成绩管理系统步骤

c语言学生成绩管理系统步骤

!

c语言学生成绩管理系统步骤

c语言学生成绩管理系统步骤

以上就是基本的功能,其他功能小伙伴可以自己摸索

源码

main.c 文件

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <conio.h>
//#include "getch.h"
#include <string.h>
#include <stddef.h>

#define pf printf
#define sf scanf
#define MAX_STU 100
#define MAX_TEA 50

typedef struct Student
{
 char name[20];
 char sex;
 char id[20];
 char passwd[20];
 short chinese;
 short english;
 short math;
 short time;
 short birth;
 short exist;
}Student;

typedef struct Teacher
{
 char name[20];
 char sex;
 char id[20];
 char passwd[20];
 short time;
 short birth;
 short exist;
}Teacher;

typedef struct Admin
{
 char id[20];
 char passwd[20];
 short birth;
}Admin;

// 声明全局变量
Student* STU;
Teacher* TEA;
Admin* ADM;

// 下标
int temp = 0;
int pos = 0;
int i = 0;

// 系统初始化
void sams_init(void);
// 系统开始运行
void sams_start(void);
// 系统结束
void sams_exit(void);

// 管理子系统菜单
void admin_menu(void);
// 管理员添加老师
void admin_add_tea(void);
// 管理员删除老师
void admin_del_tea(void);
// 管理员重置老师
void admin_reset_tea(void);
// 管理员显示在职教师列表
void admin_list_tea(void);
// 管理员显示离职教师列表
void admin_list_ubtea(void);
// 管理员修改密码
void admin_change_pw(void);
// 管理员登录
bool admin_login(void);
// 运行管理员子系统
void admin_start(void);

// 学生子系统菜单
void student_menu(void);
// 学生查询成绩
void student_find_score(void);
// 学生查询成绩
void student_find_score(void);
// 学生修改密码
void student_ch_pw(void);
// 学生查询个人信息
void student_find_info(void);
// 学生登录
int student_login(void);
// 运行学生子系统
void student_start(void);

// 老师子系统菜单
void teacher_menu(void);
// 老师添加学生
void teacher_add_stu(void);
// 老师删除学生
void teacher_del_stu(void);
// 老师查询学生
void teacher_find_stu(void);
// 老师修改学生信息
void teacher_ch_stu_info(void);
// 老师添加学生成绩
void teacher_add_stu_score(void);
// 老师重置学生密码
void teacher_reset_stu_pw(void);
// 老师显示在校学生列表
void teacher_list_stu(void);
// 老师显示退学学生列表
void teacher_list_ubstu(void);
// 老师修改密码
void teacher_ch_pw(void);
// 老师登录
int teacher_login(void);
// 老师登录
int teacher_login(void);
// 运行老师子系统
void teacher_start(void);

// 获取字符串
charget_str(char* str,size_t len);
// 清理缓冲区
void clear_stdin(void);
// 获取性别
char get_sex(void);
// 获取键盘指令
char get_cmd(char start,char end);
// 获取密码
charget_pw(char* passwd,bool is_show,size_t size);

// 主函数
int main()
{
 sams_init();
 
 sams_start();

 sams_exit();
}

// 主菜单
void sams_menu(void)
{
 pf("***欢迎使用指针学生成绩管理系统***n");
 pf("1、管理员子系统n");
 pf("2、教师子系统n");
 pf("3、学生子系统n");
 pf("4、退出系统n");
 pf("-----------------------------n");
}

// 系统初始化
void sams_init(void)
{
 // 申请堆内存、加载数据
 STU = calloc(MAX_STU,sizeof(Student));
 TEA = calloc(MAX_TEA,sizeof(Teacher));
 ADM = calloc(1,sizeof(Admin));
 pf("系统初始化...n");

 FILE* afrp = fopen("admin.txt","r");
 int num = 0;
 num = fscanf(afrp,"%s %s %hd",ADM[0].id,ADM[0].passwd,&ADM[0].birth);
 fclose(afrp);

 FILE* sfrp = fopen("stu.txt","r");
 for(i=0; i<100; i++)
 {
  int num = 0;
  num = fscanf(sfrp,"%s %c %s %s %hd %hd %hd %hd %hd %hd",STU[i].name,&STU[i].sex,STU[i].id,STU[i].passwd,&STU[i].chinese,&STU[i].english,&STU[i].math,&STU[i].time,&STU[i].birth,&STU[i].exist);
 }
 fclose(sfrp);

 FILE* tfrp = fopen("tea.txt","r");
 for(i=0; i<50; i++)
 {
  int num = 0;
  num = fscanf(tfrp,"%s %c %s %s %hd %hd %hd",TEA[i].name,&TEA[i].sex,TEA[i].id,TEA[i].passwd,&TEA[i].time,&TEA[i].birth,&TEA[i].exist);
 }
 fclose(tfrp);
}

// 系统开始运行
void sams_start(void)
{
 // 进入系统的业务流程控制
 pf("系统开始运行...n");
 while(true)
 {
  sams_menu();
  switch(get_cmd('1','4'))
  {
   case '1': admin_start(); break;
   case '2': teacher_start(); break;
   case '3': student_start(); break;
   case '4'return;
  }
 }
}

// 系统结束
void sams_exit(void)
{
 FILE* afwp = fopen("admin.txt","w"); 
 int num = 0;
 num = fprintf(afwp,"%s %s %hd",ADM[0].id,ADM[0].passwd,ADM[0].birth);
 fclose(afwp);

 FILE* sfwp = fopen("stu.txt","w");
 for(i=0; i<100; i++)
 {
  int num = 0;
  if(STU[i].sex != 0)
  {
   num = fprintf(sfwp,"%s %c %s %s %hd %hd %hd %hd %hd %hdn",STU[i].name,STU[i].sex,STU[i].id,STU[i].passwd,STU[i].chinese,STU[i].english,STU[i].math,STU[i].time,STU[i].birth,STU[i].exist);
  }
 }
 fclose(sfwp);

 FILE* tfwp = fopen("tea.txt","w");
 for(i=0; i<50; i++)
 {
  int num = 0;
  if(TEA[i].sex != 0)
  {
   num = fprintf(tfwp,"%s %c %s %s %hd %hd %hdn",TEA[i].name,TEA[i].sex,TEA[i].id,TEA[i].passwd,TEA[i].time,TEA[i].birth,TEA[i].exist);
  } 
 }
 fclose(tfwp);
 // 释放内存、保存数据
 free(STU);
 free(TEA);
 free(ADM);
 pf("系统退出...n");
}

// 管理子系统菜单
void admin_menu(void)
{
 pf("n进入管理子系统...n");
 pf("1、添加教师n");
 pf("2、删除教师n");
 pf("3、重置并解锁教师密码n");
 pf("4、显示在职教师n");
 pf("5、显示已离职教师n");
 pf("6、修改自己密码n");
 pf("7、返回上一级n");
 pf("-----------------n");
}

// 管理员添加老师
void admin_add_tea(void)
{
 pf("添加教师n");
 char Cteacher_name[20];
 char Cteacher_sex;
 char Cteacher_id[20];
 char Cteacher_pw[20];
 pf("请输入教师姓名:");
 get_str(Cteacher_name,20);
 pf("请输入教师性别:");
 Cteacher_sex = get_sex();
 pf("请输入教师工号:");
 get_str(Cteacher_id,20);
 pf("请输入教师密码:");
 get_str(Cteacher_pw,20);
 int pos = -1//插入的位置
 pf("id:%s。n",TEA[0].id);
 for(i=0; i<50; i++)
 {
  if(TEA[i].sex == '' && pos == -1)
  {
   pf("pos已定位n");
   pos = i;
  }
  if(strcmp(TEA[i].id,Cteacher_id)==0)
  {
   pf("工号重复,请重新输入!n");
   break;
  }
  if(i==49)
  {
   strcpy(TEA[pos].name,Cteacher_name);
   TEA[pos].sex = Cteacher_sex;
   strcpy(TEA[pos].id,Cteacher_id);
   strcpy(TEA[pos].passwd,Cteacher_pw);
   pf("添加成功。n");
  }
 }
 pf("id:%s。n",TEA[0].id);
}

// 管理员删除老师
void admin_del_tea(void)
{
 pf("删除教师n");
 pf("请输入教师工号:");
 char Cteacher_id[20]={}; 
 get_str(Cteacher_id,20);
 for(i=0; i<50; i++)
 {
  if(strcmp(Cteacher_id,TEA[i].id)==0)
  {
   TEA[i].exist = 1;
   pf("删除成功!n");   
   break;
  }
  if(i==49)
  {
   pf("无此工号!n");
  }
 }
 
}

// 管理员重置老师
void admin_reset_tea(void)
{
 pf("重置密码n");
 pf("请输入教师工号:");
 char Cteacher_id[20]={};
 get_str(Cteacher_id,20);
 char Cteacher_pw[20] = "123";
 for(i=0; i<50; i++)
 {
  if(strcmp(TEA[i].id,Cteacher_id)==0)
  {
   TEA[i].time = 0;
   TEA[i].birth = 0;
   TEA[i].exist = 0;
   strcpy(TEA[i].passwd,Cteacher_pw); 
   pf("重置成功!n");
   break;
  }
  if(i==49)
  {
   pf("无此工号.n"); 
  } 
 }

}

// 管理员显示在职教师列表
void admin_list_tea(void)
{
 pf("显示在职教师");
 for(i=0; i<50; i++)
 {
  if(TEA[i].sex != '')
  {
   if(TEA[i].exist != 1)
   {
    pf("n姓名:%s 性别:%c 工号:%s",TEA[i].name,TEA[i].sex,TEA[i].id);
   }
  }
  else
  {
   break;
  }
 }
}

// 管理员显示离职教师列表
void admin_list_ubtea(void)
{
 pf("显示离职教师");
 for(i=0; i<50; i++)
 {
  if(TEA[i].sex != '')
  {
   if(TEA[i].exist == 1)
   {
    pf("n姓名:%s 性别:%c 工号:%s",TEA[i].name,TEA[i].sex,TEA[i].id);
   }
  }
  else
  {
   break;
  }
 }
}

//char admin_pw[20]="123";
//strcpy(admin_pw,admin_passwd);

// 管理员修改密码
void admin_change_pw(void)
{
 char old_pw[20]={};
 char new_pw[20]={};
 char new_two_pw[20]={};
 pf("请输入原密码:");
 get_pw(old_pw,true,20);
 printf("n");
 pf("请输入新密码:");
 get_pw(new_pw,true,20);
 printf("n");
 pf("请再次输入新密码:");
 get_pw(new_two_pw,true,20);
 printf("n");
 if(strcmp(old_pw,ADM[0].passwd)==0)
 {
  if(strcmp(new_pw,new_two_pw)==0)
  {
   pf("修改密码成功n");
   if(ADM[0].birth==0)
   {
    ADM[0].birth = 1;
   }
   strcpy(ADM[0].passwd,new_pw);
  }
  else
  {
   pf("两次密码不一致n");
  }
 }
 else
 {
  pf("原密码错误。n");
 }
}

// 管理员登录
bool admin_login(void)
{
 //char admin_id[20] = "admin";
 char Cadmin_id[20]={};
 char Cadmin_pw[20]={};
 pf("请输入用户名:");
 get_str(Cadmin_id,20);
 if(Cadmin_id[0]=='')
 {
  pf("用户名不能为空!n");
  return false;
 }
 //pf("*%s*n",Cadmin_id);
 pf("请输入密码:");
 get_pw(Cadmin_pw,true,20);
 //printf("n*%s*",Cadmin_pw);
 printf("n");
 if(strcmp(Cadmin_id,ADM[0].id)==0 && strcmp(Cadmin_pw,ADM[0].passwd)==0)
 {
  //printf("正确n");
  return true;
 }
 else
 {
  return false;
 }
}

// 运行管理员子系统
void admin_start(void)
{
 if(!admin_login())
 {
  pf("登录失败!n");
  return;
 }
 while(true)
 {
  if(ADM[0].birth==0)
  {
   admin_change_pw();
  }
  else
  {
   admin_menu();
   switch(get_cmd('1','7'))
   {
    case '1': admin_add_tea(); break;
    case '2': admin_del_tea(); break;
    case '3': admin_reset_tea(); break;
    case '4': admin_list_tea(); break;
    case '5': admin_list_ubtea(); break;
    case '6': admin_change_pw(); break;
    case '7'return;
   }
  }
 }
}


// 学生子系统菜单
void student_menu(void)
{
 pf("进入学生子系统...n");
 pf("1、查询成绩n");
 pf("2、修改密码n");
 pf("3、查看个人信息n");
 pf("4、返回上一级n");
 pf("---------------n");
}

// 学生查询成绩
void student_find_score(void)
{
 pf("成绩查询n");
 pf("语文:%hd ,英语: %hd ,数学: %hdn",STU[temp].chinese,STU[temp].english,STU[temp].math);
}

// 学生修改密码
void student_ch_pw(void)
{
 char old_stu_pw[20]={};
 char new_stu_pw[20]={};
 char new_stu_two_pw[20]={};
 pf("请输入原密码:");
 get_pw(old_stu_pw,true,20);
 printf("n");
 pf("请输入新密码:");
 get_pw(new_stu_pw,true,20);
 printf("n");
 pf("请再次输入新密码:");
 get_pw(new_stu_two_pw,true,20);
 printf("n");
 if(strcmp(old_stu_pw,STU[temp].passwd)==0)
 {
  if(strcmp(new_stu_pw,new_stu_two_pw)==0)
  {
   pf("修改密码成功n");
   if(STU[temp].birth==0)
   {
    STU[temp].birth = 1;
   }
   strcpy(STU[temp].passwd,new_stu_pw);
  }
  else
  {
   pf("两次密码不一致n");
  }
 }
 else
 {
  pf("原密码错误。n");
 }
}

// 学生查询个人信息
void student_find_info(void)
{
 pf("个人信息n");
 pf("姓名:%s ,性别:%c ,学号: %sn",STU[temp].name,STU[temp].sex,STU[temp].id);
}

// 学生登录
int student_login(void)
{
 char Cstudent_id[20]={};
 char Cstudent_pw[20]={};
 pf("请输入用户名:");
 get_str(Cstudent_id,20);
 if(Cstudent_id[0]=='')
 {
  pf("用户名不能为空!n");
  return -1;
 }
 //pf("*%s*n",Cstudent_id);
 pf("请输入密码:");
 get_pw(Cstudent_pw,true,20);
 //printf("n*%s*",Cstudent_passwd);
 printf("n");
 for(i=0; i<100; i++)
 {
  if(strcmp(Cstudent_id,STU[i].id)==0)
  {
   if(STU[i].time==3)
   {
    pf("此学号已被锁定,请找教师解锁。n");
    return -1;
   }
   if(STU[i].exist==1)
   {
    pf("此学生已退学。n");
    return -1;
   }
   if(strcmp(Cstudent_pw,STU[i].passwd)==0)
   {
    return i;
   }
   else
   { 
    STU[i].time++;
    pf("密码错误.n");
    return -1;
   }
  }
 }
 pf("不存在此学生。n");
 return -1;
}

// 运行学生子系统
void student_start(void)
{
 temp = student_login();
 if(temp==-1)
 {
  pf("登录失败!n");
  return;
 }
 while(true)
 {
  if(STU[temp].birth==0)
  {
   student_ch_pw();
  }
  else
  {
   student_menu();
   switch(get_cmd('1','4'))
   {
    case '1': student_find_score(); break;
    case '2': student_ch_pw(); break;
    case '3': student_find_info(); break;  
    case '4'return;
   }  
  } 
 }
}


// 老师子系统菜单
void teacher_menu(void)
{
 pf("n进入教师子系统...n");
 pf("1、添加学生n");
 pf("2、删除学生n");
 pf("3、查找学生n");
 pf("4、修改学生信息n");
 pf("5、录入学生成绩n");
 pf("6、重置学生密码n");
 pf("7、显示所有在校学生信息n");
 pf("8、显示所有退学学生信息n");
 pf("9、修改自己密码n");
 pf("0、返回上一级n");
 pf("-----------------n");
}

// 老师添加学生
void teacher_add_stu(void)
{
 pf("添加学生n");
 char Cstudent_name[20];
 char Cstudent_sex;
 char Cstudent_id[20];
 char Cstudent_pw[20];
 pf("请输入学生姓名:");
 get_str(Cstudent_name,20);
 pf("请输入学生性别:");
 Cstudent_sex = get_sex();
 pf("请输入学生工号:");
 get_str(Cstudent_id,20);
 pf("请输入学生密码:");
 get_str(Cstudent_pw,20);
 int pos = -1//插入的位置
 pf("id:%s。n",STU[0].id);
 for(i=0; i<100; i++)
 {
  if(STU[i].sex == '' && pos == -1)
  {
   pf("pos已定位n");
   pos = i;
  }
  if(strcmp(STU[i].id,Cstudent_id)==1)
  {
   pf("学号重复,请重新输入!n");
   break;
  }
  if(i==99)
  {
   strcpy(STU[pos].name,Cstudent_name);
   STU[pos].sex = Cstudent_sex;
   strcpy(STU[pos].id,Cstudent_id);
   strcpy(STU[pos].passwd,Cstudent_pw);
   pf("添加成功。n");
  }
 }
 pf("id:%s。n",STU[0].id);
}

// 老师删除学生
void teacher_del_stu(void)
{
 pf("删除学生n");
 pf("请输入学生学号:");
 char Cstudent_id[20]={}; 
 get_str(Cstudent_id,20);
 for(i=0; i<100; i++)
 {
  if(strcmp(Cstudent_id,STU[i].id)==0)
  {
   STU[i].exist = 1;
   pf("删除成功!n");   
   break;
  }
  if(i==99)
  {
   pf("无此学号!n");
  }
 }
 
}

// 老师查询学生
void teacher_find_stu(void)
{
 pf("请输入学生学号:");
 char Cstudent_id[20]={};
 get_str(Cstudent_id,20);
 for(i=0; i<100; i++)
 {
  if(strcmp(Cstudent_id,STU[i].id)==0)
  {
   pf("姓名:%s 性别:%c 学号:%sn",STU[i].name,STU[i].sex,STU[i].id);
   break;
  }
  else if(i==99)
  {
   pf("无此学号。n");
  }
 }
}

// 老师修改学生信息
void teacher_ch_stu_info(void)
{
 pf("请输入学生学号:");
 char Cstudent_id[20]={};
 get_str(Cstudent_id,20);
 for(i=0; i<100; i++)
 {
  if(strcmp(Cstudent_id,STU[i].id)==0)
  {
   char ch_name[20];
   char ch_sex;
   char ch_id[20];
   pf("原信息:姓名:%s 性别:%c 学号:%sn",STU[i].name,STU[i].sex,STU[i].id);
   pf("请输入新姓名:");
   get_str(ch_name,20);
   pf("请输入新性别:");
   if(sf("%c",&ch_sex)==1)
   {
    getchar();
   }
   pf("请输入新学号:");
   get_str(ch_id,20);
   
   strcpy(STU[i].name,ch_name);
   STU[i].sex = ch_sex;
   strcpy(STU[i].id,ch_id);

   pf("信息修改成功。n");
   break;
  }
  else if(i==99)
  {
   pf("无此学号。n");
  }
 }
}

// 老师添加学生成绩
void teacher_add_stu_score(void)
{
 pf("请输入学生学号:");
 char Cstudent_id[20]={};
 get_str(Cstudent_id,20);
 for(i=0; i<100; i++)
 {
  if(strcmp(Cstudent_id,STU[i].id)==0)
  {
   short chinese = 0;
   short english = 0;
   short math = 0;
   pf("原信息:语文:%hd 英语:%hd 数学:%hdn",STU[i].chinese,STU[i].english,STU[i].math);
   pf("请输入新语文成绩:");
   if(sf("%hd",&chinese)==1)
   {
    getchar();
   }
   pf("请输入新英语成绩:");
   if(sf("%hd",&english)==1)
   {
    getchar();
   }
   pf("请输入新数学成绩:");
   if(sf("%hd",&math)==1)
   {
    getchar();
   }
   
   STU[i].chinese = chinese;
   STU[i].english = english;
   STU[i].math = math;

   pf("信息修改成功。n");
   break;
  }
  else if(i==99)
  {
   pf("无此学号。n");
  }
 }
}

// 老师重置学生密码
void teacher_reset_stu_pw(void)
{
 pf("重置密码n");
 pf("请输入学生学号:");
 char Cstudent_id[20]={};
 get_str(Cstudent_id,20);
 char Cstudent_pw[20] = "123";
 for(i=0; i<100; i++)
 {
  if(strcmp(STU[i].id,Cstudent_id)==0)
  {
   STU[i].time = 0;
   STU[i].birth = 0;
   STU[i].exist = 0;
   strcpy(STU[i].passwd,Cstudent_pw); 
   pf("重置成功!n");
   break;
  }
  if(i==99)
  {
   pf("无此学号.n"); 
  } 
 }
}

// 老师显示在校学生列表
void teacher_list_stu(void)
{
 pf("显示在校学生");
 for(i=0; i<100; i++)
 {
  if(STU[i].sex != '')
  {
   if(STU[i].exist != 1)
   {
    pf("n姓名:%s 性别:%c 学号:%s",STU[i].name,STU[i].sex,STU[i].id);
   }
  }
  else
  {
   break;
  }
 }
}

// 老师显示退学学生列表
void teacher_list_ubstu(void)
{
 pf("显示退学学生");
 for(i=0; i<100; i++)
 {
  if(STU[i].sex != '')
  {
   if(STU[i].exist == 1)
   {
    pf("n姓名:%s 性别:%c 工号:%s",STU[i].name,STU[i].sex,STU[i].id);
   }
  }
  else
  {
   break;
  }
 }
}

// 老师修改密码
void teacher_ch_pw(void)
{
 char old_pw[20]={};
 char new_pw[20]={};
 char new_two_pw[20]={};
 pf("请输入原密码:");
 get_pw(old_pw,true,20);
 printf("n");
 pf("请输入新密码:");
 get_pw(new_pw,true,20);
 printf("n");
 pf("请再次输入新密码:");
 get_pw(new_two_pw,true,20);
 printf("n");
 if(strcmp(old_pw,TEA[pos].passwd)==0)
 {
  if(strcmp(new_pw,new_two_pw)==0)
  {
   pf("修改密码成功n");
   if(TEA[pos].birth==0)
   {
    TEA[pos].birth = 1;
   }
   strcpy(TEA[pos].passwd,new_pw);
  }
  else
  {
   pf("两次密码不一致n");
  }
 }
 else
 {
  pf("原密码错误。n");
 }
}

// 老师登录
int teacher_login(void)
{
 char Cteacher_id[20]={};
 char Cteacher_pw[20]={};
 pf("请输入用户名:");
 get_str(Cteacher_id,20);
 if(Cteacher_id[0]=='')
 {
  pf("用户名不能为空!n");
  return -1;
 }
 //pf("*%s*n",Cteacher_id);
 pf("请输入密码:");
 get_pw(Cteacher_pw,true,20);
 //printf("n*%s*",Cadmin_passwd);
 printf("n");
 for(i=0; i<50; i++)
 {
  if(strcmp(Cteacher_id,TEA[i].id)==0)
  {
   if(TEA[i].time==3)
   {
    pf("此工号已被锁定,请找管理员解锁。n");
    return -1;
   }
   if(TEA[i].exist==1)
   {
    pf("此教师已离职。n");
    return -1;
   }
   if(strcmp(Cteacher_pw,TEA[i].passwd)==0)
   {
    return i;
   }
   else
   { 
    TEA[i].time++;
    pf("密码错误.n");
    return -1;
   }
  }
 }
 pf("不存在此教师。n");
 return -1;
}

// 运行老师子系统
void teacher_start(void)
{
 pos = teacher_login();
 if(pos==-1)
 {
  pf("登录失败!n");
  return;
 }
 while(true)
 {
  if(TEA[pos].birth==0)
  {
   teacher_ch_pw();
   
  }
  else
  {
   teacher_menu();
   switch(get_cmd('0','9'))
   {
    case '1': teacher_add_stu(); break;
    case '2': teacher_del_stu(); break;
    case '3': teacher_find_stu(); break;
    case '4': teacher_ch_stu_info(); break;
    case '5': teacher_add_stu_score(); break;
    case '6': teacher_reset_stu_pw(); break;
    case '7': teacher_list_stu(); break;
    case '8': teacher_list_ubstu(); break;
    case '9': teacher_ch_pw(); break;  
    case '0'return;
   }  
  }
 }
}

/** tools **/
// 清理输入缓冲区
void clear_stdin(void)
{
 //stdin->_IO_read_ptr = stdin->_IO_read_end;//清理输入缓冲区
}

// 获取字符串
charget_str(char* str,size_t len)
{
 if(NULL == str)
 {
  puts("empty ptr!");
  return NULL;
 }

 char *in=fgets(str,len,stdin);

 size_t cnt = strlen(str);
 if('n' == str[cnt-1])
 {
  str[cnt-1] = '';
 }
 else
 {
  scanf("%*[^n]");
  scanf("%*c");
 }
 
 clear_stdin();

 return str;
}

// 获取性别
char get_sex(void)
{
 printf("(m男,w女):");
 while(true)
 {
  char sex = getch();
  if('w' == sex || 'm' == sex)
  {
   printf("%sn",'w'==sex?"女":"男");
   return sex;
  }
 }
}

// 获取键盘指令
char get_cmd(char start,char end)
{
 clear_stdin();

 printf("请输入指令:");
 while(true)
 {
  char val = getch();
  if(val >= start && val <= end)
  {
   printf("%cn",val);
   return val;
  }
 }
}

// 获取密码
charget_pw(char* passwd,bool is_show,size_t size)
{
 if(NULL == passwd) return NULL;

 int count = 0;
 do{
  char val = getch();
  if(8 == val)
  {
   if(count > 0)
   {
    if(is_show)printf("b b");
    count--;
   }
   continue;
  }
  else if(13 == val)
  {
   break;
  }
  passwd[count++] = val;
  if(is_show) printf("*");
 }while(count < size -1);

 passwd[count] = '';
 return passwd;
}

admin.txt

admin 123 1

stu.txt 文件

a m 1 123 11 11 11 0 0 0
b m 2 2 31 78 99 0 0 1
c w 3 33 31 78 99 0 1 0
d w 4 4 31 78 99 0 0 1
e w 5 5 31 78 99 0 0 0
f w 6 6 31 78 99 0 0 1
g w 7 7 31 78 99 0 0 0

tea.txt 文件

1 w 1 1 1 1 0
22 w 22 22 0 0 1
3 w 3 3 0 1 0

这就是源码的几个文件

原创文章,作者:站长,如若转载,请注明出处:https://www.heikehao.com/29366.html

(0)
站长站长
上一篇 2023年12月23日 10:18
下一篇 2023年12月23日 10:22

相关推荐

  • c语言实战推荐(c语言 推荐)

    c语言实战推荐(c语言 推荐) 大家并不陌生,借来给大家详细说说吧!   今天给各位分享c语言实战推荐的知识,其中也会对c语言 推荐进行解释,如果能碰巧解决你现在面临的问题,别忘了…

    2020年1月4日
  • 括号完美匹配c语言(c语言实现括号匹配)

    今天,嗨壳技术分享网给大家整理一些括号完美匹配c语言(c语言实现括号匹配)内容。   本篇文章给大家谈谈括号完美匹配c语言,以及c语言实现括号匹配对应的知识点,希望对各位有所帮助,…

    2020年5月18日
  • c语言min函数头文件

    这是一个比较基础,同时也包含C语言中诸多特点的程序,仔细体会有很多的格式规则和技巧。其中包括:输入语句,输出语句,数组,分支结构,循环结构。希望广大C语言学习者能够从这个程序中感受…

    2023年12月5日
  • 嵌入式c语言书籍,嵌入式c编程实战 pdf

    今天,嗨壳技术分享网给大家整理一些嵌入式c语言书籍,嵌入式c编程实战 pdf内容。   自学嵌入式,越来越不想学?   1、也可以百度寻找经典的C语言编程案例进行学习。总之,就是将…

    2020年8月23日
  • 优化c语言代码

    今日,嗨壳技术分享网小编分享优化c语言代码 相关内容,内容如下。   c语言算法优化   解一:简单方法:预期得分30。简单动态规划,f[i]代表青蛙跳到i点时所可能踩到的最少石子…

    2020年12月3日
  • 约瑟夫斯问题c语言(约瑟夫问题c语言顺序表)

    今天,嗨壳技术分享网给大家整理一些约瑟夫斯问题c语言(约瑟夫问题c语言顺序表)内容。   今天给各位分享约瑟夫斯问题c语言的知识,其中也会对约瑟夫问题c语言顺序表进行解释,如果能碰…

    2020年2月17日
  • 红外遥控器c语言,红外遥控器c语言是什么

    今日,嗨壳技术分享网小编分享红外遥控器c语言,红外遥控器c语言是什么 相关内容,内容如下。   单片机C语言,红外线遥控器,长按按键一直按下?程序该怎样区分呢?_百度……

    2020年1月26日
  • c语言中指数函数求

    c语言中指数函数求   各位高手,请问如何在C语言里输出指数函数   #include”stdio.h”   #include”math.h&#…

    2022年1月31日
  • 大学c语言编程题分值,大学c语言题型

    今日,嗨壳技术分享网小编分享大学c语言编程题分值,大学c语言题型 相关内容,内容如下。   计算机二级c语言编程题满分多少分?   1、不管你程序写怎么样。只看结果。对了满分不对0…

    2020年6月22日
  • c语言求逆序数要定义函数,计算逆序数的函数c语言

    今天,嗨壳技术分享网给大家整理一些c语言求逆序数要定义函数,计算逆序数的函数c语言内容。   编写递归函数将一个整数逆序输出,求C程序   算法:递归函数传入正整数,先输出最末尾数…

    2020年1月19日

网上怎么找黑客帮忙多少钱

怎么网上找到的黑客?黑客的收费标准是什么呢?找黑客一般费用是多少?


找黑客帮忙一般要多少钱

黑客服务的价格范围很广,主要取决于服务的类型和难度。根据提供的信息如下:


1.攻击服务:


攻击范围:这包括了通过扫描入侵、种植木马等方式对他人计算机实施非法控制,并利用被控制的计算机对网站、App等服务器发起攻击


。1

2.特定账户的售价:


账户信息:如垂钓者、而勒索软件,显示市场对特定黑客工具的需求和价格波动。

3.攻击工具:

“RIG”攻击工具包的租用费用,提供了不同时长的选择。

4.远程访问木马(RAT)的价格:

相比去年有所下降,显示出市场价格的波动。

5.DDOS攻击的报价:

DDOS攻击服务按不同时长定价选择。

黑客服务的价格因服务类型、难度、以及市场需求的不同而有很大的差异。这些价格反映了黑客服务市场的复杂性和多样性,同时也提醒人们网络安全的重要性。