北京师大学分校
C程序设计实践报告题目:图书管理系统
学院信息技术学院
专业计算机科学与技术
学生姓名龙海恩,少彬,鑫,麦淑玲
指导教师姓名肖红玉
指导教师单位信息技术学院
2013 年 4 月11 日
1、题目与要求
编写一个图书管理系统,除了书上的功能之外,还要能做到读者借书还书,查看书籍排行榜,看到书籍的借阅记录和分类状况。
2、系统总体设计(要给出必要的文字说明及图示)
本报告中蓝色字体为我们小组新增的图书信息。
2.1功能需求分析(明确系统的功能需求)
(1)用户登录
(2)系统主控平台
(3)新增图书信息处理
(4)浏览图书信息处理
(5)查询图书信息处理
(6)删除图书信息
(7)保存图书信息处理
(8)普通用户借书信息处理
(9)普通用户还书信息处理
(10)普通用户可查看已借书籍
(11)查看排行榜
(12)新增用户信息
(13)查找用户
(14)查看所有用户
(15)保存用户信息
(16)退出
2.2系统功能模块划分(要给出系统功能模块图)
(1)登录系统
(2)增加图书信息
(3)浏览图书信息
(4)查找图书信息
((1))按书名查找
((2))按作者查找
((3))按出版社查找
((4))按出版日期查找
((5))按ISBN查找
((6))按图书类型查找
(5)删除图书信息保存图书信息
(6)图书排行榜
(7)新增用户信息
(8)查找用户信息
(9)更新用户信息(10)删除用户信息(11)保存用户信息(12)退出系统((1))管理员退出系统((2))普通用户退出系统
3、详细设计
本系统包括图书信息管理和用户管理两大面,程序有三大模块,有三个源程序文件(management.c、book.c、user.c)和三个头文件(management.h、book.h、user.h)。
其中book.c完成的是图书信息的管理,包括新增图书、浏览图书、查询图书、删除图书、保存图书功能。user.c完成的是用户信息的管理,包括新增用户、用户查询、保存用户等功能。
management.c完成的是用户登录,用户退出等功能。Main函数也在这一源程序中。
book.h中的容是图书信息的管理中涉及的常量、结构体的定义和相关函数的声明。
user.h中的容是用户信息的管理中涉及的常量、结构体的定义和相关函数的声明。
management.h中的容是菜单及退出函数的声明。
3.1重要数据的数据结构设计(即结构体的声明、变量的定义、文件)
一.头文件management.h
1.显示菜单函数声明
void show_admin_menu();
void show_search_book_menu();
void show_user_menu();
2.退出系统函数声明
void admin_exit();
void user_exit();
二.头文件book.h
1.常量定义
分别定义书名、出版社、出版日期、作者、ISBN、图书类型、借书读者、借阅图书的借阅量的最大长度。(蓝色字体为我们小组新增的图书信息。)
#define MAX_BOOK_NAME 20
#define MAX_PUBLISHER 20
#define MAX_DATE 10
#define MAX_AUTHOR 20
#define MAX_ISBN 20
#define MAX_SORT 10
#define MAX_BORROW_USER 20
#define MAX_BOOK_COUNT 10000
2.结构体类型定义
定义一个结构体类型_book_info,使用typedef 语句自定义一个新类型book_info,新类型中共11个成员,分别是书名、作者、出版社、出版日期、ISBN、页数、用于标记借书还书、图书类型、借阅次数、
借书读者、用于标记排行榜,用来描述图书的基本信息。
typedef struct _book_info
{
char book_name[MAX_BOOK_NAME];
char author[MAX_AUTHOR];
char publisher[MAX_PUBLISHER];
char pub_date[MAX_DATE];
char ISBN[MAX_ISBN];
int pages;
char borrow_size;
char sort[MAX_SORT];
int borrow_time;
char borrow_user[MAX_BORROW_USER];
int book_load_time;
}book_info;
定义一个结构体类型_book,使用typedef 语句自定义一个新类型book,其中成员有一个结构体变量bi和指向下一本图书的指针变量。(此结构是存储图书信息的链表。)
typedef struct _book
{
book_info bi;
struct _book* next;
}book;
3.函数声明
(1)主要处理函数声明
void init_book(); //图书模块初始化
void load_books(); //从图书文件中加载图书信息
void add_book(); //新增图书
void view_book(); //浏览所有的图书
void delete_book(); //删除图书
void save_books(); //调用将图书信息保存到文件函数,给出提示信息
void clear_books(); //从存中清除图书链表信息
void books_charts(); //排行榜
void update_book(); //更新图书
(2)图书查询函数声明
void search_book_by_name(); //按书名查询图书
void search_book_by_author(); //按作者查询图书
void search_book_by_publisher(); //按出版社查询图书
void search_book_by_pubdate(); //按出版日期查询图书
void search_book_by_isbn(); //桉书ISBN查询图书
void search_book_by_sort(); //桉图书类型查询图书
(3)辅助函数声明
void save_books_to_file(); //将图书信息保存到文件
book* get_last_book(); //得到图书链表的最后一个节点
book* get_previous_book(book* p); //取得图书链表的最后一个节点
void input_book(book_info* info); //输入一本图书信息
void show_book(book_info* info); //显示图书信息
void update_book_data(book_info* info); //更新图书信息
int findstr(char* , char*); //查找字符串
void borrow(book*); //普通用户借阅书籍
void _return(book*); //普通用户还书
void show_books_record(); //书的借阅记录标记
三.头文件user.h
1.常量定义
#define MAX_USERNAME 10
#define MAX_PASSWORD 10
定义一个枚举类型_USER_TYPE,使用typedef 语句自定义一个新枚举类型USER_TYPE,枚举类型可能取两种值,0是管理员,1是普通用户。
typedef enum _USER_TYPE
{
ADMIN = 0,
USER
}USER_TYPE;
2.结构体类型定义
定义一个结构体类型_user_info,使用typedef 语句自定义一个新类型user_info,新类型中共3个成员,分别是用户名,密码,用户权限,用来描述用户的基本信息。
typedef struct _user_info
{
char username[MAX_USERNAME];
char password[MAX_PASSWORD];
USER_TYPE user_type;
}user_info;
定义一个结构体类型_user,使用typedef 语句自定义一个新类型user,其中成员有一个结构体变量ui和指向下一个用户的指针变量。(此结构是存储用户信息的链表。)
typedef struct _user
{
user_info ui;
struct _user* next;
}user;
3.函数声明
(1)主要处理函数声明
void init_user(); //用户模块初始化
void load_users(); //从用户文件中加载用户信息
USER_TYPE login(); //用户登录,返回用户类型
void add_user(); //新增一个用户
void search_user(); //查找一个
void save_users(); //调用将用户信息保护到文件函数,给出提示信息void clear_users(); //从存中清除用户链表信息
void view_users(); //查看所有用户
(2)辅助函数声明
void save_users_to_file(); //将用户信息保存到文件
user* get_last_user(); //得到用户链表的最后一个节点
user* get_previous_user(user* p); //得到用户节点p的前一个节点
user* find_user(char* name); //从用户链表中按用户名查找一个用户信息void show_user(user_info* info); //显示一个用户信息
void input_user(user_info* info); //输入一个用户信息
void delete_user(user* p); //从链表中删除一个用户信息
void update_user(user* p); //更新一个用户信息
四.模块化设计management.c
2.函数指针数组admin_func存储的是管理员权限操作主菜单所对应的函数。
void (* admin_func[])() =
{
add_book,
view_book,
show_search_book_menu,
delete_book,
update_book,
save_books,
books_charts,
add_user,
search_user,
save_users,
view_users,
admin_exit
};
其他函数基本没多大改变,跟书中一样。
五.模块化设计book.c
1.预处理
增加了两个语句:
int charts[MAX_BOOK_COUNT] = {0}; //声明全局变量,排行榜extern char borrow_user[20]; //调用其他源文件已声明过的变量
2.主要处理函数
(1).查找图书的几个函数中:
void search_book_by_name();
void search_book_by_author();
void search_book_by_publisher();
void search_book_by_pubdate();
void search_book_by_isbn();
void search_book_by_sort();
均加了借书还书代码。
while (p != NULL)
{
if (findstr(p->bi.book_name, s) != -1)
{
show_book(&(p->bi));//显示查到的图书信息
if(strcmp(borrow_user,"admin") != 0)
{
if((p->bi.borrow_size) == 'N')
borrow(p);//在user.c中定义
else
_return(p);//在user.c中定义
save_books();
}
count++;
}
p = p->next;
}
if (count == 0)
{
printf(">没有找到图书%s。继续查找吗?(y or n):", s);
getchar();
input = getchar();
//continue;
}else{
printf(">共找到%d本图书...\n", count);
printf(">继续查找吗?(y or n):");
getchar();
input = getchar();
printf("..............................\n");
}
实现后截图为
(2)删除图书的代码为:
void delete_book()
{
int count=1; char input = 'Y';
char isbn[MAX_ISBN] = {0};
char first_isbn[MAX_ISBN] = {0}; book* p =
NULL;
book* result = NULL;
while (input == 'Y' || input == 'y')
{
printf(">删除图书...\n");
printf(">请输入ISBN(最大长度为%d):", MAX_ISBN);
scanf("%s", isbn);
p = first_book;
result = NULL;
while (p != NULL)
{
if (count)
strcpy(first_isbn,p->bi.ISBN);
if (strcmp(p->bi.ISBN, isbn) == 0)
{
result = p;
break;
}
count = 0;
p = p->next;
}
if (result != NULL)
{
show_book(&(result->bi));
printf(">确认删除吗?(y or n):");
getchar();
input = getchar();
if (input == 'y' || input == 'Y')
{
if (strcmp(first_isbn, p->bi.ISBN) == 0)
first_book = p->next;
else
get_previous_book(p)->next = p->next;
free(p);
}
}else
printf(">没有找到ISBN为%s 的图书。\n", isbn);
printf(">继续删除其他图书吗?(y or n):");
getchar();
input = getchar();
}
}
书中的这部分是代码是有错误的。在删除第一本书的时候会报错。加上if(count)来判断用户是否要删掉
第一本书。
(4)更新图书的代码:
void update_book()
{
char try_again = 'Y';
book* p = NULL,*ch;
char s[MAX_BOOK_NAME] = {0};//书名
while (try_again == 'Y' || try_again == 'y')
{
p = first_book;
ch = first_book;
printf(">更新图书...\n");
printf("请输入要更新图书的书名(最大长度为%d):", MAX_BOOK_NAME);
scanf("%s", s);
while(p != NULL)
{
if(strcmp(s,p->bi.book_name) == 0)
break;
p = p->next;
}
if(p != NULL){
while(ch != NULL)
{
if(strcmp(ch->bi.borrow_user,"NULL") != 0)
break;
ch = ch->next;
}
if(ch == NULL)
update_book_data(&p->bi);
else
printf("改图书已被借出,不能更新!!");
}
else
printf("未找到改图书");
printf(">继续更新图书吗?(y or n):");
getchar();
try_again = getchar();
}
}
(5)排行榜
void books_charts(){
book *p = NULL,*q;
p = first_book;
int i,j,k,temp = 0;
char input = 'Y';
for(i = 0;p != NULL;i++)
{
charts[i] = p->bi.borrow_time;
p->bi.book_load_time = 1;
p = p->next;
}
for(j = 0;j < i;j++)
{
for(k = j+1;k < i;k++)
{
if(charts[k] > charts[j])
{
temp = charts[k];
charts[k] = charts[j];
charts[j] = temp;
}
}
}
while(input == 'y' || input == 'Y')
{
k = 0,j = 0;
q = first_book;
printf("排行榜:\n");
printf("+-----------------------------------------------------+\n");
printf("| 名次| 书名| 被借次数|\n");
printf("+-----------------------------------------------------+\n");
while(k < i)
{
while(q != NULL)
{
if (q->bi.borrow_time == charts[k] && q->bi.book_load_time == 1)
break;
q = q->next;
}
printf("|%7d. | %-21s|%8d |\n",k+1,q->bi.book_name,q->bi.borrow_time);
printf("+-----------------------------------------------------+\n");
q->bi.book_load_time = 2;
q = first_book;
k++;
}
printf("要继续查看排行榜么?(要y 不要n)\n");
getchar();
input = getchar();
while(q != NULL)
{
q->bi.book_load_time = 1;
q = q->next;
}
printf("...............................");
}
}
3.辅助函数
在show_book中增加了部分显示图书的借阅状态,即被谁借了,借阅次数。
if(info->borrow_size == 'N'){
printf("借阅状态:未被借出\n");
//printf("%s",info->borrow_user);
}
else{
if(strcmp(borrow_user,info->borrow_user) != 0)
printf("借阅状态:已被借出\n");
if(strcmp(borrow_user,info->borrow_user) == 0)
printf("借阅状态:你借了该图书\n");
if(strcmp(borrow_user,"admin") == 0)
printf("借阅者:%s\n",info->borrow_user);
}
printf("被借总次数:%d\n",info->borrow_time);
//if(strcmp(info->borrow_user,"NULL") == 1)
printf("..............................\n");
六.模块化设计user.c
1.预处理增加声明两个语句:
extern book* first_book;
char borrow_user[20];
2.主要处理函数
(1)在删除用户函数中,即void delete_user,增加了一个条件,即当要删除的用户中有借书记录时,不得删除。并作出提示。
void delete_user(user* p)
{
char input_char = 'N';
book *q = first_book;
user* previous = NULL;
int count = 0;
printf(">确定要删除用户[%s] 吗?(y or n):", p->https://www.sodocs.net/doc/fb5605075.html,ername);
getchar();
input_char = getchar();
while(q != NULL)
{
if(strcmp(q->bi.borrow_user,p->https://www.sodocs.net/doc/fb5605075.html,ername) == 0)
{
count++;
}
q = q->next;
}
if(count == 0)
{
if (input_char == 'Y' || input_char == 'y')
{
previous = get_previous_user(p);
previous->next = p->next;
free(p);
p = NULL;
}
}
else
{
printf("该用户有借书记录,不得删除!!!");
}
}
(2)新增一个,能查看所有用户的函数,即void view_users,代码如下:
void view_users()
{
char try_again = 'Y';
/*printf("%s",p->next->next->next->https://www.sodocs.net/doc/fb5605075.html,ername);
getchar();
getchar();*/
//p = p->next;
while (try_again == 'Y' || try_again == 'y')
{
user* p = first_user;
p = p->next;
printf("+---------------------------------+\n");
printf("| 账号| 密码|\n");
printf("+---------------------------------+\n");
while(p != NULL)
{
printf("| %-10s| %-10s|\n",p->https://www.sodocs.net/doc/fb5605075.html,ername,p->ui.password);
printf("+---------------------------------+\n");
p = p->next;
}
printf("需要再次查询用户信息么?要y 不要n:");
getchar();
try_again = getchar();
printf("----------------------------------\n");
}
}
(3)普通用户借书功能函数,即void borrow,代码如下:
void borrow(book* p)
{
char sure = 'N';
printf(">确定要借阅吗?(y or n)");
getchar();
sure = getchar();
if(sure == 'y' || sure == 'Y')
{
p->bi.borrow_size = 'Y';
p->bi.borrow_time++;
strcpy(p->bi.borrow_user,borrow_user);
}
}
(4)普通用户还书功能函数,代码如下:
void _return(book* p)
{
char sure = 'N';
if(strcmp(borrow_user,p->bi.borrow_user) == 0)
{
printf(">确定要还书吗?(y or n)");
getchar();
sure = getchar();
if(sure == 'y' || sure == 'Y')
{
p->bi.borrow_size = 'N';
strcpy(p->bi.borrow_user,"NULL");
}
}
}
(5)查看读者本人已借书籍,代码如下:
void show_books_record()
{
book* p = NULL;
char input = 'Y';
while (input == 'y' || input == 'Y')
{
p = first_book;
printf("+------------------------------------------------+\n");
printf("| 书名| 作者|\n");
printf("+------------------------------------------------+\n");
while (p != NULL)
{
if(strcmp(p->bi.borrow_user,borrow_user) == 0)
{
printf("|%24s|%23s|\n", p->bi.book_name, p->bi.author);
printf("+------------------------------------------------+\n");
}
p = p->next;
}
printf(">再次查阅已借书籍吗?(y or n):");
getchar();
input = getchar();
}
}
3.2函数的规划和设计(即根据分析需要设计哪些函数及其之间的调用关系)主菜单上对应的选项分别对应着各个函数,写成一个函数把菜单上的各个
函数包括起来。这样的函数有:
void (* admin_func[]),调用着add_book;view_book;
show_search_book_menu;delete_book;update_book;
save_books;books_charts;
add_user,;search_user;save_users;
view_users;admin_exit;
void (* admin_search_book_func[]),调用着search_book_by_name,
search_book_by_author, search_book_by_publisher,
search_book_by_pubdate, search_book_by_isbn, search_book_by_sort
;
void (* user_func[]),调用着view_book,
show_search_book_menu, show_books_record, books_charts,
user_exit;
(2)在查找图书中,无论是按什么式查找,都调用了void borrow
(book* p)和
void _return(book* p)两个函数,即在读者每次查找完书之后,都询问
“是否借书”,“是否还书”的过程。
在退出系统的时候,管理员和用户的退出是不一样的,在管理员退出的时
候,有admin_exit,调用的函数是save_users_to_file();
clear_users(); save_books_to_file(); clear_books
(); exit(0);
而用户退出的时候,调用的是clear_users(); clear_books
(); exit(0);
3.3主控模块(main函数)的流程分析与设计(要画出主函数的流程图)
3.4主要功能模块的流程分析与设计(分别画出各主要功能模块实现的流程图)(1)普通用户登陆
N N N
C语言程序设计 实训报告 题目:红外避障机器人 院(系):信息工程系 专业:通信工程 学生姓名:韦嘉宝 学号: 24 指导教师:朱震周斌王旬全刘辉 2016 年10月8 日 目录 摘要 (1) 设计要求 (2) 设计步骤 (3) 代码编写 (4) 心得体会 (5) 参考文献 (6)
许多机器人使用雷达(RADAR)或者声纳(SONAR)来探测物体而不需要同物体接触。本文的方法是使用红外光来照射机器人前进的路线,然后确定何时有光线从被探测目标反射回来,通过检测反射回来的红外光就可以确定前方是否有物体。由于红外遥控技术的发展,现在红外线发射器和接收器已经很普及并且价格很便宜。 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能小车。 机器人使用红外线二极管LED 作为前灯,如图6-1 所示。红外线二极管发射红外光线,如果机器人前面有障碍物,红外线从物体反射回来,相当于机器人眼睛的红外检测(接收)器,检测到反射回的红外光线,并发出信号来表明检测到从物体反射回红外线。机器人的大脑——单片机A T89S52 基于这个传感器的输入控制伺服电机。红外线(IR)接收/检测器有内置的光滤波器,除了需要检测的980 nm 波长的红外线外,它几乎不允许其他光通过。红外检测器还有一个电子滤波器,它只允许大约38.5 kHz 的电信号通过。换句话说,检测器只寻找每秒闪烁38500 次的红外光。这就防止了普通光源像太阳光和室内光对IR 的干涉。太阳光是直流干涉(0Hz)源,而室内光依赖于所在区域的主电源,闪烁频率接近100 Hz 或120 Hz。由于120 Hz 在电子滤波器的38.5 kHz 通带频率之外,它完全被IR 探测器忽略。 本任务将搭建并测试红外线发射和检测器对。本讲需要用到的新部件如下: 元件清单 (1)红外检测器,2 个。 (2)IR LED(带套筒),2 个。 (3)470? 电阻,2 个。 (4)连接线,若干。 二、设计要求 (1)小车能够完成前进、后退、左转、右转等动作。 (2)机器人能够读出传感器电平变化,并作相应的动作变化。 (3)利用机器人所装配的两个探测器,探测和避开障碍物。 三、设计步骤
实 验 报 告 二级学院:信息与工程学院 系别:计算机科学与技术系 专业:信息管理与信息系统 课程名称:高级语言程序设计 班级:姓名: 实验名称: 电话订餐信息处理 实验目的: 题目要求: 一个小饭馆的生意非常红火,要想用餐必须提前一天打电话预订,假设我们是饭馆负责接受电话预订的服务员,我们需要做些什么呢?首先,需要准备一张大小适当的白纸,等待顾客的电话。李红最先打进了电话,她预约第2天中午12点用餐,用餐人数5人,服务员在纸上做了如下记录:“李红 12点 5人”;接着,刘娜、汪涵、孙杰和赵君分别来了电话,服务员根据他们的要求做了记录,此时纸上记录的内容是: 李红 12点 5人 刘娜 11点 2人 汪涵 11点20分 3人 孙杰 10点30分 5人 赵君 13点20分 6人 孙杰随后又来电话,将用餐时间推后一个小时,那么记录的内容也应该做相应的修改。刘娜来用餐以后,可以将其信息从纸上划去 编写程序处理电话订餐的情况
实验步骤: 首先建立结构体类型,然后函数声明,编写主函数,定义函数,调用函数。完成后,对程序进行调试,确定所编写的程序是否能够运行。 实验内容: #include<> #include<> #define max 30 struct guest { intnum; char name[40]; char time[20]; int sum; }guestlink[max]; void insert(int *p); void inquire(int); void change(int); void dele(int *p); void show(int); void main() { inti; int count=0; do {0 printf("1.......插入\n"); printf("2.......查询\n"); printf("3.......修改\n"); printf("4.......删除\n"); printf("5.......显示\n"); printf("6.......退出\n"); scanf("%d",&i); switch(i) { case 1: insert(&count);break; case 2: inquire(count);break; case 3: change(count);break; case 4: dele(&count);break; case 5: show(count);break; case 6:break; default:printf("输入错误!");break; } }while(i!=6); }
面向对象程序设计(C++语言)课程设计 设计说明书 图书管理系统的设计与实现 起止日期:年月日至年月日 学生姓名 班级 学号 成绩 指导教师(签字) 计算机与通信学院 年月日 图书管理系统
一.需求分析 图书馆是目前生活中除了网络外的另一个获取知识的重要场所。利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。有助于加深对面向对象程序设计中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。 二.设计要求: 1.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时 间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 2.系统以菜单方式工作 3.图书信息录入功能(图书信息用文件保存)--输入 4.图书信息浏览功能--输出 5.查询和排序功能:(至少一种查询方式)--算法 6.按书名查询 7.按作者名查询 8.图书信息的删除与修改(可选项) 三.概要设计 1、类的设计 ①、Book类的设计(内部函数流程图):
②、BDatabase类的设计: ③、主函数流程图:
4多态的实现 class People { public: virtual void card(){cout<<"card people"< 实习报告 专业软件工程2班 姓名刘煜 学号0701******** 指导教师王松 时间 2010年10月8日 目录 一图书馆图书借阅管理系统规划 1.1绪论 (3) 1.2图书馆系统分析及功能论述 (3) 1.3 图书借阅系统可行性分析 (4) 二图书管理系统分析 2.1 系统组织结构与功能分析 (5) 2.2 业务流程分析 (5) 2.3 数据流程分析 (6) 三图书管理系统设计 3.1 系统设计的任务及原则 (9) 3.2 代码设计 (9) 3.3 数据库设计 (10) 3.4输入输出设计 (11) 3.5物理配置方案设计 (13) 四系统评价 4.1图书管理系统系统优点 (14) 4.2图书管理系统缺点 (14) 五总结 一图书管理系统规划 1.1绪论 2010年的今天是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴求更是与日俱增。图书馆作为学生学习知识的重要场所,作为信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理。介于这一现象,我们对于图书馆的借阅管理系统进行了全面的分析处理,在信息高速发展的今天,促使图书馆管理运用网络技术,通过信息系统的开发,在图书馆之间互通有无,有利于提高图书的利用率。 本次系统分析设计以中国计量学院的图书馆为原型对其图书其中的借阅系统进行分析,逐步体现图书馆的信息管理现状,及其日后的改进方案的提供。 1.2图书馆系统分析 “图书馆借阅管理信息系统”的主要功能有:读者登陆、图书借阅、图书采编、读者信息管理和系统维护。系统功能如下图1.2.1: 图书管理信 读者登陆系统维护图书采编图书借阅用户管理口令修改图书编目图书典藏图书征订 图1.2.1 系统组织结构图 各子系统功能如下所述: 读者登陆 读者访问系统时系统将检验读者的名字和密码,经过注册的读者允许进入系统。 图书借阅系统 读者查找到所需图书后,在图书保留期内到图书馆办理借阅手续。图书借阅系统处理图书借阅、还书、续借等手续。 图书采编体统 图书采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者检索适用。目录信息包括图书编号、图书类别、书名、作者、出版社、定价、出版日期和数量等。 系统维护模块 C语言实习报告(用链表实现学生学籍管理) 绪言 C语言使国内外广泛使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好。既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合编写系统软件。 在经过一整个学期的C语言理论学习,我们已经能够掌握其基本语法,但是缺乏一定的实际运用的能力。为了让我们更好的理解和运用其解决实际问题,并且对结构化程序有更进一步的认识,学校组织了这一次C语言实习。 实习中,我们将按要求完成一个较为复杂的程序编写——学生学籍管理程序。 实习基本内容和要求: 1、总体功能要求 (1)链表的建立:每个节点包括:学号、姓名、性别、语文、数学、英语、总分; (2)节点的插入:按学号的顺序插入; (3)删除链表中的节点:按学号或者姓名; (4)链表的输出:按学号排序、按总分排序。 2、性能的要求: (1)各个功能分别用函数实现; (2)节点信息让用户通过键盘输入 (3)总分通过计算获得; (4)有简单的操作界面; 尽可能考虑程序的容错性、可操作性。 教材和主要参考书目: (1)教材:《C程序设计》,谭浩强编著,清华大学出版社(2)主要参考书目: ①《C程序设计教程》,谭浩强编著,清华大学出版社; ②《C语言程序设计——习题与实验指导》,谭浩强编著,清华大学出版社。实习过程: 我们将有5天的时间完成一个程序和一份实习报告。 1、我们要根据题目的要求进行需求分析和资料整理;(1天) 2、我们利用资料、教材和寻求他人帮助完成详细设计;(注: 关键部分解释说明)(3天) 3、完成一份对自己程序详细描述与解释的报告。(1天) 面向对象分析与设计大作业 学院:计算机科学与工程学院 班级:计算机软件 3 学生姓名:陈俊伟 学号:2174 指导老师:苏锦钿 提交日期: 华南理工大学 面向对象分析与设计大作业课程实验报告 实验题目 :_____ 图书管理系统 uml 图__________________________ 姓名 :___ 陈俊伟 ________学号:_ 2174_____ 班级 : ___09 软件 3 班________ 组别 : ________ 合作者 : __________________ 指导教师 : ______ 苏锦钿 __________ 实验概述 【实验目的及要求】 一.目的 1.掌握面向对象技术的基本原理和各种相关概念; Rational Rose 2003 、 IBM 2. 熟练掌握 UML的基本知识和9 种常见的 UML图形 , 并能够利 用 Software Architecture、或trufun UML工具进行建模; 3.根据问题进行学习,拓广、深化; 4.独立完成一个应用程序的分析、设计和建模,为以后软件项目的开发打下实践基础。 【实验原理】 UML建模,就是用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类 之间的关联、类的实例相互配合实现系统的动态行为等。UML提供了多种图形可视化描 述模型元素,同一个模型元素可能会出现在多个图中对应多个图形元素,人们可以从多 个视图来考察模型。UML建模主要分为结构建模、动态建模和模型管理建模 3 个方面,第 1 个方面是从系统的内部结构和静态角度来描述系统的,在静态视图、用例视图、实施视 图和配置视图中适用,采用了类图、用例图、组件图和配置图等图形。例如类图用于描述系 统中各类的内部结构(类的属性和操作)及相互间的关联、聚合和依赖等关系, 包图用于描述系统的分层结构等;第 2 个方面是从系统中对象的动态行为和组成对象间的相互 作用、消息传递来描述系统的,在状态机视图、活动视图和交互视图中适用,采 用了状态机图、活动图、顺序图和合作图等图形,例如状态机图用于一个系统或对象从 产生到结束或从构造到清除所处的一系列不同的状态;第 3 个方面描述如何将模型自身组织到高层 单元,在模型管理视图中适用,采用的图形是类图。建模的工作集中在前两 方面,而且并非所有图形元素都适用或需要采用 图书管理系统实习报告 篇一:图书管理系统实训报告 淮南联合大学计算机系 课程实训报告书 实训科目: 图书管理系统 专业班级:11级计算机应用技术 学号: 20118031139 姓名: 吕昌盛 实训时间: 2012-12-18 一、课程实训目的 《JA V A Web开发》课程实训是计算机应用技术专业集中实践性环节之一,是学习完《JA V A语言程序设计》课程后,继续学习《Java Web开发》进行的一次全面的综合练习,其目的是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生使用JA V A进行项 目开发及程序调试能力。 二、课程实训内容 利用《JA V A语言程序设计》及《Java Web开发》课程中所学到的编程知识和编程技巧,独立完成下列任务之一: 1、电子购物网站系统开发。 2、图书管理系统开发。 三、课程实训要求 1.对系统进行功能需求分析;2.设计合理的数据结构和系统框架;3.程序功能齐全,能正确运行; 4.课程实训完成后必须按要求提交课程实训报告。 四、实训过程 篇二:图书管理系统实训综合报告 实训项目设计报告 题目:“xxxxx”网上书店 实训课程 指导教师: 姓名: 专业: 起止日期:信息系统数据库设计 实训xxxx xxx 学号:xxxxxx计算机软件班级:08计软2011年5 月 1 日至2009 年5月16 日 计算机教研室制 目录 第一章绪论................................................................. (3) 第二章系统分析............................................................... . (3) 需求分析............................................................... . (3) 项目规划............................................................... (3) ● 经济性............................................................... . (4) 第三章ASP技术简介............................................................... 设计报告 一,实验目的: 通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。在实习中通过 实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知 识点。 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上 机实习可以帮助我们更好地理解这种结构式的 中级语言以及其各式各样的数据类型和高效率 的运算程序,为我们进一步学习C++打下坚实基 础。 同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而 且也让我们发现了一些自己的个人误区以及其 他人容易犯的错误,从而在今后的学习中更加谨 慎,达到事半功倍的效果;通过询问老师,也让 我们养成了不耻下问的好习惯,这将很有利于以 后的学习。 闲乐-一个人闲。不如大家一块儿乐https://www.sodocs.net/doc/fb5605075.html, 二,总体设计: 1,学生成绩排名 1,流程图: <通过冒泡法对数组进行排序> <测试时由于循环语句循环次数的错误导致部分数据没有排序,修改FOR语言中的条件即可调试成功>(完整word版)图书管理系统设计实习报告
C语言实习报告
图书管理系统uml实验报告.doc
图书管理系统实习报告
C语言实习报告