图书馆管理

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#include"conio.h"

#define PAGE 3

#define MAX 1000

#define N 5

int k=0;

/*结构体类型*/

typedef struct

{   int num;/*图书编号*/

char name[20];/*书名*/

char sex[5];/*图书类型*/

int age;/*价格*/

char studentclass[20];/*图书分组*/

int score;/*数量*/

}STUDENTS;

int read_file(STUDENTS stu[])

{        FILE *fp;

int i=0;

if((fp=fopen("stu.txt","rt"))==NULL)

{printf("\n\n*****库存文件不存在!请创");

return 0;

}

while(feof(fp)!=1)

{

fread(&stu[i],sizeof(STUDENTS),1,fp);

if(stu[i].num==0)

break;

else

i++;

}

fclose(fp);

return i;

}

void save_file(STUDENTS stu[],int sum)

{FILE*fp;

int i;

if((fp=fopen("stu.txt","wb"))==NULL)

{printf("写文件错误!\n");

return;

}

for(i=0;i<sum;i++)

if(fwrite(&stu[i],sizeof(STUDENTS),1,fp)!=1)

printf("写文件错误!\n");

fclose(fp);

}

/*创建图书信息*/

int input(STUDENTS stu[])

{  int i,x;

for(i=0;i<1000;i++)

{

system("cls");

printf("\n\n                 录入图书信息  (最多%d个)\n",MAX);

printf("               ----------------------------\n");

printf("\n                     第%d个学生",k+1);

printf("\n 请输入图书的编号:");

scanf("%d",&stu[k].num);

printf("\n 请输入图书的名字:");

scanf("%s",stu[k].name);

printf("\n 请输入图书的类型:");

scanf("%s",stu[k].sex);

printf("\n 请输入图书的价格:");

scanf("%d",&stu[k].age);

printf("\n 请输入图书的分组:");

scanf("%s",stu[k].studentclass);

printf("\n 请输入图书的数量:");

scanf("%d",&stu[k++].score);

printf("\n 请按1键返回菜单或按0键继续创建");

scanf("%d",&x);

if(x)

break;

}

return k;

}

/*删除学生信息*/

void deletel(STUDENTS stu[])

{ system("cls");

char Stuname2[20];

int i,j;

printf("请输入书名:");

scanf("%s",Stuname2);

printf("\n");

for(i=0;i<k;i++)

if(strcmp(stu[i].name,Stuname2)==0)

for(j=0;j<20;j++)

stu[i].name[j]=stu[i+1].name[j];

k--;

printf("删除成功\n");

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

getchar();

}

/*打印学生信息*/

void output(STUDENTS stu[])

{  system("cls");

int i;

for(i=0;i<k;i++)

printf("编号:%d,书名:%s,类型:%s,价格:%d,分组:%s,数量: %d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

getchar();

}

/*查询学生信息*/

void inquire(STUDENTS stu[])

{ int i;

int num;

system("cls");

printf("     \n\n请输入您要查找的图书的编号");

scanf("%d",&num);

for(i=0;i<k;i++)

if(num==stu[i].num)

printf("\n\n\n书名:%d,书名:%s,类型:%s,价格:%d,分组:%s,数量: %d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

getchar();

}

/*修改学生信息*/

void change(STUDENTS stu[])

{  int num,i,choice;

system("cls");

printf("\n\n\n      请输入您要修改的图书的编号");

scanf("%d",&num);

for(i=0;i<k;i++)

{ if(num==stu[i].num)

printf("\n编号:%d,书名:%s,类型:%s,价格:%d,分组:%s,数量: %d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);

printf("\n\n\n     ********请输入您想要修改的数据********\n\n");

printf("                1. 编号\n\n");

printf("                2. 书名\n\n");

printf("                3. 类型\n\n");

printf("                4. 价格\n\n");

printf("                5. 分组\n\n");

printf("                6. 数量\n\n");

printf("                 请选择(1-6):");

scanf("%d",&choice);

switch(choice)

{case 1:{

printf("\n   请输入你改的新编号");

scanf("%d",&stu[i].num);

break;

}

case 2:{

printf("\n   请输入你改的新书名");

scanf("%s",stu[i].name);

break;

}

case 3:{

printf("\n   请输入你改的新类型");

scanf("%s",stu[i].sex);

break;

}

case 4:{

printf("\n   请输入你改的新价格");

scanf("%d",&stu[i].age);

break;

}

case 5:{

printf("\n   请输入你改的新分组");

scanf("%s",stu[i].studentclass);

break;

}

case 6:{

printf("\n   请输入你改的新数量");

scanf("%d",&stu[i].score);

break;

}

}

printf("编号:%d,书名:%s,类型:%s,价格:%d,分组:%s,价格: %d\n",stu[i].num,stu[i].name,

stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].score);

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

break;

}

}

/*学生成绩信息排名*/

void sort(STUDENTS stu[])

{  int i,j,n=1,x;

system("cls");

int t;

for(i=0;i<k-1;i++)

for(j=i+1;j<k;j++)

if(stu[i].score<stu[j].score)

{ t=stu[i].score;

stu[i].score=stu[j].score;

stu[j].score=t;

t=stu[i].num;

stu[i].num=stu[j].num;

stu[j].num=t;

}

for(i=0;i<k;i++)

printf("排名    编号    数量\n %d       %d       %d\n",n++,stu[i].num,stu[i].score);

printf("按任意键加回车返回主菜单!");

scanf("%d",&x);

getchar();

}

void pagedis()

{

printf(" \n\n\n                   **********************************\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *     欢迎进入图书信息管理系统   *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   **********************************\n");

}

void check()

{

char userName[5];/*书名*/

char userPWD[5];/*密码*/

int i,sum;

system("color 4E");

for(i = 1; i < 4; i++)

{

/*用户名和密码均为a;*/

printf("   用户名和密码均为a\n\n");

printf("\n       请输入您的用户名:");

gets(userName);

printf("\n       请输入您的密码:");

gets(userPWD);

if ((strcmp(userName,"a")==0) && (strcmp(userPWD,"a")==0))/*验证用户名和密码*/

{

printf("用户名和密码正确,显示主菜单");

return;

}

else

{

if (i < 3)

{

printf("用户名或密码错误,提示用户重新输入");

printf("用户名或密码错误,请重新输入!");

}

else

{

printf("连续3次输错用户名或密码,退出系统。");

printf("您已连续3次将用户名或密码输错,系统将退出!");

exit(1);

}

}

}

}

void menu()

{

STUDENTS stu[20];

int choice,k,sum;

sum=read_file(stu);

if(sum==0)

{  printf("首先录入基本库存信息!按回车后进入*****\n");

getch();

sum=input(stu);

}

do

{  system("cls");

printf("\n\n\n               ********学生信息管理系统********\n\n");

printf("                      1. 创建图书信息\n\n");

printf("                      2. 打印图书信息\n\n");

printf("                      3. 查询图书信息\n\n");

printf("                      4. 修改图书信息\n\n");

printf("                      5. 删除图书信息\n\n");

printf("                      6. 图书信息数量\n\n");

printf("                      0. 退出系统\n\n");

printf("                       请选择(0-6):");

scanf("%d",&choice);

switch(choice)

{

case 1: k=input(stu); break;/*创建图书信息*/

case 2: output( stu) ; break;/*打印图书信息*/

case 3: inquire(stu); break;/*查询图书信息*/

case 4: change(stu); break;/*修改图书信息*/

case 5: deletel(stu); break;/*删除图书信息*/

case 6: sort(stu); break;/*图书信息数量*/

case 0: break;

}

}while(choice!=0);

save_file(stu,sum);

}

int main()

{

int i,sum;

pagedis();

check();

menu();

}

时间: 2024-10-17 19:30:42

图书馆管理的相关文章

基于SSM的图书管理系统(读者管理借阅管理)-java图书管理系统图书馆管理

基于SSM的图书管理系统(读者管理借阅管理)-java图书管理系统图书馆管理 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释.2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善开发环境:Eclipse ,MYSQL,JDK1.7,Tomcat 7涉及技术点:MVC模式.SpringMvc.Mybatis.Spring.HTML.JavaScript.CSS.JQUERY.DWR.Ajax等系统采用Mybatis框架实现ORM对象关系映射,前台JSP实现,后台springMvc映射

图书馆管理系统测试与调试

一:单元测试 系统说明 (1)功能模块:读者管理.流通管理.统计管理.查询管理. (2)读者管理功能主要是读者基本信息: (3)流通管理功能包括借书管理.还书管理.图书预约和图书状态管理: (4)统计管理功能包括各类书籍的馆藏统计和已出借书籍统计和为出借书籍 统计: (5)查询管理功能包括读者信息查询和图书信息查询等. 二:测试策略 测试策略包括用户界面测试.软件功能测试.软件可靠性测试.用户界面测试: 通过和用户交互如输入相应信息(包括正确信息和错误信息)来测试输出信息的正确性.  软件功能测

图书馆管理系统设计类图

例图 图书档案管理相关类 图书档案管理类.设置图书类型类.设置出版社类 图书注销类之间相互关系 读者档案管理类.读者类型设置类.过期读者续借类.读者挂失类相互关系 图书借阅管理相关类关系

C# ADO.NET编写简单的图书馆管理软件

使用软件: Microsoft SQL Server 2012 Microsoft Visual Studio 2012 本文地址: http://www.cnblogs.com/go2bed/ 参考资料: http://www.w3school.com.cn/ W3School http://baike.baidu.com/ 百度百科 http://blog.csdn.net/lvfeng19806001/article/details/8175153 WinForm控件缩写 及其他. 经验.

内部类练习题(静态内部类应用-图书馆管理图书)

package com.Summer_0430.cn; /** * @author Summer * 定义一所图书馆Library,有 * 图书 * 书名 * 作者 * 单价 * 管理图书 * * 要求:创建一所图书馆,管理图书 */ class Library{ static class Book{ private String name; private String author; private double price; public Book(String name,String a

各组对我们的意见

极速蜗牛: 首先你们演示的时候我没搞明白你们的前期目标是什么,在演示的过程中登陆界面有点儿不和谐,那个界面中的welcome已经看不见了,在做UI的时候我希望能从用户的角度去考虑一下用户的感受,让他们感到你们的东西美观大方友好那样才能更好的去吸引用户.我感觉你们前期主要的工作是放在了服务器后台方面,亲,虽然后台不是让用户使用的,但是我们也不能让他的界面和布局太随意了是不,希望你们的美工在下一阶段的工作中能够多下一点儿功夫,服务器和前端有了一些基本的交互,由于某些原因吧我没有弄明白你们具体实现了什

Linux版EPUB阅读器

Linux版EPUB阅读器 本文导航 -1. Calibre09% -2. FBReader23% -3. Cool Reader33% -4. Okular44% -5. pPub51% -6. epub63% -7. Sigil74% 如果说用平板电脑看书尚属主流的话,那么在电脑上读书就非常少见了.专注阅读16世纪的书是非常困难的了,没人希望后台蹦出QQ聊天窗口.但是如果你非要在电脑上打开电子书的话,那么你需要一个电子书阅读软件.大多数出版物支持使用EPUB格式的电子书(电子出版物).幸运的

团队项目需求分析

项目背景 随着信息的发展时代的进步,书籍的不断更新,图书的数量也在大量的增加,同样有关图书的各种信息也是在成倍的增加,对于如此庞大的信息量设计一套合理.有效.规范.实用的图书馆管理系统,对校内的图书资料进行统一.集中的管理是很有必要的. 所以,这次的图书馆管理系统的开发宗旨是实现图书管理的系统化.规范化和自动化,达到图书资料集中.统一管理的目标. 需求分析 图书馆管理系统是图书馆管理工作中不可缺少的部分,对于图书馆的管理者和使用者来说都非常重要了,故相对于传统的手工方式或性能较低的图书馆管理系统

12.19.2016 下半年技术小结

下半年课蛮重的,加上心思比较野,在学习新东西上对自己比较失望 课业: ASP.NET MVC开发:MyStore购物网站 和 SSLS 图书馆管理网站(由于用的mac,只能在学校电脑写.NET,真的蛋疼) 前端:加深jquery和bootstrap的理解和运用 汇编语言:从无到有 有空闲想看看react.js