18大学生个人消费管理系统课程设计课案.docx
《18大学生个人消费管理系统课程设计课案.docx》由会员分享,可在线阅读,更多相关《18大学生个人消费管理系统课程设计课案.docx(11页珍藏版)》请在冰豆网上搜索。
18大学生个人消费管理系统课程设计课案
河北工业大学计算机软件技术基础(VC)2012年课程设计报告
学院班级班姓名学号成绩____
一、题目:
大学生个人消费管理系统
二、设计思路
1、总体设计
1)分析程序的功能
大学生对自己的每个月的吃饭消费、电话消费、买书花费、旅游花费、其他花费、勤工俭学收入、月总支出进行管理,可以对自己的每个月的各项消费进行浏览、录入、查询、删除、排序、统计的功能。
2)系统总体结构:
此程序由主界面模块,浏览模块,录入模块,查询模块,删除模块,排序模块,统计模块组成。
其中:
1)主界面模块:
本模块提供大学生消费系统的主菜单界面,供用户选择与执行各项管理工作。
2)浏览模块:
本模块用提供大学生浏览各项消费数据。
3)录入模块:
本模块用于录入大学生的具体某一月份的各项消费记录,例如吃饭消费、电话消费、买书花费、旅游花费、其他花费、勤工俭学收入、月总支出等。
4)查询模块:
本模块用于大学生查看自己已经录入的各项消费信息,包括用户每个月份的各项消费情况。
5)删除模块:
本模块用于大学生对自己已经录入的消费数据进行删除。
6)排序模块:
本模块用于对大学生对已经输入的消费数据进行月总支出对消费记录进行升序排列。
7)统计模块:
本模板用于对大学生已经输入的数据进行整理、计算。
模块
函数名称
主界面模块
zhujiemian
浏览模块
liulan
录入模块
luru
查询模块
chaxun
删除模块
shanchu
排序模块
paixu
统计模块
tongji
准备的测试数据如下:
吃饭
电话
买书
旅游
其他
勤工
总支出
1月份
100
100
100
100
100
100
400
2月份
200
200
200
200
200
200
800
3月份
100
100
100
100
100
100
400
2、各功能模块的设计:
说明各功能模块的实现方法
1)liulan模块
该函数为void型函数,当选择1是调用浏览函数,然后选择要浏览的月份(选择1,2,3),输入数字,则系统将输出所选择月份的消费信息。
浏览完毕返回主函数。
2)luru模块
该函数完成大学生每个月份的各项消费的录入,为double型。
选择2将调用录入函数,然后选择要录入的月份,然后依次录入各项消费记录。
录入完毕返回主函数。
3)chaxun模块
该函数完成大学生对某个月的消费记录的查询,选择3将调用查询函数,然后输入要查询的月份。
查询完毕后返回主函数。
4)shanchu模块
该函数完成大学生对某个月的消费记录的删除,选择4将调用删除函数,然后输入要删除的月份。
删除后信息将不再存在。
修改完毕后返回主函数。
5)paixu模块
该函数将完成大学生月总支出对消费记录的排序,选择5将调用排序函数,采用替换完成排序。
排序完成后返回主函数。
6)tongji模块
该函数将完成大学生对各项消费记录的统计,采用for循环语句。
选择6将调用统计函数,系统将自动输出对各项消费的统计。
统计完毕后返回主函数。
3、设计中的主要困难及解决方案
设计中要实现多个功能,要用到多个函数。
于是采用分支的机构,主函数中利用switch,case完成各个函数的调用。
4、你所设计的程序最终完成的功能
1)说明你编制的程序能完成的功能
能完成大学生对每个月份消费信息的浏览、录入、查询、删除、排序、统计的功能。
2)准备的测试数据及运行结果
三、程序清单
#include
structstudent//定义结构体类型
{
intmonth;//月份
inteat;//吃饭消费
intphone;//电话消费
intbook;//买书花费
inttravel;//旅游花费
intother;//其他花费
intwork;//勤工收入
intzhichu;//月总支出
}stu[12],wutong={0,0,0,0,0,0,0,0},kong;定义结构体数组
1)liulan模块
voidliulan(studentstu[12])//浏览函数定义
{
cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<'\t'<<"支出"<<'\n';
for(inti=0;i<12;i++)//
{
cout<}
}
2)luru模块
voidluru(studentstu[12],studentwutong)//录入函数定义
{
cout<<"请输入录入月份:
";
cin>>wutong.month;//输入选择的月份
intn;
for(inti=0;i<12;i++)//输入各项的消费
if(stu[i].month==0)
{
n=i;break;
}
stu[i].month=wutong.month;
cout<<"请输入吃饭消费:
";cin>>stu[n].eat;
cout<<"请输入电话话费:
";cin>>stu[n].phone;
cout<<"请输入买书花费:
";cin>>stu[n].book;
cout<<"请输入旅游花费:
";cin>>stu[n].travel;
cout<<"请输入其他花费:
";cin>>stu[n].other;
cout<<"请输入勤工俭学收入:
";cin>>stu[n].work;
cout<<"请输入月总支出:
";cin>>stu[n].zhichu;
}
3)chaxun模块
voidchaxun(studentstu[12],studentwutong)//查询函数定义
{
cout<<"请输入需要查询的月份:
"<cin>>wutong.month;//输入选择的月份
for(inti=0;i<12;i++)//查询选择的月份
if(wutong.month==stu[i].month)
cout<}
4)shanchu模块
voidshanchu(studentstu[12],studentkong)//删除函数定义
{
cout<<"请输入需要删除的月份:
"<intmonth;
cin>>month;//输入选择的月份
for(inti=0;i<12;i++)//删除选择的月份
if(month==stu[i].month)
stu[i]=kong;
cout<<"删除完成"<}
5)paixu模块
voidpaixu(studentstu[12],studentwutong)//排序函数定义
{
for(inti=0;i<12;i++)//排序输入的信息
for(intj=0;j<12;j++)
if(stu[i].month>stu[j].month)
{
wutong=stu[i];
stu[i]=stu[j];
stu[j]=wutong;
}
cout<<"排序完成"<}
6)tongji模块
voidtongji(studentstu[12],studentwutong)//统计函数定义
{
for(inti=0;i<12;i++)//计算各项消费的总和
{wutong.eat+=stu[i].eat;
wutong.phone+=stu[i].phone;
wutong.book+=stu[i].book;
wutong.travel+=stu[i].travel;
wutong.other+=stu[i].other;
wutong.work+=stu[i].work;
wutong.zhichu+=stu[i].zhichu;
}
cout<<"各项消费的总支出为:
"<cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<'\t'<<"支出"<<'\n';
cout<}
7)zhujiemian模块
voidzhujiemian()//主界面函数定义
{
cout<<"--------欢迎使用大学生消费管理系统主菜单--------"<cout<<"浏览消费记录,请选择:
1"<cout<<"录入消费记录,请选择:
2"<cout<<"查询消费记录,请选择:
3"<cout<<"删除消费记录:
请选择:
4"<cout<<"排序消费记录,请选择:
5"<cout<<"统计消费记录,请选择:
6"<cout<<"退出,请选择:
0"<//输出主界面
}
8)main模块
//主函数
voidmain()
{
for(;;)
{
zhujiemian();
intanjian;
cin>>anjian;//输入选择的数字
switch(anjian)
{
case1:
liulan(stu);break;//调用浏览函数
case2:
luru(stu,wutong);break;//调用录入函数
case3:
chaxun(stu,wutong);break;//调用查询函数
case4:
shanchu(stu,wutong);break;//调用删除函数
case5:
paixu(stu,wutong);break;//调用排序函数
case6:
tongji(stu,wutong);break;//调用统计函数
}
if(anjian==0)
break;
}
}
四、对该设计题目有何更完善的方案
1、对自己完成程序进行自我评价。
我的程序较好的完成了任务中规定的设计内容,调用相对完成的较好。
多次运用了分支结构。
2、对课题提出更完善的方案
本课题还可以设计的更加详细,可以设计到每天的消费,每个月按31天机算,这样就可以解决每个月不同天数的问题。
应该还可以用指针设计本课题。
五、收获及心得体会
通过此次课程设计,使我更加扎实了有关结构体定义、结构体数组、分支、循环、调用等方面的知识,在设计过程中虽然遇到了很多问题,但经过问老师、看书以及思考,一遍又一遍的检查找出错误原因,一遍又一遍的修改,说明了我在这方面的知识有所欠缺和经验不足。
实践出真知,我们必须要亲自动手操作。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在证明实践出真知。
这次课程设计终于顺利完成了,在设计中遇到很多问题,最后在老师的指导下,终于都得到了解决。
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,也给了我很多思考,给了我发挥的莫大空间。
同时,设计过程让我感触很深。
此次设计,不仅培养了我们独立思考、动手操作的能力,在其他各种能力上也都有了提高。
日期:
2012年6月29日