C语言程序设计实验个人物品管理程序_第1页
C语言程序设计实验个人物品管理程序_第2页
C语言程序设计实验个人物品管理程序_第3页
C语言程序设计实验个人物品管理程序_第4页
C语言程序设计实验个人物品管理程序_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计与算法综合实习I题目:个人物品管理程序班级:学生学号:学生姓名:指导老师:提交时间:成绩:评分项目得分功能完整性(40分)界向美观性(10分)设计合理性及创新性(20分)答辩表现(20分)报告撰写质量(10分)华南农业大学信息学院个人物品管理程序1.问题描述问题描述设计一个个人物品管理程序,该程序具有以下功能:( 1)用户登录:输入用户名和密码,密码正确才允许登录。( 2)录入个人物品信息;( 3)给定物品名或编号,修改该个人物品信息;( 4)给定物品名或编号,删除该个人物品信息;( 5)根据输入的物品名或编号,显示查找到的相应物品信息;( 6)根据输入的分类,显示该分类的所有物品信息

2、;( 7)根据输入的时间,查询过期或3月内将过期的物品信息;( 8)统计功能:统计各分类的物品。( 9)新功能:导出个人物品信息至Excel表格。系统功能分析( 1)登录功能:这是一个个人物品管理程序,具有很大的开放性,已经注册的用户可以直接输入密码登陆系统,没有注册的用户可以根据自己的需要注册账户,并输入个人物品信息。( 2)录入个人物品信息:这个系统设置录入的物品信息主要包括物品的名称、编号、价格、分类、生产日期和过期日期。( 3)给定物品名或编号,修改个人物品信息:要修改物品信息时,输入物品的编号或名称查看物品信息,确认无误后可以选择对应的物品信息进行修改。( 4)给定物品名或编号,删除

3、个人物品信息:要删除物品信息时,输入物品的编号或名称查看物品信息,确认无误后可以删除该物品信息。( 5)根据输入的物品名或编号,显示查找到的相应物品信息:输入你想查找的物品名或编号,若找到对应物品信息,则显示;否则提示用户查找的物品不存在,请重新输入想要查找的物品名或编号。( 6)根据输入的分类,显示该分类的所有物品信息:若找到则显示该分类的物品信息,否则提示用户该分类不存在。( 7)根据输入的时间,查询已过期或3个月内将过期的物品信息:将物品的过期时间与输入时间作比较,若过期时间与输入时差小于3个月则输出对应物品信息。( 8)统计功能:统计各分类的物品信息。( 9)导出个人物品信息至Exce

4、l表格:每个人都可以将自己的物品信息导出至Excel表格,可以对自己的个人物品信息一目了然。开发平台及工具介绍我这个程序是使用Code:编写的,它是一个开放源码的全功能的跨平台C/C+集成开发环境,它使用了着名的的图形界面库wxWidgets版。它还提供了许多工程模板,包括控制台应用、DirectX应用和动态链接库等,另外它还支持用户自定义模板;它支持语法彩色醒目显示,支持代码完成,支持工程管理、项目构建、调试;它还具有灵活而强大的配置功能。1.系统设计系统总体结构设计(1)运行程序时,一开始我设置了对系统进行操作的选择界面,包括3个功能,一是登录系统,二是创建新账户,三是退出程序。用户可以根

5、据自己的实际情况进行选择,输入对应的操作数从而选择不同的功能。我在这里使用了switch-case语句。当用户选择了登陆系统或创建新账户操作时,程序会要求输入账号(20个字符以内),以及密码(10个字符以内),在输入密码时我使用了getch()函数(在头文件中)隐藏用户密码信息,当用户登陆成功或创建新用户成功时程序就会进入功能选择界面;如果用户选择退出程序,程序运行停止。(2)功能选择界面,我提供了九个功能选择,分别是录入个人物品信息、给定物品名或编号,修改该个人物品信息、给定物品名或编号,删除该个人物品信息、根据输入的物品名或编号,显示查找到的相应物品信息、根据输入的分类,显示该分类的所有物

6、品信息、根据输入的时间,查询已过期或3个月内将过期的物品信息、统计功能:统计各分类的物品信息、导出个人物品信息至Excel表格、退出到登陆界面。根据用户输入的操作数,我使用了switch语句实现相应功能。(3)录入个人物品信息:录入的物品信息包括物品的名称、编号、价格、分类、生产日期和过期日期。我首先将信息录入链表中,之后用自定义的保存函数Save()将信息存入文件中。(4)给定物品名或编号,删除个人物品信息:先输入要删除的物品名或编号,之后再通过文件指针在文件中找到相应物品信息并输出,用户确定无误后可以自行选择删除与否,若删除再调用Save函数,否则退回到功能选择界面。(5)给定物品名或编号

7、,修改个人物品信息:与删除个人物品信息一样,根据输入的物品名或编号,通过文件指针找到物品信息并输出,用户可以根据自己的需要选择修改对应的信息,在确认修改后,通过Save函数保存信息,放弃修改则退回功能选择界面。(6)根据输入的物品名或编号,显示查找到的相应物品的所有信息,这也是通过文件指针实现的查找。(7)根据输入的分类,显示该分类的所有物品信息:输入想查找的分类,使用一个字符数组记录输入的分类,使用文件指针对文件进行只读操作,将输入的分类与fgets()读出的分类比较,若相同则输出对应物品所有信息,直到文件指针为空。(8)根据输入的时间,查询已过期或3个月内将过期的物品信息:按照固定的时间输

8、入格式(如2015年1月1日则写成)输入时间,再与文件中的过期时间比较,通过比较,输出输入时间与过期时间之差小于3个月的物品信息。(9)统计功能:统计各分类的物品信息,使用文件指针对文件进行读操作,分别记录不同分类的物品个数,之后输出分类信息和对应的物品个数。(10)导出个人物品信息至Excel表格:创建新的文件指针,将链表里的信息写入名为“”的Excel文件里,输出的时候包括跳格符't'和换行符'n'符号,保证输出格式的正确性。(11)退出到登陆界面,其他用户可以继续使用该系统。数据结构设计我主要定义了用户信息结构user和物品信息结构Goods,还有使用了3

9、个文件,分别用于存放用户信息和物品信息。用户信息结构体structusercharusername20;charpassword8;username是账号,password是密码。物品信息结构体typedefstructwp请选择你的操作;1 .登陆系统2 .倒建新张户恭喜你,登陆成功?检格eCXE:至.自品息物口崩品物加改酒出增I导2468息:.信面息息息类界归田15倡分忠登:分找售至查5显迪135-79青选择你的操作:灯台1550020160101Sauesuccefally?嘲笔:01:100:20140101:20160101:文具名口疆价日日分晶品产期品"生过物品品称号&g

10、t;2元01日日分品品115产期品w20生过物品口犬翦品要入入输期日tttt灯016品台155020用20#?tttt吗tttt息tttt信妙的或tttt名品晶口靖价日分时tttt物口nntttt物口智性口崩tttt该ttHHHnttHHttttHHttttttHHttttttttttHHttttHHttttHHttsttttttttHHttttHHttttHHttttHHttttttHHttttHHtttttttt:HHttHHttHHttttttHHttHHHHttttHHttHHttsttHHttttttttttHHttttHHttHHHHtttt1tt0tt1ttrw20文tttttt

11、-tttt息名olpKKtttt息tttt信口辅价日日分tttt信tttt本物口aaonJ尸期oantttt品Kh-ottw森M定2删删tttt©D7E要要tttt你1.tttt基tttt品tttt物制改“委MtttHHttttttttttttHH瑞生过物tttt物品品tttt的itttt改髀tttt入tttt输t如巨ttttHHFJ/KI八具具具具濠刀文文文文该灯号甯01被0304查子笔前翕笔尺铅年心子荣碧多士在 等尺铅曹加水文具文具I生产日期:过期时间日常用品生活用品用具S20140101:20150101:20149101!28150101120158101129158101!

12、20150201120148101120140101:20140101120160101:20160131120160101:2tnfioi0i120158601:20151801:201E0S01:2O16B101:201GB101:2EH5ekioi文件成功导出至"sruod昔.xIe”.统实现登录系统登陆模块欢迎使用个人物品管理系统创建新账户退出系统选择对应操作,登陆时用户名或密码错误会提示输入账号或密码错误,并退回到本界面;创建新账户成功后会提示创建成功,并退到本界面,只需用刚创建的用户名和密码登陆即可,只有用户和密码都正确,才会提示登陆成功并跳转到功能选择界面。录入个人物品

13、信息物品名称物品编号物品价格录入物品信息物品分类生产日期过期时间按照提示输入相应的物品信息。输入物品名或编号之后,程序会输入对应物品信息,确认删除后才会删除对应物品信息并保存。物品名称物品编号物品价格删除物品信息物品分类生产日期过期时间修改物品信息:输入物品名或编号之后,程序会输入对应物品信息,可以选择对应信息进行修改。列出要修改物品所有信息修改物品信息选择对应信息进行修改查找物品信息输入物品名或编号查找物品信息列出对应物品信息根据输入的分类,显示该分类的所有物品信息输入物品分类根据输入分类显示物品信息列出对应物品信息根据输入的时间,查询已过期或3个月内将过期的物品信息输入查询时间查询过期物品

14、或三个月内过期物品比较输入的时间和过期时间输出对应物品信息统计功能:统计各分类的物品信息用不同变量记录不同分类的物品个数统计各分类的物品信息用文件指针对文件进行读写输出物品分类及对应物品个数导出个人物品信息至Excel表格输出物品存储信息项目名称导出物品信息到Excel表格1.系统测试(1)设计测试用例:笔乐碧多铅可雪加O 15 5 5文饮饮饮具料料料登陆账号名称:0101密码:123456名称编号价格(元)分类生产日期过期时间钢笔1100文具笔芯210文具尺子35文具水壶850日常用品书910生活用品手表1150用具物品信息:录入个人物品信息:名称:水杯编号:10价格:50分类:日常用品生产

15、日期:过期时间:删除物品信息:名称:钢笔编号:01修改个人物品信息:修改编号为11的物品名称为灯查找物品信息:查找编号为10的物品信息根据输入分类输出该分类所有物品:输入文具过期物品查询:输入时间为统计各分类物品个数;导出物品信息到Excel表格;预期结果:全都符合要求。系统运行界面:1.登录系统:201430330101恭喜你,登陆成功,主目主R、In录入个人物品信息口口00m311ff-00杯常141&水1050>日2020秘小)=01>k.元时日日分品品115产期品如生过物人人*品口艾要入人输期日删除物品信息SavesuccefulliiT你已成功删除该物品信息!修改

16、个人物品信息SauesuccefullyT瞿北具北景翡胃20文20罚tttt名=荷Ittt品史瑞价日分时tttt物2物品品吉翊皿该生曹何除口错品皿删不船要野tttt要召制要要除要除牌定2眦删删tttt曹AE#要要映你L表手115001tin名M.5具tttt品20用物ttn息名演息丁tttt停罢价日耳枇堤W.1品口助产期品tttt口若基爵tttt物品tts品品品tttt的物tttt物tttt改后?tttt改ttlt修曾atts人入改百tttt请遣正2ttnii曾AEH你Sayesuccefully?物品信息已完成修改,查找物品信息:10:日常用QP:20140101:201&0101瑞

17、日分品dslr期品过物品品过期物品查询根据输入分类输出该分类所有物品宝心子自碧多壶杯毛尺铅及三加带灯水品品01snsu1类具具常活具1&签文武饮饮日生用20;生产日期:20140101!26150101!28150101:20150101:28150291:20140101!26140101:20140101!B常用品I过期时间:!20168101120160101:S20160101:I201596S1:20151001:!20153801!20168101!201£0161!S2015B101!20140101;日常用品日01&0101:!6:3统计各分类物品个数

18、导出物品信息到Excel表格BCDE编号价格(元)分类生产日期F过期时间)1.子笔乐碧多壶234567O1±5815091011501050饮料日常用品生活用品用具20160101(3)运行结果与预期结果相同。201501012016010120140101201601012015010120160101201501012015060120150101201510012015020120150801201401012016010120140101201601012014010120150101日常用品20140101总结刚开始设计时毫无头绪,代码也是写得一团糟,感觉自己对上学期的内容

19、好陌生,所以决定还是先把有关内容看一遍。后来我看了课本和上网查了有关资料,然后再仔细地看了一遍题目要求:信息要求必须存在文件里面,而且数据操作要用链表,所以我将程序设计为开始时读取文件信息到链表,退出时再把链表信息全部覆盖写回文件里面。但是在实际操作中发现自己对链表这一块还是不太熟悉,所以又去找了一些和链表有关的资料。最后自己就边摸索着尝试了一下,最后发现原来也不是特别难,其实最大的欠缺就是动手能力差。这次的程序设计,我觉得不仅是让我复习了上学期学过的内容,更是发现了自己在学习上的许多缺点和不足,也是给了自己一个反省的机会,我觉得自己在以后的学习中必须要将理论与实际相结合,在巩固理论知识的基础

20、上一定要将其付诸实践,要敢于尝试,不要让一次的失败就让自己士气全无。附(源代码):#include<>#include<>#include<>#include<>#include<>structuserat");if(fp=fopen(wp,"wb")=NULL)printf("Can'topenthefile!n");exit(0);printf("nSavesuccefully!n");p=h;while(p!=NULL)fwrite(p,sizeof(

21、Goods),1,fp);p=p->next;fclose(fp);Goods*Load(char*mark)at");if(fp=fopen(wp,"ab+")=NULL)printf("Can'topenthefile!n");exit(1);p=(Goods*)malloc(sizeof(Goods);if(!p)printf("Memoryoverflow!n");returnh;h=p;ch=fgetc(fp);if(ch=EOF)(h=NULL;p->next=NULL;returnh;rew

22、ind(fp);while(!feof(fp)(if(1!=fread(p,sizeof(Goods),1,fp)break;p->next=(Goods*)malloc(sizeof(Goods);if(!p->next)(printf("Memoryoverflow!n");returnh;q=p;p=p->next;q->next=NULL;fclose(fp);returnh;voidExcel(char*mark)n");printf("11n");else(system("color04"

23、);n1n");printf("|导出至文件""失败!In");printf("11n");否 n");voidDeleteGoods(char*mark)2.scanf("%d",&k);if(k=1)if(i=1)head=head->next;elsep=head;while(p->next&&j<i-2)p=p->next;+j;if(!(p->next)|j>i-1)exit(0);q=p->next;p->nex

24、t=q->next;free(q);Save(head,mark);printf("你已成功删除该物品信息!elseprintf("你已取消删除操作!n");n");printf("2.物品编号n");printf("3.物品价格");printf("4.物品生产日期n");printf("5.物品过期时间");printf("6.物品分类n");voidAddNewGoods(char*mark)品名");scanf("%d&q

25、uot;,&choice);switch(choice)case1:printf("scanf("%s",;while(i=1)while(q!=NULL)请输入修改后物品名:");if(strcmp,q->name)=0)break;q=q->next;if(q!=NULL)printf("scanf("%s",;q=head;else该物品名已存在,请重新输入物品名:");i=2;q=head;strcpy(p->name,;break;case2:printf("请输入修改

26、后的物品编号:");scanf("%s",;while(q!=NULL)if(strcmp,q->number)=0)break;q=q->next;if(q!=NULL)printf("该物品名已存在,请重新输入物品名:");scanf("%s",;q=head;elsei=2;q=head;strcpy(p->number,;break;case3:printf("请输入修改后的物品价格:");scanf("%s",p->price);case4:printf("请输入修改后的物品生产日期:");scanf("%s",p->MFG);case5:printf("请输入修改后的物品过期时间:");scanf("%s",p->EXP);case6:printf("请输入修改后的物品类别:");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论