小说管理系统(共30页).doc

上传人:飞****2 文档编号:14405451 上传时间:2022-05-04 格式:DOC 页数:30 大小:128.50KB
返回 下载 相关 举报
小说管理系统(共30页).doc_第1页
第1页 / 共30页
小说管理系统(共30页).doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《小说管理系统(共30页).doc》由会员分享,可在线阅读,更多相关《小说管理系统(共30页).doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上 课 程 设 计报 告 题目:小说管理系统 系部名称:电子与信息工程系专业名称:电子信息工程班 级:电子1304学号:学生姓名 :指导教师:时间:2014年2月24日 至2014年3月7日题目:小说管理系统一、 课程设计目的 掌握C语言的课程设计结构,语法规则,编程方法,达到独立编程能力,为以后的学习,设计大型应用系统打下坚实的基础。二、课程设计内容 通过结构体、数组、文件等的应用,设计了一个小型的小说管理系统。三、需求分析该小说管理系统,具有最基本的功能:1:通过输入和存储小说编号、小说名称、小说种类、小说总评、完结日期;2:将输入信息输出;3:通过输入小说名称或小

2、说编号查询出所要的信息;4:添加小说信息;5;输入想要修改的小说的名称、种类、总评,可以将任一小说信息修改;6:通过输入要删除小说的编号或名称,可删除此小说的全部信息;7:可按照小说编号或完结日期对小说信息进行排序;四、概要设计1)、系统结构图 对系统进行分析,给出结构图添加模块修改模块删除模块主函数输入模块输出模块更新模块查询模块保存文件退出程序统计模块 修改模块修改种类修改总评删 除模块按名称删 除按 编号删 除 修改名称查询模块按 名称查 询按 编号查 询2)模块功能简介:1、 输入模块:输入要存储的信息,最多只能存入15个信息。2、 输出模块:输出已经输入的信息。3、 添加模块:添加一

3、些信息到存储系统。4、 修改模块:将已存储的名称、种类、总评这些信息进行修改。5、查询模块:(1)按名称查询函数:通过输入小说名称,若该名称在存储信息中,则将输出关于该小说的所有信息,若不存在,则输出没有关于此小说的信息;(2)按编号查询函数:输入编号在存储信息中,则输出关于该编号小说的所有信息,若无,则输出没有关于此编号的信息;(3)返回主菜单:返回系统主菜单。6、删除模块: (1)按编号删除:通过输入编号将该小说信息全部删除,若无该小说信息,则告知无关于此编号的小说信息; (2)按名称删除:通过输入名称将小说信息全部删除,若无该小说信息,则告知无关于此名称的小说信息;(3)返回主菜单:返回

4、系统主菜单。五.详细设计及运行结果主函数:i=0输出isum退出开始i=0,s=MAX输出输入入iMAX?开始退出输入模块:输出模块: 输出模块:是开 始choice=1?输入提示信息输入信息是是更新信息输出信息choice=2?choice=3?输出模块:是开 始choice=1?输入提示信息输入信息输出模块:是开 始choice=1?输入提示信息开 始输入提示信息 是输入信息choice=1? 是输出信息choice=2? 是choice=3? 更新信息 是查询信息choice=4? 输出模块: 是排序模块choice=5? 输出信息输入(choice)添加模块删除模块修改模块开始退出更新

5、模块:1 2 3 0选择修改的内容i=0isum开始退出Strcmp()输出修改后的信息继续退出YNNY修改模块:i=sum输入新信息继续i+flage=1 flage=0开始退出NY添加模块:添加模块: i=sum输入新信息继续i+flage=1 flage=0开始退出NY 删除模块:选择要删除的选项输入i=0isum?mStrcmp()比较名称或编号开始YY不同相同Y删除?j+jsum?继续?输出无此内容退出N查询模块:输出提示信息输入要查询的内容i0Strcmp()查有此?输出该条信息继续?输出无此内容开始Y退出NYN 用下条信息代替此条 i=0,j=i+1isum-1,jsum,i+,

6、j+比较交换:t=stui;stui=stuj;stuj=t;输出排序的内容排序模块:开始退出 六.调试情况,设计技巧及体会这次C语言的实习,自己最大的感受是无知.知识总是在用的时候才知道匮乏,以前觉得自己C语言考试过了,就是合格了,对自己要求太低,以至于这次实习遇到很大的麻烦.这个程序是我按照书上例题程序模仿编写的,当程序写完后,运行时发现有许多错误,我请教老师和同学,对程序进行了耐心细致的修改,经过一番努力,程序里的错误终于被全部纠正了。但程序没有错误不代表它能正常运行,基础知识不够扎实是我最大的问题,对很多知识点是只知其一,不知其二,或是只知其然而不知其所以然,C语言程序的编写和运行是非

7、常具有科学性的,没有正确掌握C语言编写的风格和规则,要编译成功较为复杂的程序真的是困难重重.正所谓”无以规矩,不成方圆”,对待科学文化知识没有一个严谨求实的态度,只能让自己在在成功路上举步为艰.但一份耕耘一份收获,两个星期的C语言实习,我又重新拾起了渐以模糊的C语言知识和概念,通过上机调试程序,不但熟悉了C语言的一些基本知识,而且熟练了上机实践,通过实践,又掌握了一些在书本上学不到的解决实际问题的方法,此外,也将学过的计算机基础知识做了一次复习,这次实习确实是一次非常珍贵的实习.我明确了以后的方向和目标,再也不会荒废时间了.七.参考文献C语言程序设计(第二版) 王曙燕/主编八.附录源代码#in

8、clude stdio.h#include string.h#include stdlib.h#include conio.h#define MAX 15int sum; /*记录小说个数*/*日期结构体类型*/struct date int year; int month; int day;/*小说信息结构体类型*/struct novel_type int num; char name20; char kind20; float score; struct date time;novelMAX;/*存放MAX部小说信息记录的结构体数组*/*函数声明*/int input_message()

9、;void output_message();int add_message();int delet_by_name();int delet_by_num();int renew_message();int inquire_name();int inquire_num();int inquire_message();int sort_num();int sort_time();int sort_message();int read_message();/*保存信息*/save_message(int sum) FILE *fp;/*定义文件指针*/ int i; if(fp=fopen(boo

10、k.txt,wb)=NULL) printf(读文件错误!n); return 0; for(i=0;isum;i+) if(fwrite(&noveli,sizeof(struct novel_type),1,fp)!=1) printf(写文件错误!n); fclose(fp); return 0;/*主函数*/main()int choice;sum=read_message();doprintf(nnn *小说信息管理系统*nn);printf( 1.录入小说信息nn);printf( 2.浏览小说信息nn);printf( 3.更新小说信息nn);printf( 4.小说信息排序nn

11、);printf( 5.查询小说信息nn);printf( 0.退出系统nn);printf( 请选择(0-5): nnn);printf( -);scanf(%d,&choice);switch(choice)case 1: input_message();break;case 2: output_message();break; case 3: renew_message();break; case 4: sort_message();break; case 5: inquire_message();break; case 0: break;while(choice!=0);save_me

12、ssage(sum);printf(n -以上小说信息已保存!- (文件名:book.txt) n);return 0;/*输入模块*/input_message()int i=0,s=MAX;printf(nn 录入小说信息 (最多%d部)n,s);printf(n);doprintf(n 第%d部小说,i+1);printf(nn 编号:);scanf(%d,&noveli.num);if(noveli.num=0) break;printf(n 名称:);scanf(%s,noveli.name);printf(n 种类:);scanf(%s,noveli.kind);printf(n

13、总评:);scanf(%f,&noveli.score);printf(n 完结日期(yyyy-mm-dd):);scanf(%d-%d-%d,&noveli.time.year,&noveli.time.month,&noveli.time.day);i+;while(iMAX);printf(n -%d部小说信息输入完毕!-n,i);sum=i;printf(n 按任意键返回主菜单!);return 0;/*读取信息*/int read_message()FILE *fp;int i=0;if(fp=fopen(book.txt,rb)=NULL)/*打开文件*/printf(nn*暂时还

14、没有任何库存信息,按任意键进入主菜单选择基本信息的录入!*n);return 0;while(!feof(fp)fread(&noveli,sizeof(struct novel_type),1,fp);if(noveli.num=0) break;else i+;fclose(fp);/*关闭文件*/return(i);/*小说信息浏览*/void output_message()int i;printf(nn *小说信息表* nn);printf(n);printf( 编号-名称-种类-总评-完结日期 nn);for(i=0;isum;i+)printf( %5d %12s %8s %10

15、f %7d-%2d-%2dn,noveli.num,noveli.name,noveli.kind,noveli.score,noveli.time.year,noveli.time.month,noveli.time.day);/*添加小说信息*/add_message()int i=sum,flag=0;char choice,ch;printf(nn 添加一本小说的信息n);printf(n);donoveli.num=+sum;printf(n 编号:);scanf(%d,&noveli.num);printf(n 名称:);scanf(%s,noveli.name);printf(n

16、 种类:);scanf(%s,noveli.kind);printf(n 总评:);scanf(%f,&noveli.score);printf(n 完结日期(yyyy-mm-dd):);scanf(%d-%d-%d,&noveli.time.year,&noveli.time.month,&noveli.time.day);printf(nnn 要继续吗? (Y/N) );ch=getchar();choice=getchar();i+;if(choice=y|choice=Y)printf(n 继续! n);flag=1;else flag=0;while(flag=1);printf(n

17、 按任意键返回主菜单!);return 0;/*按小说名称删除*/int delet_by_name() int i=0,k,flag;char ch,delet_name20; char choice;doprintf(n 输入要删除的小说名称:);scanf(%s,delet_name);for(i=0;iMAX;i+)if(strcmp(noveli.name,delet_name)=0)k=i;for(k=i;kMAX-1;k+)novelk=novelk+1;sum=MAX-1;if(i=MAX)printf(n 无该小说信息!);return 0;printf(nn 要继续删除吗?

18、(Y/N);ch=getchar();choice=getchar();if(choice=Y|choice=y)flag=1;printf(n 继续!n);else flag=0;while(flag=1);printf(n 删除完毕!);return 0;/*按小说编号删除*/ int delet_by_num() int i,j,delet_num,flag,b=0; char ch; char choice;do printf( 输出要删除的小说编号:);scanf(%d,&delet_num);for(i=0;isum;i+)if(noveli.num=delet_num&novel

19、i.num!=0)for(j=i;jsum;j+)novelj=novelj+1;sum-;break;else b+;printf(n);printf( 编号-名称-种类-总评-完结日期 nn);for(i=0;isum;i+)printf( %5d %12s %8s %10f %7d-%2d-%2dn,noveli.num,noveli.name,noveli.kind,noveli.score,noveli.time.year,noveli.time.month,noveli.time.day);printf(n);if(sum=b)printf(n 无该小说信息!); return 0

20、;printf(nn 要继续删除吗?(Y/N);ch=getchar();choice=getchar();if(choice=Y|choice=y)flag=1;printf(n 继续! n);else flag=0;while(flag=1);printf(n 删除完毕! );return 0; /*删除模块*/int delet_message() int choice; do printf(nn - 删除小说信息 -nnn); printf( 1.按小说名称删除nn); printf( 2.按小说编号删除nn); printf( 0.返回主菜单nn); printf( 请选择(0-2)

21、nn;); scanf(%d,&choice); switch(choice) case 1: delet_by_name();break; case 2: delet_by_num();break; case 0: break; while(choice!=0); save_message(sum); return 0;/*修改模块*/revise_message() int i=0,choice,revise_num,flag; do printf(n 请输入要修改的小说编号:); scanf(%d,&revise_num); for(i=0;isum;i+) if(noveli.num=

22、revise_num) printf(n -小说信息-n); printf(n); printf( 编号-名称-种类-总评-完结日期 nn); printf( %5d %12s %8s %10f %7d-%2d-%2dn,noveli.num,noveli.name,noveli.kind,noveli.score,noveli.time.year,noveli.time.month,noveli.time.day); printf(n 您要修改哪一项?n); printf(n 1.名称n); printf(n 2.种类n); printf(n 3.总评n); printf(n 请选择(1-3

23、):); scanf(%d,&choice); switch(choice) case 1:printf(n 输入修改后的名称:); scanf(%s,noveli.name); break; case 2:printf(n 输入修改后的种类:); scanf(%s,noveli.kind); break; case 3:printf(n 输入修改后的总评:); scanf(%f,&noveli.score); break; printf(n); printf( 编号-名称-种类-总评-完结日期 nn); printf( %5d %12s %8s %10f %7d-%2d-%2dn,novel

24、i.num,noveli.name,noveli.kind,noveli.score,noveli.time.year,noveli.time.month,noveli.time.day); break; if(i=sum) printf(n 该小说不存在!); return 0; printf(nn 继续修改吗? (Y/N) ); choice=getchar(); if(choice=Y|choice=y) flag=1; printf(n 继续!n); else flag=0; while(flag=1); printf(n 按任意键返回主菜单!); return 0;/*更新模块*/r

25、enew_message() int choice; do printf(nnn *更新小说信息*nn); printf( 1.添加小说信息nn); printf( 2.删除小说信息nn); printf( 3.修改小说信息nn); printf( 0.返回主菜单nn); printf( 请选择(0-3):); scanf(%d,&choice); switch(choice) case 1:add_message();break; case 2:delet_message();break; case 3:revise_message();break; case 0:break; while(

26、choice!=0);return 0;/*按名称查询*/inquire_name() int i; char inquire_name10; printf(n 输入要查询的小说名称:); scanf(%s,inquire_name); for(i=0;isum;i+) if(strcmp(noveli.name,inquire_name)=0&noveli.num!=0) printf(n -%s小说信息- n,noveli.name); printf(n); printf( 编号-名称-种类-总评-完结日期 nn); printf( %5d %12s %8s %10f %7d-%2d-%2

27、dn,noveli.num,noveli.name,noveli.kind,noveli.score,noveli.time.year,noveli.time.month,noveli.time.day); if(i=sum) printf(n 该小说信息不存在!); return 0;inquire_num() /*按编号查询*/ int i,j=0; int inquire_num; printf(n 请输入要查询的小说编号:); scanf(%d,&inquire_num); for(i=0;isum;i+) if(noveli.num=inquire_num&noveli.num!=0

28、) printf(n -%d号小说信息- n,noveli.num); printf(n); printf( 编号-名称-种类-总评-完结日期 nn); printf( %5d %12s %8s %10f %7d-%2d-%2dn,noveli.num,noveli.name,noveli.kind,noveli.score,noveli.time.year,noveli.time.month,noveli.time.day); else j+; if(j=sum) printf(nn 该小说信息不存在!); return 0;/*查询模块*/inquire_message() int choice; do printf(nnn *查询小说信息*nn); printf( 1.按小说名称查询nn); printf( 2.按小说编号查询nn); printf( 0.返回主菜单nn); printf( 请选择(0-2):); scanf(%d,&choice); switch(choice) case 1:inquire_name();break; case 2:inquire_num();break; case 0:break; while(choice!=0); return 0;/*按编号排序*/ sort_num()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁