资源描述
邮电与信息工程学院
课程设计阐明书
课题名称: 软件项目实训
学生学号:
专业班级: 11测控01班
学生姓名: 徐 晗
学生成绩:
指引教师: 陈 希
课题工作时间: -6-9 至 -6-22
一、课程设计任务基本规定:
(1)课程设计目:
1. 全面理解程序顺序构造、选取构造、循环构造,掌握构造化程序设计自顶向下,逐渐细化,模块化设计原则。
2. 掌握C语言基本知识,灵活应用函数、指针、数组、构造体等知识进行程序设计。
3. 掌握运用C语言进行程序设计办法和技巧,提高学生综合分析和调试程序能力。
(2)课程设计总体规定:
1. 采用模块化程序设计办法。
2. 主菜单设计界面如下:
3. 子菜单界面如下:
选取构造子菜单:
循环构造子菜单:
4.在相应模块下完毕如下功能:
(1)单选取if语句:
(2)双选取if语句:
(3)多选取if语句:
(4)switch语句
(5)while循环语句
(6)do-while循环语句
(7)for循环语句
(8)循环嵌套
例如:switch语句案例界面:
(3)论文某些
1、学生应提交资料:纸质《课程设计阐明书》1份;课程设计报告1份。
2、课程设计报告内容附在《课程设计阐明书》后,内容涉及:
一、设计目
1. 全面理解程序顺序构造、选取构造、循环构造,掌握构造化程序设计自顶而下,逐渐细化,模块化原则。
2. 掌握C语言基本知识,灵活应用函数、指针、数组、构造体等知识进行程序设计。
3. 掌握运用C语言进行程序设计办法和技巧,提高学生综合分析和调试程序能力。
二、系统功能模块图
(略)
三、设计函数列表
在C语言中每一种功能模块都相应一种函数,即由函数来实现各功能模块详细功能,也就是建立功能模块与函数之间一一相应关系,在编写程序时可以减少不必要麻烦,从而提高编写程序效率。
表一 自定义函数表
模块名
函数名
阐明
C语言模块化系统
main()
主控模块
显示主菜单
showmenu()
显示菜单
…(略)
四、程序代码( 源程序清单:按照上面表格顺序书写上面所有函数,注意缩进式书写格式)
(略)
五、编程及调试过程中遇到重要问题及解决办法
(略)
六、设计心得体会
(略)
三、课程设计报告格式
1、课程设计(论文)报告规定用A4纸排版,单面打印,与《课程设计阐明书》一起装订成册。
2、课程设计(论文)报告正文参照字数:1000字左右
3、正文格式
①页边距:上2.5cm,下2.5cm,左2.5cm,右2cm,页眉1.5cm,页脚1.5cm,左侧装订;
②字体:章标题,二号字、黑体、居中;节标题,三号、黑体;正文文字,小四号字、宋体;
指引教师签字:
年 月 日
二、进度安排:
1、系统设计
十七周:上午8:30-11:30
下午2:30-5:00
2、撰写课程设计报告
十八周:周一~周四
3、报告提交
十八周:周五
三、应收集资料及重要参照文献:
1. 谭浩强著,C++程序设计(第三版),北京:清华大学出版社,
2.谈浩强著.C++程序设计。北京:清华大学出版社,.
3.谭浩强编著,C程序设计题解与上机指引(第三版),北京:清华
大学出版社,
4.C编写组编,惯用C语言用法速查手册,龙门书局,1995
5.Schildt H著,王曦若,李沛译,ANSI C原则详解,学苑
出版社,1994
四、课程设计摘要(中文):
C语言是一种较好构造化程序设计语言;构造化程序设计办法可以概括为自顶向下、逐渐求精、模块化、限制使用goto语句,将本来较为复杂问题化简为一系列简朴模块设计。一种程序任何逻辑问题均可用顺序构造、选取构造和循环构造这三种基本构造来描述。
【核心词】:C语言 构造化程序设计 顺序构造 选取构造 循环构造
五、 课程设计摘要(英文):
Abstract the C language is a structured programming language well;structured program design method can be generalized as top-down,stepwise refinement,modularity,restrictions on the use of the goto statement,the design of the original complex problem is simplified to a series of simplemodules. Any kind of logic of a program are available sequence structure,selection of these three kinds of basic structure and cycle structure to describe.
Keyword:C language structured programming sequence structure selection structure loop structure
六、成绩评估:
指引教师评语:
指引教师签字:
年 月 日
项 目
评价
项 目
评价
调查论证
工作量、工作态度
实践能力
分析、解决问题能力
质 量
创 新
得 分
七、答辩纪录:
答辩意见及答辩成绩
答辩小组教师(签字):
年 月 日
课程设计报告
一、设计目
1. 全面理解程序顺序构造、选取构造、循环构造,掌握构造化程序设计自顶而下,逐渐细化,模块化原则。
2. 掌握C语言基本知识,灵活应用函数、指针、数组、构造体等知识进行程序设计。
3. 掌握运用C语言进行程序设计办法和技巧,提高学生综合分析和调试程序能力。
二、系统功能模块图
1. 采用模块化程序设计办法
单选泽函数
双选取函数
选取函数
多选取函数
switch函数
主菜单函数
While循环
Do-while循环
循环函数
For循环
嵌套循环
2. 主菜单设计界面如下:
3. 子菜单界面如下:
选取构造子菜单:
循环构造子菜单:
4. 在相应模块下完毕如下功能:
(1)单选取if语句案例界面:
(2)双选取if语句案例界面:
(3)多选取if语句案例界面:
(4)switch语句案例界面:
(5) while循环语句案例界面:
(6)do-while循环语句案例界面:
(7)for循环语句案例界面:
(8) 循环嵌套案例界面:
三、设计函数列表
在C语言中每一种功能模块都相应一种函数,即由函数来实现各功能模块详细功能,也就是建立功能模块与函数之间一一相应关系,在编写程序时可以减少不必要麻烦,从而提高编写程序效率。
表一 自定义函数表
模块名
函数名
阐明
主菜单
main()
显示主菜单
子菜单选取
显示选取子菜单
子菜单循环
显示循环子菜单
单选泽if
单选泽if模块
双选取if
双选取if模块
多选取if
多选取if模块
Switch选取
Switch选取模块
While循环
While循环模块
Do-while循环
Do-while循环模块
For循环
For循环模块
嵌套循环
嵌套循环模块
四、程序代码( 源程序清单:按照上面表格顺序书写上面所有函数,注意缩进式书写格式)
#include <stdio.h>
void main()
{
void printstar();
void print_message();
void printsecond();
void print_m();
printstar();
print_message();
printstar();
printf("\n");
printf("\n");
print_m();
}
void printstar()
{
printf("****************************************************\n");
}
void print_message()
{
printf("* 欢迎进入C语言模块化案例系统 *\n");
printf("* 制作人:徐晗 *\n");
printf("* 设计日期:6月9日 *\n");
}
void print_m()
{
printf(" **************************** \n");
printf(" * C语言模块化案例系统 * \n");
printf(" * 1.选取构造 * \n");
printf(" * 2.循环构造 * \n");
printf(" * 0.退出系统 * \n");
printf(" **************************** \n");
printf("请选取相应模块编号(0-2):");
void print_xuan();
void print_xun();
int i;
scanf("%d",&i);
switch (i)
{case 0:break;
case 1:print_xuan();break;
case 2:print_xun();break;
}
}
void print_xuan()
{
printf(" **************************** \n");
printf(" * 选取构造 * \n");
printf(" * 1.单选取if语句 * \n");
printf(" * 2.双选取if语句 * \n");
printf(" * 3.多选取if语句 * \n");
printf(" * 4.switch语句 * \n");
printf(" * 0.返回系统 * \n");
printf(" **************************** \n");
printf("请选取相应模块编号(0-4):");
void one();
void two();
void three();
void four();
int j;
scanf("%d",&j);
switch (j)
{case 0:print_m();break;
case 1:one();break;
case 2:two();break;
case 3:three();break;
case 4:four();break;
}
}
void one()
{
printstar();
printf("* 题目(1):单选取语句:程序功能是输入一种表 *\n");
printf("* 达式x>y,判断其真假,输入x,y值,如果不不大于 *\n");
printf("* 为真,则输出x,如果不大于为假,则不输出 *\n");
printstar();
int x,y ;
printf("请输入x,y:");
scanf("%d,%d",&x,&y);
if(x>y)
printf("%d",x);
printf("x=%d\n",x);
print_xuan();
}
void two()
{
printstar();
printf("* 题目(2):双选取语句:程序功能是输入一种表 *\n");
printf("* 达式,如x>y,判断其真假,输入x,y值,如果大 *\n");
printf("* 于为真,则输出x,如果不大于为假,则输出y *\n");
printstar();
int x,y;
printf("请输入x,y:");
scanf("%d,%d",&x,&y);
if(x>y)
printf("max=%d\n",x);
else
printf("max=%d\n",y);
print_xuan();
}
void three()
{
printstar();
printf("* 题目(3):多选取语句:程序功能是输入任一数 *\n");
printf("* 值i,与500进行比较,若i>500,cost=0.15,再继续 *\n");
printf("* 与300比较,若i>300,则cost=0.10,再与100比较, *\n");
printf("* 若i>100,则cost=0.075,若以上都不满足,则cost=0 *\n");
printstar();
int i;
double cost;
printf("请输入i:");
scanf("%d",&i);
if(i>500) cost=0.15;
else if(i>300) cost=0.10;
else if(i>100) cost=0.075;
else cost=0;
printf("i=%d,cost=%d\n",i,cost);
print_xuan();
}
void four()
{
printstar();
printf("* 题目(4):switch语句:程序功能是输入一种 *\n");
printf("* 1-7之间整数,输出相应星期,如果是其她 *\n");
printf("* 整数,则输出“数据错误!”,如输入1, *\n");
printf("* 输出“星期一”,输入7,则输出“星期日” *\n");
printstar();
int x;
printf("请输入x:");
scanf("%d",&x);
switch(x)
{
case 1:printf("星期一\n");break;
case 2:printf("星期二\n");break;
case 3:printf("星期三\n");break;
case 4:printf("星期四\n");break;
case 5:printf("星期五\n");break;
case 6:printf("星期六\n");break;
case 7:printf("星期日\n");break;
default:printf("数据错误!\n");break;
}
print_xuan();
}
void print_xun()
{
printf(" **************************** \n");
printf(" * 循环构造 * \n");
printf(" * 1.while循环语句 * \n");
printf(" * 2.do-whlie循环语句 * \n");
printf(" * 3.for循环语句 * \n");
printf(" * 4.循环嵌套 * \n");
printf(" * 0.返回系统 * \n");
printf(" **************************** \n");
printf("请选取相应模块编号(0-4):");
void one_o();
void two_t();
void three_t();
void four_f();
{int k;
scanf("%d",&k);
switch (k)
{case 0:print_m();break;
case 1:one_o();break;
case 2:two_t();break;
case 3:three_t();break;
case 4:four_f();break;
}
}
}
void one_o()
{
printstar();
printf("* 题目(1):whlie循环语句:程序功能是输入 *\n");
printf("* 一种数a初值1,如果a<=100,则s=s+a,且a自加一,*\n");
printf("* 再次检查a<=100与否成立,若成立则继续执行 *\n");
printf("* s=s+a,且a自加一。直到a加到不不大于100为止。 *\n");
printstar();
int a=1,s=0;
while (a<=100)
{
s=s+a;
a++;
}
printf("最后成果是:%d\n",s);
print_xun();
}
void two_t()
{
printstar();
printf("* 题目(2):do-whlie循环语句:程序功能是输 *\n");
printf("* 入一种数a初值0,一方面执行s=s+a,且a自加一,再 *\n");
printf("* 判断a<=100与否成立,若成立则继续执行s=s+a, *\n");
printf("* a自加一后判断a<=100与否成立。直到a加到不不大于 *\n");
printf("* 100时,不再进行。 *\n");
printstar();
int a=0,s=0;
do
{
s=s+a;
a++;
}while(a<=100);
printf("最后成果是:%d\n",s);
print_xun();
}
void three_t()
{
printstar();
printf("* 题目(3):for循环语句:程序功能是输入三个 *\n");
printf("* 表达式i=0;i<=100;i++,一方面判断i<=100与否成立 *\n");
printf("* 若成立则继续执行s=s+i,最后执行i++。加一后再 *\n");
printf("* 判断i<=100与否成立,若成立继续执行s=s+i和i++ *\n");
printf("* 直到i加到不不大于100时,不再进行。 *\n");
printstar();
int s=0,i;
for(i=0;i<=100;i++)
{
s=s+i;
}
printf("最后成果是:%d\n",s);
print_xun();
}
void four_f()
{
printstar();
printf("* 题目(4):循环嵌套:程序功能是一方面定i=1, *\n");
printf("* 再判断i<=3与否成立,若成立则定义j=1,判断j<=i *\n");
printf("* 与否成立,若成立则执行s=i+j。j加一后,i再加一,*\n");
printf("* 直到i加到不不大于3时,不再进行。 *\n");
printstar();
int x,y,s;
for(x=1;x<=3;x++)
{
for(y=1;y<=x;y++)
s=x+y;
printf("%d\n",s);
}
print_xun();
}
五、 编程及调试过程中遇到重要问题及解决办法
问题一:编译错误
因素:Printf首字母大写
解决办法:询问教师,将大写字母改为小写
问题二:语法错误
因素:Do while语句花括号忘写
解决办法:与同窗讨论,补上花括号
六、设计心得体会
虽然在开学初我对C语言这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴努力中对C语言兴趣也在逐渐增长。
这次C语言课程设计咱们历时一种星期,对我来说学到不但是那些知识,更多是耐心与细心,它不但仅让咱们综合那些理论知识来运用到设计和创新,更重要是培养咱们耐心与细心。
在做本次课程设计过程中,我感触最深当属查阅大量设计资料了。为了让自己设计更加完善,查阅这方面设计资料是十分必要,同步也是必不可少。
通过这次设计,我懂得了学习重要性,理解到理论知识与实践相结合重要意义,学会了坚持、耐心和努力,重要是如何把自己平时所学东西应用到实验中。虽然自己对于这门课懂并不多,诸多基本东西都还没有较好掌握,觉得很难,也没有很有效办法通过自身去理解,但是靠着这一种多礼拜“学习”,在同窗协助和解说下,徐徐对这门课逐渐产生了些许兴趣,自己开始积极学习并逐渐从基本慢慢开始弄懂它。
总评成绩:
(教师评分×75%+答辩成绩×25%)
课程设计评审原则(指引教师用)
评价内容
具 体 要 求
权 重
调查论证
能独立阅读文献和从事其她调研;能提出并较好地阐述课题实行方案;有收集、加工各种信息及获得新知识能力。
0.1
实践能力
能对的选取研究(实验)办法,独立进行研究工作。如装置安装、调试、操作。
0.2
分析解决
问题能力
能运用所学知识和技能去发现和解决实际问题;能对的解决实验数据;能对课题进行理论分析,得出有价值结论。
0.2
工作量、
工作态度
按期圆满完毕规定任务,工作量饱满,难度较大,工作努力,遵守纪律;工作作风严谨务实。
0.2
质量
综述简洁完整,有看法;立论对的,阐述充分,结论严谨合理;实验对的,分析解决科学;文字通顺,技术用语精确,符号统一,编号齐全,书写工整规范,图表完备、整洁、对的;论文成果有应用价值。
0.2
创新
工作中有创新意识;对前人工作有改造或独特看法。
0.1
展开阅读全文