绥化学院程序设计实践实验报告范例 参考
if(day>30)return 0;break; default: if(runYear(year)&&day>29) return 0; else if(runYear(year)==0&&day>28) return 0; } return 1; }
int getwDay(int year,int month,int day)//取得星期 { int nday=0,nDay,i,w; for(i=0;i void printCalender(int year,int month,int day); void setDay(int year,int month,int day)//调节日期 { char k; printf(\上一年 %c:下一年\\n\ printf(\上个月 %c:下个月\\n\ printf(\昨天 PageDown:明天\\n\ printf(\其他:返回主菜单\\n\ getch(); k=getch(); switch(k) //通过方向键和PageUp、PageDown键来调整日期 { case KEYNUMUp: year--; if(dayExame(year,month,day)==0){year++; printf(\检查日期的合法性,//若错误,保持日期不变,并警告 system(\ case KEYNUMDown: year++; if(dayExame(year,month,day)==0){year--;printf(\ system(\ case KEYNUMLeft: month--; if(dayExame(year,month,day)==0){month++;printf(\ system(\ case KEYNUMRight: month++; if(dayExame(year,month,day)==0){month--;printf(\ system(\ case KEYNUMPageUp: day--; if(dayExame(year,month,day)==0){day++;printf(\ system(\ case KEYNUMPageDown: day++; if(dayExame(year,month,day)==0){day--;printf(\ 21 绥化学院程序设计实践实验报告范例 参考 system(\ default: ; } } void printCalender(int year,int month,int day)//打印月历 { int i,n; int w; int nowDay=1; char wday[7][4]={\ printf(\ %d年%d月%d日\\n\ printf(\ for(i=0;i<7;i++) printf(\ printf(\ w=getwDay(year,month,nowDay);//找到第一天的星期 n=daysOfMonth[runYear(year)][month-1]; switch(w) //放置第一天 { case 0:printf(\ case 1:printf(\ case 2:printf(\ case 3:printf(\ case 4:printf(\ case 5:printf(\ default:printf(\ } nowDay++; for(i=1;i void checkCalender()//查询日历 { int year,month,day; system(\ printf(\请输入你要查询的日期(格式为年月日,如2009 11 3):\ scanf(\ while(!dayExame(year,month,day)) //如果日期输入不正确,则重新输入 { printf(\你输入的日期错误,请重新输入:\ scanf(\ 22 绥化学院程序设计实践实验报告范例 参考 } system(\ if(runYear(year)) printf(\闰年\\n\\n\ else printf(\ 平年\\n\\n\ printCalender(year,month,day); } void backMenu() { printf(\请按任意字符键返回主菜单:\ getch(); system(\} void mainMenu(int year,int month,int day)//主菜单 {char menu[100]; int f=0; int flag=0; printf(\ ************主菜单************\\n\ printf(\ * 1、日历显示 *\\n\ printf(\ * 2、日历查询 *\\n\ printf(\ * 3、修改日期 *\\n\ printf(\ * 4、帮助 *\\n\ printf(\ * 5、退出 *\\n\ printf(\ ******************************\\n\ do{ do { f=0; printf(\ 请输入相应数字:\ scanf(\ if(strlen(menu)>2)f=1; }while(f==1); switch(*menu) { case '1': system(\ //清屏 printCalender(year,month,day); backMenu(); //实现任意键返回主菜单 mainMenu(year,month,day); break; case '2': system(\ checkCalender(); backMenu(); mainMenu(year,month,day); break; 23 绥化学院程序设计实践实验报告范例 参考 case '3': system(\ printCalender(year,month,day); setDay(year,month,day); printf(\请按任意字符键返回主菜单:\ getch(); system(\ mainMenu(year,month,day); break; case '4': system(\ printf(\在主菜单中输入相应的数字就可以完成以下功能:\\n\\n\ printf(\、显示今天所在月的月份\\n\\n\ printf(\、输入日期,判断该年是否是闰年,并显示所在月份的月历\\n\\n\ printf(\、用%c %c %c %c PageUp PageDown 进行日期的调整\\n\\n\ printf(\、显示功能及操作方法\\n\\n\ printf(\、退出程序\\n\\n\ backMenu(); mainMenu(year,month,day); break; case '5':system(\程序已退出!\\n\ default:printf(\ 输入错误!\\n\ } }while(flag); } void main() { struct tm *gmt=getDay(); year=gmt->tm_year+1900; month=gmt->tm_mon+1; day=gmt->tm_mday; printCalender(year,month,day);//用系统时间进行初始化,打印当前月历 backMenu(); mainMenu(year,month,day); } 实验题目: 通讯录 实验目的: 通过本次实验使学生进一步加深对程序设计实践课程内容的理解,能够利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,提高学生用程序的思想来解决实际问题的能力。 实验内容 通讯录是大家十分熟悉的系统,主要是为方便查询联系方式、通信地址而建立的。应至少提供以下功能: (1)提供简单、易操作的人机界面; (2)提供对通讯录的建立、修改、追加记录、删除记录等基本功能; (3)提供查询记录的功能; (4)提供显示通讯录的功能; (5)提供保存信息的功能。 24 绥化学院程序设计实践实验报告范例 参考 小组分工情况 班级 名称 项目组长 组员 组员学号 工作简介 时间进度安排 软一软二班 顺序 阶段日期 1 预习 2 4月10日 3 4月12日 4 4月12日 5 4月17日 软三软四班 顺序 1 2 3 4 5 阶段日期 预习 4月9日 4月12日 4月12日 4月16日 表1-2 时间进度安排表 计 划 完 成 内 容 查阅资料,充分解读题目内容 小组分工,确定每个人的具体任务,上机编程。 上机编程,程序整合,综合调试。 程序测试,撰写实验报告。 上交实验报告。 表1-3 时间进度安排表 计 划 完 成 内 容 查阅资料,充分解读题目内容 小组分工,确定每个人的具体任务,上机编程。 上机编程,程序整合,综合调试。 程序测试,撰写实验报告。 上交实验报告。 备注 4学时 2学时 2学时 2学时 上课前 表1-1小组分工情况统计表 信息工程学院 计算机科学与技术专业 2012级 软件工程(方向) 班 组 通讯录 (本次项目小组组长) 备注 4学时 2学时 2学时 2学时 上课前 25

