中 国 地 质 大 学
本科生论文
C 语言课程设计
实践报告
课程名称: 停车场管理系统
教师姓名: 邓 泽
本科生姓名:
本科生学号: [1**********]
本科生专业: 物理学(光信息科学)
所在院系:
类别: 日期: 2012-6-25至2012-7-2
课程设计评语
注:1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目 录
课程设计评语……………………………………………2 目录………………………………………………………3
1.课程论文题目………………………………………..5
2.程序设计思路………………………………………..5
3.功能模块图…………………………………………..6
4.数据结构设计………………………………………..7
5.算法设计……………………………………………..7
6.程序代码……………………………………………..12
7.程序运行结果………………………………………..17
8.编程中遇到的困难及解决方法……………………..25
9.总结心得及良好建议………………………………..26
10.致谢…………………………………………………27
前 言
计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。
如今,高等教育的计算机教育发展十分迅速。十多年前,只有部分理工科专业开设计算机课程。今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。
计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。根据我们专业的性质和要求,则应侧重于上机操作运用。为此,学校特意在本学期最后安排了32个学时的上机实习。 现将一星期的实习内容及结果分析分列如下:
1.课程论文题目
停车场管理系统
2.程序设计思路
整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。
另外车辆停放信息涉及到从che.dat 中读取,保存和修改,为了方便起见,和程序的模块化,我们将文件的读入和保存单独设计为两个子程序。
1.Meau 菜单 Exit 退出
2.Park 停车 (输入车牌号停车;用save 将车辆信息存入car.dat )
3.Take 取车 (输入车牌号码取车;删除车辆信息;显示停车费用)
4.Message 车位信息
3.功能模块图
4.数据结构设计&5.算法设计
1. 使用全局变量数组,用一个二维数组实现停车场车位的信息,
int cars[12][4];
2. 通过读取car.dat 的数据,对程序初始化。
下图为car.dat 的初始数据:
在init ()通过一个for 循环完成对car.dat 中数据的读取。
for(i=0;i
{
fscanf(fp,"%d ", &cars[i][0]);
fscanf(fp,"%d ", &cars[i][1]);
fscanf(fp,"%d ", &cars[i][2]);
fscanf(fp,"%d ", &cars[i][3]);
}
3. 同理,我们设计一个子程序save ()用来保存停车场车位的信息到car.dat 。用for 循环再将处理后的数据存入文件中。
for(i=0;i
{
fprintf(fp,"%d ", cars[i][0]);
fprintf(fp,"%d ", cars[i][1]);
fprintf(fp,"%d ", cars[i][2]);
fprintf(fp,"%d ", cars[i][3]);
fprintf(fp,"\n" );
}
4. 进行对停车模块的设计:
首先,输入车辆的车牌号,我们从键盘读取车牌号码,并判断车牌号码是否正确(五位数整型车牌号码)。输入出错时要求继续输入。我们引入flag 标志量判断车牌号是否正确,初始int flag=1,从键盘读入车牌号码,并判断:
printf("请输入您的车牌号:"); do{ scanf("%d",&temp); if((temp>9999)&&(temp
其次,读取的车牌号正确之后对标志量清零flag=0,代表没有没有找到车位,进行为车辆找停车位的操作,如下:
flag=0; for(i=1;i
cars[i][0]=temp; flag=1; break; }
通过for 循环和continue 语句找到没有停车的车位,即car[i][0]不等于0,并将标志量flag 赋值1,表示有车位,用break 语句跳出循环。
再用if 语句处理flag==1的情况,即停车场车位已满无法停车。
最后,对存入的车辆赋初始时间5,并且前面的已存入的车辆时间都加5。语句如下:
for(i=0;i
又因为我在car.dat 已经对车辆的停放楼层和车位有过初始赋值,可以省去再对
cars[i][1]和cars[i][2]的操作。并且可以满足“第一层有空位必须停在第一层”的要求,不过存在一个问题就是车辆只能按车位序号停放。
5、取车模块:
第一步,读取要提取车辆的车牌号码。再通过flag 标志量对所输入车牌号正误分别处理。(初始flag=0)
第二步,对于输入正确的车辆进行操作:删除车辆信息,再计算费用,再对时间清零并标志取车成功。
第三步,进过上一步后取车不成功时即flag 还是为0时,提示重复输入车牌号直道成功为止。 程序如下:
do{
scanf("%d",&temp);
if((temp>9999)&&(temp
for(i=0;i
if(cars[i][0]==temp){
cars[i][0]=0; cost=0.2*cars[i][3]/5;
cars[i][3]=0;
flag=1;
break;
}
}
if(flag==0)
printf("您输入的车牌号码有误,请重新输入。\n"); }while(!flag);
第四步,有选择性的显示收费价格:
printf("\n 显示停车费用? 是(1)/否(2)");
scanf("%d",&i);
switch(i){
case 1: printf("\n车牌号 : %d 费用 %8.2f元\n",temp,cost);
case 2:
default: break;
}
最后,调用save ()函数来保存数据到car.dat 。
6、车辆信息浏览模块:
注意我们只需要显示有车的车位可以用for 循环语句再加上if 判断语句来实现显示功
能。
printf("车牌号\t\t楼层\t 车位 \t\t时间\n");
7、主函数:
调用子函数init ()初始化读取car.dat 文件。用printf 在屏幕上显示停车场的菜单。
再用switch 语句实现选择执行哪个模块语句。 for(i=0;i
switch(a){
case 1:putCar(); break; case 2:getCar();break; case 3:showInfo();break; case 4:exit(0); break; default:printf("您输入的信息有误!\n"); break; }; getchar();
6.程序代码
#include
#include
#include
#include
int cars[12][4]; /*
void init() /*
{
char filename[] = "car.dat";
FILE *fp;
int i;
if((fp = fopen(filename,"r")) == NULL){
printf("无法打开文件 \" car.dat\"\n");
return ;
}
for(i=0;i
数组*/
fscanf(fp,"%d ", &cars[i][0]);
fscanf(fp,"%d ", &cars[i][1]);
fscanf(fp,"%d ", &cars[i][2]);
fscanf(fp,"%d ", &cars[i][3]);
}
fclose(fp);
}
停车场使用数组*/ 初始化*/ 读数据文件内容到
void saveAll()
{ /*保存数据到car.dat*/
char filename[] = "car.dat";
FILE *fp;
int i=0;
if((fp = fopen(filename,"w")) == NULL){
printf("无法打开文件 \" car.dat\"\n");
return ;
}
for(i=0;i
fprintf(fp,"%d ", cars[i][0]);
fprintf(fp,"%d ", cars[i][1]);
fprintf(fp,"%d ", cars[i][2]);
fprintf(fp,"%d ", cars[i][3]);
fprintf(fp,"\n" );
}
fclose(fp);
}
void putCar()
{ /*停车操作*/
int i;
int temp;
int flag=1;
printf("\n\n*********欢迎来到地大停车场*********\n");
printf("请输入你的车牌号:");
do{
scanf("%d",&temp);
if((temp>0)&&(temp
flag=0;
printf("Your car number is a digit between 0 and 10000:");
}while(!flag);
flag=0;
for(i=0;i
if(cars[i][0]!=0)
continue;
cars[i][0]=temp;
flag=1;
break;
}
if(flag==0){ /*没有找到位置,停车场已满*/ printf("很抱歉!车位已满:\n");
return ;
}
for(i=0;i
if(cars[i][0]!=0)
cars[i][3]+=5;
}
saveAll();
getchar();
printf("存车成功!\n按任意键回到主菜单...");
}
void getCar()
{ /*取车*/
int i,temp,flag=0;
float cost;
printf("\n\n*********从停车场取车*********\n ");
printf(" 请输入你的车牌号码:");
do{
scanf("%d",&temp);
if((temp>0)&&(temp
for(i=0;i
if(cars[i][0]==temp){
cars[i][0]=0; /*删除该车位车辆信息*/
cost=0.2*cars[i][3]/5;
cars[i][3]=0;
flag=1;
break;
}
}
if(flag==0)
printf("您输入的车牌号码有误,请重新输入。\n");
}while(!flag);
printf("\n Printf out the cost?Yes(1)/No(2)");
scanf("%d",&i);
switch(i){
case 1: printf("\n车牌号 : %d 费用 %8.2f元\n",temp,cost); case 2:
default: break;
}
saveAll(); /*保存数据*/
getchar();
printf("取车成功!\n按任意键回到主菜单...");
}
void showInfo()
{ /*显示当前停
车场信息*/
int i;
printf("\n\n*********当前停车场车位信息*********\n");
printf("车牌号\t\t楼层\t 车位 \t\t时间\n");
for(i=0;i
if(cars[i][0]!=0)
printf("%d\t\t %d \t\t%d \t\t %d\n",cars[i][0],cars[i][1],cars[i][2],cars[i][3]);
getchar();
printf("输入任意键返回主菜单...");
}
int main()
{
int a;
init();
do{
printf("\n\n\n*******************************************************************\n");
printf("* 地大停车场管理系统 *\n");
printf("* 1. 停车 *\n");
printf("* 2. 取车 *\n");
printf("* 3. 当前车位信息 *\n");
printf("* 4. 退出 *\n");
printf("*******************************************************************\n");
printf("请输入选项:");
scanf("%d",&a);
switch(a){ /*菜单选择*/
case 1:putCar(); break;
case 2:getCar();break;
case 3:showInfo();break;
case 4:exit(0); break;
default:printf("您输入的信息有误!\n"); break;
};
getchar();
}while(1);
return 0;
}
7.程序运行结果
1、 打开程序进入键盘式界面菜单,选择您所需要进行的操
作选项。
2、 车辆车位的初始化,查看当前车位信息如下:
3、停入车牌号为20000的车:
4、查看当前车位信息:
出现错误,车辆无法按楼层和车位要求停。
对car.dat 进行修改楼层号初始化为1 1 1 1 1 1 2 2 2 2 2 2车位号初始化为1 2 3 4 5 6 1 2 3 4 5 6。在使用停车操作时,车辆从一楼到二楼依次按序停放。
对程序修改后运行 如下:
查看修改后
取车,并显示费用:
再存入5辆车:
停车车位顺次排下。
取出两辆车:
再存入两辆:
后存入的车占据取出车的空车位
将车库存满:
输入4,程序结束。
8.编程中遇到的困难及解决方法
从复习理论知识、编程、调试,到改错,直至存盘,枯燥而乏味,看似简单的程序题,编写后调试却屡屡出错。于是又不得不重新检查,重新编写,重新调试,又失败又检查,搞得人心烦意乱。但这没有使我灰心,一直不断修改我的程序,问同学问老师,看书,进行简单的操作试验练习,终于可以运行了。并得到我期盼已久的结果,心中的喜悦无法言语,意识到自己的付出有了完美的回报!
在本次课程设计中,我先使用结构化分析方法对系统进行分析,将整个系统细分为几个模块,再针对每个小模块编写代码。由于时间比较短,源代码大部分来自网上下载的一个半成品,刚开始连编译都通不过。经过我精心调试,去掉了一些错误和漏洞,使之得到了完备。
9.总结心得及良好建议
经过一周紧张的学习运用,C 语言课程设计终于进入尾声。复习理论知识、读题、编程、调试、修改,每一个环节都少不了,每一个环节都会在时间的流逝中令人急躁不安。理论学习阶段对C 语言程序设计最深刻的体会就是,编程原来如此简单,只要掌握书上罗列的知识,编一个程序出来肯定不难。
但现在,经过一个星期课程设计的洗礼,我终于领会到了“实践是检验真理的唯一方法”这句话的真谛。
书上所学的理论知识确实不难,但那都只是C 语言这个大机器的最基本零部件,要想组装成所需的机器,并且还能正常完美地工作,并不是那么简单的事情。首先,需要克服浮躁的心理情绪,只有静下心来踏踏实实的埋头苦干,才可能在相当陌生的题设中找到最好的灵感,接着逐步剖析,构建大框架,在一个个细化;其次,现代社会的高速发展离不开人们的精诚合作,所以,适当的咨询和商讨对自己的工作是
有意想不到的提高和改善的,这就需要有一颗虔诚的、合作的心去战胜一切以自我为中心的不良习性。
一周的课程设计,使我加深了对踏实做事、合作精神的切身体会,而经过一次次修补、调试,程序最终成功运行的那一刹那,心中的兴奋喜悦是不言而喻的。因此,我觉悟了,只有认真严谨的学习态度才能真正学到有用的知识,也只有认真严谨的处世原则才能让我走向成功!
10.致谢
最后感谢帮助我的各位,没有各位的帮助,我很难完成这次课程设计,衷心的感谢帮助我的各位!谢谢大家帮助我这个C 知识匮乏的人。
中 国 地 质 大 学
本科生论文
C 语言课程设计
实践报告
课程名称: 停车场管理系统
教师姓名: 邓 泽
本科生姓名:
本科生学号: [1**********]
本科生专业: 物理学(光信息科学)
所在院系:
类别: 日期: 2012-6-25至2012-7-2
课程设计评语
注:1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目 录
课程设计评语……………………………………………2 目录………………………………………………………3
1.课程论文题目………………………………………..5
2.程序设计思路………………………………………..5
3.功能模块图…………………………………………..6
4.数据结构设计………………………………………..7
5.算法设计……………………………………………..7
6.程序代码……………………………………………..12
7.程序运行结果………………………………………..17
8.编程中遇到的困难及解决方法……………………..25
9.总结心得及良好建议………………………………..26
10.致谢…………………………………………………27
前 言
计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。
如今,高等教育的计算机教育发展十分迅速。十多年前,只有部分理工科专业开设计算机课程。今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。
计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。根据我们专业的性质和要求,则应侧重于上机操作运用。为此,学校特意在本学期最后安排了32个学时的上机实习。 现将一星期的实习内容及结果分析分列如下:
1.课程论文题目
停车场管理系统
2.程序设计思路
整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。
另外车辆停放信息涉及到从che.dat 中读取,保存和修改,为了方便起见,和程序的模块化,我们将文件的读入和保存单独设计为两个子程序。
1.Meau 菜单 Exit 退出
2.Park 停车 (输入车牌号停车;用save 将车辆信息存入car.dat )
3.Take 取车 (输入车牌号码取车;删除车辆信息;显示停车费用)
4.Message 车位信息
3.功能模块图
4.数据结构设计&5.算法设计
1. 使用全局变量数组,用一个二维数组实现停车场车位的信息,
int cars[12][4];
2. 通过读取car.dat 的数据,对程序初始化。
下图为car.dat 的初始数据:
在init ()通过一个for 循环完成对car.dat 中数据的读取。
for(i=0;i
{
fscanf(fp,"%d ", &cars[i][0]);
fscanf(fp,"%d ", &cars[i][1]);
fscanf(fp,"%d ", &cars[i][2]);
fscanf(fp,"%d ", &cars[i][3]);
}
3. 同理,我们设计一个子程序save ()用来保存停车场车位的信息到car.dat 。用for 循环再将处理后的数据存入文件中。
for(i=0;i
{
fprintf(fp,"%d ", cars[i][0]);
fprintf(fp,"%d ", cars[i][1]);
fprintf(fp,"%d ", cars[i][2]);
fprintf(fp,"%d ", cars[i][3]);
fprintf(fp,"\n" );
}
4. 进行对停车模块的设计:
首先,输入车辆的车牌号,我们从键盘读取车牌号码,并判断车牌号码是否正确(五位数整型车牌号码)。输入出错时要求继续输入。我们引入flag 标志量判断车牌号是否正确,初始int flag=1,从键盘读入车牌号码,并判断:
printf("请输入您的车牌号:"); do{ scanf("%d",&temp); if((temp>9999)&&(temp
其次,读取的车牌号正确之后对标志量清零flag=0,代表没有没有找到车位,进行为车辆找停车位的操作,如下:
flag=0; for(i=1;i
cars[i][0]=temp; flag=1; break; }
通过for 循环和continue 语句找到没有停车的车位,即car[i][0]不等于0,并将标志量flag 赋值1,表示有车位,用break 语句跳出循环。
再用if 语句处理flag==1的情况,即停车场车位已满无法停车。
最后,对存入的车辆赋初始时间5,并且前面的已存入的车辆时间都加5。语句如下:
for(i=0;i
又因为我在car.dat 已经对车辆的停放楼层和车位有过初始赋值,可以省去再对
cars[i][1]和cars[i][2]的操作。并且可以满足“第一层有空位必须停在第一层”的要求,不过存在一个问题就是车辆只能按车位序号停放。
5、取车模块:
第一步,读取要提取车辆的车牌号码。再通过flag 标志量对所输入车牌号正误分别处理。(初始flag=0)
第二步,对于输入正确的车辆进行操作:删除车辆信息,再计算费用,再对时间清零并标志取车成功。
第三步,进过上一步后取车不成功时即flag 还是为0时,提示重复输入车牌号直道成功为止。 程序如下:
do{
scanf("%d",&temp);
if((temp>9999)&&(temp
for(i=0;i
if(cars[i][0]==temp){
cars[i][0]=0; cost=0.2*cars[i][3]/5;
cars[i][3]=0;
flag=1;
break;
}
}
if(flag==0)
printf("您输入的车牌号码有误,请重新输入。\n"); }while(!flag);
第四步,有选择性的显示收费价格:
printf("\n 显示停车费用? 是(1)/否(2)");
scanf("%d",&i);
switch(i){
case 1: printf("\n车牌号 : %d 费用 %8.2f元\n",temp,cost);
case 2:
default: break;
}
最后,调用save ()函数来保存数据到car.dat 。
6、车辆信息浏览模块:
注意我们只需要显示有车的车位可以用for 循环语句再加上if 判断语句来实现显示功
能。
printf("车牌号\t\t楼层\t 车位 \t\t时间\n");
7、主函数:
调用子函数init ()初始化读取car.dat 文件。用printf 在屏幕上显示停车场的菜单。
再用switch 语句实现选择执行哪个模块语句。 for(i=0;i
switch(a){
case 1:putCar(); break; case 2:getCar();break; case 3:showInfo();break; case 4:exit(0); break; default:printf("您输入的信息有误!\n"); break; }; getchar();
6.程序代码
#include
#include
#include
#include
int cars[12][4]; /*
void init() /*
{
char filename[] = "car.dat";
FILE *fp;
int i;
if((fp = fopen(filename,"r")) == NULL){
printf("无法打开文件 \" car.dat\"\n");
return ;
}
for(i=0;i
数组*/
fscanf(fp,"%d ", &cars[i][0]);
fscanf(fp,"%d ", &cars[i][1]);
fscanf(fp,"%d ", &cars[i][2]);
fscanf(fp,"%d ", &cars[i][3]);
}
fclose(fp);
}
停车场使用数组*/ 初始化*/ 读数据文件内容到
void saveAll()
{ /*保存数据到car.dat*/
char filename[] = "car.dat";
FILE *fp;
int i=0;
if((fp = fopen(filename,"w")) == NULL){
printf("无法打开文件 \" car.dat\"\n");
return ;
}
for(i=0;i
fprintf(fp,"%d ", cars[i][0]);
fprintf(fp,"%d ", cars[i][1]);
fprintf(fp,"%d ", cars[i][2]);
fprintf(fp,"%d ", cars[i][3]);
fprintf(fp,"\n" );
}
fclose(fp);
}
void putCar()
{ /*停车操作*/
int i;
int temp;
int flag=1;
printf("\n\n*********欢迎来到地大停车场*********\n");
printf("请输入你的车牌号:");
do{
scanf("%d",&temp);
if((temp>0)&&(temp
flag=0;
printf("Your car number is a digit between 0 and 10000:");
}while(!flag);
flag=0;
for(i=0;i
if(cars[i][0]!=0)
continue;
cars[i][0]=temp;
flag=1;
break;
}
if(flag==0){ /*没有找到位置,停车场已满*/ printf("很抱歉!车位已满:\n");
return ;
}
for(i=0;i
if(cars[i][0]!=0)
cars[i][3]+=5;
}
saveAll();
getchar();
printf("存车成功!\n按任意键回到主菜单...");
}
void getCar()
{ /*取车*/
int i,temp,flag=0;
float cost;
printf("\n\n*********从停车场取车*********\n ");
printf(" 请输入你的车牌号码:");
do{
scanf("%d",&temp);
if((temp>0)&&(temp
for(i=0;i
if(cars[i][0]==temp){
cars[i][0]=0; /*删除该车位车辆信息*/
cost=0.2*cars[i][3]/5;
cars[i][3]=0;
flag=1;
break;
}
}
if(flag==0)
printf("您输入的车牌号码有误,请重新输入。\n");
}while(!flag);
printf("\n Printf out the cost?Yes(1)/No(2)");
scanf("%d",&i);
switch(i){
case 1: printf("\n车牌号 : %d 费用 %8.2f元\n",temp,cost); case 2:
default: break;
}
saveAll(); /*保存数据*/
getchar();
printf("取车成功!\n按任意键回到主菜单...");
}
void showInfo()
{ /*显示当前停
车场信息*/
int i;
printf("\n\n*********当前停车场车位信息*********\n");
printf("车牌号\t\t楼层\t 车位 \t\t时间\n");
for(i=0;i
if(cars[i][0]!=0)
printf("%d\t\t %d \t\t%d \t\t %d\n",cars[i][0],cars[i][1],cars[i][2],cars[i][3]);
getchar();
printf("输入任意键返回主菜单...");
}
int main()
{
int a;
init();
do{
printf("\n\n\n*******************************************************************\n");
printf("* 地大停车场管理系统 *\n");
printf("* 1. 停车 *\n");
printf("* 2. 取车 *\n");
printf("* 3. 当前车位信息 *\n");
printf("* 4. 退出 *\n");
printf("*******************************************************************\n");
printf("请输入选项:");
scanf("%d",&a);
switch(a){ /*菜单选择*/
case 1:putCar(); break;
case 2:getCar();break;
case 3:showInfo();break;
case 4:exit(0); break;
default:printf("您输入的信息有误!\n"); break;
};
getchar();
}while(1);
return 0;
}
7.程序运行结果
1、 打开程序进入键盘式界面菜单,选择您所需要进行的操
作选项。
2、 车辆车位的初始化,查看当前车位信息如下:
3、停入车牌号为20000的车:
4、查看当前车位信息:
出现错误,车辆无法按楼层和车位要求停。
对car.dat 进行修改楼层号初始化为1 1 1 1 1 1 2 2 2 2 2 2车位号初始化为1 2 3 4 5 6 1 2 3 4 5 6。在使用停车操作时,车辆从一楼到二楼依次按序停放。
对程序修改后运行 如下:
查看修改后
取车,并显示费用:
再存入5辆车:
停车车位顺次排下。
取出两辆车:
再存入两辆:
后存入的车占据取出车的空车位
将车库存满:
输入4,程序结束。
8.编程中遇到的困难及解决方法
从复习理论知识、编程、调试,到改错,直至存盘,枯燥而乏味,看似简单的程序题,编写后调试却屡屡出错。于是又不得不重新检查,重新编写,重新调试,又失败又检查,搞得人心烦意乱。但这没有使我灰心,一直不断修改我的程序,问同学问老师,看书,进行简单的操作试验练习,终于可以运行了。并得到我期盼已久的结果,心中的喜悦无法言语,意识到自己的付出有了完美的回报!
在本次课程设计中,我先使用结构化分析方法对系统进行分析,将整个系统细分为几个模块,再针对每个小模块编写代码。由于时间比较短,源代码大部分来自网上下载的一个半成品,刚开始连编译都通不过。经过我精心调试,去掉了一些错误和漏洞,使之得到了完备。
9.总结心得及良好建议
经过一周紧张的学习运用,C 语言课程设计终于进入尾声。复习理论知识、读题、编程、调试、修改,每一个环节都少不了,每一个环节都会在时间的流逝中令人急躁不安。理论学习阶段对C 语言程序设计最深刻的体会就是,编程原来如此简单,只要掌握书上罗列的知识,编一个程序出来肯定不难。
但现在,经过一个星期课程设计的洗礼,我终于领会到了“实践是检验真理的唯一方法”这句话的真谛。
书上所学的理论知识确实不难,但那都只是C 语言这个大机器的最基本零部件,要想组装成所需的机器,并且还能正常完美地工作,并不是那么简单的事情。首先,需要克服浮躁的心理情绪,只有静下心来踏踏实实的埋头苦干,才可能在相当陌生的题设中找到最好的灵感,接着逐步剖析,构建大框架,在一个个细化;其次,现代社会的高速发展离不开人们的精诚合作,所以,适当的咨询和商讨对自己的工作是
有意想不到的提高和改善的,这就需要有一颗虔诚的、合作的心去战胜一切以自我为中心的不良习性。
一周的课程设计,使我加深了对踏实做事、合作精神的切身体会,而经过一次次修补、调试,程序最终成功运行的那一刹那,心中的兴奋喜悦是不言而喻的。因此,我觉悟了,只有认真严谨的学习态度才能真正学到有用的知识,也只有认真严谨的处世原则才能让我走向成功!
10.致谢
最后感谢帮助我的各位,没有各位的帮助,我很难完成这次课程设计,衷心的感谢帮助我的各位!谢谢大家帮助我这个C 知识匮乏的人。