C语言课设班级档案管理系统(大作业)

一、设计功能(文章仅供参考)

1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。 2、本系统显示这样的菜单: 请选择系统功能项: a. 学生基本信息录入 b. 学生基本信息显示 c. 学生基本信息保存 d. 学生基本信息删除
e. 学生基本信息修改(要求先输入密码) f. 学生基本信息查询 (1) 按学号查询 (2) 按姓名查询 (3) 按性别查询 (4) 按年龄查询 g. 退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。 4、将学生基本信息保存到文件中。 5、进入系统之前要先输入密码。

二、功能展示

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三、思维导图

在这里插入图片描述

在这里插入图片描述

四、程序源码

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h>
#include <conio.h> 
#define N 3 
struct  student 
{
 char name[10];
 char no[10];
 char sex;
 int  age;
 char bnote[100];
};
void print(bool menu)//打印基本信息
{
 if (!menu)
 {
  printf("学生基本信息录入 ,press 1\n");     
 }
 else
 {
  printf("学生基本信息显示 ,press 2\n");  
  printf("学生基本信息保存 ,press 3\n");  
  printf("学生基本信息删除 ,press 4\n"); 
  printf("学生基本信息修改 ,press 5\n"); 
  printf("学生基本信息查询 ,press 6\n");  
 }
  printf("退出学生信息系统 ,press 7\n"); 
}
void GetInfo(struct student *arr,int n)//学生基本信息录入
{

 for (int i = 0;i<n;i++)
 {
  printf("输入学生的基本信息:name   no    sex  age   bnote\n");
  scanf("%s %s %c %d %s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
 } 
}
void Display(struct student* arr,int n)//学生基本信息显示
{
 printf("学生信息: Name     NO    Sex   age  Note\n");
 for (int i = 0;i<n;i++)
 {
  printf("%15s%15s%15c%15d%15s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
 } 
}

void Save(struct student* arr,int n)//学生基本信息保存,保存在c:\\student.txt
{
 FILE * fp;
    fp= fopen("c:\\student.txt","w+");
 if (fp == NULL)
 {
  printf("文件不存在!\n");
  exit(0);
 }

    fwrite(arr,sizeof(struct student)*n,n,fp);
 fclose(fp);
}

void Modfiy(struct student* arr,int n)//学生基本信息修改
{
 char number[10];
 bool flag=false;
 char pass[6];
  printf("修改学生信息:\n");
  printf("请输入学号:\n");
  scanf("%s",number);
  for (int i =0;i<n;i++)
  {
   if (!strcmp(number,arr[i].no))
   {
    printf("infor:   name   no   sex  age note\n");
    printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
     arr[i].sex,arr[i].age,arr[i].bnote);
    printf("please input information:\n");
    scanf("%s%s%c%d%s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
    Save(arr,n);
    flag = true;
   }
  }
  if (flag == false)
  {
   printf("该学生不存在!:\n");
  }
 }

void Delete(struct student* arr,int n)//学生基本信息删除
{
 char number[10];
 bool flag=false;
 printf("Delete information:\n");
 printf("please input the no:\n");
 scanf("%s",number);
 for (int i =0;i<n;i++)
 {
  if (!strcmp(number,arr[i].no))
  {
   strcpy(arr[i].name," ");
   strcpy(arr[i].no," ");
   strcpy(arr[i].bnote," ");

   arr[i].sex = ' ';
   arr[i].age = 0;
   Save(arr,n);
   flag = true;
  }
 }
 if (flag == true)
 {
  printf("该学生不存在!:\n");
 }
}

void Search(struct student* arr,int n)//学生基本信息查询
{
 int temp,i;
 bool flag=false;
   printf("---------------通过学号查询,press 1-------------\n");  
   printf("---------------通过姓名查询,press 2-----------\n");  
   printf("---------------通过性别查询,press 3------------\n");  
   printf("---------------通过年龄查询,press 4------------\n");  
   printf("---------------退出,press 5      ------------\n");  
   scanf("%d",&temp);
   switch (temp)
   {
   case 1://按照学号查询
    {
     char num[10];
     printf("请输入学号:\n");
     scanf("%s",num);
     for ( i =0;i<n;i++)
     {
      if (!strcmp(num,arr[i].no))
      {
       printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
       arr[i].sex,arr[i].age,arr[i].bnote);
       flag = true;
      }
     }
     if (!flag)
     {
            printf("该学生不存在.\n");
     }
    }
    break;
   case 2://按照名字查询
    {
     char num[10];
     printf("please input name:\n");
     scanf("%s",num);
     for ( i =0;i<n;i++)
     {
      if (!strcmp(num,arr[i].name))
      {
       printf("%12s%12s%12c%12d%12s",arr[i].name,arr[i].no,
        arr[i].sex,arr[i].age,arr[i].bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("该学生不存在.\n");
     }
    }
    break;
   case 3://按照性别查询
    {
     char ch;
     printf("请输入性别:\n");
     //scanf("%c",&ch);
     ch = getch();
     for ( i =0;i<n;i++)
     {
      if (ch == arr[i].sex)
      {
       printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
        arr[i].sex,arr[i].age,arr[i].bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("t该学生不存在.\n");
     }
    }
    break;
   case 4://按照年龄查询
    {
     char num_age;
     printf("请输入年龄:\n");
     scanf("%d",&num_age);
     for ( i =0;i<n;i++)
     {
      if (num_age == arr[i].age)
      {
       printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
        arr[i].sex,arr[i].age,arr[i].bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("该学生不存在.\n");
     }
    }
    break;
   default:
    break;
   }
}

 main()
{
 struct student arr[N];
 char ps[6];
 bool flag =false;
  int select;
  print(false); 
  scanf("%d",&select);
 while (0<select && select <7 )
 {
  switch (select)
  {
  case 1:
   GetInfo(arr,N);
   print(true);
   break;
  case 2:
   Display(arr,N);
   print(true);
   break;
  case 3:
   Save(arr,N);
   print(true);
   break;
  case 4:
   Delete(arr,N);
   print(true);
   break;
  case 5:
   Modfiy(arr,N);
   print(true);
   break;
  case 6:
   Search(arr,N);
   print(true);
   break;
  default:
   break;
  }
 printf("请选择:\n");
    scanf("%d",&select);
 }  
 }  

请添加图片描述

大家可以点个关注后续会持续更新0.0(在此先谢过各位了)

  • 26
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kui954

感谢各位的支持o(* ̄3 ̄)o

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值