c语言课程设计报告图书管理系统.docx

上传人:b****2 文档编号:1163192 上传时间:2023-04-30 格式:DOCX 页数:47 大小:174.05KB
下载 相关 举报
c语言课程设计报告图书管理系统.docx_第1页
第1页 / 共47页
c语言课程设计报告图书管理系统.docx_第2页
第2页 / 共47页
c语言课程设计报告图书管理系统.docx_第3页
第3页 / 共47页
c语言课程设计报告图书管理系统.docx_第4页
第4页 / 共47页
c语言课程设计报告图书管理系统.docx_第5页
第5页 / 共47页
c语言课程设计报告图书管理系统.docx_第6页
第6页 / 共47页
c语言课程设计报告图书管理系统.docx_第7页
第7页 / 共47页
c语言课程设计报告图书管理系统.docx_第8页
第8页 / 共47页
c语言课程设计报告图书管理系统.docx_第9页
第9页 / 共47页
c语言课程设计报告图书管理系统.docx_第10页
第10页 / 共47页
c语言课程设计报告图书管理系统.docx_第11页
第11页 / 共47页
c语言课程设计报告图书管理系统.docx_第12页
第12页 / 共47页
c语言课程设计报告图书管理系统.docx_第13页
第13页 / 共47页
c语言课程设计报告图书管理系统.docx_第14页
第14页 / 共47页
c语言课程设计报告图书管理系统.docx_第15页
第15页 / 共47页
c语言课程设计报告图书管理系统.docx_第16页
第16页 / 共47页
c语言课程设计报告图书管理系统.docx_第17页
第17页 / 共47页
c语言课程设计报告图书管理系统.docx_第18页
第18页 / 共47页
c语言课程设计报告图书管理系统.docx_第19页
第19页 / 共47页
c语言课程设计报告图书管理系统.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计报告图书管理系统.docx

《c语言课程设计报告图书管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告图书管理系统.docx(47页珍藏版)》请在冰点文库上搜索。

c语言课程设计报告图书管理系统.docx

c语言课程设计报告图书管理系统

第一章

§1.1题目描述

图书管理系统设计:

【要求】图书管理信息包括:

图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。

试设计一图书管理系统,使之能提供以下功能:

(1)新图书基本信息的输入;

(2)图书基本信息的查询;

(3)对撤销图书信息的删除;

(4)办理借书手续;

(5)办理还书手续;

【提示】建立图书馆里信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。

存在状态设为整型,可用不同数字代表借还状态。

借书和还书手续要注意修改结构体的成员变量存在状态的值。

§1.2算法设计

1.设计思想:

在整个系统编写的过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。

由此进一步加深、巩固了所学的课程的基本理论知识,培养了综合分析问题、解决问题的能力。

在设计程序时,参考了学校图书馆的图书管理系统,实现了程序的模块化、结构化。

在主函数中调用各种函数,操作界面简单,易操作,人机互动性较强。

2.实现注释:

这个实用的小型图书管理系统程序以结构体数组指针操作完成,并实现文件信息的录入、修改和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。

本图书管理系统分为管理员和学生两个部分,其基本功能包括了对图书信息的存储、查询、添加、删除和借书、还书手续办理等。

查询时可按书名、编号等方式查询,找到后输出这本书的所有信息。

可查询图书的在库状态,方便用户进行借书、还书操作。

在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。

系统中主要的数据结构就是图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。

在处理过程中各项可以作为一本图书的不同属性来进行处理。

3.结构体系设计

图1.1:

主函数结构;图1.2:

新书信息录入流程;图1.3:

图书信息查询(管理员)流程;图1.4:

图书信息查询(学生)流程;图1.5:

图书信息删除流程;图1.6:

办理借书手续流程;图1.7:

办理还书手续流程;

 

§1.3程序设计及代码分析

1.程序设计:

下面,我大致介绍一下我的系统的主要功能和注意事项:

当运行此程序时,首先进入系统主界面,然后可以选择[1].管理员登陆(密码:

123),[2].学生登陆,[0].退出系统;

选择[1]后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。

管理员功能菜单中,[1].新书信息录入,[2].图书信息查询,[3].图书信息删除,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字,输完之后按回车(下同)。

首次运行系统需要先选择[1]录入库存书籍信息,图书各信息项须用空格键隔开,输入完毕后信息自动储存并更新至数据库,然后再选择其他操作。

当选择[3]时会进入图书信息删除,在这里可以选择删除图书信息等操作,需要注意的是每次执行删除操作需要手动选择保存图书信息的操作,不然磁盘文件信息不会改变。

选择[2]后进入学生系统,然后显示学生功能菜单,按数字键选择所需服务。

学生功能菜单中,[1].图书信息查询,[2].办理借书手续,[3].办理函数手续,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字。

当进入办理借书和还书手续功能时需要注意的是每次执行操作需要手动选择确认等操作,否子磁盘文件信息不会改变。

所有信息最后均以磁盘文件方式保存,而且格式固定,输入和输出均按这种格式,用户在使用时必须要按这种格式输入,否则会出现文件信息错误。

2.代码分析:

/**********源程序代码**********/

#include

#include

#include

#defineLONGsizeof(structBook)

structBook

{

chartitle[100];

charauthor[50];

charpress[100];

charyear[5];

charclaim_number[30];

intcollection;

intcan_borrow;

charunit_price[10];

charstudent_name[50];

charsex[5];

charstudent_id[20];

longlongintnumber;

};

/**********函数声明**********/

voidmain_meun();//【主界面函数】

voidmanager_menu();//【管理员功能界面函数】

voidstudent_meun();//【学生功能界面函数】

intbook_add(intback);//【新书信息录入函数】

intsearch_2(intback);//【图书信息查询(学生版)】

intsearch_1(intback);//【图书信息查询函数(管理员版)】

intsearch_number(intback);//【按编号查询函数(管理员版)】

intsearch_title(intback);//【按书名查询函数(管理员版)】

voidsearch_menu();//【图书查询函数界面(管理员版)】

intbook_delete(intback);//【图书信息删除函数】

intborrow(intback);//【办理借书手续函数】

intreturn_book(intback);//【办理还书手续函数】

/**********主函数**********/

intmain()

{

inta,b,c,z;

intback=0,back2=0,back3=0;

A:

system("cls");//A为一个标志位,用于从子函数返回主界面

back=0;back2=0;back3=0;

main_meun();//【主界面函数】

while

(1)//主程序循环运行

{

scanf("%d",&a);

switch(a)

{

case1:

//进入管理员界面

{

printf("登陆密码【123】:

");

scanf("%d",&z);

if(z!

=123)gotoA;

B:

system("cls");//B为一个标志位,用于从子函数返回管理员功能界面

back=0;back2=0;back3=0;

manager_menu();//【管理员功能界面函数】

while

(1)

{

scanf("%d",&b);

switch(b)

{

case1:

{back2=book_add(back2);if(back2==1)gotoB;}//进入新书信息录入

case2:

{back2=search_1(back2);if(back2==1)gotoB;}//进入图书信息查询

case_3:

{back2=book_delete(back2);if(back2==1)gotoB;}//进入图书信息删除

case4:

gotoA;//返回主菜单

case0:

//退出系统

{

system("cls");

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

printf("-=感谢使用,再见!

=-\n");

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

exit(0);

}

}

}

}break;

case2:

//进入学生界面

{

C:

system("cls");//C为一个标志位,用于从子函数返回学生功能界面

back=0;back2=0;back3=0;

student_meun();//【学生功能界面函数】

while

(1)

{

scanf("%d",&c);

switch(c)

{

case1:

{back3=search_2(back3);if(back3==1)gotoC;}//进入图书信息查询

case2:

{back3=borrow(back3);if(back3==1)gotoC;}//办理借书手续

case3:

{back3=return_book(back3);if(back3==1)gotoC;}//办理还书手续

case4:

gotoA;//返回主菜单

case0:

//退出系统

{

system("cls");

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

printf("-=感谢使用,再见!

=-\n");

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

exit(0);

}

}

}

}break;

case0:

//退出系统

{

system("cls");

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

printf("-=感谢使用,再见!

=-\n");

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

exit(0);

}

}

}

}

/**********其他函数**********/

voidmain_meun()//【主界面函数】

{

printf("============================================================\n");

printf("||\n");

printf("|欢迎使用图书管理系统|\n");

printf("||\n");

printf("||\n");

printf("|[1].管理员登陆[2].学生登陆[0].退出系统|\n");

printf("||\n");

printf("============================================================\n");

printf("请选择:

");

}

voidmanager_menu()//【管理员功能界面函数】

{

printf("============================================================\n");

printf("||\n");

printf("|[1].新书信息录入|\n");

printf("||\n");

printf("|[2].图书信息查询|\n");

printf("||\n");

printf("|[3].图书信息删除|\n");

printf("||\n");

printf("|[4].返回主菜单|\n");

printf("||\n");

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

printf("||\n");

printf("============================================================\n");

printf("请选择:

");

}

voidstudent_meun()//【学生功能界面函数】

{

printf("============================================================\n");

printf("||\n");

printf("|[1].图书信息查询|\n");

printf("||\n");

printf("|[2].办理借书手续|\n");

printf("||\n");

printf("|[3].办理还书手续|\n");

printf("||\n");

printf("|[4].返回主菜单|\n");

printf("||\n");

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

printf("||\n");

printf("============================================================\n");

printf("请选择:

");

}

intbook_add(intback)//【新书信息录入函数】

{

FILE*fp;

structBook*p1;

longlonginta,b;

intn;

fp=fopen("图书信息数据库.txt","a+");

if(fp==NULL){printf("数据库打开错误!

请检查...\n");exit(0);}

while

(1)

{

A:

system("cls");//A为一个标志位,用于返回本函数首界面

p1=(structBook*)malloc(LONG);

fseek(fp,-11,SEEK_END);

fscanf(fp,"%lld",&a);

if(a<0)a=20011001;

fseek(fp,0,SEEK_END);

printf("上一本图书编号:

%lld\n",a);

printf("请输入新图书信息:

\n");

printf("===============================================================================\n");

printf("书名作者出版社年份索取号单价数量\n");printf("-------------------------------------------------------------------------------\n");

p1->number=a+1;

strcpy(p1->student_id,"未知");

strcpy(p1->student_name,"未知");

strcpy(p1->sex,"未知");

scanf("%s%s%s%s%s%s%d",p1->title,p1->author,p1->press,p1->year,p1->claim_number,p1->unit_price,&p1->collection);

p1->can_borrow=p1->collection;

fprintf(fp,"%s%s%s%s%s%s%d%d%s%s%s%lld\n",p1->title,p1->author,p1->press,p1->year,p1->claim_number,p1->unit_price,p1->collection,p1->can_borrow,p1->student_name,p1->sex,p1->student_id,p1->number);

fflush(fp);

if(1collection)

{

for(b=2;b<=p1->collection;b++)

{

p1->number=a+b;

fprintf(fp,"%s%s%s%s%s%s%d%d%s%s%s%lld\n",p1->title,p1->author,p1->press,p1->year,p1->claim_number,p1->unit_price,p1->collection,p1->can_borrow,p1->student_name,p1->sex,p1->student_id,p1->number);

fflush(fp);

}

}

printf("\a");

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

printf("[1].继续录入[2].结束录入\n");

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

printf("请选择:

");

scanf("%d",&n);

switch(n)

{

case1:

gotoA;

case2:

{fclose(fp);back=1;return(back);}

}

}

}

intsearch_2(intback)//【进入图书信息查询(学生版)】

{

FILE*fp;

chartitle[100];

structBook*p;

inta1=0,b1;

A:

system("cls");//A为一个标志位,用于返回本函数首界面

back=0;

printf("请输入书名:

");

scanf("%s",title);

fp=fopen("图书信息数据库.txt","r");

if(fp==NULL){printf("数据库打开错误!

请检查...\n");exit(0);}

p=(structBook*)malloc(LONG);

while(!

feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%d%d%s%s%s%lld\n",p->title,p->author,p->press,p->year,p->claim_number,p->unit_price,&p->collection,&p->can_borrow,p->student_name,p->sex,p->student_id,&p->number);

if(strcmp(title,p->title)==0)

{

a1=1;printf("===============================================================================\n");

printf("书名作者出版社年份索取号馆藏可借\n");printf("-------------------------------------------------------------------------------\n");printf("%-28s%-8s%-19s%-6s%-11s%-5d%d\n",p->title,p->author,p->press,p->year,p->claim_number,p->collection,p->can_borrow);

break;

}

}

if(a1==1)

{

fclose(fp);

printf("\n");

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

printf("[1].继续搜索[2].返回学生功能菜单[0].退出系统\n");

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

printf("请选择:

");

scanf("%d",&b1);

while

(1)

{

switch(b1)

{

case1:

gotoA;break;

case2:

return(back=1);

case0:

{

system("cls");

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

printf("-=感谢使用,再见!

=-\n");

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

exit(0);

}

}

}

}

if(a1==0)

{

fclose(fp);

printf("\a\n未找到与条件相符的图书!

\n\n");

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

printf("[1].继续搜索[2].返回学生功能菜单[0].退出系统\n");

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

printf("请选择:

");

scanf("%d",&b1);

while

(1)

{

switch(b1)

{

case1:

gotoA;break;

case2:

return(back=1);

case0:

{

system("cls");

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

printf("-=感谢使用,再见!

=-\n");

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

exit(0);

}

}

}

}

}

intsearch_1(int

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2