综合实验报告
( 2011-- 2012 年度第 1 学期)
实验名称: C 语言课程设计
目: 图书信息管理和借书系统设计
系: 控制与计算机工程
级: 软件 1102 班
1111250210
号:
题
院
班
学
姓
名:
设计周数:
李绣雯
1 周
日期:2012 年 2 月 10 日至 2012 年 2 月 18 日
C 语言课程设计报告
题目名称:图书馆图书管理与借书系统设计
一、课程设计目的:
1.进一步掌握和利用 C 语言进行行程设计的能力;强化上机动手的能力。
2.进一步理解和运用结构化程序设计的思想和方法;
3.初步掌握开发一个小型实用系统的基本方法;将理论用于实际,提高分析和解决问题
的能力。
4.学会调试一个较长程序的基本方法;
5.学会利用流程图表示算法;
6.掌握书写程序设计开发文档的能力(书写课程设计报告)。为毕业设计和以后的工作
打下基础。
二、题目描述
图书馆是大学以及社会知识聚集的场所,浩如烟海的书籍给大家提供了许多学习的机会,
也增加了管理图书的难度。需要设计一个系统管理图书的信息,也可帮助人们可以从图书馆
办卡借书还书。
三、功能分析
图书馆图书管理系统可以记录图书的各种信息,包括:书号、书名、作者名、分类
号、出版社、出版时间、价格等以便人们查找。借书系统可以输入和查询图书基本信息,
也可为借书人办理注册,办理借书手续,办理还书手续。该程序可对图书及借书证信息
的储存以及以后对新买图书及新同学信息的输入和丢失图书及毕业学生学生信息的删
除。
四、系统设计
1.功能模块说明
〈1〉加书模块:在主菜单按 1 进入管理模块,在提示中选 1 进入增加图书模块,按
照提示可往电子书库中加书.
〈2〉删书模块:在主菜单按 1 进入管理模块,按提示选 3 进入删除图书信息模块,
输入要删除的编号或书名对其进行删除。
〈3〉改书模块:在主菜单按 1 进入管理模块,在提示中选 2 修改图书信息模块。在
修改模块按对应的数字键并照提示输入修改后的数据按回车修改完成。
〈4〉办卡模块: 在主菜单按 2 进入借还书模块,按提示选 1 进入办卡模块后,按提示
以此输入卡号,办卡成功.
1
〈5〉借书模块:在主菜单按 2 进入借还书模块,按提示选 2 进入借书模块后,按提示
C 语言课程设计报告
以此输入要借的图书序号和借书证号完成借阅。
〈6〉还书模块:与借书模块类似。
〈7〉历史模块:记录书籍被借阅次数.
2.系统结构图(功能模块图)对系统进行分析,给出系统结构图
图书信息管理与借书
图书管理
图书借还
系统帮助
退出系统
加
书
改
书
删
书
查
书
返
回
办
卡
借
书
还
书
返
回
历
史
次
数
关
于
系
统
版
本
信
息
返
回
五、源程序
#include
#include
#include
/*控制台输入输出*/
/*数值转换、内存分配*/
/*字符测试、字符映射函数*/
#include
#include
#include
#define STACK_INIT_SIZE 10
#define OK 1
#define TRUE 1
#define FALSE
#define ERROR 0
struct student
{
0
/*学生 的 卡号 已借的书 */
int carnum;
char lendbook[10];
}
student[1000];
struct book
/*书的编号 书名 状态 */
2
{
int booknum;
char bookname[10];
char writername[10];
char press[10];
int price;
int turefalse;
}book[1000];
struct card
{
int cardnum;
char studentname[10];
char sex[10];
char lesson;
}
card[100];
book_add();
book_search();
int panduan();
book_change();
book_delect();
card_add();
book_lend();
book_history() ;
system_about();
system_edition();
window_display();
book_manage();
book_lend_return();
system_help();
window_choice();
system_exit();
book_return();
/*
void main()
{
主函数
C 语言课程设计报告
/*卡的编号 对应的学生名字 班级*/
*/
window_display();
window_choice();
}
/*
window_display()
{
主界面 显示子函数 */
printf("\n");
printf("
printf("
printf("\n");
printf("\n");
printf("
printf("
printf("
图书管理系统\n");
欢迎您的到来!\n");
1: 图书管理\n");
2:图书借还 \n");
3: 系统帮助 \n");
3
C 语言课程设计报告
4: 退出系统 \n");
请选择进入的板块\n");
printf("
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("
}
主界面 选项子函数
/*
window_choice()
{
*/
char choice1;
scanf("%s",&choice1);
switch(choice1)
{
case '1':book_manage();break;
case '2':book_lend_return();break;
case '3':system_help();break;
case '4':system_exit();break;
}
}
book_manage()
{
char manage_choice;
system("cls");
printf("\n");
printf("
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("
scanf("%s",&manage_choice);
switch(manage_choice)
{
这里是图书管理板块 \n");
1 加书 2 改书 3 删书
4 查书 0 返回 \n");
请您选择 \n");
case '1':book_add();;break;
case '2':book_change();;break;
case '3':book_delect();;break;
case '4':book_search();break;
case '0': system("cls");window_display();window_choice();break;
4
C 语言课程设计报告
这里是图书借还板块 \n");
1 办卡
2 借书
3 还书
4 历史
0 返回
请您选择 \n");
}
}
book_lend_return()
{
char choic;
system("cls");
printf("
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("
\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("
scanf("%s",&choic);
switch(choic)
{
case '1':card_add();break;
case '2':book_lend();;break;
case '3':book_return();;break;
case '4':book_history();break;
case '0': system("cls");window_display();window_choice();break;
}
}
system_help()
{
char choice_help;
system("cls");
printf(" \n");
printf("
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("
scanf("%s",&choice_help);
switch(choice_help)
这里是系统帮助板块 \n");
1 关于系统
2 版本信息 0 返回 \n");
请您选择 \n");
5
C 语言课程设计报告
case '1':system_about();break;
case '2':system_edition();break;
case '0': system("cls");window_display();window_choice();break;
{
}
}
加书
/*
int panduan()
{
*/
int bookmum,i=0;
FILE *fp=fopen("C:\\book.txt","a+");
scanf("%d",&bookmum);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(bookmum==book[i].booknum)
{
printf("您输入的编号重复 请重新输入\n");
panduan();
}
}
return bookmum;
}
book_add()
{
FILE *fp;
int bookmum=0;
int i=0,j=0;
system("cls");
printf(" \n");
printf("
bookmum=panduan();
book[i].booknum=bookmum;
printf("
scanf("%s",&book[i].bookname);
printf("
scanf("%s",&book[i].writername);
printf("
scanf("%s",&book[i].press);
printf("
scanf("%d",&book[i].price);
printf("
请您输入这本书的编号\n");
请您输入这本书的书名\n");
请您输入这本书的作者\n");
请您输入这本书的出版社\n");
请您输入这本书的价格\n");
请您设置书的状态 1 表示没有人借 0 表示已经借出
\n");
scanf("%d",&book[i].turefalse);
fp=fopen("C:\\book.txt","a+");
fwrite(&book[i],sizeof(struct book),1,fp);
fclose(fp);
6
}
/*
book_search()
{
一(2) 查书
*/
C 语言课程设计报告
FILE *fp;
char bookname[10];
int i;
system("cls");
fp=fopen("C:\\book.txt","r");
printf("\n");
printf("
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
请输入你要查找的书名\n");
if(strcmp(bookname,book[i].bookname)==0)
{
if(book[i].turefalse==1)
{
}
else
{
printf("这本书还在\n");
printf("这本书被借了\n");
fclose(fp);
}
fclose(fp);
return 0;
}
}
printf("没有这本书\n");
fclose(fp);
return 0;
}
一(3)
/*
book_change()
{
改书
*/
FILE *fp,*fp2;
char bookname[10],choice;
int i;
fp=fopen("C:\\book.txt","r");
fp2=fopen("C:\\bookl.txt","w");
system("cls");
printf(" \n");
printf("
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
您要改哪本书\n");
{
7