C语言程序设计实验的个人物品管理系统程序Word文件下载.docx

上传人:b****4 文档编号:16488562 上传时间:2022-11-24 格式:DOCX 页数:40 大小:43.29KB
下载 相关 举报
C语言程序设计实验的个人物品管理系统程序Word文件下载.docx_第1页
第1页 / 共40页
C语言程序设计实验的个人物品管理系统程序Word文件下载.docx_第2页
第2页 / 共40页
C语言程序设计实验的个人物品管理系统程序Word文件下载.docx_第3页
第3页 / 共40页
C语言程序设计实验的个人物品管理系统程序Word文件下载.docx_第4页
第4页 / 共40页
C语言程序设计实验的个人物品管理系统程序Word文件下载.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

C语言程序设计实验的个人物品管理系统程序Word文件下载.docx

《C语言程序设计实验的个人物品管理系统程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验的个人物品管理系统程序Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。

C语言程序设计实验的个人物品管理系统程序Word文件下载.docx

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()将信息存

入文件中。

先输入要删除的物品名或编号,之后再通过文件指针在文件中找到相应物品信息并输出,用户确定无误后可以自行选择删除与否,若删除再调用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个文件,分别

用于存放用户信息和物品信息。

用户信息结构体

structuser

{

charusername[20];

charpassword[8];

};

username是账号,password是密码。

物品信息结构体

typedefstructwp//定义数据结构

charname[20];

/*名称*/

charnumber[6];

/*编号*/

charprice[6];

/*价格*/

charcategoty[10];

/*分类*/charMFG[9];

/*生产日期*/

charEXP[9];

/*过期时间*/

structwp*next;

}Goods;

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

开始

2.4界面设计

(1)开始界面

 

「!

」5x£

T璧KIX兰百XJL-审II■翌rFL

II

恭喜你,登陆成功辛

青选择你的操作:

3579-

I.-

•••信面息息自菜K界=口亠一亘一一口分陆查s^s-退

•童■唇M息ngj=断恃物口塌品物加霽岀増専

(3)查找物品界面

丁询生过物

」□□辐1'

|日日分讨品品严期品

钢笔

01

100

2014010120160101文具

(4)录入新物品

灯01617品

AI-I-S000二匚I5221H

^=口■'

T1)01書元01日日分

品口2—15亠严期品

生过物入入廉品舅

IAA

S

请选择你的操作;

♦登陆巨统

2.厠建新址户

3•逋岀糠洋

竈SMMTifiMXKmflC梵XlMMiiMKitiMMratiKliKitJiCKMiiMKKaifIffXiKMrKiMliK梵MEKXiMlCHiM

(2)功能选择界面

称:

201430330101

7|51:

KHKMMK

SavesuccefLilly*

(5)删除物品信息界面

_「杠期土八间

昨灯0询品170魁台1550溯用20

删物品品严口跚tttt该生常tttt除品flfl删吾要后

1111要專要除朋宀疋2

##删删朋W疋

(6)修改物品信息界面

1

(7)输出物品分类界面

-契具具具具

畏IX

(8)查询过期物品界面

钢甘

芯子桑碧多壶表笙尺铅屬加峯手

编0102

0708

防11

s15

5

55

00

15

品品

用用齐K具具具常活具劳文文文亲

饮饮饮日生用

i

!

20140131

I201S0101

20149101

2Bi50iei

20159101

2915B101

201502B1

20140101

28140101

I过期时间:

20160101!

120160181!

20160101:

120156601:

120151001!

20150801:

2616S101!

201&

01QI1!

201B0101!

(9)统计分类信息界面

物品各分类数目:

ffi=3

日常用品汽生活用品:

丄用具汽

(10)导出物品信息到Excel表格界面

3.系统实现

1登陆模块登录系统

欢迎使用个人物品管理系统创建新账户

退出系统

选择对应操作,登陆时用户名或密码错误会提示输入账号或密码错误,并退回到本界

面;

创建新账户成功后会提示创建成功,并退到本界面,只需用刚创建的用户名和密码登

陆即可,只有用户和密码都正确,才会提示登陆成功并跳转到功能选择界面。

2录入个人物品信息

物品名称

物品编号

物品价格

录入物品信息

物品分类

生产日期

过期时间

按照提示输入相应的物品信息。

3输入物品名或编号之后,程序会输入对应物品信息,确认删除后才会删除对应物品

信息并保存。

删除物品信息

4修改物品信息:

输入物品名或编号之后,程序会输入对应物品信息,可以选择对应

信息进行修改。

列出要修改物品所有信息

修改物品信息

选择对应信息进行修改

5查找物品信息

输入物品名或编号查找物品信息

列出对应物品信息

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

输入物品分类根据输入分类显示物品信息

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

查询过期物品或三个月内过期物品

⑧统计功能:

统计各分类的物品信息

输入查询时间

比较输入的时间和过期时间

输出对应物品信息

用不同变量记录不同分类的物品个数

用文件指针对文件进行读写

输出物品分类及对应物品个数

⑨导出个人物品信息至Excel表格

输出物品存储信息项目名称

导出物品信息到Excel表格

1.系统测试

(1)设计测试用例:

登陆账号名称:

201430330101密码:

123456

名称

编号

价格

(元)

分类

文具

20140101

20160101

笔芯「

2

10

20150101

尺子

3

铅笔

4

可乐

饮料

20150601

雪碧

6

20151001

加多宝

7

20150201

20150801

水壶

8

50

日常用品

书「

9

生活用品

手表

11

用具

物品信息:

录入个人物品信息:

名称:

水杯编号:

10价格:

50分类:

日常用品生产日期:

过期时间:

删除物品信息:

钢笔编号:

修改个人物品信息:

修改编号为11的物品名称为灯

查找物品信息:

查找编号为10的物品信息

根据输入分类输出该分类所有物品:

输入文具

过期物品查询:

输入时间为20160101

统计各分类物品个数;

导出物品信息到Excel表格;

预期结果:

全都符合要求。

1.系统运行界面:

①登录系统

恭喜你.登陆成功?

②录入个人物品信息

日期输

杯常1416粗号)=01>

^^k番元01日日分品品<

15亠严期S

生过物入入*品口哭

Sauesuccefully*

SavesuccefullyT你已成功删除该物品信息!

③删除物品信息

④修改个人物品信息

删删置疋要要辆尔」

ffl11利砂笔pm具询ttH100y^0#4-01252

删名品脯口鏡价耳时tttt物器物胡品C剧啊该除即粕要要煮tttt要要除要除nil定

毛1150

ttn息名口忑息mt信口鏡价日貝卩加4^品品严期品赫口畧tttt基物品iiit品品品删的物tttt物谢«

tt改后?

tttt改ttlt修魯3

y—S

删入入改否tttt请匾疋2抽—SE疋

M你」1

Savesucceful1^!

物启信息已完成修改?

⑤查找物品信息

鎗日分

品品严期品

过物

⑥根据输入分类输出该分类所有物品

具具具

⑦过期物品查询

宝烹子橐碧多壶杯萤尺铅kiM加峯灯水

00@000^T1515555155

品品01

FTPFTPi

0J类具具常活具16八殳文条饮饮日生用20n—sI—nftnBlvnIPft—InIB

;

120150101120140101128150101126150101!

0101120150291

126140101

128140101

过期时间;

!

201681B1!

i201601Sl!

20150681!

1001!

120150801:

20160101i

I201501S1:

20140101!

8统计各分类物品个数

Excel表格

类:

1:

1分品品01<

rr3□T-1>

-匚■■:

n^j「n八■■0品盘常活具16莎蠹中士用Z0

⑨导出物品信息到

O-

P"

5

匚10

类具具具

E1F生产日期过期时间20150101201601012014010120160101201501012016010120150101201506012015010120151001

欧料

日常用品生活用品用具

2014010120140101日常用品

2015080120160101

2015010120140101

(3)运行结果与预期结果相同。

1.总结

刚开始设计时毫无头绪,代码也是写得一团糟,感觉自己对上学期的内容好陌生,所以决定还是先把有关内容看一遍。

后来我看了课本和上网查了有关资料,然后再仔细地看了一遍题目要求:

信息要求必须存在文件里面,而且数据操作要用链表,所以我将程序设计为开始时读取文件信息到链表,退出时再把链表信息全部覆盖写回文件里面。

但是在实际操作中发现自己对链表这一块还是不太熟悉,所以又去找了一些和链表有关的资料。

最后自己就边摸索着尝试了一下,最后发现原来也不是特别难,其实最大的欠缺就是动手能力差。

这次的程序设计,我觉得不仅是让我复习了上学期学过的内容,更是发现了自己在学习上的许多缺点和不足,也是给了自己一个反省的机会,我觉得自己在以后的学习中必须要将理论与实际相结合,在巩固理论知识的基础上一定要将其付诸实践,要敢于尝试,不要让一次的失败就让自己士气全无。

附(源代码)

#include<

stdio.h>

malloc.h>

#include<

string.h>

stdlib.h>

conio.h>

structuser//用户信息

};

charprice[6];

/*分类*/

charMFG[9];

voidNewuser(void)//创建新账户

\n"

);

printf("

欢迎创建新账户

FILE*fp;

charp[10];

inti=0;

voidencrypt(char*mima);

//加密算法

structusersu;

if((fp=fopen("

f:

\\usermessage"

"

a+"

))==NULL)

printf("

文件打开失败!

exit(O);

}

请输入新账号:

"

scanf("

%s"

su.username);

请输入密码:

while((p[i]=getch())!

='

\r'

*"

i++;

p[i]='

\0'

strcpy(su.password,p);

encrypt(su.password);

fprintf(fp,"

%s%s\n"

su.username,su.password);

if(fclose(fp))

文件无法关闭!

\n恭喜你成功创建新账户

voidencrypt(char*mima)〃加密程序

inti,j;

j=strlen(mima);

for(i=0;

i<

j;

i++)

mima[i]=mima[『15;

intLogin(char*mark)〃用户登录

system("

color0A"

inti=0;

charusr[30],usr1[30],mima[10],p[10];

intcheck=0;

请输入账号名称:

请输入登录密码:

“);

i++;

strcpy(usr,su.username);

strcpy(mima,su.password);

encrypt(mima);

strcat(usr,"

"

strcat(usr,mima);

if((fp=fopen("

r"

Fileopenerror!

exit(0);

while(!

feof(fp))

fgets(usr1,30,fp);

if(strcmp(usr,usr1)==0)

check=1;

break;

Cannotclosethefile\n"

if(check==1)

\n恭喜你,登陆成功!

陆成功

strcpy(mark,su.username);

return1;

else

{printf("

\n用户名或密码错误,请重新登陆\n"

return0;

voidSave(Goods*h,char*mark)〃保存记录

Goods*p;

charwp[20];

strcpy(wp,mark);

strcat(wp,"

.dat"

if((fp=fopen(wp,"

wb"

Can'

topenthefile!

\nSavesuccefully!

p=h;

while(p匸NULL)

fwrite(p,sizeof(Goods),1,fp);

p=p->

next;

fclose(fp);

Goods*Load(char*mark)〃读入记录

Goods*p,*q,*h=NULL;

charch;

cls"

ab+"

printf("

topenthe

file!

exit

(1);

p=(Goods*)malloc(sizeof(Goods));

if(!

p)

printf(”Memoryoverflow!

returnh;

h=p;

ch=fgetc(fp);

if(ch==EOF)

h=NULL;

p->

next=NULL;

rewind(fp);

if(1!

=fread(p,sizeof(Goods),1,fp))

next=(Goods*)malloc(sizeof(Goods));

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1