C语言课设论文.docx

上传人:b****4 文档编号:24640374 上传时间:2023-05-29 格式:DOCX 页数:60 大小:236.73KB
下载 相关 举报
C语言课设论文.docx_第1页
第1页 / 共60页
C语言课设论文.docx_第2页
第2页 / 共60页
C语言课设论文.docx_第3页
第3页 / 共60页
C语言课设论文.docx_第4页
第4页 / 共60页
C语言课设论文.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

C语言课设论文.docx

《C语言课设论文.docx》由会员分享,可在线阅读,更多相关《C语言课设论文.docx(60页珍藏版)》请在冰豆网上搜索。

C语言课设论文.docx

C语言课设论文

第一章绪论

1.1开发背景

C语言是1972年由美国的DennisRitchie设计发明的,并首次在UNIX操作系统的DECPDP-11计算机上使用。

它由早期的编程语言BCPL 发展演变而来。

 在1970年, AT&T 贝尔实验室的 KenThompson根据BCPL语言设计出较先进的并取名为B的语言,最后导了C语言的问世。

 

随着微型计算机的日益普及,出现了许多C语言版本。

由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。

为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。

1.2C语言的特点

C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。

C语言具有下列特点:

(1).C是结构式语言

   结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

(2).C语言功能齐全

   C语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。

另外C语言也具有强大的图形功能,支持多种显示器和驱动。

(4).C语言适用范围大

   C语言还有一个突出的优点就是适合于多种操作系统。

第二章系统分析   

2.1功能需求分析

本系统为《长春公交信息管理系统》,与市场上现有的系统来类比,用客户(或是我们自己)需要一个比以往的手动录入和电话咨询,更为方便快捷的方式来为自己服务。

本系统就充分做到了这一点。

更为公交集团的工作者和一般使用者带来了方便。

本系统可以升级,在系统的发展方面具有极高的可移值性。

本系统只需普通的PC机就可以通过局域网进行连接,方便,更为使用者降低了成本。

人员、时间、设备、系统、一次性投入资金、持续性投入资金之后,只需在必要的时候为系统升级。

面对信息发展迅速的今天,公交集团必须拥有一个这样的系统来方便其管理。

2.2性能需求分析

 1.调查研究,收集数据

  调查研究和收集数据应该围绕问题起因进行,一方面要验证有限定问题阶段形成的假设,另一方面要探讨产生问题的根本原因,为下一步提出解决问题的备选方案做准备。

  调查研究常用的有四种方式,即阅读文件资料、访谈、观察和调查。

  收集的数据和信息包括事实(facts)、见解(opinions)和态度(attitudes)。

要对数据和信息去伪存真,交叉核实,保证真实性和准确性。

  2.提出备选方案和评价标准

  通过深入调查研究,使真正有待解决的问题得以最终确定,使产生问题的主要原因得到明确,在此基础上就可以有针对性地提出解决问题的备选方案。

第三章总体设计与详细设计

3.1总体设计

《长春公交信息管理系统》包括如下几个功能:

基本信息选项、查询功能选项、统计功能选项。

◆基本信息选项,其中包括增加功能选项、修改功能选项、删除功能选项;

◆查询功能选项,其中包括查询所有路线、查询线路所有站点、查询A-B两地的公交线路;

◆统计功能选项,用来统计位于前十名的站点。

3.2详细设计

《长春公交信息管理系统》具体功能如下:

主界面功能图:

图1.1主界面

基本信息选项中的增加功能选项:

图1.2增加线路名称

 

图1.3加站点名称

基本信息选项中的修改功能选项:

图1.4改线路名称

 

图15.修改站点名称

基本信息选项中的删除功能选项:

图1.6除线路名称

 

图1.7删除站点名称

基本信息选项中的查询功能选项:

图1.8所有线路

 

图1.9所有站点

图1.10需转车站点

 

图1.11直达车站点

 

基本信息选项中的统计功能选项:

3.3函数功能设计

//全局变量定义

structbus_struct{//线路结构体

intbusNo;

charstopName[21][30];

intsum;

};

structbus_structbus;//线路变量

FILE*fpbus;//指向文件bus.txt的指针

//函数声明

voidinfo();//基本信息函数

voidinq();//查询函数

voidstat();//统计函数

voidadd();//增加函数

voiddel();//删除函数

voidupd();//修改函数

voidbuslineAdd();//增加新线路函数

voidbusstopAdd();//增加线路站点函数

voidbuslineDel();//删除现有线路函数

voidbusstopDel();//删除线路站点函数

voidbuslineUpd();//修改线路名称函数

voidbusstopUpd();//修改站点名称函数

voidbuslineInq();//查询站点信息函数

voidbusstopInq();//查询线路信息函数

voidbusInq();//查A-B直达

voidsavebus(intNo);//将数据写入bus.txt文件函数

voidreadbus(intNo);//将数据从bus.txt文件中读出函数

intfindbusline(intNo);//查询公交线路是否存在函数,存在返回1,否则返回0

intfindbusstop(intNo,charName[]);//查询站点是否存在函数,存在返回1,否则返回0

voidaddstop(intNo);//增加站点内层

intinqstop(charName[]);//查询经过某站点的线路数量

voidchangbus(intA[],intB[],inta,intb);//转车函数

 

第四章编码实现

4.1增加功能代码的实现

voidbuslineAdd()//增加新线路函数

{

intNo;

intflag;

charch;

do

{

printf("请输入要增加的线路名称:

");

fflush(stdin);

scanf("%d",&No);

flag=findbusline(No);

if(flag==1)

{

printf("\t\t\t此线路已存在,请重新输入!

(按任意键继续)\n");

getch();

ch='y';

continue;

}

else

{

bus.busNo=No;

bus.sum=0;

addstop(bus.busNo);

}

printf("\n是否继续增加新线路?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

}

voidbusstopAdd()//增加线路站点函数

{

intNo;

intflag;

charch;

do

{

printf("请输入要增加站点的线路名称:

");

scanf("%d",&No);

flag=findbusline(No);

if(flag==0)

{

printf("\n\t此线路不存在,请重新输入!

(按任意键继续)\n\n");

getch();

ch='y';

continue;

}

else

{

addstop(bus.busNo);

}

printf("\n是否继续增加其他线路站点?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

}

voidbuslineDel()//删除现有线路函数

{

intNo;

intflag;

inti;

charch;

do

{

printf("请输入要删除的线路名称:

");

fflush(stdin);

scanf("%d",&No);

flag=findbusline(No);

if(flag==0)

{

printf("\t\t\t此线路不存在,请重新输入!

(按任意键继续)\n");

getch();

ch='y';

continue;

}

else

{

readbus(No);

bus.busNo=0;

for(i=1;i<=bus.sum;i++)

{

strcpy(bus.stopName[i],"");

}

bus.sum=0;

savebus(No);

printf("\t\t删除成功!

\n");

}

printf("\n是否继续删除新线路?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

}

4.2修改功能代码的实现

voidbuslineUpd()//修改线路名称函数

{

intNo,No1;

intflag,flag1;

charch;

inti;

do

{

printf("请输入要修改的线路名称:

");

fflush(stdin);

scanf("%d",&No);

flag=findbusline(No);

if(flag==0)

{

printf("\t\t\t此线路不存在,请重新输入!

(按任意键继续)\n");

getch();

ch='y';

continue;

}

else

{

printf("请输入修改后的新线路名称:

");

scanf("%d",&No1);

flag1=findbusline(No1);

if(flag1==1)

{

printf("\t\t\t此线路已存在,请重新输入!

(按任意键继续)\n");

getch();

ch='y';

continue;

}

else

{

readbus(No);

bus.busNo=No1;

savebus(No1);

readbus(No);

bus.busNo=0;

for(i=1;i<=bus.sum;i++)

{

strcpy(bus.stopName[i],"");

}

bus.sum=0;

savebus(No);

printf("\t\t修改成功!

\n");

}

}

printf("\n是否继续修改其他线路?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

}

voidbusstopUpd()//修改站点名称函数

{

intNo;

intflag,flag1,m;

charch,ch1;

inti;

charName[30],Name1[30];

do

{

printf("请输入要修改站点的线路名称:

");

scanf("%d",&No);

flag=findbusline(No);

if(flag==0)

{

printf("\n\t此线路不存在,请重新输入!

(按任意键继续)\n\n");

getch();

ch='y';

continue;

}

else

{

do

{

printf("请输入要修改的站点名称:

");

scanf("%s",Name);

flag1=findbusstop(No,Name);

if(flag1==0)

{

printf("\t\t\t此站点不存在,请重新输入!

(按任意键继续)\n");

}

else

{

printf("请输入新的站点名称:

");

scanf("%s",Name1);

flag1=findbusstop(No,Name1);

if(flag1==1)

{

printf("\t\t\t此站点已存在,请重新输入!

(按任意键继续)\n");

getch();

ch='y';

continue;

}

else

{

readbus(No);

for(i=1;i<=bus.sum;i++)

{

m=strcmp(bus.stopName[i],Name);

if(m==0)

break;

}

strcpy(bus.stopName[i],Name1);

savebus(bus.busNo);

}

}

printf("\n是否继续修改该线路的其他站点名称?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch1);

}while(ch1=='Y'||ch1=='y');

}

printf("\n是否继续修改其他线路站点?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

}

4.3删除功能代码的实现

voidbusstopDel()//删除线路站点函数

{

intNo;

intflag,flag1,m;

charch,ch1;

inti;

charName[30];

do

{

printf("请输入要删除站点的线路名称:

");

scanf("%d",&No);

flag=findbusline(No);

if(flag==0)

{

printf("\n\t此线路不存在,请重新输入!

(按任意键继续)\n\n");

getch();

ch='y';

continue;

}

else

{

do

{

printf("请输入要删除的站点名称:

");

scanf("%s",Name);

flag1=findbusstop(No,Name);

if(flag1==0)

{

printf("\t\t\t此站点不存在,请重新输入!

(按任意键继续)\n");

}

else

{

readbus(bus.busNo);

for(i=1;i<=bus.sum;i++)

{

m=strcmp(bus.stopName[i],Name);

if(m==0)

break;

}

strcpy(bus.stopName[i],"");

savebus(bus.busNo);

}

printf("\n是否继续输入该线路新的站点名称?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch1);

}while(ch1=='Y'||ch1=='y');

}

printf("\n是否继续增加其他线路站点?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

}

voidbuslineUpd()//修改线路名称函数

{

intNo,No1;

intflag,flag1;

charch;

inti;

do

{

printf("请输入要修改的线路名称:

");

fflush(stdin);

scanf("%d",&No);

flag=findbusline(No);

if(flag==0)

{

printf("\t\t\t此线路不存在,请重新输入!

(按任意键继续)\n");

getch();

ch='y';

continue;

}

else

{

printf("请输入修改后的新线路名称:

");

scanf("%d",&No1);

flag1=findbusline(No1);

if(flag1==1)

{

printf("\t\t\t此线路已存在,请重新输入!

(按任意键继续)\n");

getch();

ch='y';

continue;

}

else

{

readbus(No);

bus.busNo=No1;

savebus(No1);

readbus(No);

bus.busNo=0;

for(i=1;i<=bus.sum;i++)

{

strcpy(bus.stopName[i],"");

}

bus.sum=0;

savebus(No);

printf("\t\t修改成功!

\n");

}

}

printf("\n是否继续修改其他线路?

Y:

继续;N:

退出");

fflush(stdin);

scanf("%c",&ch);

}while(ch=='y'||ch=='Y');

}

 

第五章调试与测试

测试结果如下:

5.1增加功能测试:

5.2修改功能测试:

5.3删除功能测试:

5.4查询功能测试:

 

第六章总结与心得

经过一个星期的上机实践学习,使我对才C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。

通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。

特别是作为高职生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。

其目录为:

程序要求、算法分析、流程图、源程序、调试结果实习体会。

最后感谢我的指导老师王锐、戴红,感谢她们对我细心指教。

 

附录

附录一:

源代码

//头文件

#include

#include

#include

#include

//全局变量定义

structbus_struct{//线路结构体

intbusNo;

charstopName[21][30];

intsum;

};

structbus_structbus;//线路变量

FILE*fpbus;//指向文件bus.txt的指针

//函数声明

voidinfo();//基本信息函数

voidinq();//查询函数

voidstat();//统计函数

voidadd();//增加函数

voiddel();//删除函数

voidupd();//修改函数

voidbuslineAdd();//增加新线路函数

voidbusstopAdd();//增加线路站点函数

voidbuslineDel();//删除现有线路函数

voidbusstopDel();//删除线路站点函数

voidbuslineUpd();//修改线路名称函数

voidbusstopUpd();//修改站点名称函数

voidbuslineInq();//查询站点信息函数

voidbusstopInq();//查询线路信息函数

voidbusInq();//查A-B直达

voidsavebus(intNo);//将数据写入bus.txt文件函数

voidreadbus(intNo);//将数据从bus.txt文件中读出函数

intfindbusline(intNo);//查询公交线路是否存在函数,存在返回1,否则返回0

intfindbusstop(intNo,charName[]);//查询站点是否存在函数,存在返回1,否则返回0

voidaddstop(intNo);//增加站点内层

intinqstop(charName[]);//查询经过某站点的线路数量

voidchangbus(intA[],intB[],inta,intb);//转车函数

//函数定义

main()//主函数

{

charselmenu;//选择项变量

if((fpbus=fopen("bus.txt","a+"))==NULL)//建立相关文件

{

printf("由于系统原因操作失败,停止运行!

");

exit(-1);

}

fclose(fpbus);

if((fpbus=fopen("bus.txt","r+"))==NULL)//打开相关文件

{

printf("由于系统原因操作失败,停止运行!

");

exit(-1);

}

do

{

system("cls");

printf("\n\n\n\n\t\t\t长春公交信息管理系统\n\n");

printf("\t\t\t\t1.基本信息选项\n");

printf("\t\t\t\t2.查询功能选项\n");

printf("\t\t\t\t3.统计功能选项\n");

printf("\t\t\t\t4.退出\n");

pri

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1