数据结构 c语言 图书管理系统
图书管理系统(含源代码)c语言 大大数据结构课程设计报告材料

《算法与数据结构》课程设计实验报告设计题目:图书管理专业:计算机科学与技术班级:学生姓名:学号:指导教师:2011 年 7 月烟台大学计算机学院一题目要求1 目的要求本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。
2、题目要求实现图书管理信息系统的设计。
要求实现图书添加、显示全部图书、查询、借阅和归还。
主要考查利用文件的操作!二总体设计图书数据:书号,书名,图书ID,图书状态,借阅次数1.借书模块:输入图书ID如果存在提示借阅成功,如果没有或已借出提示借阅失败2.还书模块:输入图书ID进行还书操作3.图书管理:对书库中书进行管理新书入库对库存量进行统计和查询4.查询模块:对书库中书进行查询根据图书ID进行查询三编码实现定义图书结构体struct Book{int id;//图书的编号char name[20];//图书名字int type;//图书类型int status;//图书现在状态int count;// 图书借出的次数};定义图书类型typedef struct Book Book;Book data[Max];int all = 0;// 添加图书类型,用户信息显示char BookTypes[][32] ={"文学","中文社科","自然科学","计算机","报刊/杂志","",};添加图书状态char BookStatus[][32] ={"在架上","已借出","",};图书管理菜单char BookMenu[][32] ={"添加图书","列出图书","查找图书","借书","还书","退出","",};实现程序对文件的读取void Read(){int i=0;int j=0;ifstream in("Libra.txt",ios::out);in>>i;all=i;if(i>0&&i<=Max){for(j=1;j<=i;j++){in>>data[j].id>>data[j].name>>data[j].type>>data[j].status>>data[ j].count;}}in.close();}对写入信息进行保存void Save(){int i=0;ofstream outfile; //在Libra.txt文件中输入数据outfile.open("Libra.txt",ios::trunc);outfile<<all<<'\n';for(;all>0;all--){i++;outfile<<data[i].id<<'\t';outfile<<data[i].name<<'\t';outfile<<data[i].type<<'\t';outfile<<data[i].status<<'\t';outfile<<data[i].count<<'\n';}cout<<endl<<"你已成功保存数据!"<<endl<<endl;outfile.close();//exit(1);}Main函数int main(){int ch = 0,i,loop = 1;while(loop){Read();print_menu(BookMenu);scanf("%d",&ch);if (ch < 1 || ch > 6){printf("\n没有所输选项,请确定所输入选项为1-6中的选项!!\n");printf("\n");}switch(ch){case 1://添加图书信息PutInfor();break;case 2:Read();Printall();break;case 3:system("cls");Read();searchBook();break;case 4:system("cls");Read();Borrow();break;case 5:system("cls");Read();Return();break;case 6:loop=0;break;default:break;}printf("\n-------------------------------分割线----------------------------------\n\n");}return 0;四调试与测试主菜单生成的文件内信息五心得体会首先,写程序应先确定目标要求,所用平台和工具,不求最好,但求最适合自己。
图书馆管理系统数据结构与算法C语言无错误.

软件技术报告:图书管理系统的设计与实现系统的需求分析图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。
根据系统界面的提示信息对图书馆信息进行查询、初始化等操作1.基本要求(1)主菜单:管理员、读者信息。
(2)管理员操作:注册,登录。
查询,删除,增加读者信息。
新书上架(插入)。
图书处理(删除)。
图书丢失(删除)。
图书借阅,归还处理。
(3)读者操作:注册,登录。
查询。
借书。
还书。
丢失赔偿。
借书本书上线。
借书期限。
(4)图书信息:ID 类别书名作者出版年出版社单价现存数量。
2.算法说明下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。
总体思想本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。
系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。
系统模块结构图根据需求分析结果,图书管理系统可以分为两大大模块:管理员模块、读者模块。
系统模块结构如图:系统的概要设计系统主菜单。
显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。
功能主要包括:退出系统、查询图书、借书、还书。
系统说明系统文件夹1Administator储存的是管理员信息。
第一行为管理员数量后续行分别为管理员ID和管理员密码Book储存的是图书信息第一行为图书数量2后续行为图书ID 类别书名作者出版年出版社单价现存数量。
Reader储存的是读者信息第一行储存的是读者数量后续行储存的分别是读者ID 密码要赔多少钱借的书数量借的书名3.算法分析与设计#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <vector>#include <string>#include <set>#include <queue>#include <stack>#include <map>#include <fstream>using namespace std;#define LL long long#define ULL unsigned long long#define LD long double#define sqr(x) (x)*(x)3const int MAXN = 5005;const int MAXM = 30;const int INF = 0x7fffffff;const int MOD = 1e9+9;const double eps = 1e-5;const int Upbooks = 10;struct BOOKS{char id[100];char type[100];char name[100];char author[100];char press[100];int year, price, quantity;}books[100010]; //图书结构体struct READERS{char id[100];char name[100];char borrow[11][100];int quantity, price;}readers[100010]; //读者结构体map <string, string> amp, rmp; //string分别存入ID 密码map <string, int> amp1, rmp1; //string分别存入ID 和数量用作注册判重。
原创c语言图书馆管理系统源代码

原创C语言图书馆管理系统源代码介绍图书馆作为一个重要的知识储备和学习场所,必须进行有效的管理和组织。
使用C语言编写的图书馆管理系统可以帮助图书馆实现自动化的借阅、归还和管理功能。
本文将介绍一个原创的C语言图书馆管理系统的源代码。
功能概述这个图书馆管理系统具有以下核心功能: - 图书管理:包括添加图书、删除图书、查询图书等操作。
- 借阅管理:可以进行借阅操作,记录借阅者和借阅时间。
- 归还管理:可以进行归还操作,并更新图书的可借状态。
- 用户管理:管理借阅者的信息,包括添加用户、删除用户、查询用户等操作。
数据结构设计该图书馆管理系统使用了以下几种数据结构: 1. 图书(Book)结构体:包含图书的ID、书名、作者、可借状态等字段。
2. 用户(User)结构体:包含用户的ID、姓名、地址等字段。
3. 借阅记录(BorrowRecord)结构体:包含借阅者ID、图书ID、借阅时间等字段。
系统流程整个系统的流程可以分为以下几个步骤: 1. 用户打开系统,进入主菜单。
2. 用户选择不同的功能选项(如图书管理、借阅管理、用户管理等)。
3. 根据用户选择的功能,进入相应的功能界面。
4. 用户可以根据提示,输入相应的信息进行图书管理、借阅管理或用户管理操作。
5. 用户完成操作后,可以选择返回主菜单或退出系统。
代码实现以下是一个简化版的C语言图书馆管理系统的源代码:```c #include <stdio.h>// 定义结构体 struct Book { int id; char name[50]; char author[50]; int isAvailable; };struct User { int id; char name[50]; char address[100]; };struct BorrowRecord { int userId; int bookId; char borrowDate[20]; };// 函数声明 void addBook(); void deleteBook(); void searchBook(); void borrowBook(); void returnBook(); void addUser(); void deleteUser(); void searchUser();int main() { int choice;do {// 显示主菜单printf(\。
基于C语言数据结构图书管理系统

计算机科学与技术专业课程设计任务书1 需求分析1本演示程序中,用户从键盘输入图书信息,图书编号,名称,类别,作者,出版社,价格,购买日期。
2演示程序以用户和计算机的对话方式执行,即在运行窗口出现提示信息,有用户从键盘录入,显示结果会在显示之后。
3程序执行的命令包括:查询图书信息,删除图书信息,对所有图书进行排序,统计各种类的图书数目。
显示所有图书信息4 测试数据:2001 离散数学 X 左孝凌上海科学出版社 18.00 2009/6/82002 数据结构 B 严蔚敏清华大学出版社 30.00 2010/4/1 2 程序总体设计(1)数据结构依据输入的数据信息和数据格式,连表结点用结构体实现。
采用链表方式存储,typedef:typedef struct //定义表示日期数据的结构体数据类型{int month;int day;int year;} DATE;typedef struct Booktype //定义表示图书信息的结构体数据类型{char id[10]; /* 图书编号*/char name[40]; /* 图书名称*/char type; /* 图书类型*/char writer[10]; /* 图书作者*/char publisher[20]; /* 图书出版社*/float price; /* 图书价格*/DA TE buydate; /* 图书购买日期*/} Btype;typedef struct Booklist /* 定义表示所有图书信息的链表数据类型*/{Btype *bk;struct Booklist *next;} Blist;(2)模块划分程序函数清单:Void maininterface(); /* 主界面函数*/ void Bookinput(); /* 输入图书信息函数*/ void Bookdisplay(); /* 显示所有图书信息函数*/ void Booksort(); /* 对图书分类排序函数*/ void Booksearch(); /* 查找图书详细信息函数*/ void Bookdelete(); /* 删除图书信息函数*/ void Bookstat(); /* 统计全部图书数目*/(3)程序总体框架菜单代码3 功能块函数与调试录入图书信息函数1 函数名称:voidBookinput();函数功能:从键盘祸从文件读入图书信息。
c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法,熟悉图书管理系统的开发流程,培养学生运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构。
–理解图书管理系统的需求和设计原理。
2.技能目标:–能够使用C语言编写简单的程序。
–学会使用C语言实现图书管理系统的功能。
3.情感态度价值观目标:–培养学生的团队协作意识和沟通能力。
–增强学生对计算机科学和编程的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的开发。
具体安排如下:1.C语言的基本语法:–变量和数据类型–运算符和表达式–函数和数组–指针和引用2.数据结构:3.图书管理系统的开发:–系统测试和优化三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:用于讲解C语言的基本语法和数据结构。
2.案例分析法:通过分析具体的图书管理系统案例,使学生更好地理解系统设计和功能实现。
3.实验法:让学生动手编写程序,巩固所学知识,提高实际操作能力。
4.小组讨论法:鼓励学生分组讨论,培养团队协作意识和沟通能力。
四、教学资源本课程所需的教学资源包括:1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《数据结构与算法分析》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
具体安排如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。
2.作业:包括编程练习和理论作业,占总评的30%。
3.考试:包括期中和期末考试,占总评的50%。
期中和期末考试将涵盖C语言基本语法、数据结构以及图书管理系统的开发内容。
c语言课程设计图书管理系统

c语言课程设计图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言基础知识,学会使用C语言进行程序设计,能够运用C语言实现图书管理系统的功能。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,理解图书管理系统的业务流程和需求。
2.技能目标:学生能够运用C语言编写程序,实现图书管理系统的各个功能模块,如图书信息的添加、删除、修改和查询等。
3.情感态度价值观目标:培养学生对计算机编程的兴趣和热情,增强学生的自主学习能力和团队协作精神,使学生在解决实际问题时能够积极思考、勇于尝试。
二、教学内容本课程的教学内容分为五个部分:1.C语言基础知识:包括基本语法、数据类型、运算符、控制结构等。
2.函数与模块化编程:学习函数的定义、声明和调用,掌握模块化编程的方法和技巧。
3.图书管理系统需求分析:了解图书管理系统的业务流程,明确系统需求。
4.图书管理系统功能实现:使用C语言编写程序,实现图书管理系统的各个功能模块。
5.程序调试与优化:学习使用调试工具,掌握调试和优化程序的方法。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:教师讲解C语言基本语法和概念,引导学生掌握知识要点。
2.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题。
3.实验法:学生动手编写程序,实现图书管理系统的功能,培养实际操作能力。
4.讨论法:分组讨论问题,培养学生的团队协作能力和解决问题的能力。
四、教学资源本课程所需教学资源包括:1.教材:《C程序设计语言》或《C语言入门教程》等。
2.参考书:《C语言编程实例解析》、《C语言常用算法解析》等。
3.多媒体资料:教学PPT、视频教程、编程案例等。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
5.在线资源:编程论坛、博客、教程等。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答情况、团队合作表现等,占总评的30%。
c语言图书管理系统

int86(0x16, &rg,&rg);
return rg。h。ah;
}
int choose(int bot,int top)/*根据Y的值选择操作*/
{
int ky,y = 7;
gotoxy(30,bot);
do
{
ky = key();
switch(ky)
{
case Key_UP:
gotoxy(x + 1, y + high - 3);
for (i = 1; i < width - 1; i++)
{
putchar(0xc4);
}
gotoxy(x + width—1,y + high —1);
putchar(0xd9);
}
int key()/*读键盘*/
{
union REGS rg;
int halfw(int sum,bbasic binfo[100],char *find);
void sta();
void blist();
void bmoney();
int main(void)
{
menu();
}
void menu()
{
int y;
_window();/*显示窗口*/
words();/*显示菜单文字*/
gotoxy(30,16);
cprintf(”Book Statistic");
gotoxy(30,19);
cprintf(”Exit”);
gotoxy(35,22);
textcolor(LIGHTGRAY);
图书馆管理系统(C语言程序设计)

图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用0表示或借出用读者编号表示),读者数据由编号、姓名和电话号码构成。
实现功能包括:(1)添加图书的记录(2)图书管理(借书和还书)(3)对图书数据排序(按单价的降序)(4)删除图书记录(5)修改图书记录(6)添加读者记录(7)输出图书信息表和读者信息表*#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>/*函数的声明*/void bookname();void writername();void booknumber();void press();void bookdate();void Bfind(); //查询主菜单void Bdevise(); //修改函数void Badd(); //添加函数void Bdelete(); //删除函数void Bdisplay(); //显示所以已保存的图书信息函数void Bclean(); //清除所有图书信息函数void lendbook(); // 借书函数void returnbook(); //还书函数void lendorreturnbook();//借书或还书主菜单函数void appealkey();//用户密码申诉函数void devisepeoplekey();//修改用户密码函数void accountapply(); //用户申请账户函数void addpeopleaccount(); //管理员之添加用户帐号函数void addmanageaccount(); //管理员之添加管理员账号函数void addaccount(); //管理员之账户添加主菜单函数void devisepeopleaccount();//管理员之修改用户账号函数void devisemanageaccount();//管理员之修改管理员帐号函数void deviseaccount();//管理员之修改账号主菜单函数void deletepeopleaccount();//管理员之删除用户账号函数void deletemanageaccount();//管理员之删除管理员账号函数void deleteaccount();//管理员之删除账号主菜单函数void displayallpeopleaccounts();//显示所有用户信息函数void displayallmanageaccounts();//显示所有管理员信息函数void displayallaccountsmessage();//显示所有账号信息主菜单函数void highaddpeopleaccount(); //高级管理员添加用户账户函数void highaddmanageaccount(); //高级管理员添加管理员账户函数void highaddaccount(); //高级管理员之添加账户主菜单函数void booksmanage();//图书操作主菜单函数void accountsmanage();//管理员账号操作主菜单函数void highaccountsmanage();//高级管理员账号操作主菜单函数void menu1(); //用户之查询主菜单void menu2(); //管理员之查询主菜单void menu3(); //高级管理员之查询主菜单/*定义书的类型*/struct book{int bookstock; //库存量char bookname[20]; //书名char bookwriter[20]; //作者char booknumber[20]; //书号char press[20]; //出版社char bookdate[20]; //出版日期char price[20]; //出版价格int turefalse; //判断图书是否被借阅}books[20];/*定义用户类型*/struct peopleaccount{char pname[20];char pkey[20];}peopleaccounts[20];/*定义管理员类型*/struct manageaccount{char mname[20];char mkey[20];}manageaccounts[20];/*定义借书卡类型*/struct card{char cardnumber[20]; //借书卡号和用户信息一起写入yonghu.txt文件中的}cards[20];/*定义文件指针变量*/FILE *fp1; //fp1打开用户信息文件FILE *fp2; //fp2打开管理员信息文件FILE *fp3; //fp3打开图书信息文件FILE *fp4; //打开借还书记录的文件FILE *fpa; //fpa是临时文件指针/*改变输出的字体颜色*/void color(const unsigned short color1){if(color1>=0&&color1<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);/*仅限改变0-15的颜色;如果在0-15那么实现他的颜色因为如果超过15后面的改变的是文本背景色。
图书管理系统(含源代码)c语言_数据结构课程设计报告

数据结构大作业图书管理系统工程管理121279044 伍杨目录一、题目要求 (2)二、总体设计 (2)三、编码实现 (3)1) 定义图书结构体 (3)2) 登记操作 (3)3) 查看操作 (7)4) 删除操作 (10)5) Main函数 (18)四、调试与测试 (23)五、五心得体会 (25)六、用户手册 (25)一、题目要求1)目的要求本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。
2)题目要求实现图书管理信息系统的设计。
要求实现图书添加、显示全部图书、查询、借阅和归还。
主要考查利用文件的操作!二、总体设计三、编码实现1)定义图书结构体struct book{char bookname[20]; //书名int NO; //书编号char type[20]; //类型int date; //到书日期};struct person{char name[10]; //姓名char classes[20]; //班级int number; //学号char telephone[12]; //联系电话int NO; //书编号char bookname[20]; //书名int borrowdate; //借书日期int returndate; //还书日期2)登记操作void new_book() //登记新书{FILE *fp;struct book b;int i,j;if((fp=fopen("shuku.txt","a"))==NULL){ printf("File open error!\n");exit(0);}printf("请朱老师输入此次收到的书本总数:"); scanf("%d",&i);for(j=0;j<i;j++){printf("请朱老师输入书名:");scanf("%s",b.bookname);fprintf(fp,"%s",b.bookname);printf("请朱老师输入书编号:");scanf("%d",&b.NO);fprintf(fp," %d",b.NO);printf("请朱老师输入类型:");scanf("%s",b.type);fprintf(fp," %s",b.type);printf("请朱老师输入到书日期:");scanf("%d",&b.date);fprintf(fp," %d",b.date);}if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}void new_person() //登记借书{FILE *fp;struct person p;char choice;if((fp=fopen("jieshujilu.txt","a"))==NULL){ printf("File open error!\n");exit(0);}printf("请朱老师输入借书人姓名:");scanf("%s",);fprintf(fp,"%s",);printf("请朱老师输入借书人班级:");scanf("%s",p.classes);fprintf(fp," %s",p.classes);printf("请朱老师输入借书人学号:");scanf("%d",&p.number);fprintf(fp," %d",p.number);printf("请朱老师输入借书人联系电话:");scanf("%s",p.telephone);fprintf(fp," %s",p.telephone);printf("请朱老师输入书编号:");scanf("%d",&p.NO);fprintf(fp," %d",p.NO);printf("请朱老师输入书名:");scanf("%s",p.bookname);fprintf(fp," %s",p.bookname);printf("请朱老师输入借书日期:");scanf("%d",&p.borrowdate);fprintf(fp," %d",p.borrowdate);printf("请朱老师输入还书日期:");scanf("%d",&p.returndate);fprintf(fp," %d",p.returndate);printf("\n\t您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){system("cls");new_person();}if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}实现程序对文件的读取void Read(){int i=0;int j=0;ifstream in("Libra.txt",ios::out);in>>i;all=i;if(i>0&&i<=Max){for(j=1;j<=i;j++){in>>data[j].id>>data[j].name>>data[j].type>>data[j].status>>data[j].count;}}in.close();}3)查看操作v void see_book() //查看书库记录{FILE *fp;long NO;char bookname[20];char type[20];long date;if((fp=fopen("shuku.txt","r"))==NULL){printf("File open error!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s%ld%s%ld",bookname,&NO,type,&date);printf("%-10s %-10ld %-10s %ld\n",bookname,NO,type,date);};if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}void see_person() //查看所有借书记录{FILE *fp;char name[10];char classes[20];int number;char telephone[20];int NO;char bookname[20];int borrowdate;int returndate;if((fp=fopen("jieshujilu.txt","r"))==NULL){printf("File open error!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %ld %s %ld %s %ld %ld",name,classes,&number,telephone,&NO,bookn ame,&borrowdate,&returndate);printf("%-5s %-5s %ld %-5s %ld %-5s %ld %ld\n",name,classes,number,telephone,NO,b ookname,borrowdate,returndate);};if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}4)删除操作void delete_books() //删除旧书{FILE *fp;struct book b;int number;void deletebooks();printf("请输入您要删除的书编号:");scanf("%d",&number);if((fp=fopen("shuku.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %d %s %d",b.bookname,&b.NO,b.type,&b.date);if(b.NO==number){printf("\n\n\t***************图书信息*******************\n");printf("\n\t图书书名:%25s",b.bookname);printf("\n\t-----------------------------------------");printf("\n\t图书编号:%25d",b.NO);printf("\n\t-----------------------------------------");printf("\n\t图书类型:%23s",b.type);printf("\n\t-----------------------------------------");printf("\n\t到书日期:%25d",b.date);printf("\n\t-----------------------------------------");deletebooks();}}}void deletebooks(){FILE *fp,*fp1,*fp2,*fp3;int number;struct book b;printf("\n\n确认删除?请再次输入书编号:");scanf("%d",&number);if((fp=fopen("shuku.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}if((fp1=fopen("tempshuku.txt","w"))==NULL){ //建立一个临时文件printf("不能打开此文件!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %d %s %d",b.bookname,&b.NO,b.type,&b.date);if(b.NO==number)continue;elsefprintf(fp1,"%s %d %s %d",b.bookname,b.NO,b.type,b.date); }fclose(fp);fclose(fp1);if((fp2=fopen("tempshuku.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}if((fp3=fopen("shuku.txt","w"))==NULL){ //清空书库printf("不能打开此文件!\n");exit(0);}while(!feof(fp2)){ //将临时文件的内容写人源文件fscanf(fp2,"%s %d %s %d",b.bookname,&b.NO,b.type,&b.date);fprintf(fp3,"%s %d %s %d",b.bookname,b.NO,b.type,b.date);}fclose(fp2);fclose(fp3);printf("\n 删除成功!\n");}void delete_returnbook() //删除借书记录{FILE *fp;int numbers;struct person p;void deletereturnbook();char choice;printf("\n请输入所还书本的书编号:");scanf("%d",&numbers);if((fp=fopen("jieshujilu.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %ld %s %ld %s %ld %ld",,p.classes,&p.number,p.telephone,&p.NO,p. bookname,&p.borrowdate,&p.returndate);if(p.NO==numbers){printf("\n\t***************图书信息*******************\n");printf("\n\t借书人姓名:%20s",);printf("\n\t-----------------------------------------");printf("\n\t借书人班级:%20s",p.classes);printf("\n\t-----------------------------------------");printf("\n\t借书人学号:%20d",p.number);printf("\n\t-----------------------------------------");printf("\n\t借书人联系电话:%20s",p.telephone);printf("\n\t-----------------------------------------");printf("\n\t图书编号:%24d",p.NO);printf("\n\t-----------------------------------------");printf("\n\t图书名称:%23s",p.bookname);printf("\n\t-----------------------------------------");printf("\n\t借书日期:%25d",p.borrowdate);printf("\n\t-----------------------------------------");printf("\n\t还书日期:%25d",p.returndate);printf("\n\t-----------------------------------------");deletereturnbook();printf("\n\t您想继续吗?(y/n)");scanf(" %c",&choice);if(choice=='Y'||choice=='y'){system("cls");delete_returnbook();}}}fclose(fp);}void deletereturnbook(){FILE *fp,*fp1,*fp2,*fp3;struct person p;int numbers;printf("\n\n确认删除?请再次输入书编号:");scanf("%d",&numbers);if((fp=fopen("jieshujilu.txt","r"))==NULL){ printf("不能打开此文件!\n");exit(0);}if((fp1=fopen("tempbook.txt","w"))==NULL){printf("不能打开此文件!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s %d %s %d %s %d %d",,p.classes,&p.number,p.t elephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate);if(p.NO==numbers)continue;elsefprintf(fp1,"%s %s %d %s %d %s %d %d",,p.classes,p.num ber,p.telephone,p.NO,p.bookname,p.borrowdate,p.returndate);}fclose(fp);fclose(fp1);if((fp2=fopen("tempbook.txt","r"))==NULL){printf("不能打开此文件!\n");exit(0);}if((fp3=fopen("jieshujilu.txt","w"))==NULL){printf("不能打开此文件!\n");exit(0);}while(!feof(fp2)){ //将临时文件写人源文件fscanf(fp2,"%s %s %d %s %d %s %d %d",,p.classes,&p.number,p .telephone,&p.NO,p.bookname,&p.borrowdate,&p.returndate);fprintf(fp3,"%s %s %d %s %d %s %d %d",,p.classes,p.num ber,p.telephone,p.NO,p.bookname,p.borrowdate,p.returndate);}fclose(fp2);fclose(fp3);printf("\n 删除成功!\n");}5)Main函数int main(void){int choice;char choice2;struct book;struct person;do{printf("\n\n\n 图书馆管理系统\n\a");printf(" *******************************************************\n");printf(" ***朱老师您好吖********功能选项:登记******请按1,******\n");printf(" ******************************* 查看/查询*请按2 ******\n");printf(" ******************************* 删除***** 请按3 ******\n");printf(" ******************************* 退出***** 请按0 ******\n");printf(" *******************************************************\n\n\n");printf(" 请选择功能:");scanf("%d",&choice);switch(choice){case 1:printf(" 登记选项:新书登记请按1,借书登记请按2,返回请按3\n");printf("请选择:");scanf("%d",&choice);switch(choice){case 1:system("cls"); //清屏printf("新书资料登记:\n\n");new_book(); //新书登记printf("登记完毕!\n");printf("\n");scanf(" %c",&choice2);system("cls");break;case 2:system("cls");printf("借书资料登记:\n\n");new_person(); //借书登记printf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 3:system("cls");break;}break;case 2:printf(" 查看/查询选项:书库查看请按1,总借书记录查看请按2,到期记录查询请按3,返回请按4\n");printf("请选择:");scanf("%d",&choice);switch(choice){case 1:system("cls");printf("欢迎朱老师进入书库!\n\n");printf("书名书编号类型到书日期\n");printf("------------------------------------------\n");see_book(); //书库显示printf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 2:system("cls");printf("欢迎朱老师进入借书记录!\n\n");printf("姓名班级学号联系电话书编号书名借书日期到书日期\n");printf("--------------------------------------------------------\n");see_person(); //借书记录显示printf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 3:system("cls");search_person(); //显示符合记录printf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 4:system("cls");break;}break;case 3:printf(" 删除选项:旧书删除请按1,借书记录删除请按2,返回请按3\n");printf("请选择:");scanf("%d",&choice);switch(choice){case 1:system("cls");delete_books(); //删除ingprintf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 2:system("cls");delete_returnbook(); //删除ingprintf("\n press anykey ");scanf(" %c",&choice2);system("cls");break;case 3:system("cls");break;}break;case 0:system("cls");}}while(choice != 0);return 0;}四、调试与测试主菜单登记查看删除生成的文件内信息五、五心得体会经过这次大作业,我觉得代码的编写,最主要的的是编程思想,语言其实不是太重要,思路最重要!六、用户手册程序执行文件为lib sys.exe,打开执行文件后按提示操作即可。
C语言--图书管理系统

一、设计内容和要求内容:主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:图书入库,按书名、出版社、价格、作者进行查询和分类统计。
操作界面要符合用户的一般习惯,图形或文本界面都可以。
要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
二、详细设计2.1、数据结构链表是线形表的一种,线形表分为顺序存储结构和链式存储结构。
线形表的顺序存储结构的特点是逻辑关系上相邻的两个元素物理位置上也相邻,因此可以随机存取表中任一元素。
链式存储结构的特点是用一组任意的存储单元存储线形表的数据元素。
链表的最大的优点是对表的添加、删除、查找、排序等操作比较方便,因此采用链表来存储学生相关信息。
且对结点的定义如下://图书的数据结构:struct book{int booknum; //书号char bookname[20]; //书名char bookcreat[10]; //书的作者int turefalse; //用于借书和还书模块判断一本书是否借出的条件}book[1000]; //定义一个比较大的1000本书//会员卡的数据类型struct car{int carnum; //卡号char studentsex[4]; //性别char studentname[20]; //姓名int studentclass; //所在班级}car[1000]; //定义一千个会员//定义学生类型,用于存放借出的书籍struct student{int carnum; //卡号char lendbook[10]; //借出的书数}student[1000]; //定义一千个学生2.2总体模块图图2.2主体模块图功能说明:查询图书用于查找存储的图书信息借阅图书用于借阅存储的图书管理图书可用于对图书的增加,删除,统计和修改并对会员进行管理会员管理系统能对会员进行增加,删除和借阅统计部分模块间关系:经过管理系统对图书的处理,查询图书和借阅图书的功能才能得以实现经过会员管理系统的处理,才能实现对会员的查询和统计2.3总体流程图主函数是程序入口,采用模块化设计。
图书管理系统c语言

图书管理系统C语言1. 简介图书管理系统是一种用于管理图书馆藏书和借阅记录的软件系统。
它通常包括图书的录入、借阅、归还、查询等功能,能够提高图书馆的工作效率和服务质量。
本文将使用C语言编写一个简单的图书管理系统,实现基本的图书信息录入、修改、查询、借阅、归还等功能。
2. 功能实现2.1 数据结构我们首先需要定义合适的数据结构来存储图书信息和借阅记录。
以下是一个简单的数据结构示例:struct Book {int id; // 图书编号char title[100]; // 图书标题char author[50]; // 图书作者char category[50]; // 图书分类int isBorrowed; // 图书是否已借阅,0表示未借阅,1表示已借阅char borrowerName[100]; // 借阅者姓名// 可根据需求扩展其他字段};struct BorrowRecord {int bookId; // 图书编号char borrowerName[100]; // 借阅者姓名char borrowDate[20]; // 借阅日期char returnDate[20]; // 归还日期// 可根据需求扩展其他字段};2.2 图书信息录入和修改我们可以通过实现相应的函数来实现图书信息的录入和修改。
以下是一个简单的示例:void addBook(struct Book *library, int *count) {// 输入图书信息,将其存入library数组中,同时更新count}void updateBook(struct Book *library, int count, int bookId) { // 根据图书编号bookId,更新library数组中对应图书的信息}2.3 图书查询我们可以根据图书的不同字段来实现不同的查询功能,比如根据图书标题、作者、分类等进行模糊查询,或根据图书编号进行精确查询。
图书管理系统(c语言)

fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
{ fwrite(&student[i],sizeof(struct student),1,fp); /*
判断是否借阅了输入的书 */
if(strcmp(student[i].lendbook,lendbook)==0) /* {
借阅了该书,进入下一循环,否则出错显示 */
fclose(fp);
fp=fopen("record.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
n=n+1;
}
fclose(fp);
printf(" 目前共有 %d本书借出 \n",n);
printf(" 按任意键 \n");
getch();
}
chabook()
{
char ch5;
do
{
printf("---------------
欢迎进入图书查询系统! --------------\n");
卡号存在,进入下一循环 */
数据结构_c语言_图书管理系统

图书借阅管理是图书馆一个最基本的工作,这里用C语言的知识设计开发一个简单的图书借阅管理系统,系统主要实现图书信息和学生信息的管理,图书查询及图书借阅管理。
系统设计要求系统主要实现以下六个功能:①用户登录。
系统用户分为管理员和学生。
管理员登录时必须输入密码,密码正确才能进入系统;学生登录时无需密码,输入学号即可。
②图书信息管理。
图书信息包括:书号、书名、作者、图书分类、出版社、出版时间、单价、总量和库存量。
图书信息管理包括:输入图书信息(从键盘或从文件)、保存图书信息、修改图书信息、增加图书信息、删除图书信息和输出图书信息。
③学生信息管理。
学生信息包括:学号、姓名、借书卡(借阅标记、书号、借阅时间)。
学生信息管理包括:输入学生信息(从键盘或从文件)、保存学生信息、修改学生信息、增加学生信息、删除学生信息和输出学生信息。
④图书查询功能。
图书查询分为:按书名查询、按作者查询、按图书分类查询、按出版社查询和按出版时间查询。
⑤借书功能。
借书时,先判断学生是否有空闲的借书卡,若没有则应输出提示信息;若有空闲的借书卡,则要求学生输入所借图书的书号,若该书库存量不为0,则将该书借出,同时在借书卡上记录该书的书号和借阅时间,并修改该书的库存量。
⑥还书功能。
还书时,先检查学生的借书卡,若借书卡都为空,则不能进行还书操作,若有借书卡不为空,则可以还书,此时要求学生输入所还图书的书号,将对应借书卡上的记录清零,并修改该书的库存量。
数据结构设计系统共定义了四个结构体类型,包括日期类型、借书卡类型、图书类型和学生类型,其中在图书类型中要使用日期类型,而在学生类型中要使用日期和借书卡类型,定义如下:typedef struct date //日期类型{ short year; //年short month; //月short day; //日}SDATE;typedef struct library_card //借书卡类型{ Short flag; //是否借阅标记Char ISBN[20]; //所借图书的书号SDATE bor_time; //借阅时间}SLCARD;typedef struct student //学生类型{ char num[15]; //学号char name[20]; //姓名SLCARD card[5]; //借书卡(规定每人最多有5张)}SSTUD;typedef struct book //图书类型{ char ISBN[20]; //书号char bookname[40]; //书名char author[20]; //作者char publisher[30]; //出版社char bookclass[20]; //图书分类short total_num, stock_num; //总量,库存量float price; //单价SDATE publish_time; //出版时间}SBOOK;系统定义了两个全局变量数组,分别存放图书信息和学生信息,因数组大小是固定的,为使用方便在系统中定义两个符号常量,具体定义如下:#define BOOKNUM 1000 // BOOKNUM为系统允许的最大图书数量#define STUDNUM 100 // STUDNUM为系统允许的最多学生人数SSTUD student[STUDNUM]={0}; //学生数组,初始化为0SBOOK book[BOOKNUM]={0}; //图书数组,初始化为03. 功能模块设计(1) main函数的设计:由于图书信息和学生信息都保存在文件中,系统运行的第一个工作是从文件中将图书信息和学生信息读入到内存数组book和数组student中,在读入信息的过程中同时统计出目前图书的数量和学生的人数,并将数据分别存放在整型变量bn和sn中,bn为图书数量,sn为学生人数。
图书馆管理系统(c语言)

亲试c语言图书馆管理系统,(需自行添加书目信息)#include<stdio.h>#include<malloc.h>#define FORMAT "%-10ld%-20s%-15s%-20s%-5.2f\n"#define SIZE 50#define LEN sizeof(struct send)struct book /*图书结构体*/{long book_num;char name[13];char author[10];char press[15];float price;}book[SIZE];struct send /*借阅信息结构体*/{char book_num[20];char std_num[10];}send;int n=5,l=0;void preword() /*菜单*/{printf("\n\n\t\t=============欢迎图书馆模拟系统============\n");printf("\t\t\t1、浏览所有图书信息\n");printf("\t\t\t2、浏览单个图书信息\n");printf("\t\t\t3、添加图书信息\n");printf("\t\t\t4、删除图书信息\n");printf("\t\t\t5、修改图书信息\n");printf("\t\t\t6、借书\n");printf("\t\t\t7、退出\n");printf("\t\t==============================================\n");printf("\t\t\t\t请选择(1-7):");}void load() /*加载磁盘文件图书信息*/{FILE *fp = fopen("BookInfo.txt","r");int i;if(!fp){printf("文件打开错误!\n");return;}while(!feof(fp)){for(i=0;i<n;i++)fscanf(fp,"%ld%s%s%s%f",&book[i].book_num,book[i].name,book[i].author,book[i].press, &book[i].price);}fclose(fp);}void print(struct book a) /*输出图书信息*/{if(l==0) /*开关变量l,控制表单*/{printf("\n%-10s%-20s%-15s%-20s%-5s\n\n","图书编号","书名","作者","出版社","价钱");printf(FORMA T,a.book_num,,a.author,a.press,a.price);l=1;}elseprintf(FORMA T,a.book_num,,a.author,a.press,a.price);}void view_all() /*浏览所有图书*/{int i;printf("\n所有图书信息为:\n");for(i=0;i<n;i++)print(book[i]);l=0;void view_one() /*浏览单个图书*/{long num;int i,k=0;find:printf("\n请出入图书编号:");scanf("%ld",&num);for(i=0;i<n;i++)if(num==book[i].book_num){printf("\n%ld 信息:\n",num);print(book[i]);k=1; /*开关变量k,反应是否找到该书*/}if(k==0){printf("\n没有对应图书,请输入正确编号!\n");goto find;}l=0;}void add() /*添加图书*/{printf("\n请输入添加图书信息:\n\t");scanf("%ld%s%s%s%f",&book[n].book_num,book[n].name,book[n].author,book[n].press,& book[n].price);printf("图书添加成功! (浏览请选择1)\n");n++;}void delet() /*删除图书*/{long num;int i,j,k=0;del:printf("\n请输入图书编号:");scanf("%ld",&num);for(i=0;i<n;i++)if(num==book[i].book_num){for(j=i;j<n-1;j++)book[j]=book[j+1];k=1;n--;printf("图书删除成功!\n");}if(k==0) /*开关变量k,反应是否找到该书*/{printf("\n没有对应图书,请输入正确编号!\n");goto del;}}void modify() /*修改图书信息*/{long num;int i,k=0;mod:printf("\n请输入图书编号:");scanf("%ld",&num);for(i=0;i<n;i++)if(num==book[i].book_num){printf("请输入新信息:\n\t");scanf("%ld%s%s%s%f",&book[i].book_num,book[i].name,book[i].author,book[i].press,&bo ok[i].price);printf("图书修改成功!\n");k=1;}if(k==0) /*开关变量k,反应是否找到该书*/{printf("\n没有对应图书,请输入正确编号!\n");goto mod;}}void select() /*借书*/{long num;char std_n[10];int i,k=0;FILE *fp = fopen("SendInfo.txt","w+");sel:printf("\n请输入图书编号:");scanf("%ld",&num);for(i=0;i<n;i++)if(num==book[i].book_num){printf("请输入学号:");scanf("%s",std_n);k=1;printf("借书成功!\n");}if(k==0) /*开关变量k,反应是否找到该书*/ {printf("\n没有对应图书,请输入正确编号!\n");goto sel;}fprintf(fp,"%-10s%-8ld\n",std_n,num);printf("\n借书信息:\n");printf("%-10s%-8ld\n",std_n,num);fclose(fp);}void main() /*主函数*/{int chois;load();loop: preword();scanf("%d",&chois);switch(chois) /*选择菜单*/{case 1: view_all(); goto loop;case 2: view_one(); goto loop;case 3: add(); goto loop;case 4: delet(); goto loop;case 5: modify(); goto loop;case 6: select(); goto loop;case 7: goto end;default: printf("请输入正确数字!\n"); goto loop;}end:printf("\n\n系统结束!\n\n");}。
图书管理系统的设计(C语言)

图书管理系统设计图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述:1 .新进熟土基本信息的输入2 .图书基本信息的查询3 .对撤销图书信息的删除4 .为借书人办理注册5 .办理借书手续6 .办理换书手续要求:以文件方式存储数据,系统以菜单方式工作。
这是本人大一第二学期初 C 语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ 网络硬盘中找到了当初的teta 版,发布于此,以作记念。
C 源代码如下:#include〈stdio 。
h〉#include<stdlib。
h〉#include〈string 。
h>struct book {char book_name [30];int bianhao;double price;char author[20];char state [20] ;char name[20];char sex [10];int xuehao;struct book *book_next;};struct club {char name [20];char sex[10];int xuehao;char borrow [30];struct club *club_next;};void Print_Book(struct book *head_book);/*浏览所有图书信息*/void Print_Club(struct club *head_club);/*浏览所有会员信息*/struct book *Create_New_Book();/*创建新的图书库, 图书编号输入为0 时结束*/struct book *Search_Book_bianhao(int bianhao,struct book *head_book);struct book *Search_Book_name (char *b_name,struct book *head_book);struct book *Search_Book_price (double price_h,double price_l,struct book *head_book);struct book *Insert_Book (struct book *head_book,struct book *stud_book) ;/*增加图书,逐个添加*/struct book *Delete_Book(struct book *head_book,int bianhao);/*删除图书*/struct club *Create_New_Club() ;struct club *Search_Club_xuehao(int xuehao,struct club *head_club);struct club *Search_Club_name (char *c_name,struct club *head_club);struct club *Insert_Club (struct club *head_club,struct club *stud_club);struct club *Delete_Club (struct club *head_club,int xuehao);struct book *Lent_Book (int bianhao ,int xuehao,struct book *head_book,struct club *head_club);struct book *back (int bianhao,int xuehao,struct book *head_book,struct club *head_club); int main(){struct book *head_book,*p_book;char book_name [30],name [20],author [20],sex [10];int bianhao;double price,price_h,price_l;int size_book=sizeof(struct book);int m=1,n=1,f;char *b_name,*c_name;struct club *head_club,*p_club;int xuehao;int size_club=sizeof (struct club) ;int choice;printf ("\n 欢迎您第一次进入图书管理系统!\n\n");printf("---——>[向导]————-〉[新建图书库] \n\n”) ;printf ("注意:当输入图书编号为0 时,进入下一步.\n\n");head_book=Create_New_Book();system(”cls”) ;printf("\n 欢迎您第一次进入图书管理系统!\n\n") ;printf("----—〉[向导]——---〉[新建会员库]\n\n”);printf(”注意:当输入会员学号为0 时,进入主菜单.\n\n”);head_club=Create_New_Club () ;system (”cls”);do {printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”);printf("\n”);printf ("\t\t\t[1] :借书办理\t");printf(" [6]:还书办理\n”);printf (”\n");printf(”\t\t\t[2]:查询图书\t");printf(" [7]:查询会员\n”);printf (” \t\t\t[3]:添加图书\t");printf (" [8]:添加会员\n”);printf ("\t\t\t[4]:删除图书\t");printf (” [9] :删除会员\n") ;printf (” \t\t\t[5]:遍历图书\t");printf (” [10]:遍历会员\n\n”) ;printf ("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n”);printf("\t\t\t0:退出\n\n”) ;printf(”请选择〈0~10〉:”);scanf(”%d",&choice);switch(choice) {case 1:printf ("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");printf (”输入所借图书编号:\n");scanf (”%d",&bianhao);printf ("输入借书人的学号:\n”);scanf ("%d",&xuehao);head_book=Lent_Book(bianhao,xuehao,head_book,head_club);system (”cls");printf (” \n 借阅成功!\n\n");printf (”相关信息如下:\n\n");head_book=Search_Book_bianhao (bianhao,head_book);break;case 2:system ("cls”) ;printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”); printf ("1。
C语言图书管理系统

C语言图书管理系统#include <stdio.h>#include <stdlib.h>#include <conio.h>struct BOOK{int id,usr[10],total,store,days[10];char name[30],author[20];}books[100];/*上面是结构体的定义,用于存放书籍及借书的信息。
*/void page_title(char *menu_item){system("cls");printf(">>> 图书管理系统 <<<\n\n- %s -\n\n",menu_item);}/*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。
*/void return_confirm(void){printf("\n按任意键返回……\n");getch();}/*上面是返回前请求确认的函数,以便在返回前观察结果*/int search_book(void){int n,i; printf("请输入图书序号:");scanf("%d",&i);for(n=0;n<100;n++){if(books[n].id==i){printf("书名:%s\n",books[n].name);printf("作者:%s\n",books[n].author);printf("存数:%d\n",books[n].store);printf("总数:%d\n",books[n].total);return n;} }printf("\n输入错误或无效图书序号.\n");return -1;}/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返回数组下标,如果找不到相应记录则提示错误并返回-1。
图书管理系统c语言

图书管理系统c语言
本文将介绍如何使用C语言来构建基于控制台的图书管理系统。
首先,我们需要定义一些需要使用到的数据结构,用来保存图书信息,包括书名,作者,出版日期,类型,页数等关键信息。
然后,我们可以给每本书分配一个唯一的ISBN(国际标准书号)。
接着,我们应该编写两个函数,第一个函数的作用是维护图书信息,该函数可以添加新的图书,删除旧的图书;第二个函数可以实现基于ISBN的搜索。
最后,我们需要实现一个主函数,它负责管理整个系统,显示菜单以供用户选择,包括添加图书,删除图书,查询图书,显示所有图书,等等。
总而言之,在C语言中编写图书管理系统代码,无非是定义数据结构,编写功能函数和主函数,即可实现所需功能。
c语言图书馆管理系统(codeblocks版)

printf("\t--------PASS: %40s--------\n", p1->pass);
printf("\t--------LEVEL:%40d--------\n", p1->level);
/*
*图书馆管理系统
*@author琴卓
*@time 2015-12-10
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
#include<windows.h>
#define PASS_LEN 20 //密码长度
int lendsum;
struct user *next;
}user;
//用户结构体简写为bokk
typedef struct book {
char name[20];
char author[20];
char publish[20];
char year[10];
char ISBN[40];
char state[10];
char choice;
//程序入口
void main()
{
system("color 8b");
system("mode con cols=100 lines=50");
printf("\t\t\t图书馆系统细则:\n\t\t1.新用户注册由系统管理员操作\n\t\t2.图书由图书管理员负责\n\t\t3.普通用户最多借3本书为期30天,可续借一次,\n\t\t超期不换将每天扣除0.1元,超过10元账户将冻\n\t\t结,届时无法完成登录,需要找系统管理员解冻\n\t\t4.密码输入支持退格,访问级别1代表普通用户\n\t\t5.单项数据输入不支持空格\n\t\t6.程序每关闭开启一次经过6天\n");
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构c语言图书管理系统课程设计任务书题目:图书管理系统学号 200912220280姓名张志涛专业计算机应用技术课程数据结构指导教师曾德藩职称完成时间:20 年月----20 年月枣庄学院计算机科学系制说明一、课程设计写作框架(仅供参考)摘要目录正文1、基本设计任务及要求、所用仪器设备;2、总体设计方案及主要设计原理;3、实现技术及源程序代码;4、测试及分析5、结束语(心得体会、改进方向)参考文献二、写作要求:课程设计写作要求论点明确、论据充分、说明透彻,语言准确恰当,书面整洁,字迹工整。
课程设计的篇幅本科一般为4000字左右,专科一般为3000字左右。
程设计任务书及成绩评定图书借阅管理是图书馆一个最基本的工作,这里用C语言的知识设计开发一个简单的图书借阅管理系统,系统主要实现图书信息和学生信息的管理,图书查询及图书借阅管理。
系统设计要求系统主要实现以下六个功能:①用户登录。
系统用户分为管理员和学生。
管理员登录时必须输入密码,密码正确才能进入系统;学生登录时无需密码,输入学号即可。
②图书信息管理。
图书信息包括:书号、书名、作者、图书分类、出版社、出版时间、单价、总量和库存量。
图书信息管理包括:输入图书信息(从键盘或从文件)、保存图书信息、修改图书信息、增加图书信息、删除图书信息和输出图书信息。
③学生信息管理。
学生信息包括:学号、姓名、借书卡(借阅标记、书号、借阅时间)。
学生信息管理包括:输入学生信息(从键盘或从文件)、保存学生信息、修改学生信息、增加学生信息、删除学生信息和输出学生信息。
④图书查询功能。
图书查询分为:按书名查询、按作者查询、按图书分类查询、按出版社查询和按出版时间查询。
⑤借书功能。
借书时,先判断学生是否有空闲的借书卡,若没有则应输出提示信息;若有空闲的借书卡,则要求学生输入所借图书的书号,若该书库存量不为0,则将该书借出,同时在借书卡上记录该书的书号和借阅时间,并修改该书的库存量。
⑥还书功能。
还书时,先检查学生的借书卡,若借书卡都为空,则不能进行还书操作,若有借书卡不为空,则可以还书,此时要求学生输入所还图书的书号,将对应借书卡上的记录清零,并修改该书的库存量。
数据结构设计系统共定义了四个结构体类型,包括日期类型、借书卡类型、图书类型和学生类型,其中在图书类型中要使用日期类型,而在学生类型中要使用日期和借书卡类型,定义如下:typedef struct date //日期类型{ short year; //年short month; //月short day; //日}SDATE;typedef struct library_card //借书卡类型{ Short flag; //是否借阅标记Char ISBN[20]; //所借图书的书号SDATE bor_time; //借阅时间}SLCARD;typedef struct student //学生类型{ char num[15]; //学号char name[20]; //姓名SLCARD card[5]; //借书卡(规定每人最多有5张)}SSTUD;typedef struct book //图书类型{ char ISBN[20]; //书号char bookname[40]; //书名char author[20]; //作者char publisher[30]; //出版社char bookclass[20]; //图书分类short total_num, stock_num; //总量,库存量float price; //单价SDATE publish_time; //出版时间}SBOOK;系统定义了两个全局变量数组,分别存放图书信息和学生信息,因数组大小是固定的,为使用方便在系统中定义两个符号常量,具体定义如下:#define BOOKNUM 1000 // BOOKNUM为系统允许的最大图书数量#define STUDNUM 100 // STUDNUM为系统允许的最多学生人数SSTUD student[STUDNUM]={0}; //学生数组,初始化为0SBOOK book[BOOKNUM]={0}; //图书数组,初始化为03. 功能模块设计(1) main函数的设计:由于图书信息和学生信息都保存在文件中,系统运行的第一个工作是从文件中将图书信息和学生信息读入到内存数组book和数组student中,在读入信息的过程中同时统计出目前图书的数量和学生的人数,并将数据分别存放在整型变量bn和sn 中,bn为图书数量,sn为学生人数。
如果bn=0或sn=0,系统会输出提示信息,让管理员输入图书信息和学生信息。
然后系统会显示主菜单,用户必须登录后才能使用系统提供的各种服务。
(2) 用户登录管理模块包括2个函数:ManagerLogin()和StudentLogin(),该模块由main 函数调用。
函数ManagerLogin()用来完成管理员登录工作,首先要求管理员用户输入密码,若密码错误,则直接返回主菜单界面;密码正确时将显示管理员用户的功能菜单,输入数字可执行相应的功能。
函数StudentLogin()用来完成学生登录工作,要求学生输入学号,若学号错误则要求学生重新输入学号;输入学号正确则显示学生用户的功能菜单,输入数字可执行相应的功能。
(3) 图书信息管理模块包括11个函数:InputOnebook()、LoadBooks()、SaveOnebook()、SaveAllbooks()、OriginalBook()、ModifyBook()、AddBook()、DelBook()、OutputOnebook()、OutputAllbooks()和OutputBrief ()。
只有管理员用户可以调用图书信息管理模块。
函数InputOnebook()用来实现从键盘输入一本图书的全部信息。
函数LoadBooks()用来实现从文件“book.dat”中输入全部图书的信息,并将这些数据存放到内存数组book中。
函数SaveOnebook()用来实现将一本图书的信息保存到文件“book.dat”中。
函数SaveAllbooks()用来实现将全部图书的信息保存到文件“book.dat”中。
函数OriginalBook()用来实现图书信息的初始化,在程序第1次运行时必须调用该函数,输入若干本图书的信息,并将这些信息保存在文件中。
该函数是通过循环多次调用InputOnebook()函数实现多本图书信息的输入,然后调用SaveAllbooks()函数将已输入的所有图书的信息保存在文件“book.dat”中。
函数ModifyBook()用来实现对图书信息的修改,用户首先输入书号,书号错误则输出提示信息,要求用户重新输入;书号正确则用户可以选择要修改的数据项对图书信息进行修改(用switch结构实现),一本图书的信息修改完毕后,调用SaveOnebook()函数,将修改后的信息保存到文件中。
然后询问用户是否继续修改其他图书的信息,用户选择‘y’,则重复上述的修改过程;用户选择‘n’,则结束函数,返回到管理员菜单界面。
函数AddBook()用来实现添加图书信息,通过调用InputOnebook()函数,从键盘输入一本图书的信息,然后将该信息写入文件。
然后询问用户是否继续添加其他图书的信息,用户选择‘y’,则重复上述过程;用户选择‘n’,则结束函数,返回到管理员菜单界面。
函数DelBook()用来实现删除图书信息,用户首先输入书号,书号错误则输出提示信息,要求用户重新输入;书号正确则会先输出该书号对应图书的信息,然后询问用户是否确定要删除该书的信息,用户选择‘y’才能真正删除该书信息。
最后询问用户是否继续删除其他图书的信息,用户选择‘y’,则重复上述过程;用户选择‘n’,则结束函数,返回到管理员菜单界面。
函数OutputOnebook()用来实现输出一本图书的全部信息。
函数OutputAllbooks()通过多次调用OutputOnebook()函数来实现输出全部图书的信息。
函数OutputBrief()用来实现以列表方式输出全部图书的简要信息,简要信息包括:书号、书名、作者和总量。
(4) 学生信息管理模块包括10个函数:InputOnestud()、LoadStuds()、SaveOnestud()、SaveAllstuds()、OriginalStud()、ModifyStud()、AddStud()、DelStud()、OutputOnestud()和OutputAllstuds()。
管理员用户可以使用学生信息管理模块的全部功能,学生用户只能使用该模块中的一个功能,即OutputOnestud()函数(输出一个学生的信息)。
学生信息管理模块中函数的实现方法与图书信息管理中的类似,以下仅作简单说明。
函数InputOnestud()用来实现从键盘输入一个学生的信息。
函数LoadStuds()用来实现从文件“stud.dat”中输入全部学生的信息,并将这些数据存放到内存数组student中。
函数SaveOnestud()用来实现将一各学生的信息保存到文件“stud.dat”中。
函数SaveAllstuds()用来实现将全部学生的信息保存到文件“stud.dat”中。
函数OriginalStud()用来实现学生信息的初始化,在程序第1次运行时必须调用该函数。
该函数是通过循环多次调用InputOnestud()函数实现多个学生信息的输入,然后调用SaveAllstuds()函数将已输入的所有学生的信息保存在文件“stud.dat”中。
函数ModifyStud()用来实现学生信息的修改。
函数AddStud()用来实现添加学生信息。
函数DelStud()用来实现删除学生信息。
函数OutputOnestud()用来实现输出一个学生的全部信息。
函数OutputAllstuds()用来实现输出全部学生的基本信息(即学号和姓名)。
(5) 图书信息查询模块包括6个函数:SearchMenu()、SearcBname()、SearchAuthor()、SearchBclass()、SearchPublisher()、SearchPubtime()。
管理员和学生都可以使用图书信息查询模块。
函数SearchMenu()用来显示图书查询服务菜单,用户输入数字可执行相应的查询服务。
函数SearcBname()用来实现按书名进行图书信息的查询。
用户可以输入完整的书名进行精确查询(如输入“C语言程序设计”),精确查询是使用字符串比较函数strcmp(),将输入的书名与已有图书的书名逐一进行比较,当该函数的返回值等于0,表示这两个书名完全相同,即找到要查询的图书。