C语言课程设计图书管理系统课程设计报告
c语言程序设计报告--图书管理系统_第二组

C语言课程设计报告图书信息管理系统设计第二组指导老师:韩晶C语言程序设计C语言程序设计实践是学习C语言的重要一环。
在实践中我们运用所有所学的C语言知识完成此次项目。
任何上机实践都增强我们对C语言的理解及运用能力。
虽然此次项目对我们初学者来说是一个巨大的工程,但组员之间的合作让我们顺利解决了各种难题。
谨以此成果献给所有费尽心血的第二小组成员及不断给予指导的韩老师。
一.题目要求1.设计题目:图书信息管理系统2.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格3.系统实现以下功能:1)系统以菜单方式工作。
2)图书信息录入功能——输入。
3)图书信息浏览功能——输出。
4)查询和排序功能:(1)按书名查询(2)按作者名查询(3)按登录号排序(4)按图书价钱排序5)图书信息的删除与修改。
二.设计分析概括根据题目要求分析可知我们需要程序提供一个结构体及文件的输入输出功能。
图书信息以结构体的形式存入固定文件中,在此基础上实现图书信息的浏览,查询和排序,删除与修改功能。
并将各种功能分为不同的子程序,在主程序上进行调用及运行。
程序界面菜单以键盘输入选择的方式来运行各种功能。
三.总体设计根据题目要求将程序分为以下部分:1.管理员登陆系统模块2.菜单选择模块3.图书信息录入功能模块4.图书信息浏览功能模块5.图书信息查询功能模块6.图书信息的删除与修改模块四.具体编程#include<stdio.h>typedef struct bkInfo /*图书信息结构体*/{char idNum[20]; /*图书编号*/char bkName[20]; /*书名*/char writer[10]; /*作者名*/char press[10]; /*出版社*/char pubTime[10]; /*出版时间*/char price[10]; /*价格*/char claNum[14]; /*分类号*/} ;#define x 4#define y 6int main(){void menua(); /*管理员菜单*/void menub(); /*读者菜单*/void bkadd(); /*图书信息添加*/int choice1,chlan;int choice2,idcode=1615,passcode=123,idcheck,passcheck;clrscr();1.登录菜单printf("\n==============================================================");printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n ||\t\t *** WELCOME TO THE *** ||");printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n || UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION ||"); printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n ||\t\t *** STANDERD SYSTEM *** \t\t ||");printf("\n ||\t\t\t ( ALPHA-X-%d.%d )\t\t\t ||",x,y);printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n ||\t\t\tpowered by Group II \t\t\t ||");printf("\n ||\t\t\t\t\t\t\t\t ||");printf("\n==============================================================");printf("\n\n\t ---------------------------------------");printf("\n\t\t >>> ENTER THE SYSTEM? Y/N <<<");printf("\n\t ---------------------------------------\n");printf("\n\n\t[] Enter 1 for YES or 2 for NO"); /*是否选择进入*/printf("\n\nYOU CHOOSE:");scanf("%d",&choice1);2.管理员模式/读者模式进入while(choice1!=1&&choice1!=2) /*选择号错误*/{printf("\n\n\t[] Unidentified option,please recheck!");printf("\n\t[] Enter 1 for YES or 2 for NO");printf("\n\nYOU CHOOSE:");scanf("%d",&choice1);}switch(choice1){case 1: /*选择进入系统*/printf("\n\n\t\t ACCESS confirmed loading...");printf("\n\n\t[] Is this an Administrator Visit or a General Visit?");printf("\n\n\t[] Enter 1 for your Administrator Visit or 2 for the other.\n\n"); printf("\nYOU CHOOSE:"); /*选择管理员模式或读者模式*/ scanf("%d",&choice2);while(choice2!=1&&choice2!=2) /*进入模式选择号错误*/ {printf("\n\n\t[] Unidentified option,please recheck!");printf("\n\t[] Enter 1 for your Administrator Visit or 2 for the other.");printf("\n\nYOU CHOOSE:");scanf("%d",&choice2);}if(choice2==1) /*进入管理员模式*/{printf("\n\n\t ----------------------------------------------------");printf("\n\t LOGIN >>>please enter your ID CODE & PASSWORD<<<");printf("\n\t ----------------------------------------------------\n");printf("\nYOUR ID:");scanf("%d",&idcheck);printf("\nPASSWORD:");scanf("%d",&passcheck);while(idcheck!=idcode || passcheck!=passcode)/*通行证与密码错误*/ {printf("\n\n\t[] Unidentified ID or wrong PASSWORD,ACCESS refused,please recheck!");printf("\n\t[] please enter your ID CODE & PASSWORD");printf("\n\nYOUR ID:");scanf("%d",&idcheck);printf("\nPASSWORD:");scanf("%d",&passcheck);}if(idcheck==idcode && passcheck==passcode)/*进入管理员模式菜单*/ {printf("\n\n\n\n\t[] ACCESS for Noble Class has been authorisedloading...");printf("\n\n\t[] Administor System at your service !");printf("\n\n\n\t[] Please choose a language service: 1.Chinese 2.English3.French");printf("\n\nYOU CHOOSE:"); /*语言选择*/scanf("%d",&chlan);while(chlan!=2){if(chlan>3){printf("\n\n\t[] Unidentified option,please recheck!");printf("\n\t[] Please choose a language service: 1.Chinese 2.English3.French");}else{printf("\n\n\t[] ERROR: NO LANGUAGE PACKAGE HAS BEEN FOUND !");printf("\n\t[] Please choose a language service: 1.Chinese 2.English3.French");}printf("\n\nYOU CHOOSE:");scanf("%d",&chlan);}if(chlan==2){menua();}}}if(choice2==2) /*进入读者模式*/{printf("\n\n\n\n\t[] OPTION CONFIRMED,LANGUAGE PACKAGE is laoding...please wait...\n");printf("\n\t[] ACCESS authorised loading...");printf("\n\n\t[] Visitor System operational...");menub();}break;case 2: /*选择不进入系统*/printf("\n\n\t\t\t\t ***QUIT***");printf("\n\t\t\tTHANKS FOR USING,SO LONG !!!\n");printf("\n\n UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION-STANDERD SYSTEM-%d.%d",x,y);printf("\n\t\t powered by Group II in 3.2012");printf("\n\n\n\t\t\t SPECIAL THANKS FOR\n");printf("\n\t[] Peter Horuce ^_^ for Main Function & Debugging");printf("\n\t[] WangYueWei ^_^ for Program Design & ...");printf("\n\t[] ZhangYanDong ^_^ for Book Data Input Function");printf("\n\t[] ZhangBeiBei ^_^ for the ...");printf("\n\t[] GuoXinYu ^_^ for the ...");printf("\n\t[] SongShaoXiu ^_^ for the ...");printf("\n\t[] GuLingKai ^_^ for the ...");printf("\n\t[] ZhenYiFeng ^_^ for the ...");printf("\n\t[] WangJieYao ^_^ for the ...");printf("\n\t[] LiLuZi ^_^ for the ...");printf("\n\t[] WangSanHu ^_^ for the ...");printf("\n\t[] HuangFangHao ^_^ for the ...");printf("\n");getch();break;}return 0;}3.管理员模式系统void menua(){int ch,out;printf("\n\n\n\t[] OPTION CONFIRMED,LANGUAGE PACKAGE is laoding...please wait...\n\n");printf("\n\t\t*********************************");printf("\n\t\t*\t\t\t\t*");printf("\n\t\t* CENTRAL BOOK ADMINISTRATION *");printf("\n\t\t*\t\t\t\t*");printf("\n\t\t*********************************\n\n");printf("\t\t\t <<< M E N U >>>\n\n");printf("\t\t 1.Book Data Input\t2.bkamend\n\n");printf("\t\t 3.bkdelete\t\t4.bkorder\n\n");printf("\t\t 5.bksearch\t\t6.bkview\n\n");printf("\t\t 7.QUIT\n\n\n");printf("PLEASE CHOOSE A SERVICE:");scanf("%d",&ch); /*服务选择*/while(ch>7){printf("\n\n\t[] Unidentified option,please recheck!\n");printf("\n\nPLEASE CHOOSE A SERVICE:");scanf("%d",&ch);}switch(ch){case 1:printf("\n\t[] As you wish!\n");bkadd();break;case 2:printf("\n\t[] As you wish!\n");break;case 3:printf("\n\t[] As you wish!\n");break;case 4:printf("\n\t[] As you wish!\n");break;case 5:printf("\n\t[] As you wish!\n");break;case 6:printf("\n\t[] As you wish!\n");break;case 7:printf("\n\n\t\t\t\t ***QUIT***");printf("\n\t\t\tTHANKS FOR USING,SO LONG !!!\n");printf("\n\n UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION-STANDERD SYSTEM-%d.&d",x,y);printf("\n\t\t powered by Group II in 3.2012");printf("\n\n\n\t\t\t SPECIAL THANKS FOR\n");printf("\n\t[] Peter Horuce ^_^ for Main Function & Debugging");printf("\n\t[] WangYueWei ^_^ for Program Design & ...");printf("\n\t[] ZhangYanDong ^_^ for Book Data Input Function");printf("\n\t[] ZhangBeiBei ^_^ for the ...");printf("\n\t[] GuoXinYu ^_^ for the ...");printf("\n\t[] SongShaoXiu ^_^ for the ...");printf("\n\t[] GuLingKai ^_^ for the ...");printf("\n\t[] ZhenYiFeng ^_^ for the ...");printf("\n\t[] WangJieYao ^_^ for the ...");printf("\n\t[] LiLuZi ^_^ for the ...");printf("\n\t[] WangSanHu ^_^ for the ...");printf("\n\t[] HuangFangHao ^_^ for the ...");printf("\n");getch();break;}}4.读者模式系统void menub(){int cho,out;printf("\n\n\n\t\t ***** INQUIRY OF BOOK INFORMATION *****");printf("\n--------------------------------------------------------------------------------");printf("\n\n\t\t\t <<< M E N U >>>\n\n");printf("\t\t 1.[restricted]\t 2.[restricted]\n\n");printf("\t\t 3.[restricted]\t 4.[restricted]\n\n");printf("\t\t 5.bksearch\t\t 6.bkview\n\n");printf("\t\t 7.QUIT\n\n\n");printf("PLEASE CHOOSE A SERVICE:");scanf("%d",&cho); /*服务选择*/while(cho>7 || cho<5){if(cho>7)printf("\n\n\t[] Unidentified option,please recheck!\n");if(cho>=1 && cho<=4)printf("\n\n\t[] Restricted option! You are not an authorised administor!\n"); printf("\n\nPLEASE CHOOSE A SERVICE:");scanf("%d",&cho);}switch(cho){case 5:break;case 6:break;case 7:printf("\n\n\t\t\t\t ***QUIT***");printf("\n\t\t\tTHANKS FOR USING,SO LONG !!!\n");printf("\n\n UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION-STANDERD SYSTEM-%d.&d",x,y);printf("\n\t\t powered by Group II in 3.2012");printf("\n\n\n\t\t\t SPECIAL THANKS FOR\n");printf("\n\t[] Peter Horuce ^_^ for Main Function & Debugging");printf("\n\t[] WangYueWei ^_^ for Program Design & ...");printf("\n\t[] ZhangYanDong ^_^ for Book Data Input Function");printf("\n\t[] ZhangBeiBei ^_^ for the ...");printf("\n\t[] GuoXinYu ^_^ for the ...");printf("\n\t[] SongShaoXiu ^_^ for the ...");printf("\n\t[] GuLingKai ^_^ for the ...");printf("\n\t[] ZhenYiFeng ^_^ for the ...");printf("\n\t[] WangJieYao ^_^ for the ...");printf("\n\t[] LiLuZi ^_^ for the ...");printf("\n\t[] WangSanHu ^_^ for the ...");printf("\n\t[] HuangFangHao ^_^ for the ...");printf("\n");getch();break;}}5.图书添加void bkadd(){struct bkInfo book;FILE *fp;int n,i,j;char message[2];if((fp=fopen("e:\\bkInfo.txt","a"))==NULL){if((fp=fopen("e:\\bkInfo.txt","w"))==NULL){printf("Failed to open the file\n");return;}}printf("\n\n\n\t\t==========================\n");printf("\t\t Book Information Input \n");printf("\t\t==========================\n\n");printf("\t[] The number of your books that are to write in is(are):");scanf("%d",&n);gets(message);for(i=1;i<=n;i++){printf("\n\n\t[] Now please write in the info:\n\n\n");printf("\t1.BOOK'S ID: ");gets(book.idNum);printf("\t2.BOOK'S NAME: ");gets(book.bkName);printf("\t3.AUTHOR'S NAME: ");gets(book.writer);printf("\t4.PRESS OF BOOK: ");gets(book.press);printf("\t5.BOOK'S PRICE: ");gets(book.price);printf("\t6.PUBLISHED TIME: ");gets(book.pubTime);printf("\t7.CLASSIFICATION: ");gets(book.claNum);fprintf(fp,"%s %s %s %s %s %s %s\n",&book.idNum,&book.bkName,&book.writer, &book.press,&book.price,&book.pubTime,&book.claNum);}printf("\n\n\n\t[] All data have been saved!\n\n\t[] Back to MENU(1) or just QUIT(2) ?");printf("\n\nYOU CHOOSE:"); /*服务选择*/scanf("%d",&j);while(j!=1&&j!=2){printf("\n\n\t[] Unidentified option,please recheck!");printf("\n\t[] Enter 1 for MENU or 2 for QUIT");printf("\n\nYOU CHOOSE:");scanf("%d",&j);}if(j==1) /*返回菜单*/{printf("\n");menua();}if(j==2) /*选择结束*/{ printf("\n\n\t\t\t\t ***QUIT***");printf("\n\t\t\tTHANKS FOR USING,SO LONG !!!\n");printf("\n\n UNITED ADMINISTRATION AND INQUIRY OF BOOK INFORMATION-STANDERD SYSTEM-%d.&d",x,y);printf("\n\t\t powered by Group II in 3.2012");printf("\n\n\n\t\t\t SPECIAL THANKS FOR\n");printf("\n\t[] Peter Horuce ^_^ for Main Function & Debugging");printf("\n\t[] WangYueWei ^_^ for Program Design & ...");printf("\n\t[] ZhangYanDong ^_^ for Book Data Input Function");printf("\n\t[] ZhangBeiBei ^_^ for the ...");printf("\n\t[] GuoXinYu ^_^ for the ...");printf("\n\t[] SongShaoXiu ^_^ for the ...");printf("\n\t[] GuLingKai ^_^ for the ...");printf("\n\t[] ZhenYiFeng ^_^ for the ...");printf("\n\t[] WangJieYao ^_^ for the ...");printf("\n\t[] LiLuZi ^_^ for the ...");printf("\n\t[] WangSanHu ^_^ for the ...");printf("\n\t[] HuangFangHao ^_^ for the ...");printf("\n");getch();}fclose(fp);}五.后记1. 课程设计中遇到的主要问题和解决方法2. 创新和得意之处•界面美观•管理员有固定的登录名和密码•有语言包的选择:满足大部分人群需求•管理员和读者都可登录:系统包容性大•错选反馈:人机交互性强•一次性多重输入:方便操作•退出送别3. 设计中存在的不足及改进的设想由于编译器的局限,我们未能实现语言多重化的目标,目前系统中只存在英文版本。
C语言程序设计报告-图书管理系统【范本模板】

南京航空航天大学金城学院《C语言程序设计》课程设计报告图书信息管理系统学号:姓名:学号:姓名:日期:目录一、需求分析: (3)二、程序的主要功能: (3)三、程序运行平台: (3)四、系统总框架图: (6)五、程序类的说明:………………………………………………。
6六、模块分析: (8)七、比较有特色的函数: (9)八、存在的不足与编程体会 (10)九、程序源代码: (10)一、需求分析设计与分析一个图书信息管理系统,能够对图书的根据书名、价格或出版社进行统计、处理和更新,并且可以方便学校老师和领导对图书进行整体分析。
二、程序的主要功能➢图书信息界面美观、简洁,采用菜单式显示功能选择;➢能够从磁盘文件输入和输出数据;➢能够对图书信息进行检索操作;➢具有增、删、改信息的功能;➢使用结构体链表数据类型对图书信息进行描述和存储。
三、程序运行平台VC6。
0运行程序“library。
exe”,进入登录界面如下************ 欢迎光临********************************图书信息管理系统************************============1-用户登录=======================0-退出系统===========请输入您的选择:一、输入1进行登录-——-—-----————--——*图书信息管理系统*———--————-—-—----—********************************************************************************************|| 1-添加图书2-删除图书|||| 3-图书列表4-图书排序||||5—查询图书6—修改图书|||| 7-录入数据0-退出系统||********************************************************************************************请输入所选择的序号:选择1进入添加图书模块:请输入您要添加的图书的编号:选择2进入删除图书信息模块:请输入要删除的图书编号:选择3进入显示图书列表模块图书信息列表如下==========================================================编号图书名作者名出版社类别出版时间价格2 2 2 2 2 2 2.003 3 3 3 3 3 3.0033 15 5 2 5 52 5。
C语言图书管理系统程序设计报告

目录一、设计任务书 (3)二、本组课题及本人任务 (3)三、程序功能简介 (4)四、主体内容 (4)1.设计分析 (4)2.程序结构 (5)3.各模块的功能及程序说明 (5)4. 源程序 (6)5.操作方法 (17)6.试验结果 (18)7.设计体会 (22)五、附录 (23)1.流程图 (23)2.过程列表 (26)一、设计任务书1.目的1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握。
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。
2)系统设计要实用,编程简练,可用,功能全面。
3)说明书、流程图要清楚。
4)记录设计情况(备查,也为编写设计说明书作好准备)。
5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6)设计上交内容:设计报告一份(按格式书写);源程序一份,能编译成可执行文件并能正常运行。
二、本组课题及本人任务课题:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:1.系统以菜单方式工作。
2.图书信息录入功能(图书信息用文件保存)--输入。
3.图书信息浏览功能--输出。
4.查询和排序功能:(至少一种查询方式)--算法。
a. 按书名查。
b.按作者名查询。
本人任务:负责设计和编写图书信息管理系统的修改图书信息部分。
三、程序功能简介本系统是以visual C++ 6.0 环境下用C语言开发的一个图书管理系统。
本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、作者查找)功能。
c语言课程设计图书管理系统

c语言课程设计图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本知识,能够运用C语言设计简单的图书管理系统。
具体目标如下:1.知识目标:•掌握C语言的基本语法和数据结构。
•理解图书管理系统的需求和设计原理。
2.技能目标:•能够使用C语言进行程序设计和调试。
•能够独立设计并实现图书管理系统的功能模块。
3.情感态度价值观目标:•培养学生的编程兴趣和自主学习能力。
•培养学生的团队协作能力和问题解决能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的需求分析和设计。
具体内容如下:1.C语言的基本语法:•变量和数据类型•运算符和表达式•函数和数组2.数据结构:3.图书管理系统的需求分析和设计:•用户界面设计•图书信息管理•借阅信息管理•查询和统计功能三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法和数据结构,使学生掌握相关知识。
2.案例分析法:通过分析图书管理系统的需求和设计案例,使学生理解并能够独立设计类似的系统。
3.实验法:通过编写和调试代码,使学生掌握C语言编程的技巧和方法。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
具体如下:1.教材:选用权威出版的C语言编程教材,为学生提供系统的学习资料。
2.参考书:提供相关的C语言编程参考书籍,供学生深入学习和参考。
3.多媒体资料:制作课件和教学视频,以图文并茂的方式呈现教学内容,增强学生的学习兴趣。
4.实验设备:提供计算机和相关的编程工具,为学生提供实践编程的机会。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现:通过课堂参与、提问和小组讨论等方式评估学生的学习态度和参与程度。
2.作业:布置适量的编程作业,评估学生的编程能力和对知识的掌握程度。
3.考试:进行期中和期末考试,评估学生的综合运用能力和对知识的全面掌握。
C语言图书管理系统程序设计报告

高级语言程序设计(2)课程设计一程序设计说明书【设计题目】图书馆借阅管理【问题描述】图书馆,适合用C++面向对象的功能来描述。
图书馆管理系统分为借书、还书、图书管理和读者服务等四个部分。
设计一个读者类Reader,记录每个读者基本信息;读者库类Rdatabase,记录所有读者信息;图书类Book, 记录每本书的基本信息;图书库类Bdatabase, 记录所有图书信息。
【基本要求】1读者库类RDatabase中,其构造函数中,将read.txt文件中所有读入读者记录rede[]中。
处理完毕,在析构函数中将read[]中的所有未删记录写入到read.txt中。
2图书库类BDatabase中,其构造函数中,将book.txt文件中所有读入图书记录book[]中。
处理完毕,在析构函数中将book[]中的所有未删记录写入到book.txt中。
3 利用构造函数完成读者和图书数据初始化,完成内存分配。
程序结束前,析构函数完成所申请的堆内存空间。
4 编写主函数,对所编写的矩阵类进行全面测试。
要求用户界面采用菜单方式。
测试中需要读者和图书数据通过I/O流从磁盘文件读入,同时显示在屏幕上。
得到的数据通过I/O流写入磁盘文件保存,同时显示在屏幕上。
5 源程序中要有充分的注释,报告中要有详细的流程图和文字材料。
【类的设计】该程序包含了四个类,如下:1.Reader类,有读者的基本管理功能,具有以下私有数据:int tag;//删除标记 1:已删;0:未删int no;//读者编号char name[10];//读者姓名int borbook[Maxbor];//所借图书2.读者库类Rdatabase, 具有以下私有数据:int top;//读者记录指针Reader read[Maxr];//读者记录3.图书库类Book,有一本图书的基本功能,有以下私有数据:int tag;//删除标记 1:已删;0:未删int no;//图书编号char name[20];//书名int onshelf;//是否在架 1在架 0已借4.图书库类BDatabase,有以下私有数据:int top;//图书记录指针Book book[Maxb];//图书记录【特殊函数的设计说明】构造函数1.Reader类中构造函数Reader(),初始化函数;2.读者库类RDatabase中,其构造函数Rdatabase(),将read.txt文件中所有读入读者记录rede[]中。
图书信息管理系统——C语言课程设计报告

课程设计报告课程名称C语言程序设计课题名称图书信息管理系统专业电子技术班级1101班学号201101040240姓名陈正军指导教师2012年6 月19 日湖南工程学院课程设计任务书课程名称C语言程序设计课题图书信息管理系统专业班级电子技术1101班学生姓名陈正军学号201101040240指导老师审批任务书下达日期2012 年6月19日任务完成日期2012 年7 月4 日一、设计内容与设计要求1.设计内容:图书信息管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:1)用C语言实现系统;利用结构体数组实现图书信息的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能, 调用界面和各个功能的操作界面应尽可能清晰美观。
2) 建立一个图书信息数据库,文件名为book.txt,并从该文件中读取数据;3) 图书信息管理系统应能提供以下功能:①系统以菜单方式工作②图书信息显示功能;能以表格形式显示图书库中所有信息,且应有表头。
③图书信息追加功能;追加一条(或多条)新记录,要求在追加过程中有相应的提示信息,完成追加后能重新排序和显示;④图书信息查询功能;a. 按书名查询;b. 按单价查询;c. 按出版单位查询;d. 按出版时间查询e. 按分类号查询;f. 按入库时间查询要求系统在上述查询方式中至少应有两种以上的查询方式,且能显示符合条件的所有记录。
C语言图书管理系统程序设计报告

目录一、设计任务书 (3)二、本组课题及本人任务 (3)三、程序功能简介 (4)四、主体内容 (4)1.设计分析 (4)2.程序结构 (5)3.各模块的功能及程序说明 (5)4. 源程序 (6)5.操作方法 (17)6.试验结果 (18)7.设计体会 (22)五、附录 (23)1.流程图 (23)2.过程列表 (26)一、设计任务书1.目的1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握。
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。
2)系统设计要实用,编程简练,可用,功能全面。
3)说明书、流程图要清楚。
4)记录设计情况(备查,也为编写设计说明书作好准备)。
5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6)设计上交内容:设计报告一份(按格式书写);源程序一份,能编译成可执行文件并能正常运行。
二、本组课题及本人任务课题:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:1.系统以菜单方式工作。
2.图书信息录入功能(图书信息用文件保存)--输入。
3.图书信息浏览功能--输出。
4.查询和排序功能:(至少一种查询方式)--算法。
a. 按书名查。
b.按作者名查询。
本人任务:负责设计和编写图书信息管理系统的修改图书信息部分。
三、程序功能简介本系统是以visual C++ 环境下用C语言开发的一个图书管理系统。
本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、作者查找)功能。
C语言图书馆管理系统课程设计报告---精品管理资料

《高级语言程序设计》课程设计报告设计题目:**高校图书馆信息管理系统姓名:专业:计算机科学与技术班级:指导老师:2012年01月01日●摘要●绪论●问题定义(或系统分析) ●总体设计与详细设计●调适与测试●总结与心得●附录附录一源代码附录二参考文献**高校图书馆管理系统✧摘要【设计题目】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等. 试设计一图书信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)图书信息录入功能(图书信息用文件保存)—-输入3)图书信息浏览功能-—输出4)查询和排序功能:(至少一种查询方式)—-算法5)按书名查询6)按作者名查询7)图书信息的删除与修改(可选项)*✧绪论【设计目的】1.通过本次课程设计对c语言的充分编程和实际应用进一步熟悉和巩固c语言语法知识和程序设计的基本方法。
2.因为编程具有细致繁琐的特点,训练大家的编程素质,养成耐心细致的习惯。
3.锻炼思维能力,养成多思考的习惯,同时有助于培养团队意识4.了解大型程序的编写过程,为以后编写大型程序和开发软件打下基础。
【设计要求】1.掌握面相对象程序设计的功能抽象和数据抽象方法,掌握类,对象的使用的方法;2.掌握数据类型的使及不同程序方式的应用。
3.掌握函数使用技巧,包括函数类型的选择,含参数的传递方式等;4.掌握使用数组,指针,引用,文件等编程的方法。
5.掌握C++流类库的使用。
6.掌握C++模板的使用;7.掌握中小型规模程序的设计,开发,调试的全过程.✧问题定义(或系统分析)【设计思路】根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计图书管理系统Books Management System学生姓名张朝柱学院名称徐州工程学院学号20130566140班级13计转本专业名称计算机科学与技术指导教师李子龙2016年5月10日一、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。
使用c语言编写了图书管理系统。
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。
图书信息包括编号、书名、作者、数量、在库状态等。
图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。
整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。
二、算法设计:1.设计思想:整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。
进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。
在设计程序时,实现了程序的模块化、结构化。
在主函数中调用各种子函数,操作界面简单,易操作。
2,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。
(2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。
它引用了一个顺序表SL。
其他函数调用时只需传入顺序表头即可。
(3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。
menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。
Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。
cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。
jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。
操作完成后按提示信息进行文件的保存操作。
(4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。
、(5)、void Book_Borrow(struct SqList &SL);这个函数为保存信息到文件的函数,使用时将顺序表的头传给函数,函数可将整个顺序表的所有信息存入到磁盘文件中。
并覆盖掉源文件,以便以后调用。
(9)、void Book_Borrow(struct SqList &SL)、void Book_Return(struct SqList &SL);这两个函数是借书还书的函数,在借还后系统会修改图书的在库信息。
调用时将顺序表参数带回到主函数。
并会出提示信息让用户返回菜单保存信息。
3.实现注释:这个实用的小型图书管理程序程序以顺序表操作完成,并实现文件信息的录入和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。
实现了图书管理的基本功能,包括了图书的录入、存储、查询、添加、删除、修改、借书、还书等功能。
查询时可按书名、编号、作者等方式查询,找到后输出这本书的所有信息。
在添加图书信息后,还增加了顺序表排序操作,并输出整个顺序表,方便用户检查信息。
可查询图书的在库状态,方便用户进行借书、还书操作。
在借书还书成功后图书的在库状态改变,并有提示信息让用户保存信息。
系统中主要的数据结构就是图书的信息,包含编号、书名、作者、出版社、出版时间、价格、在库状态等,在处理过程中各项可以作为一本图书的不同属性来进行处理。
4.结构体系设计:图书管理系统主界面流程图开始图书借还系统主界面流程图5.设计过程中的想法与程序中的不足:作为学期末的一项课程,主要靠编出来的系统来考察我们所掌握的基本理论知识及实际解决问题的能力,通过这次c语言课程设计,很大程度上锻炼了我们写程序的动手能力和自主思考能力。
利用所学知识,开发小型实用的应用系统,掌握运用C语言编写调试应用系统程序,对于我们独立开发应用系统并进行数据处理的综合能力是一个很大的提高。
总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足。
比如,没有对界面进行操作,只是实现了简单的功能,程序写的有点繁琐,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确,对于数据的错误输入处理不是很完善等等。
这个系统主要是我自己编写的,同时也得到了老师和同学的一些帮助。
我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全,。
事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言的学习。
我认为对于C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。
三、用户手册:下面,我大致介绍一下我的系统的主要功能和注意事项:当运行此程序时,首先进入系统主界面,然后可以选择 1.进入系统,2.退出系统。
选择1后进入系统,然后显示功能菜单按数字键选择所需服务。
功能菜单中,1录入所有书籍信息,2进入图书管理系统,3进入图书查询系统,4进入图书借还系统,5保存所有图书信息,6显示菜单,7返回上级菜单。
当出现"请选择"时,需要输入选项前的数字,输完之后按回车(下同)。
首次运行系统需要先选择1录入库存书籍信息,然后再选择其他操作。
当选择2时会进入图书管理系统,在这里可以选择添加、修改信息等操作,需要注意的是每次执行完添加、修改等操作后需要手动选择保存图书信息的操作,不然磁盘文件信息不会改变(下同)。
返回上级菜单进入图书查询系统、图书借还系统的操作和管理系统的差不多,用户可自己尝试使用,所有信息最后均以磁盘文件方式保存,而且格式固定,在输入和输出均按这种格式,用户在使用时必须要按这种格式输入,否则会出现文件信息错误。
四、调试与测试:上机操作(截图)系统主界面(选择数字进入相应的选项)选择1进入系统,然后出现图书初始化菜单;选择4进入查询系统,然后出现查询库存信息;选择2输入图书编号,借书功能并且显示库存;选择3输入图书编号,还书功能并且显示库存;选择4进入查询系统,然后出现查询库存信息;五、小节:在这一个星期的实践中,通过编写这个图书管理系统,我体会到了c语言学习的实用性。
将理论和实践结合在一起,用先进的计算机工具方便人们的生活。
C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。
编写的程序从理论上来说并没有错,但以上机就问题不断。
甚至有些课本上的知识照搬不变,也不能得到正确的结果。
有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试时却屡屡出错。
经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切都是值得的。
我认为,开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求和现实意义。
不管什么系统,只用运用到实际应用中,才具有先现实意义。
所以c语言程序的实用性很强,我们以后还要更加努力认真地学习编程语言。
参考文献:[1] 黄明等编著《C语言课程设计》北京:电子工业出版社[2] 郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社[3] 宁正元《数据结构(c语言)》南京:东南大学出版社。
2000年6月第1版[4] 严蔚敏等《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版[5] 谭浩强编著《C程序设计题解与上机指导(第3版) 》北京:清华大学出版社[6] 谭浩强编著《C程序设计(第3版) 》北京:清华大学出版社附录:源程序代码/*** 任务:C语言课程设计* 班级:13计转本* 学号:20130566140* 姓名:张朝柱* 实验时间:2016-3-22* 本程序的功能是:图书管理系统*/#include<stdio.h>#include<iostream.h>#include<malloc.h>#define BOOKNUMBER 5#define LIST_SIZE 10 //顺序表的初始大小#define ADD_SIZE 10 //顺序表的增量struct SqList{struct BOOK_SYSTEM * elem; //这种类型的起始地址int length; //顺序表中元素的个数int listsize; //顺序表的分配的空间大小};//采用结构体定义每本图书的编号,书的名称,书的作者,书的数量等信息。
struct BOOK_SYSTEM{int book_id; //编号char book_name[50]; //名字char book_author[20]; //作者int book_number; //数量};void GUI_human_computer(void) //人机交互界面{cout<<"/******************************************************************** **/"<<endl;cout<<"/******************************************************************** **/"<<endl;cout<<"\t\t\t图书管理系统"<<endl;cout<<endl;cout<<"\t\t输入数字1:\t初始化5本书的信息并保存到书库中\t"<<endl;cout<<"\t\t输入数字2:\t借阅图书;并且显示图书库存的信息\t"<<endl;cout<<"\t\t输入数字3:\t返还图书;并且显示还书后库存的信息\t"<<endl;cout<<"\t\t输入数字4:\t查阅图书库存信息\t"<<endl;cout<<"/******************************************************************** *************/"<<endl;cout<<"/******************************************************************** *************/"<<endl;}void Book_Entering(struct SqList &SL) //SL.elem->book_name SL是顺序表的变量名;SL.elem是图书结构的顺序表头变量名{//int number;int i=0;cout<<"录入5本图书信息"<<endl;for(i=0;i<BOOKNUMBER;i++){cout<<"请录入第"<<i+1<<"本书的信息(格式:编号书名作者数量):"; //因为数组的下标是从0开始cin>>SL.elem[i].book_id; //cin>>SL.elem->book_id; //这样出现的错误是因为一直给第一个elem元素复制cin>>SL.elem[i].book_name;cin>>SL.elem[i].book_author;cin>>SL.elem[i].book_number;SL.length++; //书库中有几种书}cout<<"五本图书信心录入完毕!"<<endl;}void Book_Borrow(struct SqList &SL) //借书我个人认为就算借完,即库存为空的时候,这个书的编号还是应该存在的{int i=0,ID=0;cout<<"请输入你所借书的编号:";cin>>ID;for(i=0;i<SL.length;i++){if((SL.elem[i].book_id==ID)&&(SL.elem[i].book_number>=1)) //如果找到了所借书的编号{cout<<"成功提示: 找到图书!"<<endl;cout<<"图书信息为:";cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author<<" "<<SL.elem[i].book_number<<endl;SL.elem[i].book_number--;cout<<"成功提示: 借书成功!"<<endl;cout<<"图书信息为:";cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author<<" "<<SL.elem[i].book_number<<endl;return ;}}cout<<"错误提示: 没有你所要借的图书!"<<endl;}void Book_Return(struct SqList &SL){int i=0,ID=0;cout<<"请输入你所还书的编号:";cin>>ID;for(i=0;i<SL.length;i++){if(SL.elem[i].book_id==ID) //如果是该书库的图书{cout<<"成功提示: 是本书库的书籍!"<<endl;cout<<"图书信息为:";cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author<<" "<<SL.elem[i].book_number<<endl;SL.elem[i].book_number++;cout<<"成功提示: 还书成功!"<<endl;cout<<"图书信息为:";cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author<<" "<<SL.elem[i].book_number<<endl;return ;}}cout<<"错误提示: 你所还书籍不在本书库中!"<<endl;}void Book_Inquire(struct SqList &SL){int i,ID;cout<<"请输入你要查询图书的库存(图书的编号):";cin>>ID;for(i=0;i<SL.length;i++){if(SL.elem[i].book_id==ID) //如果是该书库的图书{cout<<"成功提示: 是本书库的书籍!"<<endl;//cout<<"图书信息为:";//cout<<SL.elem[i].book_id<<" "<<SL.elem[i].book_name<<" "<<SL.elem[i].book_author// <<" "<<SL.elem[i].book_number<<endl;cout<<"该书的库存为:"<<SL.elem[i].book_number<<endl;return ;}}cout<<"错误提示: 您查询的书籍不在本书库中!"<<endl;}int main(void){struct SqList SL; //SL 表示顺序表的类型的变量名;struct BOOK_SYSTEM Book; //Book 结构体类型名SL.elem=NULL;SL.elem=(struct BOOK_SYSTEM *)malloc(sizeof(struct BOOK_SYSTEM)*LIST_SIZE); //开辟10个struct BOOK_SYSTEM 这个类型的顺序表if(SL.elem==NULL){cout<<"错误提示: 内存申请失败!"<<endl;return 0;}else{SL.length=0;SL.listsize=LIST_SIZE;}int command=0; //命令字变量GUI_human_computer();while(1){cout<<"请输入你要进行操作的命令字:";cin>>command;switch(command){case 1:Book_Entering(SL); //五本书的录入函数break;case 2:Book_Borrow(SL);break;case 3:Book_Return(SL);break;case 4:Book_Inquire(SL);break;default: cout<<"错误提示: 命令字有误!"<<endl;break;}}return 0;}。