C语言程序设计实验个人物品管理程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计与算法综合实习I》

题目:个人物品管理程序班级:学生学号:学生姓

名:指导老师:

提交时间:2015.05.16 成绩:

华南农业大学信息学院

《个人物品管理程序》

1. 问题描述

1.1问题描述设计一个个人物品管理程序,该程序具有以下功能:

(1)用户登录:输入用户名和密码,密码正确才允许登录。( 2 )录入个人物品信息;

( 3 )给定物品名或编号,修改该个人物品信息;

( 4 )给定物品名或编号,删除该个人物品信息;

(5)根据输入的物品名或编号,显示查找到的相应物品信息;

( 6 )根据输入的分类,显示该分类的所有物品信息;

( 7 )根据输入的时间,查询过期或 3 月内将过期的物品信息;

( 8 )统计功能:统计各分类的物品。

( 9 )新功能:导出个人物品信息至 Excel 表格。

1.2系统功能分析(1)登录功能:这是一个个人物品管理程序,具有很大的开放性,已经注册的用户可以直接输入密码登陆系统,没有注册的用户可以根据自己的需要注册账户,并输入个人物品信息。

(2)录入个人物品信息:这个系统设置录入的物品信息主要包括物品的名称、编号、价格、分

类、生产日期和过期日期。

(3)给定物品名或编号,修改个人物品信息:要修改物品信息时,输入物品的编号或名称查看物品信息,确认无误后可以选择对应的物品信息进行修改。

(4)给定物品名或编号,删除个人物品信息:要删除物品信息时,输入物品的编号或名称查看物品信息,确认无误后可以删除该物品信息。

( 5)根据输入的物品名或编号,显示查找到的相应物品信息:输入你想查找的物品名或编号,若找到对应物品信息,则显示;否则提示用户查找的物品不存在,请重新输入想要查找的物品名或编号。

( 6)根据输入的分类,显示该分类的所有物品信息:若找到则显示该分类的物品信息,否则提示用户该分类不存在。

( 7 )根据输入的时间,查询已过期或 3 个月内将过期的物品信息:将物品的过期时间与输入时间作比较,若过期时间与输入时差小于 3个月则输出对应物品信息。

( 8 )统计功能:统计各分类的物品信息。

( 9 )导出个人物品信息至 Excel 表格:每个人都可以将自己的物品信息导出至 Excel 表格,可以对自己的个人物品信息一目了然。

1.3开发平台及工具介绍

我这个程序是使用 Code::Blocks10.05 编写的,它是一个开放源码的全功能的跨平台 C/C++集成开发环境,它使用了著名的的图形界面库 wxWidgets 版。它还提供了许多工程模板,包括控制台应用、DirectX 应用和动态链接库等,另外它还支持用户自定义模板;它支持语法彩色醒目显示,支持代码完成,支持工程管理、项目构建、调试;它还具有灵活而强大的配置功能。

1. 系统设计

2.1系统总体结构设计

( 1 )运行程序时,一开始我设置了对系统进行操作的选择界面,包括 3 个功能,一是登录系统,二是创建新账户,三是退出程序。用户可以根据自己的实际情况进行选择,输入对应的操作数从而选择不同的功能。我在这里使用了 switch-case 语句。当用户选择了登陆系统或创建新账户操作时,程序会要求输入账号(20个字符以内),以及密码(10个字符以内),在输入密码时我使用了 getch()函数(在头文件 conio.h 中)隐藏用户密码信息,当用户登陆成功或创建新用户成功时程序就会进入功能选择界面;如果用户选择退出程序,程序运行停止。

( 2 )功能选择界面,我提供了九个功能选择,分别是录入个人物品信息、给定物品名或编号,修改该个人物品信息、给定物品名或编号,删除该个人物品信息、根据输入的物品名或编号,显示查找到的相应物品信息、根据输入的分类,显示该分类的所有物品信息、根据输入的时间,查询已过期或 3 个月内将过期的物品信息、统计功能:统计各分类的物品信息、导出个人物品信息至 Excel 表格、退出到登陆界面。根据用户输入的操作数,我使用了 switch 语句实现相应功能。

( 3)录入个人物品信息:录入的物品信息包括物品的名称、编号、价格、分类、生产日期和过期日期。我首先将信息录入链表中,之后用自定义的保存函数Save()将信息存入文件中。(4)给定物品名或编号,删除个人物品信息:先输入要删除的物品名或编号,之后再通过文件指针在文件中找到相应物品信息并输出,用户确定无误后可以自行选择删除与否,若删除再调用Save函数,否则退回到功能选择界面。

(5)给定物品名或编号,修改个人物品信息:与删除个人物品信息一样,根据输入的物品名或编号,通过文件指针找到物品信息并输出,用户可以根据自己的需要选择修改对应的信息,在确认修改后,通过Save函数保存信息,放弃修改则退回功能选择界面。

(6)根据输入的物品名或编号,显示查找到的相应物品的所有信息,这也是通过文件指针实现的查找。

(7)根据输入的分类,显示该分类的所有物品信息:输入想查找的分类,使用一个字符数组记

录输入的分类,使用文件指针对文件进行只读操作,将输入的分类与fgets()读出的分类比较,若相同则输出对应物品所有信息,直到文件指针为空。

(8 )根据输入的时间,查询已过期或 3 个月内将过期的物品信息:按照固定的时间输入格式(如 2015 年 1 月 1 日则写成 20150101)输入时间,再与文件中的过期时间比较,通过比较,输出输入时间与过期时间之差小于 3 个月的物品信息。

( 9)统计功能:统计各分类的物品信息,使用文件指针对文件进行读操作,分别记录不同分类的物品个数,之后输出分类信息和对应的物品个数。

(10)导出个人物品信息至Excel 表格:创建新的文件指针,将链表里的信息写入名为“goods.xls”的Excel 文件里,输出的时候包括跳格符‘\t'和换行符‘\n'符号,保证输出格式的正确性。

(11)退出到登陆界面,其他用户可以继续使用该系统。 2.2数据结构设计

我主要定义了用户信息结构 user 和物品信息结构 Goods,还有使用了 3 个文件,分别用于存放用户信息和物品信息。

用户信息结构体

struct user

{

char username[20];

char password[8];

};

username 是账号,password 是密码。

物品信息结构体 typedef struct wp //定义数据结构

{

char name[20]; /*名称 */

char number[6];/*编号 */

char price[6];/* 价格*/

char categoty[10]; /* 分类*/

char MFG[9]; /* 生产日期*/

char EXP[9]; /* 过期时间*/ struct wp *next;

}Goods;

2.3系统各个函数及函数之间关系设计

开始

登陆系统

相关文档
最新文档