《图书管理系统c语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统c语言课程设计报告.docx(145页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、湖北文理学院程序设计课程设计报告1、项目描述设计图书管理系统,系统主要对象是学生和管理员。系统分为学生登录和管理员登录。从学生登录界面登录后主要能执行的功能有查阅书籍、借阅书籍、归还书籍等。各种查找方式例如:按书名查找、按编号查找、按作者查找、按出版社查找等等。从管理员登录后主要能执行的功能有增加新书、删除旧书、修改图书信息、图书统计及管理员的账号管理等。2、需求分析简单地说,项目需求分析就是要搞清楚要做什么,大致搞清楚具有哪些功能。在软件工程中,需求分析指的是在建立一个新的或改变一个现存的系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工作。需求分析是软件工程中的一个关键过程。
2、在这个过程中,系统分析员确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。具体地来说,包括下面几方面:(1)界面需求软件的操作界面是图形界面还是字符界面,以简洁清晰、操作方便为首要目标。图书管理系统初始界面:DL:图书管理系统1 .学生登录2 .管理员登录。.退出系统学生登录界面:DL_1_1学生登录界面1 .查阅图书2 .借阅图书3 .图书归还4 .返回上一层管理员登录界面:DL_2_1:管理员登录界面1 .增加新书2 .删除旧书3 .修改图书信息4 .图书统计5 .管理员账号管理6 .返回上一层查阅书籍界面:查阅图书7 .按书名查找8 .按作者查找9 .按图书编号
3、查找10 按出版社查找11 按出版时间查找12 查阅所有图书13 返回上一层14 返回主菜单借阅书籍界面:DL_1_1_2:借阅图书1 .借阅图书书名2 .借阅图书编号3 .返回上一层4 .返回主菜单归还书籍界面:图书书名:图书编号:是否归还(Y/N)1.返回上一层0.返回主菜单增加新书界面:DL_2_1:增加新书添加图书书名:是否添加(Y/N)1 .显示添加书籍信息2 .返回上一层3 .返回主菜单删除旧书界面:DL_2_1_2:删除旧书图书书名:图书编号:是否删除(Y/N)1.返回上一层0.返回主菜单修改图书界面:DL_2_1_3:修改图书信息1 .按书名查投函书2 .按编号查找图书3 .按
4、作者查找图书4 .按出版社查找图书5 .按出版时间查找6 .修改图书信息7 .返回上一层0.返回主菜单图书统计界面:DL_2_1_4:图书统计1.未借出的图书2.已借出的图书3.全部图书4.返回上一层0.返回主菜单(2)数据需求需要输入什么类型的数据、什么值的数据,即数据模型的建立。是由项目内容及软件设计者决定的。以数据描述的清晰、数据意义的完整为目标。图书信息编号:书名:作者:馆藏数量:借出数量:剩余数量:入馆时间:出版社:出版时间:出版社编号:建立图书信息的结构体:structTS编号: intBH书名:char SM【】作者:char ZZ【】馆藏数量:intGL借出数量:intJL剩余
5、数量:intSL入馆时间:intRtime 出版社:char 出版时间:int Ctime 出版社蝙号:intCBH1建立学生账号的结构体:struct Xzh账号:int XZH密码:char XMM 口确认密码:char XQM建立管理员账号的结构体:struct Gzh账号:int GZH密码:char GMM 确认密码:char GQM 口建立学生账号密保问题的结构体:struct XMB密保问题:char XMT密保答案:char XMA建立管理员账号密保问题的结构体:struct GMB密保问题:char GMT密保答案:char GM A建立借书信息的结构体:借书信息struct
6、 JX借书编号int JSH 借书书名char JSM借书时间int Jstime需还书时间:int XHstime借书账号:int Tszh1建立还书信息的结构体:还书信息struct HX还书编号:int Hsh还书书名:char HSM借书时间:char需还书时间:char XHHtimeE还书时间:char Hstime还书账号:int Hszh(3)功能需求系统应该具有哪些功能,与项目描述以及设计者的理解直接相关。对一般的管理软件来说,必须包括数据的输入输出、增删改查、排序、统计等功能。概要设计在软件工程的生命周期中处于核心地位。一旦对软件需求进行了分析和建模,接下来的工作就是软件设
7、计了,首先就是项目的概要设计。在软件系统设计的过程中,开发者定义项目的设计目标,将系统分解为更小的子系统,这些子系统可以由各个团队分别实现,开发者还要选择构建系统的策略,比如硬件/软件策略、持久性数据管理策略、全局控制流、访问控制策略、边界条件处理等。系统设计后得到的是一个包括子系统分解和每个策略都清晰描述的模型。概要设计是与算法无关的,它由一些活动组成,每一个活动都专注于分解系统整个问题中的某一部分:标识设计目标。开发者标识并区分应进行优化的各种系统特征的优先顺序。以概要设计为基础,每个功能模块用一个或多个函数来实现,书写每个函数的算法,规划各函数之间的调用关系。void DL();登录界面
8、void DL();学生登录界面void DL_2();管理员登录界面void DL();学生功能主界面void Cbook();查阅图书void Jbook ();借阅图书 void Hbook();归还图书 void DL_20;管理员功能主界面 void ZbookO ;增加新书 void Sbook();删除旧书 void Xbook();修改图书信息 void Tbook();图书统计 void GLZHO ;管理员账号管理 void cbookN();/按书名查找 void cbookWO ;按作者查找 void cbookBO ;按编号查找 void cbookCO ;按出版社查
9、找 void cbookT。;/按出版时间查找 void cALLbook();/查询所有图书 void jbookNO ;按书名借阅 void jbookBO ;按书编号借阅 void hbookN。;按书名还书 void hbookB。;按编号还书void studentM();学生登录 void ZHsqO:学生账号注册 void GLYMO ;/管理员登录void sbookN();按书名删除 void sbookBO ;按编号删除 void xbookNO ;/按书名修改 void xbookBO;/按编号修改void Wbook();未借图书void Ybook();已借图书voi
10、d ALLbook();/全部图书void XGmmO ;修改管理员密码void Cjh();查询借还书信息void XJZHO ;新建管理员账号5、程序编辑和调试严格按照详细设计中的算法,编写各函数的代码,同时进行单个函数的编译、链接、运行、修改;集成编译、链接、运行、修改。这一阶段,学生可能认为是最重要、最漫长的,实则不然。真正重要的是前面的概要设计和详细设计,若它们的设计不完善、不准确,将导致编码、编译、调试的漏洞百出、顾此失彼。#include#include#include#include#include#include#includestruct TS 图书信息(int BH;ch
11、ar Bname20;char Wname20;int GL;int SL;int Rtime3;char CB20;int CBH;TS TS1000;图书信息存储struct Zh 账号schar ZH20;char MM20;);zh xhEiooo;学生账号存储Zh Gh1000;管理员账号存储struct JHX借书信息(int JSH;char JSM10;int Jstime3;int XHstime3;char Jszh20;int Hstime3;int jh;);JHX jhsx1000;struct CHSchar CB20;int CBH;):char ZH20;输入账
12、号char jlzh20;记录账号int XZN;学生账号个数int GZN;管理员账户个数int NBOOK;/书的数量int JHlength;/借书信息长度char;输入密码void DL();登录界面void DL();学生登录界面void DL_2();管理员登录界面void DL();学生功能主界面void Cbook();查阅图书void Jbook();借阅图书void HbookO ;归还图书void DL_2O;管理员功能主界面void Zbook();增加新书void Shook ();删除旧书void XbookO ;修改图书信息void Tbook();图书统计voi
13、d GLZHO ;管理员账号管理void cbookNO ;按书名查找 void cbookW。;按作者查找 void cbookB();按编号查找 void cbookCO ;按出版社查找 void cbookTO ;/按出版时间查找 void cALLbook。;查询所有图书 void jbookN();按书名借阅 void jbookBO ;按书编号借阅 void hbookN。;/按书名还书 void hbookB();按编号还书 void studentM();学生登录 void ZHsqO;学生账号注册 void GLYMO;管理员登录 void sbookNO;/按书名删除 vo
14、id sbookBO ;按编号删除 void xbookNO ;按书名修改 void xbookBO ;/按编号修改 void Wbook();未借图书 void Ybook();已借图书 void ALLbook();/全部图书 void XGmm();修改管理员密码 void Cjh();查询借还书信息 void XJZHO;新建管理员账号 void XIETS0: void DUTS ();void XIENUMO ;void DUNUM();void XIEXHO ;void DUXHO ;void XIEGHO ;void DUGH();void XIEJHXO;void DUJHX
15、 ();void XIE();void DU ();void PX();int Time(int a, int b, int c口);时间区间比较int Stime(int a口);计算年月日为该年第几天void SRtime(int a, int b口);输入年和天数,计算该年几月几日void main()(DUO;DL();void DL()printf(ttt*n);printf (/zttt/n);printf(ttt欢迎进入图书管理系统n);printf(ttt*n);printf(n);printf (ttt*1.学生登录*n)printf(ttt*2.管理登录*n)printf(
16、*ttt*0.退出系统*n)printf Cttt*n)printf(ttt*n);printf (z/ttt 请选择.;dl: scanf (%d,&i);fflush(stdin);if(i=2)(system(cls);switch(i)case 1:DL_1();break;case 2:DL_2();break;case 0:XIE();exit (0);elseprintf(/zttt输入数字不符合要求,请重新输入.;goto dl;)void DL_1()printf(ttt*n*); printf(wttt/WWWWWWWWWWWWXWWn);printf(XtVtXt/学生登
17、录WWWWWWWWWWWWWW);printf (ttt*n);printf;printf (ttt*1.账号登录*n);printf2.账号注册printf (ttt*0.退出*n);printf(ttt*n);printf(ttt*n);printf (*ttt 请选择.;dl: scanf(%d,&i);fflush(stdin);if(i=2)system(cls);switch (i)(case 1:studentMO ;break;case 2:ZHsqO ;break;case 0:DL();I elseprintf Cttt输入数字不符合要求,请重新输入.); goto dl;
18、)void DL_2()printf(ttt*n);printf (tttWWWWWWWWWWWWWWW);printf(ttt管理员登录WWWXWWWWWWWWn);printf(ttt*n*);printf;printf(ttt*n);1.账号登录*n);0.退出*n);printf*n);printf(ttt*n);printf (z/ttt 请选择.;dl: scanf&i);fflush(stdin);if (i=2)system(cis);switch(i)case 1:GLYM();break;case 0:DL();elseprintfCttt输入数字不符合要求,请重新输入.;
19、 goto dl;)void DL_1_1()int i;printf (/zttt*n);printf(/ttt/WWWWWWWWWWWWWWW);printf(XtVtXt/学生主界面WnO ;printf(ttt*n);printf (n);printf(ttt*n);printf (ttt*1.查阅图书*n)printf(ttt*2.借阅图书*n)printf (ttt*3.归还图书*n)printf(ttt*0.返回上一层*n);printf(ttt*n)printf(ttl*n);printf Cttt 请选择.dl: scanf(%d,&i);fflush(stdin);if(i
20、=3)system(cls);switch (i)(case 1:Cbook ();break;case 2: JbookO ; break; case 3:Hbook ();break;case 0:DL_1();) elseprintf(z,ttt输入数字不符合要求,请重新输入.);goto dl;void DL_1_3()()void DL_2_1()int i;printf(ttt*n);printf(z,ttt/二Wn9; printf (ttt/管理员主界面WWWWWWWWW);printf(ttt*n);printf(rT);printf (z/ttt *n)printfCttt
21、*1.增加新书*n)printf(ttt*2.删除旧书*n)printf(ttt*3.图书统计*n);printfCttt*4.修改图书信息*n)printf (ttt*5.管理员账号管理*n);printf(ttt*0.返回上一层*n);printf(ttt*n)printf(ttt*n);printf (ttt 请选择.);dl:scanf&i);fflush(stdin);if(i=5)system(,cls,/);switch(i)(case 1:Zbook ();break;case 2:Shook ();break;case 3:Tbook ();break;case 4:Xboo
22、k ();break;case 5:GLZHO ;break;case 0:DL_2();elseprintfCttt输入数字不符合要求,请重新输入.);goto dl;void Cbook ()printf(ttt*n);printf(ttt/n);printf (ttt查阅图书n);printf(ttt*n);printf ;printf(ttt*n);printf1.按书名查找*n)printf(ttt*2.按作者查找*n)printf(ttt*3.按编号查找*n);printf(ttt*4.按出版社查找*n)printf (ttt*5.按出版时间查找*n);printfCttt*6.查
23、阅所有图书*n);printf(ttt*7.返回上一层*n);printf (ttt*0.返回主菜单*n);printf(z,ttt*n)printf(ttt*n);printf (,zttt 请选择.);dl:scanf &i);fflush(stdin);if(i=7)(system(cls);switch(i)(case 1:cbookN ();break;case 2:cbookW ();break;case 3:cbookBO ;break;case 4:cbookC ();case 5:cbookT ();case 6:cALLbook ();case 0:DL_1_1();) e
24、lseprintffttt输入数字不符合要求,请重新输入.; goto dl;);void Jbook ()int i;printf(ttt*n);printfCttt/WnO:printf(wttt/借阅图书WWWWWWWWWWWWWK);printf(ttt*n);printf(n);printf (,zttt*1.借阅图书书名*n);printf (ttt*2.借阅图书编号*n);printf (ttt*3.返回上一层*n);printfCttt*0.返回主菜单printf(ttt*n);printf Czttt 请选择.;dl: scanf(%d,&i);fflush(stdin);i
25、f(i=3)(system(cis);switch(i)case 1:JbookN ();break;case 2:jbookB ();break;case 3:DL_1_1();break;case 0:DL_1_1();) else(printffttt输入数字不符合要求,请重新输入); goto dl;);void Hbook ()printf(ttt*n);printfCttt/WWWWWWWWWWWWWWW);printf (tt以/归还图书WWWWWWWWWWWWWW);printf(ttt*n);printf (n);printf (ttt*L 按书名归还*n);printf (
26、z,ttt*2.按编号归还*n);printf (,zttt*7.返回上一层*n);printf (ttt*0.返回主菜单*n);printf(ttt*n);printf(ttt*n);printf (ttt 请选择;dl: scanf (d”,&i);system(cls); switch(i)case 1:hbookN ();break;case 2:hbookB ();break;case 3:DL_1_1();break;case 0:DL_1_1();) else(printfCttt输入数字不符合要求,请重新输入.); goto dl;);void Zbook ()(int i,
27、j;char ch;printf(ttt*n); printf (,/ttt/Wn3;printfCttt/增加新书Wn3;printf(ttt*n);DL:for(i=0;iNB00K;i+)if(TSi.BH=O)break;)if(TSi. BH=O&i!=NBOOK)printf (,zttt请输入添加新书的信息.n);dl:printf (ttt 书名:”);scanfTSi. Bname);for(j=0;jNBOOK;j+)if(strcmp(TSj. Bname, TSi. Bname)=0&j!=i)(printfCttt输入书名重复,是否重新输入(Y/N)fflush(st
28、din);scanf(%c”,&ch);fflush (stdin);if (ch=,y*| ch=, Y)goto dl; elseprintf (/zttt 返回上一层.;Sleep(2000);system(cls);DL_2_1();printf (ttt 作者:”);scanfTSi. Wname);printf (ttt 出版社:”);scanfC%s*,TSi.CB);printf Cttt 出版社编号:”);scanf(%d”,&TSi.CBH);printf (ttt 出版时间:);scanf(,%d%d%d/,,&TSi.RtimeO,&TSi. Rtimel,&TSi.R
29、time2);printf Cttt 馆藏数量:);fflush(stdin);scanfC%d,/,&TSi.GL);TSi.SL=TSi.GL;else(printf Cttt请输入添加新书的信息.n);dl2:printf (ttt 书名:”);scanf (飞s”,TSNBOOK.Bname);for(j=0;jNB00K;j+)if(strcmp(TSj. Bname, TSNBOOK. Bname)=0)(printf(ttt输入书名重复,是否重新输入(Y/N).);fflush(stdin);scanf(%c”,&ch);fflush(stdin);if (ch=, y| ch=
30、,Y)(goto dl2; else(printf (*ttt 返回上一层.;Sleep(2000);system(cis);DL_2_1();printf(ttt 作者:);scanf (飞s”, TS NBOOK. Wname);printf Cttt 出版社:”);scanf(%s”, TSNBOOK. CB);printf (ttt 出版社编号:);scanf&TSNBOOK. CBH);printf (ttt 出版时间:);scanf (,%d%d%d/,,&TSNBOOK. Rtime0,&TSNBOOK, Rtime1,&TSNBOOK. Rtime2);printf (ttt
31、馆藏数量:);scanf&TSNBOOK. GL);TSNBOOK. SL=TSNBOOK. GL;TSi.BH=NBOOK+l;NBOOK+;)printf (ttt添加完成,是否继续添加(Y/N)fflush(stdin);scanf(%c”,&ch);fflush(stdin);if (ch=,Y|ch=,y)goto DL; else(printf Cttt 返回上一层.;Sleep (1000);system(,cls/);DL_2_1();void Shook ()(int i;printf(ttt*n);printf(/ttt/二WWWWWWWWWWWWWWW);printf (
32、,?ttt/删除旧书WWWWWWWWWWWWWK);printf (z,ttt *n*)printf(n);printf(ttt*n)printf (ttt*L按书名删除*n)printf(ttt*2.按编号删除*n);printf (,zttt*3.返回上一层*n);printf(ttt*0.返回主菜单*n);printf(ttt*n);printf(ttt*n*);printf (z/ttt 请选择.);dl: scanf &i);if(i=3)system(cls);switch(i)case 1:sbookN ();break;case 2:sbookB();break;case 3:
33、DL_2_1();break;case 0:DL_2_1();else(printffttt输入数字不符合要求,请重新输入.;system(cls);goto dl;void Xbook ()int i;printf(ttt*n);printf(tttWWWWWWWWWWWWWWW);printf (ttt/修改图书信息WWWWWWWWWW);printf(ttt*n);printf(n);printf(ttt*n)printf (ttt*L按书名查找*n)printf(ttt*2.按编号查找*n);printf(ttt*3.返回上一层*n);printf(ttt*0.返回主菜单*n);pri
34、ntf(ttt*n)printf (,zttt*n);printf请选择.dl: scanf (d”,&i); if(i=3)system (cis);switch (i)case 1:xbookN0;break;case 2:xbookB0;break;case 3:DL_2_1();break;case 0: DL_2_1(); else(printfCttt输入数字不符合要求,请重新输入.); system(cls);goto dl;)void Tbook ()printf(ttt*n*);printf(/,ttt/WnO ;printf(wttt/图书统计WWWWWWWWWWWWWW);printf(