中南民族大学信管c语言专业课程设计图书信息标准管理系统.doc
中南民族大学管理学院学生课程设计汇报课程名称: C程序设计语言 选题名称: 图书信息管理系统 年 级:专 业:信息管理和信息系统学号: 姓名:新浪微博 song-style是坏学长指导老师: 完成地点:管理学院综合试验室完成日期: 12月 20 12 年至20 13 年度第 1 学期新浪微博 song-style是坏学长一、题目(问题)描述1、系统以菜单方法工作。2、图书信息录入功效(图书信息用文件保留)输入。3、图书信息浏览功效输出,查询。4、查询和排序功效:(最少一个查询方法)算法。 按书名查找 按作者查询等。5、图书信息删除和修改。创新要求:在基础要求达成后,可进行创新设计,如实现会员资料查询、会员注销,为借书人办理注册。办理借书手续(非注册会员不能借书)。办理还书手续等等。信息描述:图书信息包含:登录号、书名、图书编号、单价、作者名、分类号、出版单位、出版时间、价格等。借阅人信息包含:借书人姓名、性别、学号二、问题分析1、系统要求实现很多功效,所以遵照结构化程序设计思想来进行本系统设计自顶向下、逐步细化,将系统设计任务分解出很多子功效模块进行设计。2、程序将综合if语句及switch语句利用方法及嵌套应用方法,循环结构三种语句while、do-while.、for,和函数定义方法和调用方法等来进行编写。三、系统设计 图书信息管理系统1、程序总体结构 录入浏览修改删除查询按分类号按作者名按书名浏览书籍信息添加书籍信息按作者查询按书名查询按书名按作者名2关键数据数据结构设计struct BOOK :把所要数据char shuming999,zuozheming999,fenleihao999,danwei999,shijian999,jiage999;全放在一维数组中,以结构体形式表现出来。这是文件录入和读取关键,相当于做成一个文件,需要时候将里面数据读取或修改。(1).录入模块: 录入图书信息并保留于文件中。(2).浏览模块:添加一个或多个图书信息,并将所添加图书信息保留,方便查找。(3).删除模块: 对图书信息做删除处理。(4).修改模块:void xiugai依据需要对图书信息进行修改。(5).查询模块:对已建立图书信息进行查询,而且可依据需要选择按书名、作者或按分类号查询。(6).菜单 : 帮助借阅者依据所需进行选择。3函数设计函 数 名:菜单函数 void select()函数功效:运行后显示主界面,经过输入来选择下一步操作。参数说明:int n 用于判定使用者所要进入界面序号。算法描述:依据使用者输入数字进行判定,并调用相对应函数。函 数 名:登陆函数 void dl()函数功效:该函数功效为辨识管理权限,只有正确输入登录号才能进入主界面。参数说明:int n ,k=0,其中n用于识别登录号正确是否,k用于做一个循环。算法描述:用户输入登录号存在n里,判定n值是否等于11056026,是,则调用菜单函数。否,则让用户重新输入,两次输错以后关闭程序。函 数 名:录入函数 void input()函数功效:进入该函数,开始依据提醒录入图书信息参数说明: int i=0; 用于自加,方便更换储存输入信息位置。 Char a;接收用户输入字符。算法描述: printf提醒信息,用户输入需要录入数据,输入Y则调用lr()。输入N则调用clect(),输入其它则调用shifou()。函 数 名:浏览函数 void output()函数功效:进入该函数,根据输入次序依次显示信息 参数说明:int i=0; 用于自加,以更换数据位置信息以输出。char a, b用于接收用户输入字符。 算法描述:输出第一本书籍信息,i+。输入Y,则输出第二本书籍信息。输入N ,则调用slect().函 数 名:查询函数 void search ()函数功效:进入函数,选择不一样方法进行查询参数说明:int i ;cha j,m100,a; i用于做循环以搜索图书,j用于判定用户需要查询方法,m100用于存放用户输入搜索数据。算法描述:依据用户输入字符进行判定,调用对应函数。 函 数 名:修改函数 void xiugai()函数功效:进入该函数,开始依据提醒修改图书信息参数说明:int i 用于做循环条件限制,以寻求要修改图书。 char j 用于用于判定用户需要修改方法并调用对应函数。char m100, 用于录入用户 新存入数据信息并保留。char a; 依据用户输入字符,判定其是否需要继续修改信息,并调用对应函数。算法描述:输入j值,判定修改方法:A按书名,则调用xiugai1,B按作者名调用xiugai2, C返回,调用slect()。然后用户输入需要修改书本信息,用循环寻求相同数据,printf需要修改图书信息,而且提醒用户输入对应信息。 最终,输入Y,则goto mulu,N 则goto xiugai2。 函 数 名:删除函数 void shanchu()函数功效:进入该函数,开始依据提醒删除图书信息参数说明:int i,p; 用于做循环。 char j, 用于用于判定用户需要删除方法并调用对应函数。m100 用于给用户输入需要删除书籍信息。a, 用于存放用户输入字符。dd 用于存放用户输入字符。算法描述:输入i值,判定删除方法:A按书名,则调用shanchu1,B按作者名调用shanchu2, C返回,调用slect()。然后用户输入需要删除书本信息,用循环寻求相同数据,printf需要删除图书信息,而且提醒用户输入对应信息。 最终,输入Y,则从i位置开始往后,全部book.数据往前移动一位,然后输入Y,则xiugai,输入N则调用slect()。4程序运行视图(见下页)开 始输入n值判定n值删除模块修改模块录入模块浏览模块查询模块输入i值输入i值判定n值判定n值输入i值按书名按作者名按书名按作者名判定n值输入新信息按作者名按书名按分类号删除信息添加信息 四、难点及关键技术分析:程序设计难点及处理方法说明 难点:算法设计,只有设计出来了算法以后才能步步展开,才能有目标编写程序。所以必需要有一个好算法。处理措施:算法设计用步骤图会很很直观,能够清楚显示各个框之间逻辑关系。步骤图包含表示对应操作框,带箭头步骤线,必需文字说明。关键技术:删除书籍时,结构体中数据往前移动一位。处理措施:使用strcpy()来把后面数据和前一位数据进行调换。还需要做一个循环。而且要注意是,因为数组是100位,所以假如删除书籍是最终两位话,是没有必需使用strcpy(),因为存有数据内存相对位置没有发生改变。五、测试情况:系统运行、数据输入及输出结果截图 六、源程序清单: #include<stdio.h>#include<string.h>#include<stdlib.h>struct BOOK char shuming999,zuozheming999,fenleihao999,danwei999,shijian999,jiage999;books999;void main()void select();void dl();dl(); printf("n"); select();void select()system("cls");void jm();void input();void output();void search();void xiugai();void shanchu();int n;printf(" 图书管理功效界面 n");menu:jm();scanf("%d",&n);getchar();if(n=1|n=2|n=3|n=4|n=5|n=6)switch(n)case 1: input();break;case 2: output();break;case 3: search();break;case 4: xiugai();break; case 5: shanchu();break;case 6: exit(0);break;elseprintf("输入错误,请重新输入!n");printf("输入你再次选择:n");printf("n");printf("n");printf("n");goto menu; void dl() int n;int k=0;zl:system("cls");printf("n");printf("n");printf("n");printf(" *欢迎光临图书管理系统*n");printf("n");printf("n");printf("请输入你学号:");scanf("%d",&n); if(n=11056026)select(); else if(k<2) printf("输入错误,请重新输入!n"); printf("输入你再次选择:"); k+;goto zl;else printf("登录失败n");exit(0); void jm()printf(" *n");printf(" * *n");printf(" * *n");printf(" * *n");printf(" * *n");printf(" * *n");printf(" * 1.图书信息录入 * *n");printf(" * 2.图书信息浏览 * *n");printf(" * 3.图书查询 * *n");printf(" * 4.图书信息修改 * *n");printf(" * 5.图书信息删除 * *n");printf(" * 6.退出 * *n");printf(" * *n"); printf("请输入序号:n");printf("n");void input()system("cls");int i=0;char a;lr:printf("%s","图书书名:");scanf ("%s",booksi.shuming);printf("%s","作者名:");scanf ("%s",booksi.zuozheming);printf("%s","分类号:");scanf ("%s",booksi.fenleihao);printf("%s","出版单位:");scanf ("%s",booksi.danwei);printf("%s","出版时间:");scanf ("%s",booksi.shijian);printf("%s","价格:");scanf ("%s",booksi.jiage);i+;printf("n");printf("是否继续,输入Y/N:");shifou:scanf("%s",&a);getchar();system("cls");if(a='n'|a='N')select();else if(a='y'|a='Y') goto lr;elseprintf("输入错误,请重新输入");goto shifou;system("cls");void output()system("cls");int i=0;char a,b;shuchu:printf("图书书名:%sn",booksi.shuming);printf("作者名:%sn",booksi.zuozheming);printf("分类号:%sn",booksi.fenleihao);printf("出版单位:%sn",booksi.danwei);printf("出版时间:%sn",booksi.shijian);printf("价格:%sn",booksi.jiage);i+;printf("是否继续浏览下一本:Y/N? n");shifou:scanf("%s",&a);getchar();system("cls");if(a='n'|a='N')select();else if(a='Y'|a='y')if(booksi+1.shuming!=0)goto shuchu;elseprintf("查询完成,输入Y返回界面 n");scanf("%s",&b);getchar();system("cls");if(b='y'|b='Y')select();elseprintf("输入错误,请重新输入");goto shifou;system("cls");void search()system("cls");int i;char j,m100,a;mulu:printf("请选择查询方法:n");printf("A、按书名查询n");printf("B、按作者名查询n");printf("C、按分类号查询n");printf("D、返回n");printf("请选择:");scanf("%s",&j);getchar(); system("cls");if('A'=j|'a'=j)chaxun1:printf("请输入图书书名:");scanf("%s",&m);for(i=0;i<=999;i+)if(strcmp(booksi.shuming,m)=0)printf("书名:%sn",booksi.shuming);printf("作者:%sn",booksi.zuozheming);printf("分类号:%sn",booksi.fenleihao);printf("出版单位:%sn",booksi.danwei);printf("出版时间:%sn",booksi.shijian);printf("价格:%sn",booksi.jiage);printf("是否继续,输入Y/N:");scanf("%s",&a);getchar();system("cls");if(a='n'|a='N')goto mulu; elsegoto chaxun1;else if('B'=j|'b'=j)chaxun2:printf("请输入作者名:");scanf("%s",&m);for(i=0;i<=999;i+)if(strcmp(booksi.zuozheming,m)=0)printf("图书书名:%sn",booksi.shuming);printf("作者名:%sn",booksi.zuozheming);printf("分类号:%sn",booksi.fenleihao);printf("出版单位:%sn",booksi.danwei);printf("出版时间:%sn",booksi.shijian);printf("价格:%sn",booksi.jiage);printf("是否继续,输入Y/N:");scanf("%s",&a);getchar();system("cls");if(a='n'|a='N')goto mulu; elsegoto chaxun2;else if('C'=j|'c'=j)chaxun3:printf("请输入分类号:");scanf("%s",&m);for(i=0;i<=999;i+)if(strcmp(booksi.fenleihao,m)=0)printf("图书书名:%sn",booksi.shuming);printf("作者名:%sn",booksi.zuozheming);printf("分类号:%sn",booksi.fenleihao);printf("出版单位:%sn",booksi.danwei);printf("出版时间:%sn",booksi.shijian);printf("价格:%sn",booksi.jiage);printf("是否继续,输入Y/N:");scanf("%s",&a);getchar();system("cls");if(a='n'|a='N')goto mulu; elsegoto chaxun3;else if('D'=j|'d'=j)select();elseprintf("输入错误,请重新输入");goto mulu;system("cls");void xiugai()system("cls");int i;char j,m100,a;mulu:printf("请选择修改方法:n");printf("A、按书名修改n");printf("B、按作者名修改n");printf("C、返回n");printf("请选择:");scanf("%s",&j);getchar();if('A'=j|'a'=j)system("cls");xiugai1:printf("请输入要修改图书书名:");scanf("%s",&m);for(i=0;i<=999;i+)if(strcmp(booksi.shuming,m)=0)printf("图书书名:%sn",booksi.shuming);printf("作者名:%sn",booksi.zuozheming);printf("分类号:%sn",booksi.fenleihao);printf("出版单位:%sn",booksi.danwei);printf("出版时间:%sn",booksi.shijian);printf("价格:%sn",booksi.jiage);printf("请修改:");printf("%s","图书书名:");scanf("%s",booksi.shuming);printf("%s","作者名:");scanf("%s",booksi.zuozheming);printf("%s","分类号:");scanf("%s",booksi.fenleihao);printf("%s","出版单位:");scanf("%s",booksi.danwei);printf("%s","出版时间:");scanf("%s",booksi.shijian);printf("%s","价格:");scanf("%s",booksi.jiage);printf("是否继续,输入Y/N:");scanf("%s",&a);getchar();system("cls");if(a='n'|a='N')goto mulu; elsegoto xiugai1;system("cls");else if('B'=j|'b'=j)xiugai2:printf("请输入要修改作者名:");scanf("%s",&m);for(i=0;i<=999;i+)if(strcmp(booksi.zuozheming,m)=0)printf("图书书名:%sn",booksi.shuming);printf("作者名:%sn",booksi.zuozheming);printf("分类号:%sn",booksi.fenleihao);printf("出版单位:%sn",booksi.danwei);printf("出版时间:%sn",booksi.shijian);printf("价格:%sn",booksi.jiage);printf("请修改:");printf("%s","图书书名:");scanf("%s",booksi.shuming);printf("%s","作者名:");scanf("%s",booksi.zuozheming);printf("%s","分类号:");scanf("%s",booksi.fenleihao);printf("%s","出版单位:");scanf("%s",booksi.danwei);printf("%s","出版时间:");scanf("%s",booksi.shijian);printf("%s","价格:");scanf("%s",booksi.jiage);printf("是否继续,输入Y/N:");scanf("%s",&a);getchar();system("cls");if(a='n'|a='N')goto mulu; elsegoto xiugai2;system("cls");else if('c'=j|'C'=j)select();elseprintf("输入错误,请重新输入");goto mulu;void shanchu()system("cls");int i,p;char j,m100,a,dd;printf("请选择删除方法:n");printf("A、按书名删除n");printf("B、按作者名删除n");printf("C、返回n");printf("请选择:");scanf("%c",&j);getchar();system("cls");if('A'=j|'a'=j)shanchu1:printf("请输入要删除图书书名:");scanf("%s",m);getchar();for(i=0;i<=999;i+)if(strcmp(booksi.shuming,m)=0)printf("%s","作者名:");printf("%sn",booksi.zuozheming);printf("%s","分类号:");printf("%sn",booksi.fenleihao);printf("%s","出版单位:");printf("%ns",booksi.danwei);printf("%s","出版时间:");printf("%sn",booksi.shijian);printf("%s","价格:");printf("%sn",booksi.jiage);printf("确定删除,输入Y/N:");scanf("%c",&dd);getchar();if(dd='y'|dd='Y')for(p=i;p<=997;p+)strcpy(booksp.shuming,booksp+1.shuming);strcpy(booksp.zuozheming,booksp+1.zuozheming);strcpy(booksp.fenleihao,booksp+1.fenleihao);strcpy(booksp.danwei,booksp+1.danwei);strcpy(booksp.shijian,booksp+1.shijian);strcpy(booksp.jiage,booksp+1.jiage);elseprintf("是否继续,输入Y/N:");scanf("%c",&a);getchar();system("cls");if(a='n'|a='N')shanchu(); elsegoto shanchu1;system("cls");else if('B'=j|'b'=j)shanchu2:printf("请输入要删除作者名:");scanf("%s",m);getchar();for(i=0;i<=999;i+)if(strcmp(booksi.zuozheming,m)=0)printf("%s","图书书名:");printf("%sn",booksi.shuming);printf("%s","分类号:");printf("%sn",booksi.fenleihao);printf("%s","出版单位:");printf("%sn",booksi.danwei);printf("%s","出版时间:");printf("%sn",booksi.shijian);printf("%s","价格:");printf("%sn",booksi.jiage);printf("确定删除,输入Y/N:"); scanf("%c",&dd);getchar();if(dd='y' | dd='Y')for(p=i;p<=997;p+)strcpy(booksp.shuming,booksp+1.shuming);strcpy(booksp.zuozheming,booksp+1.zuozheming);strcpy(booksp.fenleihao,booksp+1.fenleihao);strcpy(booksp.danwei,booksp+1.danwei);strcpy(booksp.shijian,booksp+1.shijian);strcpy(booksp.jiage,booksp+1.jiage);elseprintf("是否继续,输入Y/N:");scanf("%c",&a);getchar();system("cls");if(a='n'|a='N')shanchu(); elsegoto shanchu2;system("cls");shanchu();else if('c'=j|'C'=j)select();elseprintf("输入错误,请重新输入Y/N");shanchu();七、心得体会2关键数据数据结构设计:程序所用到关键数据结构说明及描述,如用到结构是怎样定义,起什么作用等。3函数设计:按以下格式列出所设计每个函数 /*每个函数书写格式为: 函数名:所在文件名 函数功效: 参数说明: 算法描述 四、难点及关键技术分析:程序设计难点及处理方法说明 五、测试情况:系统运行、数据输入及输出结果截图 七、心得体会C程序设计语言课程设计量化评分标准指标最高分评分要素评分设计技术水平30程序功效设计、数据结构设计及整体结构设计合理;程序运行情况良好,算法说明清楚,理论分析和计算正确,试验数据无误实际动手能力20熟练使用开发工具,能够快速正确进行调试、纠错和运行编程风格10良好编程风格(缩进,注释,变量名、函数名见名知意等,程序运行界面友好)汇报规范化10提交电子文档及打印文档书写、存放符合规范化要求回复问题20能简明扼要地叙述设计关键内容,能正确流利地回复多种问题学习态度10端正学习态度及认真刻苦程度等总