您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页C语言课程设计报告—图书信息管理系统

C语言课程设计报告—图书信息管理系统

来源:爱go旅游网
C语言课程设计报告

图书信息管理系统设计

55071-13 陈杰

指导老师:刘文中 C语言程序设计

编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的基本方法和调试技能。学校安排上机时间有限,老师也只能教给我们一些方法,而我们自己需要投入很大的时间和精力来锻炼。

1、题目要求

设计“图书信息管理系统”

要求:

图书信息包括:登录号,书名,作者名,分类号,出版单位,出版时间,价格等。使之提供以下功能:

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

(2) 图书信息录入功能。(图书信息用文件保存)。 (3) 图书信息浏览功能。 (4) 图书信息查询功能。 (5) 图书信息的删除和修改。

2、分析:

根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。

3、总体设计:

根据题目要求,可以将系统分为六个模块: (1) 管理员登录系统模块。 (2) 菜单选择模块。

(3) 图书信息录入功能模块。

(4) 图书信息浏览功能。 (5) 图书信息查询功能。 (6) 图书信息的删除和修改。 第1页

图书信息管理系统 管理员登录系统模块 菜单选择模块图书信息录入功能模块 图书信息浏览功能模块 图书信息查询功能模块 图书信息的删除和修改

4、详细设计:

头函数名:

#include #include #include

/*********图书信息结构体*********/

/***包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等***/ structbookinf

{intnum;******************************************************登录号 charbname[20];***************************************书名 charwname[10];***************************************作者名 charclanum[14];***************************************分类号 charpubcom[10];***************************************出版单位 charpubtime[10];***************************************出版时间 floatprice;*********************************************价格 };

一管理员登录系统模块:

(1) 来到图书信息管理系统页面

voidindex() {

charinput;注释:运行时

printf(\"\\n\\n\\\*****************************\\n\");直接进入 printf(\"\\\图书信息管理系统\\n\");这个页面 printf(\"\\\*****************************\\n\\n\\n\");

printf(\"------------------------------------------------------------------------------\\n\"); printf(\"\<按任意键进入>\\n\\"); input=getchar(); } (2)

管理员登陆进入功能菜单页面

第2页

开始 输入管理员帐号和密码 输入正确与否 N 进入功能菜单页面 结束 FILE*fp;

structmanagepswd;

if((fp=fopen(\"password.txt\{

printf(\"\\n\\n\\n\Cannotopenfile!\\n\\"); } else { do {

printf(\"\\n\\n\请输入管理员帐号:\"); scanf(\"%s\

printf(\"\\n\\n\请输入管理员密码:\"); scanf(\"%s\fp=fopen(\"password.txt\

fread(&pswd,sizeof(structmanage),1,fp); fclose(fp);

w=strcmp(pswd.manage_name,name); k=strcmp(pswd.password,password); adm_servelist(); }

while(w!=0||k!=0); adm_servelist(); } }

(3)来到功能菜单页面

第3页

voidadm_servelist() {

voidbook_add(); voidbook_view();

voidchange(); voiddel(); voidbook_search(); voidlogin(); voidpwchange();

intin;注释:菜单列出的服务种类 charinput;从1,2,3,4,5,6 do所对应的功能进行选择 {

printf(\"\\n\\n\\n\--欢迎使用信息管理系统--\"); printf(\"\\n\\n\1.图书信息录入\\n\"); printf(\"\2.图书信息浏览\\n\"); printf(\"\3.图书信息查询\\n\"); printf(\"\4.图书信息删除\\n\"); printf(\"\5.图书信息修改\\n\"); printf(\"\6.退出管理模式\\n\"); printf(\"\\n\请选择服务种类:\"); scanf(\"%d\

if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6) {

printf(\"\\n\没有这项服务~\\n\"); printf(\"\按任意键重新选择\"); input=getchar(); } }

while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6); switch(in) {

case1:book_add();break;注释:选择自己所需要 case2:book_view();break;后摁下数字键则 case3:book_search();break;则进入此功能页面 case4:del();break; case5:change();break; case6:login();break; } }

(3) 图书信息录入功能模块

voidbook_add() { 第4页

voidadm_servelist(); voidbook_add(); inti=0,j; FILE*fp;

charinput;注释:输入的图书信息 structbookinfbooks;是通过文件进行 structbookinfbook_taxis[30];保存的

printf(\"\\n\\n\\n\---请输入图书信息---\\n\\n\"); printf(\"\登录号:\"); scanf(\"%d\printf(\"\\n\书名:\"); scanf(\"%s\printf(\"\\n\作者名:\"); scanf(\"%s\printf(\"\\n\分类号:\"); scanf(\"%s\printf(\"\\n\出版单位:\"); scanf(\"%s\printf(\"\\n\出版时间:\"); scanf(\"%s\printf(\"\\n\价格:\"); scanf(\"%f\

if((fp=fopen(\"book.txt\{ do {

fread(&book_taxis[i],sizeof(structbookinf),1,fp); i=i+1; }

while(!feof(fp)); fclose(fp); for(j=0;j<=i;j++)

if(books.num==book_taxis[j].num) {

printf(\"\\n\\n\\n\对不起,这个编号已经使用过了~\\n\"); printf(\"\按任意键返回管理菜单~\"); input=getchar(); adm_servelist(); break; } }

if((fp=fopen(\"book.txt\{ 第5页

fp=fopen(\"book.txt\} else { fclose(fp);

fp=fopen(\"book.txt\}

fwrite(&books,sizeof(structbookinf),1,fp); fclose(fp);

printf(\"\\n\\n\\n\信息输入完毕~按任意键继续\\n\");

input=getchar(); adm_servelist();

}

(4) 图书信息浏览功能模块

voidbook_view() {

voidadm_servelist(); voidbook_view(); intinp,i=0,n=0; FILE*fp; charinput;

structbookinfbookview[20];

if((fp=fopen(\"book.txt\{

printf(\"\\n\\n\\n\数据尚未初始化~~\\n\\n\请在管理菜单中增加图书信息~~~\\n\"); printf(\"\\n\<按任意键返回管理菜单>\\n\\"); input=getchar(); adm_servelist(); } else { do {

fread(&bookview[i],sizeof(structbookinf),1,fp); i=i+1; }

while(!feof(fp)); fclose(fp); do {

printf(\"\\n\--------共有%d条记录--------\printf(\"\\n\\n\登录号:%d\\n\第6页

printf(\"\\n\书名:%s\\n\printf(\"\\n\作者名:%s\\n\ printf(\"\\n\分类号:%s\\n\printf(\"\\n\出版单位:%s\\n\printf(\"\\n\出版时间:%s\\n\printf(\"\\n\价格:%f\\n\printf(\"\\n\\n\1.上一页\2.下一页\3.回目录\\n\"); printf(\"\\n\请选择:\"); scanf(\"%d\switch(inp) { case1: {

if(n==0) {

printf(\"\\n\已到达首页\\n\按任意键重新选择\"); input=getchar(); }

elsen=n-1;break; } case2: { if(n==i-2) {

printf(\"\\n\已到达最末页\\n\按任意键重新选择\"); input=getchar(); }

elsen=n+1;break; } case3: {

adm_servelist(); break; } default: {

printf(\"\\n\没有这项服务\\n\按任意键重新选择\"); input=getchar(); } } }

while(inp!=3);

第7页

} }

(5) 图书信息修改与删除功能模块 修改:

voidchange(intx) {

intinp,i=0,j; voidbook_search(); FILE*fp,*fp1; charinput;

structbookinfbooks,book_taxis[20]; do {

printf(\"\\n\\n\\n\注意:您确定要修改该记录吗?\\n\"); printf(\"\\n\1.是\2.否\\n\"); printf(\"\\n\请输入:\"); scanf(\"%d\

if(inp!=1&&inp!=2) {

printf(\"\\n\对不起~没有这项服务~\\n\"); printf(\"\按任意键重新选择\\n\\"); input=getchar(); } }

while(inp!=1&&inp!=2); if(inp==2) book_search(); if(inp==1) {

printf(\"\\n\\n\\n\---请输入图书信息---\\n\\n\"); printf(\"\登录号:\"); scanf(\"%d\printf(\"\\n\书名:\"); scanf(\"%s\printf(\"\\n\作者名:\"); scanf(\"%s\printf(\"\\n\分类号:\"); scanf(\"%s\printf(\"\\n\出版单位:\"); scanf(\"%s\printf(\"\\n\出版时间:\"); scanf(\"%s\第8页

printf(\"\\n\价格:\"); scanf(\"%f\

if((fp1=fopen(\"book.txt\{ do {

fread(&book_taxis[i],sizeof(structbookinf),1,fp1); i=i+1; }

while(!feof(fp1)); fclose(fp1); for(j=0;jif(books.num==book_taxis[j].num) {

printf(\"\\n\\n\\n\对不起,这个编号已经使用过了~\\n\"); printf(\"\按任意键返回管理菜单~\"); printf(\"0\"); input=getchar(); book_search(); break; }

for(j=x+1;jif(books.num==book_taxis[j].num) {

printf(\"\\n\\n\\n\对不起,这个编号已经使用过了~\\n\"); printf(\"1\");

printf(\"\按任意键返回管理菜单~\"); input=getchar(); book_search(); break; } }

book_taxis[x]=books; fp=fopen(\"book.txt\for(j=0;jfwrite(&book_taxis[j],sizeof(structbookinf),1,fp); fclose(fp);

printf(\"\\n\\n\信息修改完成!按任意键返回\"); input=getchar(); book_search();

第9页

} } S删除: voiddel(inty) {

charinput; FILE*fp; intinp,i=0,j;

structbookinfbook_taxis[20]; voidbook_search(); voidadm_servelist(); do {

printf(\"\\n\\n\\n\注意:您确定要删除该记录吗?\\n\"); printf(\"\\n\1.是\2.否\\n\"); printf(\"\\n\请输入:\"); scanf(\"%d\if(inp!=1&&inp!=2) {

printf(\"\\n\对不起~没有这项服务~\\n\"); printf(\"\按任意键重新选择\\n\\"); input=getchar(); } }

while(inp!=1&&inp!=2); if(inp==2) book_search();

if(inp==1) {

if((fp=fopen(\"book.txt\{ do {

fread(&book_taxis[i],sizeof(structbookinf),1,fp); i=i+1; }

while(!feof(fp)); fclose(fp); } if(i>2) {

fp=fopen(\"book.txt\第10页 for(j=0;jfwrite(&book_taxis[j],sizeof(structbookinf),1,fp); fclose(fp);

fp=fopen(\"book.txt\for(j=y+1;jfwrite(&book_taxis[j],sizeof(structbookinf),1,fp); fclose(fp); } else {

remove(\"book.txt\"); }

printf(\"\\n\\n\记录已删除!\\n\\n\按任意键返回\\n\\"); input=getchar(); adm_servelist(); } }

(6) 图书信息查询功能模块 voidbook_search() {

voidadm_servelist(); voidid_search(); voidwr_search(); voidbn_search(); charinput; FILE*fp; intinp;

if((fp=fopen(\"book.txt\{

printf(\"\\n\\n\\n\数据尚未初始化~~\\n\\n\请在管理菜单中增加图书信息~~~\\n\"); printf(\"\\n\<按任意键返回管理菜单>\\n\\");

input=getchar(); adm_servelist(); } else { do {

printf(\"\\n\\n\\n\1.按图书登录号查询\\n\"); printf(\"\\n\2.按图书作者查询\\n\"); 第11页

printf(\"\\n\3.按图书名查询\\n\"); printf(\"\\n\4.回到主菜单\\n\"); printf(\"\\n\\n\请选择查询类别:\"); scanf(\"%d\

if(inp!=1&&inp!=2&&inp!=3&&inp!=4) {

printf(\"\\n\\n\没有这项服务~\\n\按任意键重新选择~\"); input=getchar(); } }

while(inp!=1&&inp!=2&&inp!=3&&inp!=4); fclose(fp); switch(inp) {

case1:id_search();break; case2:wr_search();break; case3:bn_search();break; case4:adm_servelist();break; } } }

5运行与测试报告:

第12页

第13页

三后记/课程设计过程中遇到的问题以及解决方法,课程设计的体会。

这次课程设计让我掌握了许多的有用知识。首先通过不断地学习和锻炼更加熟练地掌握应用软件MicrosoftVisualC++6.0了。设计正确及合适的程序对于我们初学者来说是很大的难题,出现一丁点儿错误就得非很大的努力去修改,正式者一步步一点点的努力让我对C语言游乐更深的认识。同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值。

在设计中,每个同学都会遇到一些困难,或多或少,这些困难常常让我心情烦躁,比如不能清晰的建立设计模块,不会修改出现的错误等等,然后我向同学寻求帮助,向他们学习,最终通过自己努力建立了模块。不可避免地程序中肯定依然存在者某些问题,我希望在以后的学习和应用中不断提高自己的能力,攻克遇到

的困难。

第14页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务