c语言实训总结报告125041330.doc

上传人:wux****ua 文档编号:7979903 上传时间:2020-03-26 格式:DOC 页数:39 大小:871KB
返回 下载 相关 举报
c语言实训总结报告125041330.doc_第1页
第1页 / 共39页
c语言实训总结报告125041330.doc_第2页
第2页 / 共39页
c语言实训总结报告125041330.doc_第3页
第3页 / 共39页
点击查看更多>>
资源描述
实习报告书实习题目:信息管理与信息系统认识实习(C语言)学号:姓名:专业:系别:实习时间:实习地点:指导教师:李忠考勤成绩:实习态度:任务完成:实习报告:实习日志:实习总成绩指导教师评语 指导教师(签名): 2013年 9月 日防灾科技学院 灾害信息工程系2013年制实习目的:本课程是信息管理与信息系统专业的一门专业必修课程,是学生学习完C语言程序设计专业基础课程后,进一步学习其他专业课程前必须完成的一项实践教学环节。也是信息管理与信息系统专业实习、信息管理与信息系统生产实习、信息管理与信息系统毕业实习课程的基础。本次实习通过4-5个综合性强、实用性强的应用实例,使学生了解本专业毕业生所能从事的工作种类及工作岗位规格要求;培养学生掌握面向过程程序设计的基本素养、思维方法及技能,能够熟练应用C程序设计语言描述问题、解决问题,提高学生的综合编程能力。使学生进一步明确学习目标、增强学习动力、培养学习兴趣,为后继专业课程的学习打下坚实的基础。实习任务概述:任务一:万年历任务二:学生成绩管理系统任务三:简易四则运算计算器任务四:双人对战五子棋实习所用软件简介:Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为任务一:万年历1.系统需求分析在日常生活中经常需要用计算器,比如科学计算、数值计算、会计业务等,实现一个简单的四则运算计算器,拥有加、减、乘、除功能,使用户方便、快捷。2.系统环境要求使用C语言在VC环境下设计一个带图形界面的简易四则运算计算器,需要Windows 2000y以上的系统,Visual C+6.0/2008 (x86 & x64)/2010 (x86 & x64),Win32 Console Application和EasyX库。3 系统功能及模块图1.输入年份,打印出十二月历和对应的星期2.输入年月,打印出该月的日历和对应的星期3.输入年月日,判断是星期几,是不是公历的某个节日4.根据系统日期推算出某一个日期距离今天还有多少天模块图:万年历系统 年历 月历 日历日期推算帮助模块4.主要函数Int isleap(int year)/*判断是否为闰年*/Int maxDay(int year、int month)/*判断某一个月的天数*/int eachyeartotal(int year,int month,int day)/*判断某天是一年中的第几天*/int week(int year,int month,int day)/*对天数进行判断确定是星期几*/void display(int year ,int month) /*输出年月*/void display1(int year) /*输出年历*/void display2(int year,int month) /*输出月历*/void display3(int year,int month,int day) /*输出日历*/int counterdays(int year,int month,int day)/*判断今天距特定日期的天数*/void whatweek(int year,int month,int day) /*判断是星期几*/void jieri(int month,int day) /*判断是否公历节日*/void getmenu() /* 显示菜单选择*/void setDay3(int year,int month,int day)/*通过键PageUpPageDown控制日期的变换*/void setDay2(int year,int month,int day) /*通过键盘控制月历的变换*/void setDay1(int year,int month,int day) /*通过键盘控制年历的变换*/4.具体实现:#include /*包含的头文件*/#include #include #include #include #define KEYNUMUp 0x48 /*宏定义*/#define KEYNUMDown 0x50 #define KEYNUMLeft 0x4b #define KEYNUMRight 0x4d#define KEYNUMPageUp 0x49 #define KEYNUMPageDown 0x51 int eachyeartotal(int year,int month,int day); /*函数声明*/int counterdays(int year,int month,int day);int nowtime(int year,int month,int day);int week(int year,int month,int day);int maxDay(int year,int month);int isleap(int year);void getmenu();void whatweek(int year,int month,int day);void display(int year ,int month);void display2(int year,int month);void display3(int year,int month,int day) ;void setDay1(int year,int month,int day);void setDay2(int year,int month,int day);void setDay3(int year,int month,int day);void jieri(int month,int day);void display1(int year);int isleap(int year) /*判断是否为闰年*/ if(year%4=0&year%100!=0|year%400=0) return 1; else return 0; int maxDay(int year,int month) /*每月的天数*/ int a=31,28,31,30,31,30,31,31,30,31,30,31; /*每个月中的天数*/ if(isleap( year) a1=29; /*闰年2月份有29天*/ return amonth-1; int eachyeartotal(int year,int month,int day) /*判断某天是一年中的第几天*/ int i,sum=0; for(i=1;imonth;i+) sum+=maxDay(year,i); sum+=day; return sum; int week(int year,int month,int day) /*对天数进行判断确定是星期几*/ int number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400 +eachyeartotal(year,month,day); number=number%7 ; return number;void display(int year ,int month) /*输出年月*/ int max,number,i,j=1; max=maxDay(year,month); number=week(year,month,1); printf( %4s %4s %4s %4s %4s %4s %4sn,Sun,Mon,Tue,Wed, Thu,Fri,sat); for(i=0;inumber;i+) printf( ); /*1号前的星期补空格*/ while(j=max) printf(%6d,j); if (i%7=6) printf(n); /* 每7格换一行*/ i+; j+; printf(nn);void display1(int year) /*输出年历*/ int i; printf(n); for(i=1;itm_year) ; month1=(1+p-tm_mon) ; day1=(p-tm_mday); /*获取系统时间year1、month1、day1分别为年、月、日*/ days0=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+eachyeartotal(year,month,day); days1=(year1-1)*365+(year1-1)/4-(year1-1)/100+(year1-1)/400+eachyeartotal(year1,month1,day1); days=days0-days1; /*计算出两个日期之间的时间差*/ printf(n 今天距%d年%d月%d日还有%d天nn,year,month,day,days); return days; void whatweek(int year,int month,int day) /*判断是星期几*/ int number; number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+eachyeartotal(year,month,day); number=number%7 ; switch( number) case 0: printf( n %d年%d月%d日是星期日,year,month,day);break; case 1: printf( n %d年%d月%d日是星期一,year,month,day);break; case 2: printf( n %d年%d月%d日是星期二,year,month,day);break; case 3: printf( n %d年%d月%d日是星期三,year,month,day);break; case 4: printf( n %d年%d月%d日是星期四,year,month,day);break; case 5: printf( n %d年%d月%d日是星期五,year,month,day);break; case 6: printf( n %d年%d月%d日是星期六,year,month,day);break; default: system(cls); printf( 出现错误!n ); void jieri(int month,int day) /*判断是否公历节日*/ if(month=1) switch(day) case 1: printf(,这天是元旦); if(month=2) switch(day) case 14: printf(,这天是情人节); if(month=3) switch(day) case 8: printf(,这天是妇女节); break; case 12: printf(,这天是植树节); if(month=4) switch(day) case 1: printf(,这天是愚人节); if(month=5) switch(day) case 1: printf(,这天是劳动节); break; case 4: printf(,这天是青年节); if(month=6) switch(day) case 1: printf(,这天是儿童节); if(month=7) switch(day) case 1: printf(,这天是建党节); if(month=8) switch(day) case 1: printf(,这天是建军节); if(month=9) switch(day) case 10: printf(,这天是教师节); if(month=10) switch(day) case 1: printf(,这天是国庆节); void setDay1(int year,int month,int day) /*通过键盘控制年历的变换*/ char k; getch(); k=getch(); switch(k) case KEYNUMUp: /*年份减小*/ if(year2) system(cls); printf( 警告!超出范围!n); break; year-; display1(year); setDay1(year,month,day); break; case KEYNUMDown: /*年份变大*/ year+; display1(year); setDay1(year,month,day); break; default: system(cls); void setDay2(int year,int month,int day) /*通过键盘控制月历的变换*/ char k; getch(); k=getch(); switch(k) case KEYNUMLeft: /*月份变小*/ if(month2) month+=12; year-; if(year11) month-=12; year+; if(year9999); month+; display2(year , month); setDay2(year,month,day); break; default: system(cls); break ; void setDay3(int year,int month,int day) /*通过键盘PageUpPageDown控制日期的变换*/ char k; getch(); k=getch(); switch(k) case KEYNUMPageUp: /*PageUp日期变小*/ if(day2) month-; day=maxDay(year,month); if(month1) month+=12; year-; if(yearmaxDay(year,month) day=1; month+; if(month12) month-=12; year+; if(year 年历显示 tn); printf( tt 2、- 月历查询 tn); printf( tt 3、- 日期查询 tn); printf( tt 4、- 退出系统 tn);void main() /*主函数*/ int year,month,day,select; while(1) getmenu(); printf( 请输入相应数字:); /*菜单选择 */ scanf(%d,&select); system(cls); switch(select) case 1: /*当选择为1时显示年历*/ printf( 年历显示:输入年(如2011):); scanf(%d,&year); if(year0&year0&year=1&month0&year=1&month=1&daytop =-1;/*判断栈S为空栈时返回值为真,反之为假*/int IsEmpty(SeqStack *S)return(S-top=-1?TRUE:FALSE);/*判断栈S为空栈时返回值为真,反之为假*/int IsEmptynOperand(SeqStackOperand *S)return(S-top=-1?TRUE:FALSE);/*判断栈S为满栈时返回值为真,反之为假*/int IsFull(SeqStack *S)return(S-top=Stack_Size-1?TRUE:FALSE);/*判断栈S为满栈时返回值为真,反之为假*/int IsFullOperand(SeqStackOperand *S)return(S-top=Stack_Size-1?TRUE:FALSE);/*运算符栈入栈函数*/int Push(SeqStack *S,char x)if (S-top=Stack_Size-1)printf(Stack is full!n);return FALSE;elseS-top+;S-elemS-top=x;return TRUE;/*运算数栈入栈函数*/int PushOperand(SeqStackOperand *S,int x)if (S-top=Stack_Size-1)printf(Stack is full!n);return FALSE;elseS-top+;S-elemS-top=x;return TRUE;/*运算符栈出栈函数*/int Pop(SeqStack *S,char *x)if (S-top=-1)printf(运算符栈空!n);return FALSE;else*x=S-elemS-top;S-top-;return TRUE;/*运算数栈出栈函数*/int PopOperand(SeqStackOperand *S,int *x)if (S-top=-1)printf(运算符栈空!n);return FALSE;else*x=S-elemS-top;S-top-;return TRUE;/*运算符栈取栈顶元素函数*/char GetTop(SeqStack *S)if (S-top =-1)printf(运算符栈为空!n);return FALSE;elsereturn (S-elemS-top);/*运算数栈取栈顶元素函数*/int GetTopOperand(SeqStackOperand *S)if (S-top =-1)printf(运算符栈为空!n);return FALSE;elsereturn (S-elemS-top);/*判断输入字符是否为运算符函数,是返回TRUE,不是返回FALSE*/int Isoperator(char ch)int i;for (i=0;i7;i+)if(ch=opsi) return TRUE;return FALSE;5.功能的实现和截图#include#include#include#include#include#include#include#define changshu 57.29577951#define TRUE 1#define FALSE 0#define Stack_Size 100 /*存储空间初始分配量*/void MainFace();int triangle();int GetTopOperand();int PushOperand();void InitStacknOperand();int PopOPerand();int GetTop();int GetTopOperand();int GetTopOperanf();void CalFace();int ExpEvaluation();char ops7=+,-,*,/,(,),#;int cmp77=2,2,1,1,1,2,2,2,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,1,1,1,1,1,3,0,2,2,2,2,0,2,2,1,1,1,1,1,0,3;typedef struct UINT uMsg;bool mKCtr1;bool mKShift;bool mKLButton;bool mKMButton;bool mKRButton;int x;int y;int wheel;m;typedef structchar elemStack_Size;int top;SeqStack;/*运算数栈的定义*/typedef structint elemStack_Size;int top;SeqStackOperand;/*初始化运算符栈*/void InitStack(SeqStack *S)S-top =-1;/*初始化运算数栈*/void InitStacknOperand(SeqStackOperand *S)S-top =-1;/*判断栈S为空栈时返回值为真,反之为假*/int IsEmpty(SeqStack *S)return(S-top=-1?TRUE:FALSE);/*判断栈S为空栈时返回值为真,反之为假*/int IsEmptynOperand(SeqStackOperand *S)return(S-top=-1?TRUE:FALSE);/*判断栈S为满栈时返回值为真,反之为假*/int IsFull(SeqStack *S)return(S-top=Stack_Size-1?TRUE:FALSE);/*判断栈S为满栈时返回值为真,反之为假*/int IsFullOperand(SeqStackOperand *S)return(S-top=Stack_Size-1?TRUE:FALSE);/*运算符栈入栈函数*/int Push(SeqStack *S,char x)if (S-top=Stack_Size-1)printf(Stack is full!n);return FALSE;elseS-top
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!