第24章-信息管理不用愁-信息管理系统实战-C++教学用-教学课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第24章-信息管理不用愁-信息管理系统实战-C++教学用-教学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 24 信息管理 不用 系统 实战 C+ 教学 课件
- 资源描述:
-
1、第24章 信息管理不用愁信息管理系统实战p 日历系统p 学生成绩管理系统p 银行卡管理系统第24章 信息管理不用愁信息管理系统实战 日历系统p 学生成绩管理系统p 银行卡管理系统第24章 信息管理不用愁信息管理系统实战 日历系统 学生成绩管理系统p 银行卡管理系统第24章 信息管理不用愁信息管理系统实战 日历系统 学生成绩管理系统 银行卡管理系统24.1 日历系统 本系统实现了控制台下打印日历。只要输入指定年份,就能打印出该年的日历,包括星期。通过本例的学习,培养读者在VC+6.0环境中,学会调试程序的能力,巩固分支结构和循环结构的知识,让读者形成C+模块化设计的思想。24.1 日历系统 24
2、.1.1 系统分析 24.1.2 功能分析及实现 24.1.3 开发常见问题及解决24.1.1 系统分析 1.需求分析u 随意给出某年(如2003年),可以显示该年的日历(包括每月的天数和对应的星期几),并且在每月的左上角或右上角打印出相应的年份和月份,要求输出界面尽可能整齐,美观。24.1.1 系统分析 2.系统分析u 根据问题描述,整个系统包含2个模块,为了体现模块化编程的思想,对每一个模块都分别编写函数来实现。系统流程图如下。输入年份显示日历开始结束输入年份显示日历开始结束24.1.2 功能分析及实现 1.定义日历类 01 class calendar02 03 int weekday;
3、04 int year;05 public:06 void printmonthdays();/打印每月的日历07 void printtitle(int m);/打印日历头08 int monthdays(int m);/计算每月的天数09 int firstday(int y);/计算每年的第一天是周几10 ;24.1.2 功能分析及实现 2.计算每月的天数u 在一年中有的月份是30天,有的是31天,2月份的天数根据是否是闰年不同,又有28天和29天的区别。24.1.2 功能分析及实现01 int calendar:monthdays(int m)/判断每月的天数02 03 switch(
4、m)04 05 case 1:06 case 3:07 case 5:08 case 7:09 case 8:10 case 10:11 case 12:12 return 31;/1,3,5,7,8,10,12每月有31天13 case 4:14 case 6:15 case 9:16 case 11:17 return 30;/4,6,9,11每月有30天18 case 2:19 if(year%4=0&year%100!=0)|year%400=0)/判断是否闰年。20 return 29;21 else 22 return 28;23 default:return 0;24 25 24
5、.1.2 功能分析及实现3.打印日历01 void calendar:printmonthdays()02 03 int days;04 for(int n=1;n=12;n+)/12个月份05 06 printtitle(n);/打印日历头07 days=monthdays(n);08 for(int i=1;i=days;i+)09 10 printf(%5d,i);11 weekday=(weekday+1)%7;12 if(weekday=0)printf(n );13 14 printf(n);15 16 24.1.2 功能分析及实现 4.打印每月的日历头01 void calend
6、ar:printtitle(int m)/02 03 int i;04 printf(n%d月 日 一 二 三 四 五 六n,m);05 printf();06 for(i=0;iweekday;i+)07 printf();08 24.1.2 功能分析及实现 5.判断每年的第一天是星期几int firstday(int year)/判断元旦是星期几double s;s=floor(year-1+(year-1)/4.0-(year-1)/100.0+(year-1)/400.0+1);return(int)s%7;24.1.2 功能分析及实现6.提示打印模块01 void main(int
7、argc,char*argv)02 03 04 int year;05 int weekday;06 calendar cal;07 printf(请输入你要查看的年份:);08 scanf(%d,&year);09 weekday=cal.firstday(year);10 printf(nn);11 printf(%d年n,year);12 cal.printmonthdays();/打印日历13 printf(nn);14 24.1.3 开发常见问题及解决 从公元01年的第一天开始考虑(01年1月1日对应星期一),以计算从01年至该年开始的总天数;注意每月的天数不同,并且二月分有2种情况
8、:是否是闰年 为了将每月的日期和星期对应,用从显示月份开始的总天数除7取余,控制日期和星期几的对应关系;可以构造一个逻辑表达式来判断该年是否是闰年:if(year%4=0&year%100!=0)|year%400=0);为判断每月的天数,可以用switch-case分支结构。24.2 学生成绩管理系统本例是一个简单的学生成绩管理系统,所实现的功能有如下几个:设计一个功能显示菜单,并有选择提示;建立学生信息数据,包括学号、姓名、三门课(语文、数学和英语)的成绩;能实现学生信息增加、删除和修改;统计每个学生的总分和平均分;按照总分从小到大排出名次;任意输入一个学好,能够查出该学生在班级中的排名及
9、其考试成绩。通过本例,读者可以更进一步的学习类和结构体的使用,以及C+中STL编程快捷与高效。24.2 学生成绩管理系统 24.2.1 系统分析 24.2.2 功能分析及实现 24.2.3 开发常见问题及解决24.2.1 系统分析 1.需求分析u 学生成绩管理系统主要提供学生资料的输入,学生资料的输出,学生资料的查询,学生资料删除,以及学生成绩的排序等。通过这次对学生成绩管理系统的编写,使读者对现在所学的东西和以前所学的东西有了同一的了解,综合的运用。通过本例的学习,读者对结构体以及类的使用有了更进一步的认识。24.2.1 系统分析 2.系统分析u 整个系统包含六个模块,为了体现模块化编程的思
10、想,对每一个模块都分别编写函数来实现。学生信息的包括学号、姓名以及三门功课的成绩,在本例中用一个结构体来表示学生信息。在实际工作中,输入的学生信息需要更新,本例子需要有一个对学生信息进行编辑的模块。为了更好的体现C+编程的优越性,在排序的时候,用到了STL 编程中的sort方法。学生成绩管理系统增加信息模块修改信息模块删除信息模块查询信息模块保存信息模块浏览信息模块排序信息模块主菜单模块24.2.2 功能分析及实现输入指令是否继续开始增加信息模块修改信息模块删除信息模块查询信息模块保存信息模块浏览信息模块排序信息模块结束24.2.2 功能分析及实现1.定义类01 class student02
11、 03 public:04 char code5;/学号05 char name20;/姓名06 double math,chinese,english,average,sum;/三门功课成绩平均分 总分07 public:08 student();09 student(char cd,char n,double ma,double chin,double eng);10 double getsum();/计算总分11 double getaver();/计算机平均分12 ;24.2.2 功能分析及实现 2.主菜单的设计与实现u 主菜单显示,主菜单的选项的输入选择,不同功能模块的调用,从而达到
12、用户与该系统的交互。01 void control:jiemian()02 03 coutendl;04 coutendl;05 cout*endl;06 cout*请选择您需要的操作!*endl;07 cout*(1)增加人员 *endl;08 cout*(2)删除人员 *endl;09 cout*(3)修改数据 *endl;10 cout*(4)查询 *endl;11 cout*(5)输出所有学生的数据 *endl;12 cout*(6)按成绩排序 *endl;13 cout*(0)退出 *endl;14 cout*选择相对的括号里的阿拉伯数字!*endl;15 cout*;16 cout
13、endl;17 coutendl;18 return;19 20 24.2.2 功能分析及实现 3.增加人员功能的实现。u 选择功能主菜单1,可以增加新的学生信息,包括学号、姓名以及三门功课的成绩。void control:insert(std:vector&ver)student stu;char code5;char name20;double math,chinese,english;coutcode;coutendlname;coutendlmath;coutendlchinese;coutendlenglish;strcpy(stu.code,code);strcpy(stu.nam
14、e,name);stu.math=math;stu.chinese=chinese;stu.english=english;stu.sum=math+chinese+english;stu.average=stu.sum/3;ver.push_back(stu);return;24.2.2 功能分析及实现 4.删除人员功能的实现u 输入待删除学生的学号和姓名,系统就可以删除该学生的所有信息。01 void control:del(std:vector&ver)02 03 char code5;04 char name20;05 coutcode;07 coutendlname;09 vecto
展开阅读全文