设备管理系统课程设计报告Word下载.docx
《设备管理系统课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《设备管理系统课程设计报告Word下载.docx(49页珍藏版)》请在冰豆网上搜索。
3)通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
4)通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。
5)通过课程设计,加强了自己的程序分析能力。
2.需求分析
2.1要求
1)遵循软件开发过程的基本规范;
能灵活应用,初步具备运用C程序解决实际问题的能力。
2)运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。
3)学会利用数组、结构体、链表进行相关信息表示。
4)功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述
5)各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。
6)所设计的C程序较好的可读性和可靠性;
程序书写风格规范,注释清晰。
7)界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。
8)程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。
9)学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。
10)掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
11)C语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。
2.2任务描述
此系统以设备、部门为背景,提供对设备、部门的购买、报废、查找、统计等功能。
具体功能实现如下:
1)购买:
输入设备编号、部门编号(购买),购买日期、设备数量,完成购买的功能:
需要判断设备编号、部门编号是否存在,设备数量是否大于0,购买日期格式是否合法(格式为:
YYYY-MM-DD,如2009-01-02))购买时间必须通过调用系统时间获得。
2)报废:
输入设备编号、部门编号(报废),报废日期、设备数量,完成报废功能:
需要判断设备编号、部门编号是否存在,设备数量是否大于0小于该部门当前正使用设备数量。
报废日期格式是否合法(格式为:
YYYY-MM-DD,如2009-01-02))
3)查询指定设备编号购买历史
4)指定部门报废设备的历史
5)统计指定日期公司各设备可以使用的数量
6)所有数据符合实际应用要求
2.3运行环境
1)WindowsXP/7系统
2)VC++6.0编译环境
2.4开发工具
C语言
3.总体设计
3.1系统流设计
本系统的功能模块如图1所示,主要有以下模块:
图1系统功能模块图
3.2系统模块设计
1)主菜单界面:
构造函数intmain_menu(),实现课程设计名称的显示,实现欢迎使用设备管理系统的显示,系统主菜单的显示。
2)读取显示设备信息:
构造函数voidload_equipment(),实现设备信息的读取及显示。
3)读取显示部门信息:
构造函数voidload_department(),实现部门信息的读取及显示。
4)记录购买设备的信息:
构造函数voidsave_buy(structinformation*head),实现设备购买的输入及记录。
并通过设备编号查询购买信息函数voidID_buy(structinformation*head)、部门编号查询设备购买信息函数voidnum_buy(structinformation*head)的调用,实现相应的购买信息的查询。
5)记录报废设备的信息:
构造函数voidsave_ruin(structinformation*head),实现设备报废的输入及记录。
并通过设备编号查询报废信息函数voidID_ruin(structinformation*head)、部门编号查询设备报废信息函数voidnum_ruin(structinformation*head)的调用,实现相应的报废信息的查询。
6)显示购买报废设备信息记录:
构造函数voidshow_information(structinformation*head),实现购买报废设备信息记录的显示。
7)显示全部信息的界面:
构造函数voidshow_menu(structinformation*head),实现全部信息的界面的显示。
4.详细设计
4.1数据结构设计
根据系统要求,系统中需要保存的数据信息,其结构如下:
数据项名称
数据项系统表示
数据类型
数据长度
备注
设备编号
ID
int
部门编号
num
购买日期
data[11]
char
11
设备状态
style
设备数量
number
报废数量
number1
单价
price
double
总价
sum
根据系统要求,系统中需要保存的类别信息,其结构如下:
类别代号
类别名称
为了能实现不受限制的增加设备信息,采用链表的结构保存设备信息,在增加设备的基本信息时,创建一个设备信息的节点,将其插入到链表中,示意图如下。
为此,先声明一个类型为structstudent的结构体,其成员为设备信息。
然后通过对指针、链表、文件等数据结构的操作,实现对设备信息的录入,插入,存盘,查询,浏览,删除,修改等一系列操作。
其中,结构体定义如下:
structinformation
{
intID;
intnum;
chardata[11];
chardata1[11];
intstyle;
doubleprice;
intnumber;
intnumber1;
doublesum;
structinformation*next;
};
4.2模块接口设计
1)所有函数模块声明如下:
void
load(structinformation*head);
/*将信息存储到文件*/
int
main_menu();
/*主菜单*/
menu_select(intsel,structinformation*head);
/*进行主菜单操作选择*/
load_equipment();
/*从文件中读取设备信息*/
load_department();
/*从文件中读取部门信息*/
voidsave_buy(structinformation*head);
/*对设备进行购买输入*/
save_ruin(structinformation*head);
/*对设备进行报废输入*/
ID_buy(structinformation*head);
/*通过设备编号查询购买信息*/
num_buy(structinformation*head);
/*通过部门编号查询购买信息*/
num_ruin(structinformation*head);
/*通过部门编号查询报废信息*/
ID_ruin(structinformation*head);
/*通过设备编号查询报废信息*/
buy_menu(structinformation*head);
/*设备购买查询主菜单*/
ruin_menu(structinformation*head);
/*设备报废查询主菜单*/
structinformation*scanf_add(structinformation*head);
/*从TXT文件中导入上次存储的设备处理信息*/
voidshow_information();
/*显示购买和报废设备信息记录*/
show_menu(structinformation*head);
/*显示全部信息主菜单*/
judge_date(chardate[11]);
/*判断日期输入是否正确*/
show_list(structinformation*head);
/*部门可使用设备报表制作*/
voidprintftime();
/*调用系统时间*/
voidtongjishengyu();
/*统计剩余使用次数*/
2)并定义两个全局变量:
intq;
structintformation*head;
3)主要模块的实现
系统以主函数main()为入口,调用intmain_menu()函数,显示欢迎进入课程设计名称,直接进入主菜单界面,然后系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。
4.3以下是几个主要模块的流程图:
1)主菜单函数:
图1主函数流程图
2)购买设备函数:
图2购买设备流程图
3)信息修改函数:
图3查询流程图
5.运行结果
5.1主菜单界面:
图5主菜单界面
输入功能选择,系统自动进入相应功能界面。
5.2设备信息界面:
图6设备信息界面
5.3部门信息界面:
图7部门信息界面
5.4购买历史查询信息界面:
从键盘中输入选择,可以按设备编号和部门编号进行查询,并显示结果。
图8通过设备编号查询的结果
5.5报废历史查询信息界面:
从键盘中输入选择,可以按设备编号和部门编号进行查询,并显示结果。
图9通过设备编号查询的结果
5.6显示全部信息界面:
图10显示全部信息界面
5.7设备信息报表:
6.程序调试与测试
6.1程序调试
1.购买设备
从键盘输入需要购买的设备以及购买设备的编号。
2.报废设备
从键盘输入需要报废的设备信息。
6.2程序测试
1.购买信息
从键盘输入需要查询的方式。
2.报废信息
7.问题与不足
(1)需求分析中存在的问题所有数据符合实际应用要求这一项没做好,导致所有数据都能随意输入,无论多大的数字都不会报错。
(2)概要设计中不存在什么问题。
(3)详细设计中存在的问题有不少地方都缺少报错,比如说输入设备数量时就算输入了英文也没有报错,反而把那个英文直接当做了1来处理。
(4)代码编制中存在的问题结构不够精炼,有些拖泥带水,缺少实际经验。
(5)调试和测试中不存在什么问题。
8.建议
对于签到,每次签到都会有好多人代签,这导致了签到的无意义,我觉得取消签到或者严格查签到才能解决。
9.编程体会
通过这次大规模的编程,我发现了自己的许多不足,我的各个重点都掌握的不牢固,导致我花费了大量的时间去复习,当我复习完了再开始编程已经比别人慢了一大步,我发现程序