收藏 分销(赏)

中南民族大学信管c语言专业课程设计图书信息标准管理系统.doc

上传人:w****g 文档编号:2494992 上传时间:2024-05-30 格式:DOC 页数:38 大小:88.04KB
下载 相关 举报
中南民族大学信管c语言专业课程设计图书信息标准管理系统.doc_第1页
第1页 / 共38页
中南民族大学信管c语言专业课程设计图书信息标准管理系统.doc_第2页
第2页 / 共38页
点击查看更多>>
资源描述
中南民族大学管理学院 学生课程设计汇报 课程名称: 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 shuming[999],zuozheming[999],fenleihao[999],danwei[999],shijian[999],jiage[999]; 全放在一维数组中,以结构体形式表现出来。这是文件录入和读取关键,相当于做成一个文件,需要时候将里面数据读取或修改。 (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,m[100],a; i用于做循环以搜索图书,j用于判定用户需要查询方法,m[100]用于存放用户输入搜索数据。 算法描述:依据用户输入字符进行判定,调用对应函数。 函 数 名:修改函数 void xiugai() 函数功效:进入该函数,开始依据提醒修改图书信息 参数说明:int i 用于做循环条件限制,以寻求要修改图书。 char j 用于用于判定用户需要修改方法并调用对应函数。 char m[100], 用于录入用户 新存入数据信息并保留。 char a; 依据用户输入字符,判定其是否需要继续修改信息,并调用对应函数。 算法描述:输入j值,判定修改方法:A按书名,则调用xiugai1,B按作者名调用xiugai2, C返回,调用slect()。然后用户输入需要修改书本信息,用循环寻求相同数据,printf需要修改图书信息,而且提醒用户输入对应信息。 最终,输入Y,则goto mulu,N 则goto xiugai2。 函 数 名:删除函数 void shanchu() 函数功效:进入该函数,开始依据提醒删除图书信息 参数说明:int i,p; 用于做循环。 char j, 用于用于判定用户需要删除方法并调用对应函数。 m[100] 用于给用户输入需要删除书籍信息。 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 shuming[999],zuozheming[999],fenleihao[999],danwei[999], shijian[999],jiage[999]; }books[999]; 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; } } else { printf("输入错误,请重新输入!\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",books[i].shuming); printf("%s","作者名:"); scanf ("%s",books[i].zuozheming); printf("%s","分类号:"); scanf ("%s",books[i].fenleihao); printf("%s","出版单位:"); scanf ("%s",books[i].danwei); printf("%s","出版时间:"); scanf ("%s",books[i].shijian); printf("%s","价格:"); scanf ("%s",books[i].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; } else { printf("输入错误,请重新输入"); goto shifou; } system("cls"); } void output() { system("cls"); int i=0; char a,b; shuchu: printf("图书书名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分类号:%s\n",books[i].fenleihao); printf("出版单位:%s\n",books[i].danwei); printf("出版时间:%s\n",books[i].shijian); printf("价格:%s\n",books[i].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(books[i+1].shuming!=0) goto shuchu; else { printf("查询完成,输入Y返回界面 \n"); scanf("%s",&b); getchar(); system("cls"); if(b=='y'||b=='Y') select(); } } else { printf("输入错误,请重新输入"); goto shifou; } system("cls"); } void search() { system("cls"); int i; char j,m[100],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(books[i].shuming,m)==0) { printf("书名:%s\n",books[i].shuming); printf("作者:%s\n",books[i].zuozheming); printf("分类号:%s\n",books[i].fenleihao); printf("出版单位:%s\n",books[i].danwei); printf("出版时间:%s\n",books[i].shijian); printf("价格:%s\n",books[i].jiage); } } printf("是否继续,输入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { goto mulu; } else goto chaxun1; } else if('B'==j||'b'==j) { chaxun2: printf("请输入作者名:"); scanf("%s",&m); for(i=0;i<=999;i++) { if(strcmp(books[i].zuozheming,m)==0) { printf("图书书名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分类号:%s\n",books[i].fenleihao); printf("出版单位:%s\n",books[i].danwei); printf("出版时间:%s\n",books[i].shijian); printf("价格:%s\n",books[i].jiage); } } printf("是否继续,输入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { goto mulu; } else goto chaxun2; } else if('C'==j||'c'==j) { chaxun3: printf("请输入分类号:"); scanf("%s",&m); for(i=0;i<=999;i++) { if(strcmp(books[i].fenleihao,m)==0) { printf("图书书名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分类号:%s\n",books[i].fenleihao); printf("出版单位:%s\n",books[i].danwei); printf("出版时间:%s\n",books[i].shijian); printf("价格:%s\n",books[i].jiage); } } printf("是否继续,输入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { goto mulu; } else goto chaxun3; } else if('D'==j||'d'==j) { select(); } else { printf("输入错误,请重新输入"); goto mulu; } system("cls"); } void xiugai() { system("cls"); int i; char j,m[100],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(books[i].shuming,m)==0) { printf("图书书名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分类号:%s\n",books[i].fenleihao); printf("出版单位:%s\n",books[i].danwei); printf("出版时间:%s\n",books[i].shijian); printf("价格:%s\n",books[i].jiage); printf("请修改:"); printf("%s","图书书名:"); scanf("%s",books[i].shuming); printf("%s","作者名:"); scanf("%s",books[i].zuozheming); printf("%s","分类号:"); scanf("%s",books[i].fenleihao); printf("%s","出版单位:"); scanf("%s",books[i].danwei); printf("%s","出版时间:"); scanf("%s",books[i].shijian); printf("%s","价格:"); scanf("%s",books[i].jiage); printf("是否继续,输入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { goto mulu; } else goto xiugai1; } system("cls"); } } else if('B'==j||'b'==j) { xiugai2: printf("请输入要修改作者名:"); scanf("%s",&m); for(i=0;i<=999;i++) { if(strcmp(books[i].zuozheming,m)==0) { printf("图书书名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分类号:%s\n",books[i].fenleihao); printf("出版单位:%s\n",books[i].danwei); printf("出版时间:%s\n",books[i].shijian); printf("价格:%s\n",books[i].jiage); printf("请修改:"); printf("%s","图书书名:"); scanf("%s",books[i].shuming); printf("%s","作者名:"); scanf("%s",books[i].zuozheming); printf("%s","分类号:"); scanf("%s",books[i].fenleihao); printf("%s","出版单位:"); scanf("%s",books[i].danwei); printf("%s","出版时间:"); scanf("%s",books[i].shijian); printf("%s","价格:"); scanf("%s",books[i].jiage); printf("是否继续,输入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { goto mulu; } else goto xiugai2; } system("cls"); } } else if('c'==j||'C'==j) { select(); } else { printf("输入错误,请重新输入"); goto mulu; } } void shanchu() { system("cls"); int i,p; char j,m[100],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(books[i].shuming,m)==0) { printf("%s","作者名:"); printf("%s\n",books[i].zuozheming); printf("%s","分类号:"); printf("%s\n",books[i].fenleihao); printf("%s","出版单位:"); printf("%\ns",books[i].danwei); printf("%s","出版时间:"); printf("%s\n",books[i].shijian); printf("%s","价格:"); printf("%s\n",books[i].jiage); printf("确定删除,输入Y/N:"); scanf("%c",&dd); getchar(); if(dd=='y'||dd=='Y') { for(p=i;p<=997;p++) { strcpy(books[p].shuming,books[p+1].shuming); strcpy(books[p].zuozheming,books[p+1].zuozheming); strcpy(books[p].fenleihao,books[p+1].fenleihao); strcpy(books[p].danwei,books[p+1].danwei); strcpy(books[p].shijian,books[p+1].shijian); strcpy(books[p].jiage,books[p+1].jiage); } } else { printf("是否继续,输入Y/N:"); scanf("%c",&a); getchar(); system("cls"); if(a=='n'||a=='N') shanchu(); else goto shanchu1; } system("cls"); } } } else if('B'==j||'b'==j) { shanchu2: printf("请输入要删除作者名:"); scanf("%s",m); getchar(); for(i=0;i<=999;i++) { if(strcmp(books[i].zuozheming,m)==0) { printf("%s","图书书名:"); printf("%s\n",books[i].shuming); printf("%s","分类号:"); printf("%s\n",books[i].fenleihao); printf("%s","出版单位:"); printf("%s\n",books[i].danwei); printf("%s","出版时间:"); printf("%s\n",books[i].shijian); printf("%s","价格:"); printf("%s\n",books[i].jiage); printf("确定删除,输入Y/N:"); scanf("%c",&dd); getchar(); if(dd=='y' || dd=='Y') { for(p=i;p<=997;p++) { strcpy(books[p].shuming,books[p+1].shuming); strcpy(books[p].zuozheming,books[p+1].zuozheming); strcpy(books[p].fenleihao,books[p+1].fenleihao); strcpy(books[p].danwei,books[p+1].danwei); strcpy(books[p].shijian,books[p+1].shijian); strcpy(books[p].jiage,books[p+1].jiage); } } else { printf("是否继续,输入Y/N:"); scanf("%c",&a); getchar(); system("cls"); if(a=='n'||a=='N') { shanchu(); } else goto shanchu2; } system("cls"); shanchu(); } } } else if('c'==j||'C'==j) { select(); } else { printf("输入错误,请重新输入Y/N"); shanchu(); } } 七、心得体会 2.关键数据数据结构设计:程序所用到关键数据结构说明及描述,如用到结构是怎样定义,起什么作用等。 3.函数设计:按以下格式列出所设计每个函数 /*每个函数书写格式为: 函数名:所在文件名 函数功效: 参数说明: 算法描述 四、难点及关键技术分析:程序设计难点及处理方法说明 五、测试情况:系统运行、数据输入及输出结果截图 七、心得体会 《C程序设计语言》课程设计量化评分标准 指标 最高分 评分要素 评分 设计技术水平 30 程序功效设计、数据结构设计及整体结构设计合理;程序运行情况良好,算法说明清楚,理论分析和计算正确,试验数据无误 实际动手能力 20 熟练使用开发工具,能够快速正确进行调试、纠错和运行 编程风格 10 良好编程风格(缩进,注释,变量名、函数名见名知意等,程序运行界面友好) 汇报规范化 10 提交电子文档及打印文档书写、存放符合规范化要求 回复问题 20 能简明扼要地叙述设计关键内容,能正确流利地回复多种问题 学习态度 10 端正学习态度及认真刻苦程度等 总
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服