图书馆管理系统.docx

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

图书馆管理系统.docx

《图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统.docx(27页珍藏版)》请在冰点文库上搜索。

图书馆管理系统.docx

图书馆管理系统

课程设计说明书

 

设计名称:

程序设计语言强化课程设计

题目:

图书信息管理系统设计

学生姓名:

专业:

计算机科学与技术

班级:

学号:

指导教师:

曾凡智

日期:

2012年9月21日

 

课程设计任务书

计算机专业11年级1班

一、设计题目

(一)学生成绩排名

(二)根据条件进行学生成绩排名

(三)链表的操作(链表的建立,访问,删除链表指定结点,增加结点)

(四)学生成绩文件管理

(五)一个综合系统(图书信息管理系统设计)

二、主要内容

(一)学生成绩排名

先采用选择法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。

(二)根据条件进行学生成绩排名

在函数中进行10个学生成绩从高到低排名,再改进函数,进行n个学生成绩从高到低排名,排名方式根据函数的style参数进行,如style为‘a'按升序排,style为'd'按降序排。

(a:

ascending升,d:

descending降)

编写多个不同函数,使之能实现不同的排序算法(3种以上),再编写一个通用输出函数,(要求用函数指针做参数)能分别打印不同排序算法的结果。

(三)链表的操作(链表的建立,访问,删除链表指定结点,增加结点)

建立一个动态链表,将学生数据(学号,成绩)存入链表结构中,实现链表的访问(求学生成绩的平均分,找到最高分,最低分,将其数据输出)。

删除指定学号的学生数据,对学生数据进行排序,分别在链表头部,中间,末尾插入学生数据。

 

(四)学生成绩文件管理

定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩,输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩,输出三门课程的平均分数最高的学生的学号、姓名及其平均分,将10个学生的相关数据,存入文件中,再从文件中读出,按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件中,再从文件中读取第1,3,5,7,9个学生的数据。

(五)一个综合系统(图书信息管理系统设计)

图书信息包括:

登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

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

(1)系统以菜单方式工作。

(2)图书信息录入功能--输入。

(3)图书信息浏览功能--输出。

(4)查询和排序功能:

(至少一种查询方式)--算法。

按书名查询

按作者名查询

(5)图书信息的删除与修改。

三、具体要求

(一)学生成绩排名

1.定义一个数组a[11],用以存放学生的成绩。

2.从键盘输入10个学生成绩。

3.采用选择法,将学生成绩按照从高到低进行排序。

4.再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组。

5.将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。

将以上每一步骤的结果均打印输出,验证程序是否正确实现题目要求。

 

(二)根据条件进行学生成绩排名

1.在函数中进行10个学生成绩从高到低排名sort(inta[10])

2.改进第一步的函数为sort(inta[],intn),进行n个学生成绩从高到低排名,

3.改进第二步的函数为sort(inta[],intn,charstyle),将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。

(a:

ascending升,d:

descending降)

4.编写4个排序函数,实现4种不同的排序算法(用冒泡法进行升序排序,用冒泡法进行降序排序,选择法进行升序排序,选择法进行降序排序等),函数返回指向排好序的数组的指针。

5.编写通用输出函数show(int*(*fun)(a[],intn)),其中a[]为成绩数组,n为数组元素个数。

6.编写主函数调用以上函数。

(3)链表的操作(链表的建立,访问,删除链表指定结点,增加结点)

1.建立一个动态链表,structstudent*creat(void)

2.将学生数据(包括学号和成绩)存入链表中

3.访问链表,求学生成绩的平均分,找最低分和最高分voidvisit(structstudent*head)

4.用voidprint(structstudent*head)函数输出学生成绩的平均分、最低分和最高分

5.删除链表中指定的学生数据structstudent*del(structstudent*head,longnum)

6.对链表中的数据按成绩由高到低进行排序structstudent*sort(structstudent*head)

7.根据选择charchoose(),分别从链表头部、链表中间、链表尾部插入学生数据structstudent*insert(structstudent*head,structstudent*stud,charst)

 

(四)学生成绩文件管理

1.定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩

2.从键盘输入10个学生的以上内容

3.输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩

4.输出三门课程的平均分数最高的学生的学号、姓名及其平均分

5.从键盘输入10个学生的以上内容,存入文件stud.dat,关闭文件

6.打开stud.dat文件,将数据读出,查看是否正确写入,关闭文件。

7.打开文件stud.dat文件,读出数据,将10个学生按照平均分数从高到低进行排序,

分别将结果输出到屏幕上和另一文件studsort.dat中。

8.从studsort.dat文件中读取第1,3,5,7,9个学生的数据。

(五)一个综合系统(图书信息管理系统设计)

1.设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。

2.程序运行时,首先进行口令检查,再显示菜单。

并能根据菜单调用相应的函数功能。

3.口令程序段的功能要求:

《1》提示用户输入一个口令。

《2》用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。

《3》可对用户的口令输入进行次数限制(如:

重复输入3次都不对),则自动退出系统。

4.显示数据时,一页显示不下,可分页显示。

四、进度安排

1、课程设计有收到题目到最后结束的时间总共为3个星期,首先对课程设计的每个题目都出步了解,对每个题目都有一个总体的构思。

2、大概安排是周一到周五要上课的,两天编写一个题目的程序并且调试,周六周日尽量一天能编写一个程序并调试,最后一个综合系统大概用3、4天的时间完成。

最后要对每个程序进行检查,把细节的地方都修改好。

3、每个题目包含多个子函数,先对每个子函数进行调试,再总体调试,再将调试通过的各个子模块进行集成调试,最后得到最后的程序。

书写课程设计说明书,并对这次的课程设计进行总结。

五、完成后应上交的材料

1、调试完成得程序源代码

2、课程设计的说明书

五、总评成绩

 

指导教师签名日期年月日

系主任审核日期年月

佛山科学技术学院课程设计用纸

目录

一、设计任务分析

1.1设计目的与要求………………………………………1

1.2主要结构设计分析……………………………………2

1.3各项功能设计分析……………………………………2

二、图书信息管理系统总体设计

2.1各个功能模块设计………………………………………3

2.1.1口令输入…………………………………………3

2.1.2主菜单显示………………………………………3

2.1.3信息输入…………………………………………3

2.1.4信息输出…………………………………………4

2.1.5信息查询…………………………………………4

2.1.6图书排序…………………………………………4

2.1.7修改信息…………………………………………4

2.1.8删除信息…………………………………………5

2.1.9文件保存…………………………………………5

2.2各个功能模块流程图…………………………………6

2.2.1口令输入…………………………………………7

2.2.2信息输入…………………………………………7

2.2.3信息查询…………………………………………8

2.2.4图书排序…………………………………………9

2.2.5修改信息…………………………………………10

2.2.6删除信息…………………………………………10

三、程序源代码…………………………………………11-18

四、程序运行效果图……………………………………………18-21

四、设计总结

5.1课程设计中遇到的主要问题和解决方法…………22

5.2本次课程设计的心得体会………………………22

 

佛山科学技术学院课程设计用纸

一.设计任务分析

 

1.1设计目的与要求

图书信息包括:

登录号、书名、作者名、分类号、出版单位、出版时间、价格,设计一个图书信息管理系统,使该系统能很好的管理图书,存储图书的各种信息以方便使用。

系统以菜单方式工作;

图书信息录入功能(图书信息用文件保存),即输入功能;

图书信息浏览功能,即输出功能;

查询和排序功能:

(按书名查询与排序);

图书信息的删除与修改;

需求说明:

图书信息包括:

登录号、书名、作者名、分类号、出版单位、出版时间、价格等;

录入的图书信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作;

对图书信息查询按书名进行,要求能返回所有符合条件的信息;

对图书信息的修改应逐个地进行,一个图书信息的更改不应影响其他的职工记录;

系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理;

1.2各项功能设计分析

口令输入功能,保证不知道口令的用户修改信息;

菜单选择功能,完成用户命令的接收,也是图书信息管理系统的入口,用户所要进行的各种操作均需在此功能中进行选择并进而调用其他模块实现相应的功能;

输入功能,完成图书信息的输入功能,输入信息包括登陆号、书名、作者名、分类号、出版社、出版日期、价钱等;

输出功能,完成已录入图书信息的显示;

查询功能,完成图书信息的查询,查询时对应有按书名查询;

修改功能,完成图书信息的修改功能;

删除功能,完成图书信息的删除功能;

排序功能,按书名对图书的信息进行排名;

文件保存功能,完成文件的保存。

2、图书信息管理系统总体设计

2.1各个功能模块设计

2.1.1口令输入

确保其他人恶意修改信息;

通过一个for循环控制口令输入的次数;

当输入的口令与预设的口令一致时进入系统。

2.1.2菜单选择模块

给出信息提示;

绘制菜单(包含输入、显示、查询、修改、删除、退出、排序);

提示菜单选择并读入到变量;

根据读入变量的值调用不同的模块函数。

2.1.3信息输入模块

打开图书信息文件;

发出输入提示信息;

输入图书信息;

 提示是否继续输入;

读入到变量;

根据读入变量的值进入菜单或输入函数模块。

2.1.4信息输出模块

输出所有图书的所有信息;

读入操作变量;

根据读入变量的值进入菜单或输入函数模块。

2.1.5信息查询模块

用户输入需要查找的书名;

在所有的图书里面查询与其相符的图书;

输出查找的图书的信息;

读入操作变量;

根据读入变量的值进入菜单或输入函数模块。

2.1.6信息排序模块

根据书名对所有图书信息进行排名;

输出排好序的图书信息;

读入操作变量;

根据读入变量的值进入菜单或输入函数模块。

2.1.7信息修改模块

根据用户输入的书名找到相应的书;

Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并提示输入新的图书信息;否则,提示出错);

用户重新输入图书信息;

读入操作变量;

根据读入变量的值进入菜单或输入函数模块。

2.1.8信息删除模块

根据用户输入的书名找到相应的书;

Strcmp函数将保存的信息与变量比较,如有相同,就输出该图书的所有信息,并删除该图书的图书信息;否则,提示出错。

删除对应的书;

读入操作变量;

根据读入变量的值进入菜单或输入函数模块。

 

说明:

各个模块中读入操作的变量,调用switch语句;

根据读入变量的值进入不同的case;

case1:

input();case2:

output();case3:

save();case4:

search();

case5:

xiugai();case6:

del();case7:

sort();case0:

exit

(1);

2.2各个功能模块流程图

2.2.1口令输入

 

2.2.2信息输入

2.2.3信息查询

 

2.2.4图书排序

 

 

2.2.5修改信息

2.2.6删除信息

 

三、程序源代码

#include

#include

#include

#defineN100

#defineall0

structlibrary

{

intnum;

charbook_name[10];

charwriter[10];

charsort_num[10];

charpub_company[10];

charpub_time[10];

charprise[10];

}lib[N];

intlength=0;

intmenu(void);

voidinput(void);

voidoutput(void);

voiddel(void);

voidsearch(void);

voidxiugai(void);

voidsort(void);

intmain()

{

inti;

charcode[10];

printf("\n*****************************************************\n\n");

printf("欢迎进入佛山大学图书管理系统\n\n");

printf("(管理员:

小周)\n");

printf("*****************************************************\n\n");

for(i=1;i<=3;i++)

{

printf("请输入口令:

");

scanf("%s",&code);

if(strcmp(code,"123")==0)

{

for(;;)

{

switch(menu())

{

case1:

input();break;

case2:

output();break;

case3:

search();break;

case4:

xiugai();break;

case5:

del();break;

case6:

sort();break;

case0:

exit

(1);break;

}

}

}

else

printf("口令错误,你只有3次机会a亲\n");

}

}

intmenu(void)

{

charm[3];

intn;

printf("\************************菜单*****************************\n\n");

printf("1:

添加书2:

显示所有书3:

查找书\n4:

修改书5:

删除书6:

排序0:

退出\n");

printf("\*********************************************************\n\n");

printf("请选择操作(0-6):

\n");

scanf("%s",&m);

n=atoi(m);

return(n);

}

voidinput(void)

{

inti,k;

charm[3];

printf("请输入要登记的图书数量:

");

scanf("%d",&k);

for(i=length;i

{

length=length+1;

printf("登录号:

");

scanf("%d",&lib[i].num);

printf("书名:

");

scanf("%s",lib[i].book_name);

printf("作者名:

");

scanf("%s",lib[i].writer);

printf("分类号:

");

scanf("%s",lib[i].sort_num);

printf("出版单位:

");

scanf("%s",lib[i].pub_company);

printf("出版时间:

");

scanf("%s",lib[i].pub_time);

printf("价格:

");

scanf("%s",lib[i].prise);

}

}

voidoutput(void)

{

inti;

printf("登陆号书名作者名分类号出版单位出版时间价格\n");

for(i=0;i

printf("\n%d%11s%7s%8s%9s%9s%8s\n",lib[i].num,lib[i].book_name,lib[i].writer,lib[i].sort_num,lib[i].pub_company,lib[i].pub_time,lib[i].prise);

}

 

voidsort(void)

{

intj,i;

structlibrarytemp;

for(j=0;j

{

for(i=j+1;i

{

if(strcmp(lib[j].book_name,lib[i].book_name)>0)

{

temp=lib[j];

lib[j]=lib[i];

lib[i]=temp;

}

}

}

printf("按书名升序:

\n");

printf("登录号书名作者名分类号出版单位出版时间价格\n");

for(i=0;i

{

printf("\n%d%11s%7s%8s%9s%9s%8s\n",lib[i].num,lib[i].book_name,lib[i].writer,lib[i].sort_num,lib[i].pub_company,lib[i].pub_time,lib[i].prise);

}

}

voidsearch(void)

{

inti,t;

charname[30];

printf("请输入要查找的书名:

\n");

scanf("%s",name);

t=0;

for(i=0;i

{

if(strcmp(name,lib[i].book_name)==0)

{

printf("numbook_namewritersort_numpub_companypub_timerise\n");

printf("\n%d%13s%9s%8s%10s%10s%10s\n",lib[i].num,lib[i].book_name,lib[i].writer,lib[i].sort_num,lib[i].pub_company,lib[i].pub_time,lib[i].prise);

t=1;

}

}

if(t==0)

printf("没找到指定的书!

\n");

}

voidxiugai(void)

{

inti,t;

charname[30];

printf("请输入要修改的书名:

\n");

scanf("%s",name);

t=0;

for(i=0;i

{

if(strcmp(name,lib[i].book_name)==0)

{

printf("numbook_namewritersort_numpub_companypub_timerise\n");

printf("\n%d%13s%9s%8s%10s%10s%10s\n",lib[i].num,lib[i].book_name,lib[i].writer,lib[i].sort_num,lib[i].pub_company,lib[i].pub_time,lib[i].prise);

printf("请输入要修改的书的信息:

\n");

printf("num:

");

scanf("%d",&lib[i].num);

printf("book_name:

");

scanf("%s",lib[i].book_name);

printf("writer:

");

scanf("%s",lib[i].writer);

printf("sort_num:

");

scanf("%s",lib[i].sort_num);

printf("pub_company:

");

scanf("%s",lib[i].pub_company);

printf("pub_time:

");

scanf("%s",lib[i].pub_time);

printf("prise:

");

scanf("%s",lib[i].prise);

t=1;

break;

}

}

if(t==0)

printf("没找到要修改的书!

\n");

}

voiddel(void)

{

inti,p,t;

charname[30];

printf("请输入要删除的书名:

\n");

scanf("%s",name);

p=0;

for(i=0;i

{

if(strcmp(name,lib[i].book_name)==0)

{

t=i;

for(t;t

{

lib[t].num=lib[t+1].num;

strcpy

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

当前位置:首页 > 幼儿教育

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

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