《C语言编程实践》项目训练实践报告教师版共级软件专业学生参考Word文档下载推荐.docx
《《C语言编程实践》项目训练实践报告教师版共级软件专业学生参考Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《C语言编程实践》项目训练实践报告教师版共级软件专业学生参考Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。
二、项目设计说明
本项目主要用来实现对图书基本信息的管理(增添删改查)。
使用该系统,首先进入登录窗口,进行身份验证,然后进行相应的操作。
将系统的功能划分为:
读取用户、注册用户、保存用户、登录用户、读取图书、录入图书、查询图书、修改图书、添加图书、删除图书、浏览图书以及保存图书12个模块。
运行时出现一个主界面(一级界面),通过按键选择可以进入相应的二级界面,最后按键选择执行相应的功能。
三.项目总体功能模块图
图3-1系统功能模块图
2设计方法
采用结构化的程序设计方法。
把程序的结构分解成三种基本模块:
处理单元、分支决策机制、循环机制。
模块划分符合以下三条基本原则:
1、模块在功能上尽可能地单一化、明确化,即模块的内聚性。
2、模块之间的联系及相互影响尽可能地少,尽量避免逻辑耦合,而仅限于数据耦合。
3、模块的规模应当足够小,易于调试。
实施方法:
自顶向下、逐步细化。
结构化程序设计方法保证了软件的可靠准确度及易于修改,但是增大了程序工作量,降低了程序的运行效率。
根据软件工程的要求以及结构化程序设计方法,软件从项目的提出到投入使用一般要经过需求分析、系统设计、编码、测试、运行维护阶段。
3需求分析
实际问题提出需要用软件实现时,需求分析主要是确定软件需要解决的问题和实现的目标,确定软件处理的数据,并进行可行性的分析,建立数据结构及控制流程。
1.问题的基本描述
要求设计一个软件系统,能够对某图书信息进行管理。
其中包括“书名”,能够对M1(字符型数组)进行输入。
在“作者”子模块中能对M2个不同(字符型数组)进行输入。
在“编号”对M3个不同(整形变量)进行输入。
在“出版单位”对M4个不同(字符型数组)进行输入。
在“价格”对M5个不同(整形变量)进行输入。
在“编号”对M6个不同(出版时间)进行输入。
并可以上上述输入变量输出。
2.系统模块分解
需求分析通过对问题及环境的理解与分析,对问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化、最终形成设计的规格说明。
通过对系统需求的分析,可以将系统初步划分为2个模块,如图2所示。
图3-2系统的层次框图
每个模块分别实现各自的多项功能,根据自顶向下逐步求精的原则,继续对各个模块进一步分解。
以“图书信息管理”模块为例进一步说明分解的步骤。
“图书信息管理”模块包括用户信息的读取、录入、输出、查找、修改、删除、添加、保存这八个基本功能。
通过对模块分解,系统设计逐步细化,当模块分解到一定规模时,需要通过详细设计对每一个模块进行功能定义和数据接口定义,为系统的编码提供详细的文档。
3.系统各模块功能的基本要求
(1)图书信息管理模块
对图书信息进行设置和管理。
班级基本信息概括为:
书名,作者,编号,出版单位,价格,编号。
其中编号是唯一的。
不同图书信息在不同的数据文件中(以拼音来命名)。
图书名字和编号一一对应。
如果一个图书没有信息可以用“-1”来表示。
图书模块应包含图书信息的录入、输出、添加(新书入库)、删除、查找、修改等功能。
(2)用户信息管理模块
户信息概括为:
用户名、用户密码和用户类型。
登录本系统的用户可以分为管理员(系统管理员和教师)和普通用户(学生)。
不同用户有不同的操作权限。
管理员用户可以对本系统的所有功能进行操作,普通用户只能进行输出、查询等操作。
用户信息的管理应包括用户信息的录入、输出、查找、修改、删除、添加等基本功能。
4系统设计
系统设计:
在需求分析基础上,进行具体的、可以实现的设计描述。
系统设计分为概要设计和详细设计。
概要设计主要实现系统模块划分,确定模块间的关系;
详细设计确定每个模块的具体实现方法,即每个模块的输入数据、输出数据及实现模块功能的算法。
4.1总体设计
1.登录系统
根据用户文件yonghu.txt所提供的用户信息进行身份验证后登录系统。
登录后显示系统界面,用户可以通过输入不同功能编号进入不同的子模块。
1.用户信息管理
用户信息管理包括用户信息的读取、注册、登录、保存4个基本功能。
2.图书信息管理
包括某图书信息的读取、录入、浏览、查询、修改、添加、删除、保存8个基本功能。
4.2各个功能模块函数名称及简要说明
(列出系统的各个功能模块下的函数名称并简要说明每个函数的基本功能)
图书管理子系统功能函数定义如下(zhu.c)
voidGLY(void);
voidYH(void);
voidYK(void);
voidGLYDL(void);
voidtianjia(void);
voidchaxun(void);
voidliulan(void);
voidxiugai(void);
voidshanchu(void);
voidZC(void);
voidSYYH(void);
voidDL(void);
voidYHCZ(void);
voidjieyue(void);
voidguihuan(void)
.3系统结构
(此处绘出系统的结构框架图(注:
在模块中必须标明该模块对应的源代码所在的文件以及该模块的函数名。
))
图3-3系统组成结构图(带函数)
4.4详细设计
详细设计的目的是对分解后的模块功能进行描述,并根据功能选择所需的接口数据,确定算法,并给出完整的文档。
4.4.1.数据结构定义
根据系统功能分析和基本描述。
图书信息数据见表1;
用户信息基本数据见表2。
表1班级信息数据表
编号
信息描述
类型
1
书名
字符数组(长度为50)
2
作者
3
整型变量
4
出版单位
整型数组(长度为50)
5
出版时间
字符数组
6
价格
整形变量
7
确认
图书信息定义为一个结构体类型,定义如下
typedefstructbook{
charnam[50];
//书名
charauth[50];
//作者
charchubanshe[50];
//出版社
intkucun;
//库存
intjieshu;
//文件结束
structbook*next;
}NODE;
表2用户信息数据表
用户名称
字符数组(长度为20)
用户密码
字符数组(长度为16)
用户类型
ZHUCE
根据数据类型的特点,可以将用户信息数据定义为一个结构体类型,定义如下。
typedefstructyh{
charnumber[20];
//学号
charstuNam[100];
//姓名
charmima[16];
//密码
structyh*next;
}XS;
typedefstructbook
4.4.2文件组织
本系统中要求有2种文件,分别用来存放用户信息、图书信息。
输入的数据需要存储在磁盘文件中,磁盘文件存放于当前项目文件夹下。
1、用户信息文件名为yonghu.txt。
按定义的用户信息结构形式,依次存放由用户总数所决定的结构体数据。
2、图书信息文件名为book.txt。
按定义的图书信息结构形式,依次存放图书所决定的结构体数据。
4.4.3功能模块设计
由于系统包含的模块较多,下面是函数说明,其他模块可以参照此方法依次给出。
1、main函数原型:
函数
原型
voidmain();
形参及
无
功能
显示界面,按提示输入进入对应功能
调用
关系
返回值
算法(流程图)
程序代码
实现及调
试并分析
结果
intmain(void){
inta=0;
intb;
FILE*fp,*fp1;
NODE*p,*q,*r;
XS*m,*n,*c;
//****book***************************
if((fp=fopen("
book.txt"
"
r+"
))!
=NULL){
head=(NODE*)malloc(sizeof(NODE));
head->
next=NULL;
p=head;
q=(NODE*)malloc(sizeof(NODE));
p->
next=q;
p=p->
next;
next=0;
while
(1){
fscanf(fp,"
%s"
p->
nam);
auth);
chubanshe);
%d"
&
(p->
kucun));
jieshu));
if(p->
jieshu==1)
break;
r=(NODE*)malloc(sizeof(NODE));
p->
next=r;
r->
p=p->
}
fclose(fp);
}
else{
}
//******YONGHU*****************************
//*****************************************
if((fp1=fopen("
YONGHU.txt"
hd=(XS*)malloc(sizeof(XS));
hd->
m=hd;
n=(XS*)malloc(sizeof(XS));
m->
next=n;
m=m->
fscanf(fp1,"
m->
stuNam);
number);
mima);
(m->
if(m->
c=(XS*)malloc(sizeof(XS));
m->
next=c;
c->
m=m->
fclose(fp1);
//********************************