投稿管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告书专用纸
淮海工学院课程设计报告书
课程名称:计算机技术课程设计
题目:投稿管理系统
系(院):电子工程学院
学期:10-11-2
专业班级:电子082
姓名:
学号:
1 需求分析和说明
投稿管理系统软件的总体目标:在Visual C++ 6.0,的开发环境下,利用所学C语言和数据结构的相关知识,开发一个具有良好人机界面的投稿信息管理系统软件,本管理系统实现对稿件信息的管理,它的主要功能包括显示全部稿件信息、添加稿件、删除稿件、按稿件编号查询、按稿件名称查询、按稿件名称排序、按稿件浏览量排序。
1.1 基本要求
(1)界面友好,易与操作。采用菜单或其它人机对话方式进行选择。
(2)显示全部稿件信息和稿件的总个数。稿件基本信息包括:稿件的编号、名称、作者、被浏览次数、添加日期。
(3)实现稿件的添加。
(4)实现稿件的删除。
(5)按稿件编号或稿件名称查询某个稿件的基本信息。
(6)按稿件名称或稿件被浏览的次数进行排序,并显示输出排序结果。
1.2 各功能模块的功能描述:
1.系统总控制模块
本模块的主要功能实现是系统菜单的输出、系统主要操作的选择控制。
2.稿件信息录入模块
本模块的主要功能是根据用户的选择进行文件的创建、结构体类型定义、读写文件、插入法创建有序链表、遍历输出链表等,并且对新建结点录入的各项数据、数据输入格式进行验证。
3.稿件信息删除模块
本模块的主要功能是删除用户指定的结点的信息,并将删除后的链表信息保存到文件中。
4.稿件信息查询模块
本模块的主要功能是根据用户的选择,按稿件的编号或名称进行查询,并输出稿件的查询结果。
5.稿件信息排序模块
本模块的主要功能是根据用户的选择,按稿件的名称或被浏览次数进行排序,并输出稿件的排序结果。
2 详细设计
2.1 投稿管理系统结构图
如图 1 所示:
图1投稿管理系统结构图
2.2 数据类型定义
#define filename "C:\\wengao.dat"//数据的存储路径
struct date//定义时间结构体
{
int year;//年
int month;//月
int day;//日
};
typedef struct WEN//定义稿件信息结构体
{
char number[10]; //稿件编号
char name[20]; //稿件名称
char writer[20];//稿件作者
int time;// 稿件浏览次数
struct date Date; //添加稿件日期
struct WEN *next; //指向结构体自身的指针
}WENGAO;
/*函数声明*/
WENGAO *NewNode(WENGAO *head);
void Display_Message(WENGAO *head); //显示全部稿件信息
void Linked_List(WENGAO *head); //列出链表的全部信息
WENGAO * ReadFromFile(int); //从文件读取数据,构造链表
void Save_Message(WENGAO *head); //将数据信息保存到文件中
WENGAO * INSERT_Node(WENGAO *head,WENGAO *NewNode,int style);//插入结点信息
void Free_Linked_List(WENGAO* head); //释放链表空间
void deleteByNumber(WENGAO *head); //按稿件编号输出文稿
int panduan(WENGAO* head,char * number);//编号唯一性的检验
int Check_Date(WENGAO *NewNode, char *tmpDate);//日期合法性的检验
void QuByName(WENGAO *head);//按稿件名称排序
void QuBytime(WENGAO *head);//按浏览次数排序
void searchByName(WENGAO *head);//按稿件名称查找
void searchByNumber(WENGAO *head);//按稿件编号查找
void mainMenu();//主菜单显示
2.3 算法思想
2.3.1 判断函数
panduan(WENGAO* head,char * number),其功能是判断输入的稿件编号是否唯一。
2.3.2 结点生成模块
首先使用malloc函数向系统申请分配指定size个字节的内存空间。若申请成功则生成一个NewNode指针节点。给其next域赋值NULL,通过键盘给其数据域赋上相应的值。即NewNode->number赋上稿件的号码信息,NewNode->name赋上稿件的名字信息,NewNode->writer赋上稿件作者的信息,NewNode->time赋上稿件浏览次数的信息,再在NewNode->Data.year、NewNode->Data.month、NewNode->Data.day赋上添加时间的信息。这就生成了一个完整的稿件信息,最后再返回新节点。
其流程图如图3所示:
图3节点生成流程图
2.3.3 稿件信息录入模块
节点生成的部分由节点生成模块可得出,可由键盘输入稿件编号、名称、作者、浏览次数、添加日期的信息,同时调用panduan和Check_Date函数检测输入数据的合法性和唯一性。若输入的信息有效,则返回新节点。从而完成对一个新成员的转入操作。
其流程图如图 4所示: