课程设计设计报告

发布 2022-10-01 06:53:28 阅读 4030

目录。一、系统总体设计 2

二、小组分工 2

三、模块功能简介 3

四、系统的软硬件环境 7

五、系统的使用说明 7

六、结束语 10

七、参考文献 11

附录a:程序源** 12

系统应该具有管理系统的基本功能,即对商品信息能够进行添加、删除、编辑等基本管理。除此之外,还要考虑安全问题,即对系统设置密码,进行访问控制。系统设置了相应的链表结果表示操作商品信息。

为了便于系统调试,系统将商品信息存储于文本文件中。系统体系结构图2-1所示。

图 2-1系统体系结构。

根据需求分析,系统应该包含添加商品信息、删除商品信息、显示商品信息、查询商品信息、编辑商品信息、保存数据等6个主要功能模块。系统总体框架如图2-2所示。

图 2-2系统功能框图。

1)小组长姓名:刘x

小组成员:组员1姓名:王x

组员2姓名:赵x

组员3姓名:张x

2)小组成员分工:

1)小组长负责完成下列任务:

系统的总体设计和主函数部分以及程序的汇总调试。

2)组员1负责完成下列任务:

list链表类的插入、删除和显示功能的设计与实现。

3)组员2负责完成下列任务:

list类的其余部分如节点的查找和创建的设计与实现。

4)组员3负责完成下列任务:

manage类的设计与实现。

系统主要使用2个主要的类来实现系统功能:一个为manage类,负责实现系统界面的控制机制;另一个为list类,即链表类,实现系统的数据处理功能。

1、list链表类的功能。

根据总体设计内容,本系统主要使用链表结构来操作数据,所以链表类的设计与实现为系统实现的核心。链表类中的主要数据成员head为nodetype节点类型的数据。nodetype的具体结构为:

typedef struct linknode

char address[100厂家地址。

char birthday[100出厂日期。

struct scokk sc供货处代号。

struct goods go单个商品信息。

struct telephone te购货方式。

bool flag;

struct linknode* next指向节点的指针。

nodetype;

此节点类型类一个自定义的结构体,其中有7个数据域,两个整型数组分别代表厂家地址和出厂日期;还有三个数据域,是嵌入的结构体类型,分别代表供货处代号、单个商品信息、购货方式,其商品信息结构体的具体结构如下:

struct goods

char name[100商品名

char type[100类别

char authentication[100]; 商品认证。

char company[100公司名

char price[50**。

其他结构的详细信息请参考附录a:程序源**。此节点类型的最后一个域是重要的指针域,用于存放指向下一个节点的指针。

根据上面设计的链表结构和系统功能设计的内容,可以进一步规划链表类的主要功能如下:

1)添加节点。

将新添加的商品信息填充到新创建的节点中,然后插入到链表里。类的成员函数原型如下:

nodetype* list::insertnode(int i);

其中,整型参数i为节点序号;函数返回值为链表的节点指针。

在此函数中,首先,定义h,p,s三个指向节点的指针,h为指向链表头的指针,p为查找节点时返回的指针,s为指向新生成的节点的指针;然后,使用malloc函数创建一个空的节点,即在堆空间创建一个nodetype类型的变量,将s指针指向此变量;判断是否是此链表的第一个节点,如果是,则s所指节点为链表的头节点,并将h指针指向链表头节点;如果不是,则需要查找节点的插入位置,根据函数参数i调用intfindnode函数查找插入位置,并将返回的位置指针复制给p;如果p所指向的值存在,则将创建的s节点插入,否则,显示i值错误。一般插入节点的方法是使用下面两条语句:

s->next=p->next;

/ s节点的next指针指向p节点的下一个节点。

p->next=s;

/p的next指针指向s节点。

函数最后,将h指向链表的头节点,并返回新创建的节点s的地址。

2)显示节点信息。

在系统中,需要显示所有的商品名信息、一件商品的所有信息等,这些都需要显示节点保存的相应信息。

显示所有商品名,就是显示节点中的商品域中的商品名信息,它显示的是节点的一部分信息。显示所有的商品名的成员函数原型如下:

void list::dispnameall();

其函数功能是显示所有商品名,无参数,无返回值。其函数体的主要源**如下所示:

void list::dispnameall()

nodetype* p=head;

cout《现有的商品: "if(p==null)

cout《没有任何商品数据"< while(p!=null)

在函数体中主要利用while循环遍历访问整个链表,p=p->next;语句主要功能是指向节点的指针不断下移,以访问所有的节点。

显示一件商品的所有信息使用的成员函数原型为:

void list::disponenode(nodetype* p);

函数的主要功能是显示一件商品的所有信息,参数p为指向节点的指针,无返回值。函数通过参数接收指向节点的指针p,通过p访问其所指向的节点,并显示节点的所有信息(包括商品的基本信息,如商品名、**等)。函数体的主要**如下:

void list::disponenode(nodetype* p)

if(p!=null)

3)修改节点信息。

由于节点保存的信息较多,使用了嵌套的结构体保存数据,所以修改时,也需要按照相应的结构进行修改。可以修改商品的基本信息、商品的供货站**和商品的订货方式。使用的成员函数原型如下:

void editgoods(nodetype* p编辑单个商品说明信息。

void editscokk(nodetype* p编辑单个商品供货方式。

void edittelephone(nodetype* p); 编辑单个商品订货方式。

4)查找定位节点。

在进行节点的插入和编辑时,往往都需要按照指定的条件进行信息节点的查找。可以通过商品名或节点序号进行节点的查找定位。成员函数的原型如下所示:

nodetype* intfindnode(int i通过查找序号返回节点的指针

nodetype* strfindnode(char c通过查找商品名返回节点的指针。

int findbyname(char c通过查找商品名返回节点的序号。

其中,商品名查找节点,并返回节点指针使用较多,函数的主体**如下所示。

nodetype* list::strfindnode(char c)

nodetype* p=head;

int j=1;

strcat(c, "n");从外部读入的字符串末尾都带了一个换行符。

//查找第 i 个节点并由 p 指向该节点

while( p!=null &&checkstring(c, p->

return p;

此函数主要通过p指针的移动,并比较p所指向的节点中的商品名与给定的查找商品名是否一致,如果相同则找到,否则,继续移动p指针指向下一个节点继续比较,直到p指向链表尾(p为null)。

5)删除节点。

删除节点操作是一个常用的操作。一般需要先找到要删除的节点,然后,将其从链表中删除。由于节点是使用malloc函数生成的动态变量,所以,应该使用delete系统函数将其删除。

删除节点的成员函数如下所示:

void list::deletenode(int i)

nodetype *h=head, *p=head, *s;

int j=1;

if(i==1删除第一个节点。

elseelse

cout<<"输入的 i 值不正确"<

head=h;

2、manage类的功能。

manage类的主要功能是负责显示系统的主菜单和进行界面控制。其主要类结构如下:

class manage

list l1存储结构。

public:

void welcome登录页面,密码控制。

void loop主循环

void display显示菜单。

其中,l1为list链表类的对象,是执行系统功能的核心部分。void manage::loop()成员函数主要负责进行界面控制。

loop函数首先,进行系统初始化,包括创建list类的实例对象l1;定义字符数组ch接收用户输入的数字,并执行相应功能;定义两个指向节点的指针*p, *head,其中p为指向普通节点的指针,head为指向链表头节点的指针;定义整型变量i存放节点的序号;从外部文件读入数据创建链表,p指向链表的头节;并让head指向头节点;显示系统主菜单等。

课程设计报告格式 课程设计

洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...

课程设计总结,课程设计报告

课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...

课程设计 课程设计报告格式

学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...