大学生个人消费管理系统总11页.docx
《大学生个人消费管理系统总11页.docx》由会员分享,可在线阅读,更多相关《大学生个人消费管理系统总11页.docx(12页珍藏版)》请在冰豆网上搜索。
大学生个人消费管理系统总11页
大学生个人消费管理系统(总11页)
学院信息工程学院班级姓名学号成绩____
一、题目:
大学生个人消费管理系统(18)
二、设计思路
1、总体设计
1)分析程序的功能:
该程序主要是对大学生消费信息进行管理与统计,主要实现对大学生每月的各项花费进行管理,包括消费记录的录入、修改、查询、删除、排序、统计和浏览的功能。
2)系统总体结构:
系统分为8个部分,分别为主菜单,录入消费记录程序,修改消费记录程序,查询消费记录程序,删除消费记录程序,排序消费记录程序,统计消费记录程序,浏览消费记录程序。
模块
函数名称
主菜单
main
录入信息
input
修改信息
xiugai
查询信息
search
删除信息
shanchu
统计信息
tongji
排序信息
paixu
浏览信息
output
通过主菜单中的提示来选择服务项目,并通过输入的数字转到用户想要运行的系统,调用该系统所使用的函数,实现对消费信息的管理。
在录入信息时,通过界面的提示按照月份,吃饭消费,电话消费,买书消费,旅游消费,其他消费,勤工收入来输入数据,系统通过录入程序对所输入的信息进行保存。
信息录入完毕后,在选择其他选项就可以对数据进行加工与处理。
2、各功能模块的设计:
1)主菜单模块
该模块是整个系统的主界面,用户通过主界面对系统中的程序进行选择,该界面主要运用do…while函数实现主界面的输出,另外使用switch语句实现对各个程序的选择,调用各个程序所使用的函数,通过对输入数字的判断来调用各个次函数和所要程序的界面。
代码参见主函数
2)录入信息模块
该模块是对大学生信息的录入,用户通过界面提示依次输入相关信息实现对信息的储存,该模块主要使用结构数组存储大学生消费记录,并使用for语句实现对大量信息的逐次录入与储存。
代码参见录入函数
3)浏览信息模块
该模块实现对储存的信息的浏览,主要使用for语句实现对信息的输出。
代码参见浏览函数
4)排序信息模块
该模块实现对已有数据的排序,该部分主要使用冒泡法排序,对每个月的支出总和进行排序,最后再调用浏览函数实现对排完序的数据的输出。
代码参见排序函数
5)查询信息模块
该模块实现对已存数据的查询功能,通过使用for语句实现对所需信息的查找,再通过if函数判断是否存在所需要的信息,并将查到的信息按照顺序打印出来。
代码参见查询函数
6)修改信息模块
该模块主要使用for语句和if函数判断是否存在所改月份的信息,并通过if函数进行对函数的修改于覆盖,当所找月份信息不存在时,该模块也会提醒用户信息不存在。
代码参见修改函数
7)删除信息模块
该模块实现的是对已储存信息的删除,使用for语句和if函数判断是否存在,并通过if函数和while语句实现对信息的删除与覆盖。
代码参见删除函数
8)统计信息模块
该模块实现的是对已存信息的各项消费统计,使用for语句和累加功能实现对每项消费的累加,累加结束后通过cout输出最后统计结果。
代码参见统计函数
3、设计中的主要困难及解决方案
设计中要对信息进行储存,这需要构造大学生消费的结构,采用结构体类型定义大学生消费的结构,结构数组的使用是解决该问题的关键,掌握结构体的使用方法与运行原理是解决该问题的必要条件,因此就对书本上的结构体进行了研究,最终掌握并成功使用该语句,实现数据的存储。
此外函数的调用是整个系统的主要部分,一开始并不知道如何调用函数,在参考任务书和其他资料后,使用switch语句实现在住函数中对所输入信息的要求调用各个函数。
4、你所设计的程序最终完成的功能
1)说明你编制的程序能完成的功能
能够实现对大学生消费信息的储存并在此基础上实现对信息的修改,查询,删除,排序,统计,浏览,实现对大学生消费信息的管理
2)准备的测试数据及运行结果
以下是某同学一年的消费信息(按照月份、吃饭消费、电话消费、买书消费、旅游消费、其它消费、勤工俭学收入顺序)
1322135256272124215
2124245135354242468
3241265142136245226
4144245134129250163
5241132241124247261
6281241169246341321
7152135241213135340
8164342158168297346
9214134245163246279
10216132246234124223
11145252113249163249
12249113246135144246
程序的主界面如下:
选择录入12个月信息,录入后界面如下
选择浏览消费信息,界面如下
选择统计消费信息,界面如下
选择排序消费信息,界面如下
选择查询消费信息并查询4月份信息,界面如下
选择修改消费信息并选择7月份信息,界面如下
选择删除消费信息并选择9月份,界面如下
三、程序清单
1)主函数
voidmain()
{
intm;
do
onth>>stu[i].eat>>stu[i].phone>>stu[i].book>>
stu[i].tour>>stu[i].other>>stu[i].work;
stu[i].total=stu[i].eat+stu[i].phone+stu[i].book+
stu[i].tour+stu[i].other-stu[i].work;
onth<<""<}
4)排序函数
voidpaixu()
{
if(n>0)
{
for(intk=0;kstu[m+1].total)
{
max=stu[m+1];
stu[m+1]=stu[m];
stu[m]=max;
}
}
}
}
output();
}
5)查询函数
voidsearch()
{
intmon;
cout<<"请输入要查询信息的月份:
";cin>>mon;cout<<'\n';
for(inti=0;i{
if(mon==stu[i].month)
{
cout<<"月份"<<""<<"吃饭消费"<<""<<"电话消费"<<""<<"买书消费"<<""<<"旅游消费"<<""<<"其它消费"<<""<<"勤工俭学收入"<<""<<"月总支出"<cout<<""<return;
}
}
cout<<"记录不存在"<}
6)修改函数
voidxiugai()
{
intj;
cout<<"请输入修改的月份:
";
cin>>j;
for(intm=0;m{
if(stu[m].month==j)
{
cout<<"\0"<cout<<"请修改吃饭消费:
"<cin>>stu[m].eat;
cout<<"请修改电话消费:
"<cin>>stu[m].phone;
cout<<"请修改买书消费:
"<cin>>stu[m].book;
cout<<"请修改旅游消费:
"<cin>>stu[m].tour;
cout<<"请修改其他消费:
"<cin>>stu[m].other;
cout<<"请修改勤工收入:
"<cin>>stu[m].work;
}
}
}
7)删除函数
voidshanchu()
{
intno;
cout<<"请输入要删除的月份:
";
cin>>no;
for(inti=0;i{
if(no==stu[i].month)
{
while(i{
stu[i]=stu[i+1];
i++;
}
}
}
n--;
}
8)统计函数
voidtongji()
{
doublea=0,b=0,c=0,d=0,e=0,f=0,g=0;
for(inti=0;ia+=stu[i].eat;
for(i=0;ib+=stu[i].phone;
for(i=0;ic+=stu[i].book;
for(i=0;id+=stu[i].tour;
for(i=0;ie+=stu[i].other;
for(i=0;if+=stu[i].work;
for(i=0;ig+=stu[i].total;
cout<<"吃饭消费"<<""<<"电话话费"<<""<<"买书花费"<<""<<"旅游花费"<<""<<"其它花费"<<""<<"勤工俭学收入"<<""<<"月总支出"<cout<<""<}
四、对该设计题目有何更完善的方案
1、对自己完成程序进行自我评价。
在进行程序设计的过程中,虽然能够运用一些设计步骤,但发现自己仍然对许多方面的内容理解不够透彻,在设计程序时,通过大量的资料查询才使程序得以完善。
在进行实际设计这一方面仍然缺乏经验,需要在今后的学习中加大课程设计方面的练习让自己的编程能力逐步提升。
2、对课题提出更完善的方案
本课题是对大学生个人消费信息的管理,我认为在对一些消费信息输出后,应该多增加一些对此项消费的说明及评价,这样不仅能够在读程序时清晰明了,而且对消费信息有了清楚的评价,同时也可以进行各个消费方面信息的对比,这样使得该程序更加完善。
五、收获及心得体会
在进行此次课题设计的过程中,不仅加深了对所用函数的理解,而且对结构体的知识也有了一定的掌握,并在程序中很好的运用了结构体的功能。
虽然在本学期课程中并没有涉及太多有关结构体的内容,但在设计课题时通过对结构体的多次运用,使我加深了对该知识的理解。
通过此次课程设计,发现自己在编程方面仍然有许多不足之处,许多步骤需要通过借助资料及同学的指点才能顺利运行。
虽然在设计程序过程中遇到了许多问题,但在解决这些问题的过程中受益匪浅,使自己更好的理解了程序的意义,希望在今后通过更多的实践机会使得自己提高此方面的能力。
日期:
2012年6月28日