《2022年c++期末模拟题参考答案 .pdf》由会员分享,可在线阅读,更多相关《2022年c++期末模拟题参考答案 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、程序的功能是输入你的出生日期,判断你的生日是星期几。要求定义一个时间类Date,包括年,月,日3 个私有数据成员,和三个公有成员函数:void set(int y,int m,int d) 用于设置数据成员年、 月、日的值 ,int weekday()用于计算某个日期是星期几。Void display() 用来显示结果。在主函数中读入你的生日(年、月、日),调用成员函数设置数据成员,计算生日是星期几,并显示结果。假设1900 年 1 月 1 日是星期一。#include iostream.h class Date private : int day,month,year; public:
2、void set(int y,int m,int d) day=d; month=m; year=y; void disp() coutyear month day; int weekday() int dpm12=31,28,31,30,31,30,31,31,30,31,30,31,sum=0; int m; for(m=1900;myear;m+)/ 生日所在年份的1 月 1 日距 1900 年 1 月 1 日的总天数 sum=sum+365; if(m%400=0|m%4=0&m%100!=0) sum=sum+1; if(year%400=0|year%4=0&year%100!=0
3、) dpm1=29; for(m=0;mmonth-1;m+)/ 生日所在月份的1 日距 1900 年 1 月 1 日的总天数sum=sum+dpmm; sum=sum+day-1; / 生日距 1900 年 1 月 1 日的总天数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - return(1+sum%7); ; void main() int year,month,day; coutyearmonthday; Date d;
4、 d.set(year,month,day); cout你的生日是: ; d.disp(); cout 星期 d.weekday()=end) return 1; else return huiwen(s,start+1,end-1); void main() char sN; gets(s); int len=strlen(s); if(huiwen(s,0,len-1)=1) couts 是回文串 ; else couts 不是回文串 ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
5、- 第 2 页,共 5 页 - - - - - - - - - 3、学生的信息包括学号char num6 ,成绩int score 和密码字符串char key15 。建立如下的字符菜单,根据用户的选择完成相应的功能。1、建立学生档案:输入 N 个学生的信息, N 可用符号常量定义为5,按成绩从低到高的顺序将学生信息组织到链表或结构体数组中(如图所示)。2、 显示所有学生:显示所有学生的信息,其中密码字符以*显示,一个字符对应一个*(如图所示) 。 3、 修改学生信息:输入学号,按照学号修改学生的成绩和密码字符串,再次显示学生数据时,显示修改后的信息。4、 退出:将学生数据保存到文件c:kss
6、tudent.dat 中并退出程序。 (要求使用结构体数组或者链表实现)#include iostream.h #include stdio.h #include stdlib.h #include string.h #define N 3 struct student char num6; int score; char key15; ; void menu() cout1. 建立学生档案t2. 显示所有学生endl; cout3. 修改学生信息t4. 退出 endl; void creat(student s,int n) int i,j; student t; for(i=0;isi.n
7、umsi.scoresi.key; for(i=0;in-1;i+) for(j=0;jsj+1.score) t=sj; sj=sj+1; sj+1=t; void disp(student s,int n) int i,j; for(i=0;in;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - coutsi.num si.score ; for(j=0;si.keyj!=0;j+) cout*; coutnum; f
8、or(i=0;in;i+) if(strcmp(num,si.num)=0) cout 输入更改后的成绩和密码:si.scoresi.key; coutendl; break; if(i=n) cout 该学号学生不存在endl; void quit(student s,int n) FILE *fp; fp=fopen(c:ksstudent.dat,wb); if(fp=NULL) coutcant open file student.datchoice; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - switch(choice) case 1:creat(s,N);break; case 2:disp(s,N);break; case 3:modify(s,N);break; case 4:quit(s,N);break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -