安工大软件工程实验指报告
更新时间:2023-11-08 23:53:01 阅读量: 教育文库 文档下载
- 安工大软件工程专业怎么样推荐度:
- 相关推荐
《软件工程》实验报告
指导老师:周兵 专业班级:软件工程班 学号: 姓名:
安徽工业大学计算机学院
2015年5月
1
实验题目:编制一个万年历程序
要求:输入一个年份(1-3000),然后显示12个月的月历,如屏幕显示不下,则应提供翻页功能。
一. 实验目的
1.能按照软件工程的思想,采用面向过程的方法开发出一个小型软件系统。 2.在软件系统开发过程中,能综合利用一门编程语言和软件工程等多门课程的知识。
3.培养良好的软件开发习惯,了解软件企业文化。
二. 实验内容 1. 软件需求分析
1、功能需求分析
输入一个年份(1-3000),然后显示12个月的月历 ·能解决闰年和平年问题 ·能输出显示结果
2、运行环境需求分析: 操作系统:Windows7 3、数据流程图:
2
判断闰年 输入年份 初始化一月 显示一月 显示二月 输入表头 判断年份是否非法 …….. 显示十二月
4、程序函数结构
Main() intYear() isRun() output() checkYear() setMonth() setNextMonth() printheadr() Printmonth()
2. 软件设计与编码
#include
3
#include
void output(struct wanNianLi); void printhead(struct wanNianLi); void printmonth(struct wanNianLi); //定义月份结构体, struct wanNianLi{ int month;//月份
int weekdayOfmonth;//某月第一天是星期几 int tians;//一月的天数 int leap;//闰年为1,平年为0 }months;
//初始化结构体,根据年份初始化一月 struct wanNianLi setMonth(int year) {
struct wanNianLi months; months.month=1;
months.weekdayOfmonth=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+1)%7; if(months.weekdayOfmonth==0)
months.weekdayOfmonth=7;
months.tians=31; months.leap=isRun(year); return months; }
//根据前一个月计算下一个月的结构体
struct wanNianLi setNextMonth(struct wanNianLi months) {
months.weekdayOfmonth= (months.weekdayOfmonth+months.tians-1)%7+1; months.month=months.month+1; months.tians=30;
if(months.month==1 || months.month==3 || months.month==5 || months.month==7 || {
if(months.leap) else
months.tians=28; months.tians=29;
months.month==8 || months.month==10 || months.month ==12) months.tians=31;
if(months.month==2)
4
}
return months; }
void main(){ int year ;
struct wanNianLi months;//定义结构体 year = checkYear();//输入并检查年份 months = setMonth(year); output(months); }
//根据年份判断是否是闰年 int isRun(int year) {
return((year%4==0&&year0!=0)||year@0==0); }
//输入年份 int intYear(void) { int year;
printf(\请输入一个年份(>1)\ scanf(\ return year; }
//判断年份是否输入正确 int checkYear(void) {
int y; do{
y=intYear(); if(y<1 || y >3000) {
printf(\输入错误!。\\n\\n\ y=0; } }while(y<1); return y; }
//接受结构体,输出全年日历
5
void output(struct wanNianLi months) {
char ch; do{
printhead(months);//输出月头
printmonth(months);//输出每月日期情况
printf(\按任意键显视下一月, 按Esc键退出. \\n\ ch=getchar(); if(ch==27) exit(0);
months=setNextMonth(months); }while(months.month<13); }
//打印表头
void printhead(struct wanNianLi months) {
char *ss;
printf(\ switch(months.month) {
case 1: ss=\一 月\ case 2: ss=\二 月\ case 3: ss=\三 月\ case 4: ss=\四 月\ case 5: ss=\五 月\ case 6: ss=\六 月\ case 7: ss=\七 月\ case 8: ss=\八 月\ case 9: ss=\九 月\ case 10: ss=\十 月\ case 11: ss=\十一 月\ case 12: ss=\十二 月\ }
printf(\}
void printmonth(struct wanNianLi months) {
int i,j,k;
6
printf(\ \
printf(\周日 周一 周二 周三 周四 周五 周六\\n\\n\ printf(\ \ if(months.weekdayOfmonth==7) { months.weekdayOfmonth=0; k=months.weekdayOfmonth; for(j=1;j<=months.tians;j=j+1) { if(k>6) { k=k-7;
printf(\ }; k=k+1;
printf(\ \
}
}
else{ printf(\ \
for(i=1;i { if(k>6) { k=k-7; printf(\ } k=k+1; printf(\ \ } } printf(\} \ \ 7 3. 单元测试 4. 集成测试 2015年 8 2014年 9 三. 总结 1. 实验内容总结 实验时参照实验步骤,从此语言入手,运用结构体编写每个月的信息,循环输出。此实验重点考察了对c语言的理解,以及C语言面向过程的编程思想。加深了对C语言的了解。 2. 心得体会与建议 通过这次试验,让我对这门课又有了全新的认识。作为一门计算机科学的双语教学科目,初学时感到很多的困惑,感到好高深。然而通过实验了解到其仅仅是换了一种语言来表述同一们学科,只不过讲的更加标准化国际化。 在实验中采用面向过程的编程思想,开发出一个万年历的小程序,并严格按照软件开发思想与路线,培养了良好的软件开发习惯,并同时了解了一点企业中软件开发的习惯,感到很有利于将来更迅速的适应到该行业的工作环境。同时这门课也提高了我的英语阅读能力。 1. 10
正在阅读:
安工大软件工程实验指报告11-08
题库(锅炉技术问答)10-22
计算机组装和维护实训的实训心得305-10
浙江某名校高考生物二轮复习资料合集03-08
免疫学第三章循环系统09-05
(园林工程)中国古典园林史全书笔记04-25
江苏2012全国数模竞赛获奖名单09-14
新世纪语文课程改革研究05-02
智慧园区云服务平台建设项目可行性研究报告申请建议书 - 图文10-10
山东省中长期教育改革和发展规划纲要05-10
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 软件工程
- 工大
- 实验
- 报告
- 青年文明号自查报告
- 新东方人本管理案例分析
- 人教版高中数学《二项式定理》教学设计(省级一等奖)
- 对内地生入读港大和内地大学的些许思考
- 关于下发上海市《托儿所、幼儿园卫生保健管理实施细则》的通知
- 2017年度全国初中应用物理竞赛试卷(无答案)
- 探究万物之理课后习题答案
- 无效合同、可撤销合同案例
- 北大心理学导师论文
- 全业务属地化专线维护管理办法(试行稿)V1.0
- 河南产业集群发展的SWOT分析
- 数据通信专业试题及答案
- midas收缩一次和收缩二次的区别总结
- CRM - 中间件数据传输配置V3.0
- 职称申报用专业技术工作总结
- 2019版高考英语(课标版)一轮复习题组优化训练:第二部分 专题五 名词
- 《汽车理论》模拟试卷四及答案
- 核磁各种谱图介绍
- 浙江省光伏组件行业企业名录2018版987家
- 囤船管理条例