小说管理系统Word下载.docx
《小说管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《小说管理系统Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
3:
通过输入小说名称或小说编号查询出所要的信息;
4:
添加小说信息;
5;
输入想要修改的小说的名称、种类、总评,可以将任一小说信息修改;
6:
通过输入要删除小说的编号或名称,可删除此小说的全部信息;
7:
可按照小说编号或完结日期对小说信息进行排序;
四、概要设计
1)、系统结构图对系统进行分析,给出结构图
主函数
2)模块功能简介:
1、输入模块:
输入要存储的信息,最多只能存入15个信息。
2、输出模块:
输出已经输入的信息。
3、添加模块:
添加一些信息到存储系统。
4、修改模块:
将已存储的名称、种类、总评这些信息进行修改。
5、查询模块:
⑴按名称查询函数:
通过输入小说名称,若该名称在存储信息中,贝U将输出关于该小说的所有信息,若不存在,则输出没有关于此小说的信息;
(2)按编号查询函数:
输入编号在存储信息中,则输出关于该编号小说的所有信息,若无,则输出没有关于此编号的信息;
(3)返回主菜单:
返回系统主菜单。
6删除模块:
(1)按编号删除:
通过输入编号将该小说信息全部删除,若无该小说信息,则
告知无关于此编号的小说信息;
⑵按名称删除:
通过输入名称将小说信息全部删除,若无该小说信息,则告知无关于此名称的小说信息;
五.详细设计及运行结果
Y
退出
开始
查询模块
删除模块
输出提示信息
选择要删除的选项
输入要查询的内容
输入
i<
i=0
N
输出无此内容
同
继续?
相同
删除?
J++
排序模块
i=0,j=i+1
jvsum?
输出排序的内容
用下条信息代替此条
sum?
Strcmp()查有此?
sum-1,j<
sum,i++,j++
比较
交换:
t=stu[i];
stu[i]=stu[j];
stu[j]=t
Strcmp()比较
名称或编号
1
!
.Y
输出该条信息
V
6.调试情况,设计技巧及体会
这次C语言的实习,自己最大的感受是无知.知识总是在用的时候才知道匮乏以前觉得自己C语言考试过了,就是合格了,对自己要求太低,以至于这次实习遇到很大的麻烦.
这个程序是我按照书上例题程序模仿编写的,当程序写完后,运行时发现有许多错误,我请教老师和同学,对程序进行了耐心细致的修改,经过一番努力,程序里的错误终于被全部纠正了。
但程序没有错误不代表它能正常运行,
基础知识不够扎实是我最大的问题,对很多知识点是只知其一,不知其二,或是只知其然而不知其所以然,C语言程序的编写和运行是非常具有科学性的,没有正确掌握C语言编写的风格和规则,要编译成功较为复杂的程序真的是困难重重.正所谓”无以规矩,不成方圆”,对待科学文化知识没有一个严谨求实的态度,只能让自己在在成功路上举步为艰.
但一份耕耘一份收获,两个星期的C语言实习,我又重新拾起了渐以模糊的C语言知识和概念,通过上机调试程序,不但熟悉了C语言的一些基本知识,而且熟练了上机实践,通过实践,又掌握了一些在书本上学不到的解决实际问题的方法,
此外,也将学过的计算机基础知识做了一次复习,这次实习确实是一次非常珍贵的实习.我明确了以后的方向和目标,再也不会荒废时间了.
7.参考文献
C语言程序设计(第二版)王曙燕/主编
8.附录
源代码
#include"
stdio.h"
string.h"
stdlib.h"
conio.h"
#defineMAX15intsum;
/*记录小说个数*/
/*日期结构体类型*/structdate
intyear;
intmonth;
intday;
};
/*小说信息结构体类型*/
structnovel_type
{
intnum;
charname[20];
charkind[20];
floatscore;
structdatetime;
}novel[MAX];
/*存放MAX部小说信息记录的结构体数组*/
/*函数声明*/
intinput_message();
voidoutput_message();
intadd_message();
intdelet_by_name();
intdelet_by_num();
intrenew_message();
intinquire_name();
intinquire_num();
intinquire_message();
intsort_num();
intsort_time();
intsort_message();
intread_message();
/*保存信息*/
save_message(intsum)
FILE*fp;
/*定义文件指针*/
inti;
if((fp=fopen("
book.txt"
"
wb"
))==NULL)
printf("
读文件错误!
\n"
);
return0;
}
for(i=0;
sum;
i++)
if(fwrite(&
novel[i],sizeof(structnovel_type),1,fp)!
=1)
写文件错误!
fclose(fp);
/*主函数*/
main()
intchoice;
sum=read_message();
do
\n\n\n
理系统***********\n\n"
\n\n"
***********
1.录入小说信息
2.浏览小说信息
3.更新小说信息
4.小说信息排序
5.查询小说信息
0.退出系统\n\n"
请选择(0--5):
\n\n\n"
"
scanf("
%d"
&
choice);
switch(choice)
case1:
input_message();
break;
case2:
output_message();
case3:
renew_message();
case4:
sort_message();
case5:
inquire_message();
case0:
break;
}while(choice!
=0);
save_message(sum);
\n--以上小说信息已保存!
--(文件名:
book.txt)\n"
return0;
/*输入模块*/input_message()
inti=0,s=MAX;
\n\n录入小说信息(最多%d
部)\n"
s);
\n第%d部小说"
i+1);
\n\n编号:
"
novel[i].num);
if(novel[i].num==0)break;
\n名称:
%s"
novel[i].name);
\n种类:
novel[i].kind);
\n总评:
%f"
novel[i].score);
\n完结日期(yyyy-mm-dd):
%d-%d-%d"
novel[i].time.year,&
novel[i].time.month,&
novel[
i].time.day);
}while(i<
MAX);
\n--%d部小说信息输入完
毕!
--\n"
i);
sum=i;
\n按任意键返回主菜单!
/*读取信息*/
intread_message()
inti=0;
rb"
))==NULL)/*打开文件*/
\n\n*****暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入!
****\n"
while(!
feof(fp))
fread(&
novel[i],sizeof(structnovel_type),1,fp);
elsei++;
/*关闭文件*/return(i);
/*小说信息浏览*/
voidoutput_message()
\n\n****小说信息表****
编号名称种类总评完
结日期\n\n"
%5d%12s%8s%10f%7d-%2d-%2d\n"
novel[i
].num,novel[i].name,novel[i].kind,novel[i].score,novel[i].time.year,novel[i].time.month,novel[i].time.day);
/*添加小说信息*/add_message()
inti=sum,flag=0;
添加一本小说的信息
charchoice,ch;
\n\n
novel[i].num=++sum;
\n编号: