图书管理系统

这次我们来聊一聊本人写的第一个项目---图书管理系统。虽然项目难度不高,但是得对c语言要有一个深刻的认识和可以熟练的运用。这个项目基本上用到了c语言的所有内容,这也是这段时间对自身学习成果的检验。话不多说,我们来看看具体的项目内容和操作。
首先是项目要求,我们需要有超级管理员、普通管理员和会员读者这三个用户界面和各自的登录密码,其次是各自需要完成的功能,这里读者在自己写的时候可以添加和完善,力求做到人性化,这里就不多说了。
然后就说一说自己拿到这个项目之后自己的一些想法吧。首先我自己的脑海里有了一个大的框架,我准备先把总的框架搭起来,先分类好,每个部分需要干什么事,然后再有针对性的去各个实现具体功能。比如先把几个用户的登录界面先搭起来,这样条理就比较清晰,效率也高一些。
当然,在开始写时,我们第一步是写头文件,把我们需要用到的头文件可以全部写在一起,也可以分类一下,把与同一个文件有关系的头文件写在一起。具体的功能实现这里不再描述,每个人的逻辑思维也不同,大家可以自由发挥。以超级管理员为例:

用户登录界面

void show_main(){//界面
 printf("----------------------------------------\n");
 printf("******欢迎登陆指针信息图书管理系统!****\n");
 printf("[1]超级管理员界面\n");
 printf("[2]普通管理员界面\n");
 printf("[3]会员界面\n");
 printf("[0]退出\n");
 printf("----------------------------------------\n");
 printf("请操作:");
}

void run_main(){//运行程序
 while(1){//一直循环
  system("clear");//清屏
  show_main();//进入界面
  int opt =0;
  char ppt=0;
  int i;
  scanf("%d",&opt);
  scanf("%*c",&ppt);
  switch(opt){//条件判断
   case 1:
    for(i=0;i<3;i++){
     if(init_super() ==1){
      run_super();
      break;
     }else{
      printf("密码错误");
     }
     printf("\n");
    }
    break;
     case 2:
    for(i=0;i<3;i++){
     if(init_general() ==1){
      run_general();
      break;
     }else{
      printf("密码错误");
     }
     printf("\n");
    }
    break;
   case 3:
    run_member(); 
    break;
   case 0:
    return;
  }
 } 
}


void run_super(){//运行
 load_manager("mag.dat");
 while(true){  
  int opt =0; 
  show_super();
  scanf("%d",&opt);
  system("clear");
  Manager m= {}; 
  switch(opt){
   case 1:
    scan_manager(&m,i);
    add_manager(&m);
    break;
   case 2:
    delete_manager();
    break;  
   case 3:
    change_manager(pm);
    break;
   case 4:
    find_manager(pm);
    break;
   case 5:
    list_manager();
    break;
   case 0:
    save_manager("mag.dat");
    return;break;
   default:
    printf("操作无效!\n");
  }
 } 
}

void show_super(){//界面
 printf("-----------------------------------------\n");
 printf("************超级管理员界面***************\n");
 printf("[1]添加普通管理员\n");
 printf("[2]删除普通管理员\n");
 printf("[3]修改普通管理员\n"); 
 printf("[4]查找普通管理员\n"); 
 printf("[5]列出所有管理员\n"); 
 printf("[0]退出\n"); 
 printf("-----------------------------------------\n");
 printf("请操作:");
}

在这里插入图片描述

其次我们来看看超级管理员界面(对普通管理员的增删改查)

void scan_manager(Manager *pm,int i){//输入数据
 pm->no=i;
 printf("请输入管理员密码:");
 scanf("%s",pm->password);
 printf("请输入管理员姓名:");
 scanf("%s",pm->name);
 printf("请输入管理员年龄:");
 scanf("%d",&pm->age);
 printf("请输入管理员岗位:");
 scanf("%s",pm->post);
 printf("添加成功!\n");
}
void find_manager(Manager *pm){//查找管理员
 printf("请输入你要查找的员工编号\n");
 int find_no=0;
 scanf("%d",&find_no);
 pm=pm+find_manager_to(pm,find_no);
 printf("编号 密码  姓名  年龄  岗位\n");
 show_manager_in_fo(pm);
  
}
void delete_manager(){//删除管理员
 if(mcnt==0){
  printf("当前无管理员!\n");
  return;
 }
 int m_no=0;
 printf("请输入你要删除的管理员编号:");
 scanf("%d",&m_no);
 *(pm+find_manager_to(pm,m_no))=*(pm+mcnt-1);//删除
 mcnt--;
 printf("删除成功\n");
}
void change_manager(Manager *pm){//修改
 int m_no;
 printf("请输入要修改的管理员编号:");
 scanf("%d",&m_no);
 int i=find_manager_to(pm,m_no);
 while(true){
  system("clear");
  printf("请输入要修改的管理员信息:\n");
  printf("1.姓名 2.年龄 3.岗位 0.返回上一层\n");
  int m_c;
  scanf("%d",&m_c);
  switch(m_c){
   case 1:
    printf("请输入姓名:\n");
    scanf("%s",(pm+i)->name);
    printf("修改成功\n");
    break;
   case 2:
    printf("请输入年龄:\n");
    scanf("%d",&(pm+i)->age);
    printf("修改成功\n");
    break;
   case 3:
    printf("请输入岗位:\n");
    scanf("%s",(pm+i)->post);
    printf("修改成功\n");
    break;
   case 0:
    return;
   default:
    printf("输入无效,请重新输入\n");
  }
//  getch();
 }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值