宁波工程学院《C语言程序设计》课程设计报告图书信息管理系统设计Word下载.docx
- 文档编号:19635969
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:25
- 大小:24.29KB
宁波工程学院《C语言程序设计》课程设计报告图书信息管理系统设计Word下载.docx
《宁波工程学院《C语言程序设计》课程设计报告图书信息管理系统设计Word下载.docx》由会员分享,可在线阅读,更多相关《宁波工程学院《C语言程序设计》课程设计报告图书信息管理系统设计Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
程序层次图
开始
选择数字编号
01234
图书信息修改
图书信息查询
图书信息浏览
图书信息录入
退出图书管理系统
图书信息排序
图书信息保存
图书信息删除
图书信息增加
5678
程序流程图
0
1
0
2
3
4
5
6
7
8
2、核心技术介绍
简单选择排序技术:
基本思想:
每一趟在后面n-i个待排记录中选取排序码最小的记录作为有序序列中的第i个记录。
排序过程:
1首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。
2再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换。
3重复上述操作,共进行n-1趟排序后,排序结束
实现代码为:
voidbookpaixu(structbook*p,intn)
{
intj,i,k;
charc1;
structbooktemp;
printf("
\n排序前图书的信息记录为:
\n"
);
\n%9s%9s%9s%9s%9s%9s%9s\n"
"
登录号"
书名"
作者名"
分类号"
出版单位"
出版时间"
价格"
for(i=0;
i<
n;
i++)
\n%10s%10s%10s%10s%10s%10s%10s\n"
(p+i)->
no,(p+i)->
name,(p+i)->
author,(p+i)->
fenlei,(p+i)->
putfrom,(p+i)->
puttime,p[i].price);
\n按登录号排序(D),还是按作者名排序(A)?
"
//选择排序的方式
c1=getchar();
getchar();
if(c1=='
d'
||c1=='
D'
)//选择登录号由小到大排序
{
for(i=0;
n-1;
i++)
{
k=i;
for(j=i+1;
j<
j++)
if(strcmp(p[k].no,p[j].no)>
0)//使用选择法进行排序
k=j;
if(k!
=i)//如果最小熟不熟默认的p[i],再交换,
{
temp=p[k];
p[k]=p[i];
p[i]=temp;
}
}
printf("
\n排序后图书的信息记录为:
//输出排序后图书的信息
i++)printf("
}
elseif(c1=='
a'
A'
)//选择作者名由小到大排序
if(strcmp(p[k].author,p[j].author)>
0)
=i)//使用选择法进行排序
else
\n您输入的为非法字符!
}
3、函数功能介绍
stdlib.h是包含文件stdlib头文件即standardlibrary标准库头文件。
stdlib头文件里包含了C、C++语言的最常用的系统函数。
该文件包含了的C语言标准库函数的定义。
stdlib.h里面定义了五种类型、一些宏和通用工具函数。
类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;
宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;
常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。
系统使用的主要函数
voidmenu();
intbookluru(structbook*p,intn);
(录入图书信息)
voidbookliulan(structbook*p,intn);
(图书信息浏览)
voidbookchaxun(structbook*p,intn);
(图书信息查询)
voidbookxiugai(structbook*p,intn);
(图书信息修改)
intbookzengjia(structbook*p,intn);
(图书信息增加)
intbookshanchu(structbook*p,intn);
(图书信息删除)
voidbookpaixu(structbook*p,intn);
(图书信息排序)
voidDLsearch(structbook*p,intn);
(按登入号查询)
voidAUsearch(structbook*p,intn);
(按作者名查询)
intbookzairu(structbook*p,intn);
(图书信息文件储存)
voidgoout();
(退出程序)
intbookbaocun(structbook*p,intn);
(图书信息保存)
voidmain()
系统使用的主要数据结构
structbook{//定义一个book类结构体。
charno[L];
charname[L];
charauthor[L];
charfenlei[L];
charputtime[L];
charputfrom[L];
charprice[L];
4、设计体会及总结
这次课程设计让我掌握了许多的有用知识。
首先通过不断地学习和锻炼更加熟练地掌握应用软件MicrosoftVisualC++6.0了。
设计正确及合适的程序对于我们初学者来说是很大的难题,出现一丁点儿错误就得非很大的努力去修改,正式者一步步一点点的努力让我对C语言游乐更深的认识。
同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值
通过两周的课程设计,第一次我试着用所学的C语言知识去编制生活中常用的程序。
我们是小组选择编辑图书信息管理系统程序。
由于分工合作,我负责的是查询和排除模块。
起初对知识掌握的不够全面,在整个设计过程中遇到很多问题。
比如,编译出现错误,对于格式的掌握还不够透彻;
在分界面运行完后,回不到系统的主界面,出现了死循环;
在删除信息的板块中,删除了要保留的;
运行时,屏幕显示的字之间无空格。
后来,通过小组互相帮组讨论,查阅书籍,改善了程序。
首先把原程序中的运用scanf()输入字符,改为getchar(),排除了接受回车键所出现的问题,能够顺利的返回主界面。
其次,printf()中字符串控制的长度拉宽。
最后还是能如期的完成此次实训。
当然,由于初次接触图书管理系统的设计,程序还是存在缺陷。
比如操作起来不够简便、连贯,同时也没考虑到实际问题。
如图书的价格要取大于等于零的数等。
总之,此次的课程设计还是对我们的专业很有帮助。
既巩固了我们的C语言知识,让我们对一部分函数的功能有了更加深刻的理解,把所学运用到实际,也使我们在系统设计领域有了新的拓展,开发我们的思维。
参考文献:
[1]黄明等编著《C语言课程设计》北京:
电子工业出版社
[2]郭翠英编著《C语言课程设计案例精编》北京:
中国水利水电出版社
[3]宁正元《数据结构(c语言)》南京:
东南大学出版社。
2000年6月第1版
[4]严蔚敏等《数据结构(c语言版)》北京:
清华大学出版社,1997年4月第1版
[5]谭浩强编著《C程序设计题解与上机指导(第3版)》北京:
清华大学出版社
[6]谭浩强编著《C程序设计(第3版)》北京:
[7]洪国胜等编著《C++Builder程序设计轻松上手》北京:
[8]宁正元《数据结构(c语言)》南京:
[9]严蔚敏等《数据结构(c语言版)》北京:
清华大学出版社,1997年4月第1版。
[10]明日科技编著《VisualC++程序开发范例宝典》北京:
人民邮电出版社。
[11]胡学钢等《数据结构算法设计指导》北京:
清华大学出版社,1999年第1版。
[12]刘大有《数据结构》(面向21世纪课程教材)北京:
高等教育出版社。
2001年6月第1版。
[13]胡学钢等《数据结构算法设计指导》北京:
清华大学出版社,1999年第1
版。
附录一:
系统使用方法:
一开始运行程序时,就会出现一个让你选择的界面,1.图书信息录入;
2图书信息浏览;
3图书信息查询;
4图书信息修改;
5图书信息增加;
6图书信息删除;
7图书信息排序;
8图书信息保存;
0退出图书管理系统;
当你输入1时(首次录入图书信息时),界面就会输出“添加前的图书信息记录有0个:
请输入要录入的图书书目x(0<
x<
200):
”,接着你就按要求输入你要录入的图书的信息就可以了。
当你输入2时,就会在出现一个你录入的图书信息,你可以继续选择继续或不,当选择继续时页面会跳转到3图书信息查询界面此时会提示你请按登陆号查询还是按作者名查询?
你可以按照提示进行查询操作。
当你输入4时,界面会提示你输入要修改的图书登陆号。
接下来按照提示信息一步步修改图书信息。
当你输入5时,界面会提示你添加图书信息按提示添加完后会显示添加前的图书信息记录和添加后的图书信息记录。
当输入6时,界面会提示输入删除图书的登陆号,删除后会显示图书删除后的记录。
当输入7时,界面会提示按登陆号排序或按作者名排序,排序后会显示排序后俄图书信息记录。
当输入8时,界面会提示“图书信息保存成功!
”当输入0时,将会退出图书管理系统。
Ps:
操作每一步结束都回提示是否继续操作(Y/N)。
源代码:
#include<
stdio.h>
//头文件
string.h>
stdlib.h>
#defineL30//宏定义
#defineQ200
structbook//定义一个book类结构体。
};
//函数声明//函数声明
voidmenu();
intbookzhengjia(structbook*p,intn);
voidmain()//主函数
charslect,yn;
structbookrecord[Q];
//定义book类结构体变量存放图书信息共200条
inttotal=0,flag;
total=bookzairu(record,Q);
//从文件读取图书信息,不超过200条
do
menu();
//显示菜单
请服务项编号:
slect=getchar();
getchar();
switch(slect)
case'
0'
:
goout();
break;
case'
1'
total=bookluru(record,total);
//函数调用
2'
bookliulan(record,total);
3'
bookchaxun(record,total);
4'
bookxiugai(record,total);
5'
total=bookzhengjia(record,total);
6'
total=bookshanchu(record,total);
7'
bookpaixu(record,total);
8'
flag=bookbaocun(record,total);
if("
flag==1"
)
printf("
图书信息保存成功!
else
图书信息保存失败!
break;
default:
continue;
if(slect=='
)break;
\n还要继续选择吗?
(Y/N)"
//提示是否结束
do
yn=getchar();
getchar();
if(yn=='
Y'
||yn=='
y'
break;
elseif(yn=='
N'
n'
printf("
非法选项!
while
(1);
while(yn!
='
&
yn!
//图书管理系统主菜单.
voidmenu()
system("
cls"
color1e"
\n\n"
请选择服务项目编号(0--8)\n"
******************************************************************\n"
§
********************欢迎使用图书信息管理系统******************§
**************************************************************§
§
*1.图书信息录入.§
*2.图书信息浏览.§
*3.图书信息查寻.§
*4.图书信息修改.§
*5.图书信息增加.§
*6.图书信息删除.§
*7.图书信息排序.§
*8.图书信息保存.§
*0.退出图书管理系统.§
intbookluru(structbook*p,intn)//录入图书信息.
inti=0;
intm;
\n添加前的图书信息记录共有%d个:
n);
//显示原有的图书信息
i=0;
while((i<
n)&
(strcmp(p->
no,"
)!
=0))//输入的登录号不为空时,输出图书信息
%9s%9s%9s%9s%9s%9s%9s\n"
p->
no,p->
name,p->
author,p->
fenlei,p->
puttime,p->
putfrom,p->
price);
//信息输出
i++;
p++;
\n请输入要录入的图书数目X(0<
X<
%d):
"
200-n);
//设置图书信息存储最大值
scanf("
%d"
&
m);
while(i<
m)
请输入第%d本图书的信息:
i+1);
登录号:
gets(p->
no);
//输入登录号,再输入其他信息
while(strcmp(p->
)==0);
书名为:
gets(p->
name);
作者名为:
author);
分类号为:
fenlei);
出版时间为:
puttime);
出版单位为:
putfrom);
价格为:
returnm+n;
voidbookliulan(structbook*p,intn)//图书信息浏览.
n)//输出原有图书信息
voidbookchaxun(structbook*p,intn)//图书信息查寻.
charc;
bookliulan(p,n);
\n请问按登录号查询(D),还
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 宁波 工程学院 语言程序设计 课程设计 报告 图书 信息管理 系统 设计