ImageVerifierCode 换一换
格式:DOCX , 页数:74 ,大小:777.29KB ,
资源ID:11359303      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11359303.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言 毕业课程设计 报告 源代码.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c语言 毕业课程设计 报告 源代码.docx

1、c语言 毕业课程设计 报告 源代码(此文档为word格式,下载后您可任意编辑修改!)C语言程序设计课程设计报告题 目: 图书管理、借阅系统 设 计 者: 李永曜 专业班级: 软件技术 09信息六班 学 号: 指导教师: 危锋 所属系部: 信息管理系 2009年12月 28 日目录:1 概述 31.1 问题分析 31.2功能 32 总体设计 4模块划分:模块图及程序结构简单介绍 43 详细设计 53.1 密码验证 53.2 录入信息 53.3 按书名查看图书信息 63.4 按书号查看图书信息 73.5查看所有已借图书信息 83.6 查看所有未借图书信息 83.7 按书名借阅图书 93.8 按书号

2、借阅图书 103.9 按书名进行查找并修改信息 113.10 按书号进行查找并修改信息 123.11 删除所有图书 133.12 按书名删除图书信息 143.13 按书号删除图书信息 153.14 主函数 164 结果分析 175 总结与体会 43参考文献 43附录: 程序清单 441 概述1.1 问题分析图书信息管理及借阅系统。方便图书管理员管理图书,以及学生借阅图书。1.2功能1、建立图书信息库,包括:书号,图书名称,出版社,出版时间和当前借阅状态;2、程序分为两大模块:图书管理员模块和用户模块。管理员模块主要用于对图书信息的录入、修改或删除。用户模块主要用于浏览图书信息和借阅图书;3、保

3、密:进入管理员模式需要进行密码验证。4、浏览:用户可以通过多种方式进行浏览图书信息。5、查找或修改:可以通过书号或书名查找想看的书。可以根据书号或书名进行修改、删除信息;6、输出:根据用户需求输出图书信息。2 总体设计模块划分:模块图及程序结构简单介绍3 详细设计3.1 密码验证1)函数原形:int mimayanzheng()2)功 能:利用strcmp()字符串比较函数与实现初始化的密码进行对比。与密码相同则进入管理员模式。3) N-S流程图定义temp_mima20用来存放用户输入的密码输出提示:请输入密码给temp_mima20赋值if(strcmp(temp_mima,mima)=0

4、)是 否返回1返回04)说明:当密码不正确时,直接返回欢迎界面(主菜单)。3.2 录入信息1)函数原形:void xinxi()2)功 能:利用printf()提示信息,scanf()函数对图书信息进行录入。3) N-S流程图定义循环变量i输出提示,要求输入录入数量for i=0 to N输入第i本书的编号(有防止编号相同的功能)输入第i本书的名称输入第i本书的出版社输入第i本书的出版时间输入第i本书的借阅状态(1表示已借,0表示未借)输出提示:录入完成4)说明:当密码不正确时,直接返回欢迎界面(主菜单)。3.3 按书名查看图书信息1)函数原形:void showbook_name()2)功

5、能:利用printf()提示信息,scanf()函数输入要查找的图书名称并利用循环进行查找该图书。如果找到则输出该图书的信息,反之则提示“不存在该书”。3)参数及类型:无。4) N-S流程图定义循环变量i;定义k用来标记是否存在该书,也可以利用k输出项目;定义n用来存放查找到的书的下标;定义字符数组book_name20存放用户输入的查询书名。输出提示,要求输入图书名称for i=0 to N if(strcmp(book_name,bki.name)=0)是 否将下标存放到n中 if(k=0)是 否输出“项目”输出图书信息 if(bkn.jie=1)是 否输出图书状态:已被借阅输出图书状态:

6、可以节阅输出提示:按任意键返回k+是 if(k=0) 否输出提示:不存在该书,按任意键返回3.4 按书号查看图书信息1)函数原形:void showbook_num()2)功 能:利用printf()提示信息,scanf()函数输入要查找的图书号并利用循环进行查找该图书。如果找到则输出该图书的信息,反之则提示“不存在该书”。3)参数及类型:无。4) N-S流程图定义整形循环变量i;定义整形变量k用来标记是否存在该书,也可以利用k输出项目;定义整形变量n用来存放查找到的书的下标。定义整形变量book_num用来存放用户输出的查询书号。输出提示,要求输入图书号for i=0 to N if(boo

7、k_num=bki.num)是 否将下标存放到n中 if(k=0)是 否输出“项目”输出图书信息 if(bkn.jie=1)是 否输出图书状态:已被借阅输出图书状态:可以节阅输出提示:按任意键返回k+是 if(k=0) 否输出提示:不存在该书,按任意键返回3.5查看所有已借图书信息1)函数原形:yijieyue()2)功 能:利用循环和printf()函数来实现信息的输出。3)参数及类型:无。4) N-S流程图3.6 查看所有未借图书信息1)函数原形:weijieyue()2)功 能:利用循环和printf()函数来实现信息的输出。3)参数及类型:无。4) N-S流程图3.7 按书名借阅图书1

8、)函数原形:jie_name()2)功 能:利用循环和printf()函数来实现信息的输出,strcmp函数实现查找图书。3) N-S流程图3.8 按书号借阅图书1)函数原形:jie_num()2)功 能:利用循环和printf()函数来实现信息的输出,利用循环实现查找图书。3) N-S流程图3.9 按书名进行查找并修改信息1)函数原形:xiugai_name()2)功 能:利用循环和printf()函数来实现信息的输出,利用循环找到要修改图书,并覆盖原值进行修改。3)参数及类型:无。4) N-S流程图3.10 按书号进行查找并修改信息1)函数原形:xiugai_num()2)功 能:利用循环

9、和printf()函数来实现信息的输出,利用循环找到要修改图书,并覆盖原值进行修改。3)参数及类型:无。4) N-S流程图3.11 删除所有图书1)函数原形:dele_all()2)功 能:利用循环和printf()函数来实现信息的输出。将长度N赋值为零时所有信息都会被删除。3)参数及类型:无。4) N-S流程图 3.12 按书名删除图书信息1)函数原形:dele_name()2)功 能:利用循环和printf()函数来实现信息的输出。利用strcmp()函数对图书信息进行查找。将查找到的图书信息的下标记录,并将其后面的元素向前移动一个元素,这样就实现了删除单个图书信息。3)参数及类型:无。4

10、) N-S流程图3.13 按书号删除图书信息1)函数原形:dele_num()2)功 能:利用循环和printf()函数来实现信息的输出。利用strcmp()函数对图书信息进行查找。将查找到的图书信息的下标记录,并将其后面的元素向前移动一个元素,这样就实现了删除单个图书信息。3)参数及类型:无。4) N-S流程图3.14 主函数2)功 能:调用各个模块实现各项功能3)参数及类型:无。4) N-S流程图4 结果分析 1.欢迎界面。2.选择“管理员模式”3.输入密码正确后进入管理界面。4.输入密码错误,将返回主菜单。5.选择“录入图书信息”,并录入相应数据。6.录入完成后系统提示录入完成。7返回后

11、回到主界面。再选择“查看图书信息”。8.选择按“书名查看”,并输入要查看的书名。9.按回车后若存在该书,则输出该书信息。10.若不存在该书。则提示不存在该书。 11.返回查看菜单,选则“按书号查看”,并输入要查看的书的编号。12.按回车后,若存在该书则输出该书信息。13.若不存在该书。 14.返回查看信息菜单后,选择“查看所有未借图书”。 15.返回查看信息菜单后,选择“查看所有已借图书”。16.返回主菜单后选择“查看所有图书”。17.返回查看菜单后按6返回管理员主菜单,选择3“修改图书信息”,进入“修改图书信息”菜单。18.选择“1.按书名查找”,输入要修改的书的名称,按回车。输入修改信息。

12、19.此时返回“查看菜单”选择“查看所有图书信息”,信息已经成功修改。20.返回“修改菜单”,选择“输入按书号查找”,输入要修改的书号,并输入新信息。21. 此时返回“查看菜单”选择“查看所有图书信息”,信息已经成功修改。22返回“修改菜单”,选择“删除图书”,进入“删除图书界面”。23.选择1“按书名删除”,并输入要删除的图书名称。可以按“0”退出删除。24.选择n为取消删除。25.选择y则执行删除。26.返回“查看信息”菜单,选择“查看所有图书信息”,则不会存在name1的信息。27.返回。选择“按书号查找”,输入要删除的图书的编号(按0可以退出),并按回车,按y删除,按n撤销删除。28

13、.返回“查看信息”菜单,选择“查看所有图书信息”,则不会存在书号为:1002的信息。29.返回。选择“删除所有图书”,若选择y则删除所有图书,选择n撤销删除命令。 选择n。 选择y。30. .返回“查看信息”菜单,选择“查看所有图书信息”,则不会存在任何信息。此时系统提示: 31.重新录入信息。32.返回“管理员模式”菜单。选择4,修改管理密码。33.输入初始密码。如果输入错误会提醒输入错误。输入正确则可以进行修改密码,但要进行两次输入,若两次输入相同,则密码被修改,输入两次密码不一致则修改失败。(1)密码输入错误。(2)密码输入正确,但两次输入新密码不一致。 (3)输入密码正确,修改密码两次

14、输入一致,则密码修改成功。再次进入“管理员模式”需要新密码。(4)再次登录管理员模式时输入旧密码则提示错误。(5)输入修改后的密码则进入管理模式。34.选择“客户模式”。35.选择查看图书。36.此时和管理员模式的查看一样。选择5查看所有图书。37.返回“客户模式”,选择2,“借阅图书”。38.选择“按书名借阅”。并输入书名,按回车。若该书可以被借阅,则提示是否借阅。(1)输入的书可以被借阅。(2)输入的书不可以借阅,或者不存在该书。(3)输入的书可以被借阅,但借阅取消。(4)输入的书可以被借阅,并且确定借阅。39.返回选择“查看所有图书信息”,此时可以看到图书的借阅状态已经改变。 40.返回

15、“按书号借阅”,功能和“按书名借阅”相同。41.返回选“查看图书信息”,该图书的借阅状态已经改变。42.选择“关于”,则输出本系统结构图:42.选择“退出”程序。程序演示到此结束。5 总结与体会第一次做这么复杂的程序,感受颇多。(一)以前写程序都是“写-想-图”模式,经过这次锻炼,使我深刻的体会到“想-图-写”模式的正确性。所谓“写-想-图”模式,就是先写,不论题目是什么,先写,然后再想如何写正确,写错了也不清楚是哪里错了,只有当程序完全编写完之后在调试阶段进行改错,最后再根据自己写的代码画N-S流程图。而“想-图-写”模式则是先构思,构思清晰之后再画N-S流程图,最后依据自己画的N-S流程图

16、进行编程。这样的好处在于:1.编写程序有条理,思路清晰。2.不容易出现逻辑错误。(二)虽然编写了很多小程序,但是还是不可避免的出现些状况,例如:存放姓名或者出版社的字符数组忘记给长度。结构体交换出现问题等等,以后会努力避免出现。(三)很多模块功能的实现其实很简单,代码也都是学过的,只是那种“思想”不容易想。例如:删除模块,如果想删除一本书的信息,分为两种情况:1.删除的是最后一本书,此时,只要将结构体数组的长度减一即可。2.删除的不是最后一本书,此时,将该书的下标记下,并将该下标后面的所有元素依次向前移动以个元素,将要删除的信息覆盖,再将结构体数组的长度减一即可。(四)借助Internet,我

17、学到了更多的知识。像产生随机数,虽然书上也有,但是书上的方法不能保证在每个时间都产生不同的随机数,通过Internet我知道了怎样在每个时间都能产生不同的随机数 (srand(unsigned)time(NULL); rand()%100表示随机出现099之间的整数,包含于:include“stdlib.h”和include“time.h”)。在Win-tc中clrscr();(包含于include“conio.h”)是清屏函数,但在Visual c+ 6.0 中system(“cls”);(包含于include”stilib”,include”conio.h”)是清屏函数。(五)同过平常练习

18、和知识的积累,有些自己曾经玩过的游戏编起来并不是那么复杂,使自己对编程越来越感兴趣。每当成功的调试了一个程序后,心里都有一种说不出的愉悦,之前的辛苦和劳累全然不见了。(六)我之所以有今天的成绩,全都源于老师您对我的栽培,在此我要对您说声谢谢!参考文献 1 方风波,C语言程序设计(第二版),北京:地质出版社,2009.5附录: 程序清单#includestdio.h#includeconio.h#includestring.h#includestdlib.hint N;char mima20=liyongyao2009;/*定义图书结构体类型book*/struct book long num;

19、 char name20; char publish20;/*出版社*/ struct time int day; int month; int year; t; int jie;/*借阅*/bk20;/*建立图书信息库*/void xinxi() int i; system(CLS); printf(tt = n); printf(tt 录入图书信息 n); printf(tt = nn); printf(tt请输入您要录入的数量:); scanf(%d,&N); for(i=0;iN;i+) printf(tt请输入第%d本书的编号:,i+1); scanf(%d,&bki.num); p

20、rintf(tt请输入第%d本书的名称:,i+1); scanf(%s,bki.name); printf(tt请输入第%d本书的出版社:,i+1); scanf(%s,bki.publish); printf(tt请输入第%d本书的出版时间(用逗号隔开):,i+1); scanf(%d,%d,%d,&bki.t.year,&bki.t.month,&bki.t.day); printf(tt该书是否已经被借阅,已被借阅输入1,未被借阅输入0:); scanf(%d,&bki.jie); printf(n); system(CLS); printf(tt = n); printf(tt 信息录

21、入完成 n); printf(tt = n); printf(ntt 按任意键继续.n);/*主菜单*/int mymainmenu() int x; printf(nnnn); printf(tt|-|n); printf(tt| |n); printf(tt| = |n); printf(tt| 欢迎光临图书管理系统 |n); printf(tt| = |n); printf(tt| |n); printf(tt| 1.管理员模式 |n); printf(tt| 2.客户模式 |n); printf(tt| 3.退出系统 |n); printf(tt|-|n); printf(ntt请输入

22、您的选择:); scanf(%d,&x); return x;/*管理员密码验证*/int mimayanzheng() char temp_mima20;/*用来存放用户输入的密码*/ printf(n); printf(tt = n); printf(tt 欢迎使用管理员模式 n); printf(tt = n); printf(n); printf(tt 请输入密码:); scanf(%s,temp_mima); if(strcmp(temp_mima,mima)=0)/*比较密码*/ return 1; else return 0;/*修改密码*/void xiugaimima() c

23、har temp_mima20,temp120,temp220;/* temp_mima20用来存放用户输入的密码,temp120,temp220分别用来存放用户输入的两次修改的密码*/ printf(n); printf(tt = n); printf(tt 修改密码 n); printf(tt = n); printf(n); printf(tt 请输入原始密码:); scanf(tt%s,temp_mima); while(1) if(strcmp(temp_mima,mima)=0)/*比较密码*/ printf(t请输入新密码:); scanf(%s,temp1); printf(t

24、请再输入一次:); scanf(%s,temp2); if(strcmp(temp1,temp2)=0)/*如果输入的两次新密码都相同*/ printf(t修改密码成功!请记牢密码,任意键返回.); strcpy(mima,temp1); getch();break; else printf(t输入两次密码不相同,修改失败!任意键返回.); getch(); break; else printf(t密码错误!您不能进行密码修改!任意键返回.); getch(); break; /*管理员模式*/int adm() int x; printf(nnnn); printf(tt|-|n); pri

25、ntf(tt| |n); printf(tt| = |n); printf(tt| 管理员模式 |n); printf(tt| = |n); printf(tt| |n); printf(tt| 1.录入图书信息 |n); printf(tt| 2.查看图书信息 |n); printf(tt| 3.修改图书信息 |n); printf(tt| 4.修改管理密码 |n); printf(tt| 5.退出系统 |n); printf(tt|-|n); printf(ntt请输入您的选择:); scanf(%d,&x); return x;/*客户模式*/int peo() int x; print

26、f(nnnn); printf(tt|-|n); printf(tt| |n); printf(tt| = |n); printf(tt| 欢迎光临 |n); printf(tt| = |n); printf(tt| |n); printf(tt| 1.查看图书信息 |n); printf(tt| 2.借阅图书 |n); printf(tt| 3.退出系统 |n); printf(tt|-|n); printf(ntt请输入您的选择:); scanf(%d,&x); return x;/*查看所有图书*/void show_all_book() int i; if(bk0.num=0&bk0.t.year=0|N=0)/*当bk0.num,bk0.t.year,结构体数组等值同时为零时表示无图书信息*/ printf(t数据不存在,请先录入数据!ntt按任意键返回.); else printf(t编号 图书名称 出版社 出版时间 状态n); for(i=0;iN;i+) printf(

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

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