C_图书馆管理系统课程设计报告
- 格式:doc
- 大小:124.50 KB
- 文档页数:8
《高级语言程序设计》课程设计报告设计题目:**高校图书馆信息管理系统姓名:专业:计算机科学与技术班级:指导老师: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 系统功能模块图【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】头函数名:#include<stdio.h>#include<stdlib.h>#include<string.h>struct bookinf{int num;//登录号char bname[20];//书名char wname[10];// 作者名char clanum[14];// 分类号char pubcom[10];//出版单位char pubtime[10];// 出版时间float price;//价格};(1)来到图书信息管理系统页面void index(){char input;printf("\n\n\t\t\t*****************************\n");printf("\t\t\t 图书信息管理系统\n");printf("\t\t\t*****************************\n\n\n");printf("------------------------------------------------------------------------------\n"); printf("\t<按任意键进入>\n\t");input=getchar();}(2)来到功能菜单页面void adm_servelist(){void book_add();void book_view();void change();void del();void book_search();void login();void pwchange();int in;char input;do{printf("\n\n\n\t--欢迎使用信息管理系统--");printf("\n\n\t1.图书信息录入\n");printf("\t2.图书信息浏览\n");printf("\t3.图书信息查询\n");printf("\t4.图书信息删除\n");printf("\t5.图书信息修改\n");printf("\t6.退出管理模式\n");printf("\n\t请选择服务种类:");scanf("%d",&in);if (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6) {printf("\n\t没有这项服务~\n");printf("\t按任意键重新选择");input=getchar();}}while (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6); switch (in){case 1: book_add(); break;case 2: book_view(); break;case 3: book_search(); break;case 4: del(); break;case 5: change();break;case 6: login(); break;}}(3)图书信息录入功能模块void book_add(){void adm_servelist();void book_add();int i=0,j;FILE *fp;char input;struct bookinf books;struct bookinf book_taxis[30];printf("\n\n\n\t---请输入图书信息---\n\n"); printf("\t登录号:");scanf("%d",&books.num);printf("\n\t书名:");scanf("%s",books.bname);printf("\n\t作者名:");scanf("%s",books.wname);printf("\n\t分类号:");scanf("%s",books.clanum);printf("\n\t出版单位:");scanf("%s",books.pubcom);printf("\n\t出版时间:");scanf("%s",books.pubtime);printf("\n\t价格:");scanf("%f",&books.price);if ((fp=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp);i=i+1;}while(!feof(fp));fclose(fp);for (j=0;j<=i;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n"); printf("\t按任意键返回管理菜单~");input=getchar();adm_servelist();break;}}if ((fp=fopen("book.txt","r"))==NULL){fp=fopen("book.txt","w");}else{fclose(fp);fp=fopen("book.txt","a");}fwrite(&books,sizeof(struct bookinf),1,fp); fclose(fp);printf("\n\n\n\t信息输入完毕~按任意键继续\n"); input=getchar();adm_servelist();}(4)图书信息浏览功能模块void book_view(){void adm_servelist();void book_view();int inp,i=0,n=0;FILE *fp;char input;struct bookinf bookview[20];if ((fp=fopen("book.txt","r"))==NULL){printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~\n");printf("\n\t<按任意键返回管理菜单>\n\t");input=getchar();adm_servelist();}else{do{fread(&bookview[i],sizeof(struct bookinf),1,fp);i=i+1;}while (!feof(fp));fclose(fp);do{printf("\n\t--------共有%d条记录--------",i-1); printf("\n\n\t登录号: %d\n",bookview[n].num); printf("\n\t书名: %s\n",bookview[n].bname);printf("\n\t作者名: %s\n",bookview[n].wname);printf("\n\t分类号: %s\n",bookview[n].clanum);printf("\n\t出版单位: %s\n",bookview[n].pubcom);printf("\n\t出版时间: %s\n",bookview[n].pubtime);printf("\n\t价格: %f\n",bookview[n].price);printf("\n\n\t1.上一页\t2.下一页\t3.回目录\n");printf("\n\t请选择:");scanf("%d",&inp);switch (inp){case 1:{if (n==0){printf("\n\t已到达首页\n\t按任意键重新选择");input=getchar();}else n=n-1; break;}case 2:{if (n==i-2){printf("\n\t已到达最末页\n\t按任意键重新选择");input=getchar();}else n=n+1; break;}case 3:{adm_servelist();break;}default:{printf("\n\t没有这项服务\n\t按任意键重新选择");input=getchar();}}}while (inp!=3);}}(5)图书信息修改与删除功能模块修改:void change(int x){int inp,i=0,j;void book_search();FILE *fp,*fp1;char input;struct bookinf books,book_taxis[20];do{printf("\n\n\n\t注意:您确定要修改该记录吗?\n"); printf("\n\t1.是\t2.否\n");printf("\n\t请输入:");scanf("%d",&inp);if (inp!=1&&inp!=2){printf("\n\t对不起~没有这项服务~\n");printf("\t按任意键重新选择\n\t");input=getchar();}}while (inp!=1&&inp!=2);if (inp==2)book_search();if (inp==1){printf("\n\n\n\t---请输入图书信息---\n\n"); printf("\t登录号:");scanf("%d",&books.num);printf("\n\t书名:");scanf("%s",books.bname);printf("\n\t作者名:");scanf("%s",books.wname);printf("\n\t分类号:");scanf("%s",books.clanum);printf("\n\t出版单位:");scanf("%s",books.pubcom);printf("\n\t出版时间:");scanf("%s",books.pubtime);printf("\n\t价格:");scanf("%f",&books.price);if ((fp1=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp1);i=i+1;}while(!feof(fp1));fclose(fp1);for (j=0;j<x;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n"); printf("\t按任意键返回管理菜单~");printf("0");input=getchar();book_search();break;}for (j=x+1;j<i-2;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("1");printf("\t按任意键返回管理菜单~");input=getchar();book_search();break;}}book_taxis[x]=books;fp=fopen("book.txt","w");for (j=0;j<i-1;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp); fclose(fp);printf("\n\n\t信息修改完成!按任意键返回");input=getchar();book_search();}}删除:void del(int y){char input;FILE *fp;int inp,i=0,j;struct bookinf book_taxis[20];void book_search();void adm_servelist();do{printf("\n\n\n\t注意:您确定要删除该记录吗?\n"); printf("\n\t1.是\t2.否\n");printf("\n\t请输入:");scanf("%d",&inp);if (inp!=1&&inp!=2){printf("\n\t对不起~没有这项服务~\n");printf("\t按任意键重新选择\n\t");input=getchar();}}while (inp!=1&&inp!=2);if (inp==2)book_search();if (inp==1){if ((fp=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp);i=i+1;}while(!feof(fp));fclose(fp);}if (i>2){fp=fopen("book.txt","w");for (j=0;j<y;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);fp=fopen("book.txt","a");for (j=y+1;j<i-1;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);}else{remove("book.txt");}printf("\n\n\t记录已删除!\n\n\t按任意键返回\n\t"); input=getchar();adm_servelist();}}(6)图书信息查询功能模块void book_search(){void adm_servelist();void id_search();void wr_search();void bn_search();char input;FILE *fp;int inp;if ((fp=fopen("book.txt","r"))==NULL){printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n");printf("\n\t<按任意键返回管理菜单>\n\t");input=getchar();adm_servelist();}else{do{printf("\n\n\n\t1.按图书登录号查询\n");printf("\n\t2.按图书作者查询\n");printf("\n\t3.按图书名查询\n");printf("\n\t4.回到主菜单\n");printf("\n\n\t请选择查询类别:");scanf("%d",&inp);if (inp!=1&&inp!=2&&inp!=3&&inp!=4){printf("\n\n\t没有这项服务~\n\t按任意键重新选择~");input=getchar();}}while (inp!=1&&inp!=2&&inp!=3&&inp!=4); fclose(fp);switch (inp){case 1: id_search(); break;case 2: wr_search(); break;case 3: bn_search(); break;case 4: adm_servelist(); break;}}}调试与测试总结与心得对程序的设计要有充分的逻辑性,将该程序的大纲罗列出来,同时要充分了解该程序所需的编程语言,通过这次课程设计我们能把课本上的知识充分的应用到实践中来。
c图书管理系统课程设计一、课程目标知识目标:1. 理解图书管理系统的基本概念和功能,掌握其在我国图书馆的应用现状。
2. 学会使用数据库管理图书信息,掌握基本的SQL查询语句。
3. 了解并掌握C语言编程在图书管理系统中的应用。
技能目标:1. 能够运用所学知识设计并实现一个简单的图书管理系统。
2. 提高问题分析能力,通过C语言编程解决图书管理中的实际问题。
3. 培养团队协作能力,通过分组讨论、共同开发完成课程项目。
情感态度价值观目标:1. 培养学生对图书管理工作的兴趣,提高对图书馆工作的认识。
2. 增强学生的信息素养,使其认识到信息管理在现代图书馆工作中的重要性。
3. 培养学生积极参与、乐于探究的学习态度,激发创新意识。
课程性质:本课程为实践性较强的课程,以C语言为基础,结合数据库知识,让学生在实际操作中掌握图书管理系统的设计与实现。
学生特点:学生具备一定的C语言基础和数据库知识,对实际应用有较高的兴趣,喜欢动手实践。
教学要求:注重理论与实践相结合,以学生为主体,鼓励学生主动参与、积极思考、动手实践。
通过课程学习,使学生能够独立设计并实现一个简单的图书管理系统,提高其编程能力和问题解决能力。
二、教学内容1. 理论知识:- 图书管理系统概述:介绍图书管理系统的基本概念、功能及在我国图书馆的应用现状。
- 数据库基础:回顾数据库的基本概念、数据模型、关系数据库及其设计方法。
- C语言编程:复习C语言基础知识,强调其在图书管理系统中的应用。
2. 实践操作:- 数据库设计:学习设计图书管理系统的数据库,包括表结构设计、数据完整性约束等。
- C语言编程实践:运用C语言编写图书管理系统的主要功能模块,如图书信息录入、查询、删除等。
- 项目开发:分组进行项目实践,培养学生团队协作能力,完成一个简单的图书管理系统。
3. 教学大纲:- 第一周:图书管理系统概述,复习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语言程序设计》课程设计题目:图书信息管理系统院系:会计学院专业:会计学年级:2012班别: 4班指导教师:组长:同组成员:目录一、目的 (1)二、需求分析 (1)三、概要设计 (1)四、详细设计 (3)五、调试分析 (4)六、测试结果 (5)七、用户使用说明 ................................................. 错误!未定义书签。
八、课程设计总结..................................................................................错误!未定义书签。
附录:参考代码 ..................................................... 错误!未定义书签。
图书信息管理系统 ........................................... 错误!未定义书签。
一目的本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。
将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。
二需求分析根据图书馆图书信息管理的需要,建立一个“图书信息管理系统”,以方便对图书的各项管理操作。
开发目的如下:1、图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
2、图书信息管理系统,提供以下功能:1)图书信息录入功能(图书信息用文件保存)--输入;2)图书信息浏览功能--输出;3)查询和排序功能:--算法;4)按书名查询;5)按作者名查询;6) 按登录号从大到小排列;7)图书信息的删除与修改三概要设计程序总体功能框架:开始界面主要提示的菜单界面插入图书信息浏览图书信息查询图书信息删除图书信息修改图书信息采用结构:struct tsxx{ //定义结构 long dlnum; //定义登录号 char bname[10]; //定义书名 char aname[10]; //定义作者名 char scnum[10]; //定义分类号 char plname[10]; //定义出版社名 char time[11]; //定义录入时间 float price; //定义价格struct tsxx * next;//定义指向下一个结构的首地址};链表结构:head各功能独立自定义的函数:1、插入图书信息(按登录号从大到小排序):struct tsxx * zengjia(struct tsxx * head)//传递链表的首地址,并返回链表的首地址 2.、浏览全部的图书信息:void Ptrint_Stu_Doc(struct tsxx *head) //传递链表的首地址3、查询图书信息(包括书名查询和作者名查询):void Check(struct tsxx * head)//传递链表的首地址4、删除图书信息:struct tsxx * Delete(struct tsxx * head)//传递链表的首地址,并返回链表的首地址 5.、修改图书信息:struct tsxx * revise(struct tsxx * head)//传递链表的首地址,并返回链表的首地址其他一些变量的定义:long size; //定义结构的大小 FILE * fp; //定义文件指针,指向文件 struct tsxx * head; //定义链表的首地址 struct tsxx * p; //定义结构指针 char choice; //定义选择变量struct tsxx Astruct tsxx Bstruct tsxx Cstruct tsxx DNULL四详细设计1、设计思路:首先,输入一些图书信息,申请一个结构类型的动态内存,把图书信息赋值到动态内存内,每一快动态内存存放一本图书的信息,并形成一条链表,比较登录号的大小,按登录号从大到小排列;然后,建立并打开一个文件,把链表中的数据写入文件中,然后关闭文件;最后,插入功能:先把所有的数据从文件中读出来,申请动态内存来存放,形成链表,输入你想要插入的图书信息,比较登录号的大小,然后把新的图书信息按照登录号的大小顺序插入链表里面,新建一个文间,把新的链表写入文件中;浏览功能:先把所有的数据从文件中读出来,申请动态内存来存放,形成链表,然后链表头开始,把结构中的数据一个一个输出到界面上;查询功能:先把所有的数据从文件中读出来,申请动态内存来存放,形成链表;选择你要查询的方式:1是按书名查询,2是按作者名查询。
理工学院课程设计报告课程名称C#课程设计设计题目图书馆管理系统专业计算机科学与技术班级学号姓名完成日期2013年1月3 日课程设计任务书设计题目:图书馆管理系统设计内容:图书管理系统需要实现的功能主要有:查询:图书资料查询、读者资料查询、借阅历史记录查询、罚款历史记录查询。
基本资料维护:包括图书资料维护(包括新书的入库,以及现有书籍资料的修改和删除)、读者资料维护(包括新读者资料的录入,以及现有读者资料的修改和删除)。
日常管理:包括借书管理(记录借阅证编号、图书编号、借出日期、还书期限)、还书管理(销去借阅记录)、缴纳罚金(图书超期,将按每天0。
05元进行罚款).用户管理:记录各类用户(教师、学生)的详细信息(借书证、姓名、编号、系等)。
设计要求:(1)按照面向对象程序设计分析要求进行类抽象和设计,所有界面必须具有良好的人机交互,布局合理,菜单和工具栏条图标清晰、直观;(2)所有功能必须同时具备菜单和工具条;(3)采用C#语言开发,源代码必须添加必要注释,函数和变量命名规范,具有可读性;(4)设计完成后,需要写成一份课程设计报告(打印出来),表达课程设计所做工作。
指导教师:2013年1 月3 日课程设计评语成绩:指导教师:_______________年月日目录1概述 ....................................................................................................... 。
21.1 系统设计的背景 ................................................................................. .21.2 系统设计的目的 ................................................................................. .21。
面向对象课程设计图书馆治理系统院(系)别信息工程系班级学号姓名指导教师时间2020-10-10—2020-10-21课程设计任务书题目图书治理系统C++语言课程设计系 (部) 信息工程系专业信息治理与信息系统班级学生姓名学号10 月 10 日至 10 月 21 日共 2 周指导教师(签字)系主任(签字)年月日成绩评定表目录摘要 (2)1.图书治理系统概述 (3)1.1图书治理系统整体设计思想 (3)1.2整体设计流程图 (4)2.图书治理系统详细设计 (5)2.1新建数据库(SQL server) (5)2.2 创建数据源 (5)2.3 C++中MFC应用程序编程 (5)2.3.1 成立大体对话框并与数据库连接 (5)2.3.2要紧功能函数源代码 (7)3.课程设计总结和体会 (19)摘要图书馆治理系统创建基于MFC APPWizard[exe],利用SQLSERVE2000和MFC ODBC进行数据库的连接,在可视化的界面上进行用户名、图书及借书卡的查询、添加、修改、删除,对数据库表内的信息列表进行操作。
图书馆治理系统要紧完成了用户登录功能、新建/删除用户功能、用户治理功能,对数据库内图书、借书卡和用户信息进行查询、添加、删除、修改功能。
图书馆治理系统设计是有以下几步完成的:第一对整体功能进行分析,开始是用户登录,登岸成功后显示主界面,其分为图书资料、读者资料、借书治理、还书治理和退出五个菜单;第二步是对五个菜单继续划分成具体的类进行实现;第三步是依照课程设计的要求在数据库内的成立具体的表,而且进行连接,及对数据库数据库内容的操作,与此同时完成界面的退出操作;第四步是对图书馆治理系统进行的全面优化,修改不足。
关键词:MFC,数据库,图书,治理1.图书治理系统概述1.1图书治理系统整体设计思想图书馆治理系统的功能为读者提供借书、还书和查询所需图书及图书、读者卡的治理等功能。
图书馆治理系统的功能模块有:(1)登录界面只有治理员才能利用全数功能,更好的爱惜图书馆内的一些信息不被破坏。
1 设计内容、任务及基本要求 (2)1.1 设计内容 (2)1.2 设计任务 (2)1.3 设计基本要求 (2)2 总体设计思路 (4)2.1 系统功能 (4)2.2 各个模块之间的主要关系 (4)2.3 总体程序框图 (5)2.4 系统的总体流程图 (5)3 功能模块的具体设计 (7)3.1 main() 函数模块 (7)3.2查询所有图书信息函数模块 (8)3.3查询一本图书信息函数模块 (8)3.4添加图书信息函数模块 (9)3.5删除图书信息函数模块 (10)3.6 借阅图书模块 (12)4 功能模块的调试与测试 (13)4.1主菜单运行界面 (13)4.2查询所有图书信息模块运行界面 (13)4.3查找某一本图书信息模块运行界面 (14)4.4 添加图书信息模块运行界面 (16)4.5 删除图书信息模块运行界面 (17)4.6 借阅图书模块信息运行界面 (79)5 总结 (22)6 致谢 (23)7 参考文献 (24)9 程序清单 (25)1.设计内容、任务以及基本要求1.1设计内容主要利用c语言的文件操作能力设计开发一个小型的图书管信息管理系统,至少具有如下功能:查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息、删除图书信息以及通过学生学号实现图书借阅功能。
操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。
1.2设计任务要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
掌握模块化编程的基本方法与步骤;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力和技巧。
1.3基本要求(1)通过提示菜单选择可以进行的操作。
(2)将图书的信息存入文件中,并命名为BookInfo.txt。
课程设计报告课程名称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. 按入库时间查询要求系统在上述查询方式中至少应有两种以上的查询方式,且能显示符合条件的所有记录。
第一章§ 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 :办理还书手续流程;S1.1囹1.4•管理负功能菜单<圈书信息删除出枪索结果/S1.5>学生功能菜单办理借书手续输出檢索结果一是借书办湮成功<1 ------------------- •辐入个人信息/■图1.6^l.T1.3 程序设计及代码分析1.程序设计:下面,我大致介绍一下我的系统的主要功能和注意事项:当运行此程序时,首先进入系统主界面,然后可以选择[1]. 管理员登陆(密码:123),[2]. 学生登陆,[0]. 退出系统;选择[1] 后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。
图书信息管理系统
题目摘要:该系统存储以下信息:
(1)对于同一作者同一书名的书,存储书名、数目编号、作者名、库存册数
已借出册数
(2)对于每一本书还要存储一个登录号、当前借阅该书的读者姓名与借书证号、借阅日期系统功能要求如下:
1 图书信息录入功能(图书信息用文件保存)
2 图书信息浏览功能,查询或排序功能:(至少一种查询方式)
3 按书名查询
4 按作者名查询
5 图书信息的删除与修改
一、模块设计
二、主要数据结构
图书结构体:
typedef struct book
{
char bname[20]; /*书名*/
char bnum[20]; /*书编号*/
char booktype[20]; /*分类号*/
char plase[30]; /*出版单位*/
char pbtime[20]; /*出版时间*/
float price; /*价格*/
char auter[20]; /*作者名字*/
char F; /*是否在馆*/
}books;
会员信息结构体:
typedef struct peope
{
char pnum[20]; /*借书证的号码*/
int type; /*会员类型*/
char pname[20]; /*名字*/
char pmima[10]; /*密码*/
int n; /*最多接的书本数*/
int m; /*借书本数*/
union
{
struct Pbook
{
char pbooks[20]; /*借书的书本名*/
char ptime[20]; /*借书的时间*/ }peop[6]; /*普通会员*/
struct VPbook
{
char vpbooks[20]; /*借书的书本名*/
char vptime[20]; /*借书的时间*/
}vpeop[10]; /*高级会员*/ }kind;
}peoper;
全局变量:
int B,P; /*B库存的书本数;P普通会员的人数;*/ books Book[1000]; peoper peo[100];
三、流程图
四、算法清单
//增加书籍
void Liberian::Append(fstream& storef)
{
bookData book;
int choice;
int key;
int num;
(0,ios::end);
int posEnd=();
cout<<"*************书籍入库***************"<<endl;
while(1)
{
cout<<" Please enter your choice:"<<endl;
cout<<"1--添加新书\n"<<"2--已有书籍\n"<<"0--返回\n";
cin>>choice;
switch(choice)
{
case 1:
cout<<" 书号, 书名, 数量, 作者,价格,出版社,出版时间?"<<endl; cin>>>>>>>>>>>>>>;
(reinterpret_cast<char*>(&book),sizeof(bookData));
break;
//书籍查询
void Find(fstream & f)
{
bookData book;
int key;
int choice;
(0,ios::end);
int posEnd=();
cout<<"*************书籍查询***************"<<endl;
while(1)
{
cout<<" 请输入您的选择\n"
<<" 1-- 检索一本书\n"
<<"2-- 显示全部书籍\n"
<<"0-- 返回\n";
cin>>choice;
switch(choice)
{
case 1:
(0,ios::beg);
cout<<"输入你想检索书的书号"<<endl;
cin>>key;
do{
(reinterpret_cast<char*>(&book),sizeof(bookData)); }while!=key&&()!=posEnd);
if==key)
cout<<<<"---"<<<<"---"<<<<"---"<<<<"---"<<<<endl; else
cout<<"找不到此书,请重新确认!"<<endl;
break;
//查找读者
void Reader::Addreader()
{
Person temp;bookData book={0,"0",0};
(0,ios::end);
int Posend=();
cout<<"输入你想要增加的读者的名字"<<endl;
cin>>;
cout<<"新读者的学号:"<<endl;
cin>>;
[1]=book; [0]=book; =0;
(reinterpret_cast<char*>(&temp),sizeof(Person));
cout<<" 成功添加!"<<<<endl;
}
bool Reader::findreader()
{
(0,ios::end);
int Posend=();
char name[20];
Person guest={"0","0",0,{{0,"0",0},{0,"0",0}}};
cout<<"输入查找人的名字!";
cin>>name;
(0);
do{
(reinterpret_cast<char*>(&person),sizeof(Person)); }while(strcmp(name,&&()!=Posend);
if(!strcmp(name,)
{
cout<<"查到此人:"<<<<endl;
return true;
}
else
{
cout<<"找不到此人,请重新确认!"<<endl; return false;
}
五、测试情况
运行程序,首页显示如下:
增加新书运行程序如下:
借书运行程序如下:
六、小结
我做的是图书馆管理系统的课程设计,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。
更加是第一次做课程设计,所以在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。
可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。
开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。
又经过几天的努力,终于把程序完成了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。
无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C++语言的一次实践作业,自己进步的证明。