题目:图书借阅系统
功能:系统要求实现以下功能:
1、管理员模式:管理图书信息与客户信息;
2、客户模式:完成客户借阅查询要求。
3、增删改查功能:完成图书的增删改查并显示。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。2、完成信息的录入和显示3、完成修改功能,即输入图书编号,可修改该学生的信息4、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则不行。
要求:1、用C语言实现程序设计;
2、利用结构体数组、链表等实现图书信息表达、查询等,充分体现数据结构的知识;
3、系统的各个功能模块要求用函数的形式实现;
4、界面友好(良好的人机交互),程序要有注释。
5、程序中所用到的排序查找方法需采用数据结构中所学方法实现,要求方法实用效率高。
一、总体设计
1. 数据结构
struct book
{
long num;
char name[20];
char publish[20];/*出版社*/
struct time
{
int day;
int month;
int year;
}t;
int jie;/*借阅*/
}bk[20];
2. 函数原型声明
void xinxi()
int mymainmenu()
int mimayanzheng()
void xiugaimima()
int adm()
int peo()
void show_all_book()
void showbook_name()
void showbook_num()
void yijieyue()
void weijieyue()
void show()
void jie_name()
void jie_num()
void jieyue()
void xiugai_name()
void xiugai_num()
void dele_all()
void dele_name()
void dele_num()
void dele()
void xiugai()
void main()
二、源代码
/* 【自学去】网站收集 http://www.zixue7.com */
//#include "stdafx.h"
#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"stdlib.h"
int N;
char mima[20]="mm";
/**********定义图书结构体类型book*******/
struct book
{
long num;
char name[20];
char publish[20];/*出版社*/
struct time
{
int day;
int month;
int year;
}t;
int jie;/*借阅*/
}bk[20];
/********建立图书信息库********/
void xinxi()
{
int i;
system("CLS");
printf("\t\t ===================== \n");
printf("\t\t 录入图书信息 \n");
printf("\t\t ===================== \n\n");
printf("\t\t请输入您要录入的数量:");
scanf("%d",&N);
for(i=0;i<N;i++)
{
printf("\t\t请输入第%d本书的编号:",i+1);
scanf("%d",&bk[i].num);
printf("\t\t请输入第%d本书的名称:",i+1);
scanf("%s",bk[i].name);
printf("\t\t请输入第%d本书的出版社:",i+1);
scanf("%s",bk[i].publish);
printf("\t\t请输入第%d本书的出版时间(用逗号隔开):",i+1);
scanf("%d,%d,%d",&bk[i].t.year,&bk[i].t.month,&bk[i].t.day);
printf("\t\t该书是否已经被借阅,已被借阅输入'1',未被借阅输入'0':");
scanf("%d",&bk[i].jie);
printf("--------------------------------------------------------------------------------\n");
}
system("CLS");
printf("\t\t ===================== \n");
printf("\t\t 信息录入完成 \n");
printf("\t\t ===================== \n");
printf("\n\t\t 按任意键继续...\n");
}
/******主菜单******/
int mymainmenu()
{
int x;
printf("\n\n\n\n");
printf("\t\t|-------------------------------------------------------------|\n");
printf("\t\t| |\n");
printf("\t\t| ====================== |\n");
printf("\t\t| 欢迎光临图书管理系统 |\n");
printf("\t\t| ====================== |\n");
printf("\t\t| |\n");
printf("\t\t| 1.管理员模式 |\n");
printf("\t\t| 2.客户模式 |\n");
printf("\t\t| 3.退出系统 |\n");
printf("\t\t|--------------------------------------------------------------|\n");
printf("\n\t\t请输入您的选择:");
scanf("%d",&x);
return x;
}
/**************管理员密码验证*****************/
int mimayanzheng()
{
char temp_mima[20];/*用来存放用户输入的密码*/
printf("\n");
printf("\t\t ====================== \n");
printf("\t\t 欢迎使用管理员模式 \n");
printf("\t\t ====================== \n");
printf("\n");
printf("\t\t 请输入密码:");
scanf("%s",temp_mima);
if(strcmp(temp_mima,mima)==0)/*比较密码*/
return 1;
else
return 0;
}
/**************修改密码***********/
void xiugaimima()
{
char temp_mima[20],temp1[20],temp2[20];/* temp_mima[20]用来存放用户输入的密码,temp1[20],temp2[
20]分别用来存放用户输入的两次修改的密码*/
printf("\n");
printf("\t\t ====================== \n");
printf("\t\t 修改密码 \n");
printf("\t\t ====================== \n");
printf("\n");
printf("\t\t 请输入原始密码:");
scanf("\t\t%s",temp_mima);
while(1)
{
if(strcmp(temp_mima,mima)==0)/*比较密码*/
{
printf("\t请输入新密码:");
scanf("%s",temp1);
printf("\t请再输入一次:");
scanf("%s",temp2);
if(strcmp(temp1,temp2)==0)/*如果输入的两次新密码都相同*/
{
printf("\t修改密码成功!!请记牢密码,任意键返回...");
strcpy(mima,temp1);
getch();break;
}
else
{
printf("\t输入两次密码不相同,修改失败!任意键返回...");
getch();
break;
}
}
else
{
printf(