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