首页技术c语言程序设计实验报告答案?c语言程序设计实训答案

c语言程序设计实验报告答案?c语言程序设计实训答案

编程之家2026-06-011131次浏览

这篇文章给大家聊聊关于c语言程序设计实验报告答案,以及c语言程序设计实训答案对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

c语言程序设计实验报告答案?c语言程序设计实训答案

c语言程序设计题。实验报告。高分。

车票系统,与你的第2题要求略有不同,你自己修改吧

#include<stdio.h>

#include<stdlib.h>

#include<dos.h>

#include<time.h>

#include<conio.h>

c语言程序设计实验报告答案?c语言程序设计实训答案

#include<string.h>

const int MAX=20;

const int N=50;

const int MAXFILENAME=100;

enum{FALSE,TRUE};

struct time

c语言程序设计实验报告答案?c语言程序设计实训答案

{

int hour;

int minutes;

};

struct ticket

{

int SerialNumber;

struct time SetOut;

char DeparturePoint[MAX];

char TerminalPoint[MAX];

float LastTime;

int FixNumber;

int FixedNumber;

}car[N];

int RecordNumber;

int FLAG=FALSE;

/**********************************************/

int ShowMessage(void);//载入原始数据

void mainmenu(void);//主菜单

void InsertMessage(void);//录入班次信息

void SearchMenu(void);//查询路线子菜单

void SearchByNumber(void);//按班次号查询

void SearchByAddress(void);//按终点站查询

void TicketManagement(void);//车票售出与退回

void TicketOrder(void);//售票

void TicketDelete(void);//退票

void exit(void);//退出该系统

/********************************************/

int main(void)

{

RecordNumber=ShowMessage();

if(1)

do{

mainmenu();

}while(FLAG==FALSE);

return 0;

}

void mainmenu(void)

{

system("color 1f");

system("mode con: cols=140 lines=130");

char functionNumber;

printf("车票管理系统\n\n");

printf("制作:hmm182007\n");

printf("日期:2007/11/25/19:57\n");

printf("============================================================================\n");

printf(" 1.录入班次信息\t\n");

printf(" 2.浏览班次信息\t\n");

printf(" 3.查询行车路线\t\n");

printf(" 4.售票与退票系统\t\n");

printf(" 5.退出该系统\t\n");

printf("============================================================================\n");

printf("请选择你所需要的功能:");

scanf("%c",&functionNumber);

switch(functionNumber)

{

case'1':

{

InsertMessage();

printf("\n按任意键回主菜单......\n");

getchar();

getchar();

}

break;

case'2':

{

ShowMessage();

printf("\n按任意键回主菜单......\n");

getchar();

getchar();

}

break;

case'3':

{

SearchMenu();

printf("\n按任意键回主菜单......\n");

getchar();

getchar();

}

break;

case'4':

{

TicketManagement();

getchar();

getchar();

}

break;

case'5':FLAG=TRUE;exit();break;

default:

{

printf("输入错误,请确保你的输入为1--5.\n");

printf("按任意键回主菜单......\n");

getchar();

getchar();

}

}//switch ends

FLAG=FALSE;

}

void InsertMessage(void)

{

FILE*fp;

char filename[MAXFILENAME];

int i;

printf("请输入文件名或者文件路径名:");

scanf("%s",filename);

if((fp=fopen(filename,"r"))==NULL)

{

printf("文件%s不可读,请确认文件%s存在或者文件路径正确.\n\n",filename,filename);

mainmenu();

}

for(i=RecordNumber;!feof(fp)&&!ferror(fp);i++)

{

fscanf(fp,"%d%d%d",&car[i].SerialNumber,&car[i].SetOut.hour,&car[i].SetOut.minutes);

fscanf(fp,"%s%s%f%d%d",&car[i].DeparturePoint,&car[i].TerminalPoint,&car[i].LastTime,&car[i].FixNumber,&car[i].FixedNumber);

}

int count=i;

printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");

for(i=0;i<count;i++)

{

printf("%d\t%d:%d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);

printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);

}

fclose(fp);

}

int ShowMessage(void)

{

int i;

FILE*fp;

if((fp=fopen("add.txt","r"))==NULL)

{

printf("读取数据失败,请检查文件add.txt是否存在.\n");

exit(-1);

}

for(i=0;!feof(fp)&&!ferror(fp);i++)

{

fscanf(fp,"%d%d%d",&car[i].SerialNumber,&car[i].SetOut.hour,&car[i].SetOut.minutes);

fscanf(fp,"%s%s%f%d%d",&car[i].DeparturePoint,&car[i].TerminalPoint,&car[i].LastTime,&car[i].FixNumber,&car[i].FixedNumber);

}

int count=i;

printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");

for(i=0;i<count;i++)

{

printf("%d\t%d:%d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);

printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);

}

return count;

}

void SearchMenu(void)

{

system("color 1f");

system("mode con: cols=140 lines=130");

char functionNumber;

printf("查询子菜单\n");

printf("============================================================================\n");

printf(" 1.按班次号查询\t\n");

printf(" 2.按终点站查询\t\n");

printf(" 3.返回主菜单\t\n");

printf("============================================================================\n");

printf("请选择你所需要的功能:");

scanf("%*c%c",&functionNumber);

switch(functionNumber)

{

case'1':SearchByNumber();break;

case'2':SearchByAddress();break;

case'3':

getchar();

mainmenu();

break;

default:

printf("输入错误,请确保你的输入为1--3.\n");

printf("按任意键回查询子菜单......\n");

getchar();

getchar();

SearchMenu();

}

}

void SearchByNumber(void)

{

int SearchNumber;

printf("请输入要查询的班次号:");

scanf("%d",&SearchNumber);

printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");

printf("%d\t%d:%d\t\t",car[SearchNumber-1].SerialNumber,car[SearchNumber-1].SetOut.hour,car[SearchNumber-1].SetOut.minutes);

printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[SearchNumber-1].DeparturePoint,car[SearchNumber-1].TerminalPoint,car[SearchNumber-1].LastTime,car[SearchNumber-1].FixNumber,car[SearchNumber-1].FixedNumber);

}

void SearchByAddress(void)

{

int i;

char Address[MAX];

printf("请输入终点站的名称:");

scanf("%s",&Address);

printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");

for(i=0;i<RecordNumber;i++)

{

//对比终点站记录,找到并输出

if((strcmp(Address,car[i].TerminalPoint))==0)

{

printf("%d\t%d:%d\t\t",car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);

printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);

}

}

}

void TicketManagement(void)

{

char functionNumber;

system("color 1f");

system("mode con: cols=140 lines=130");

printf("订票与退票菜单\n");

printf("============================================================================\n");

printf(" 1.订票\t\n");

printf(" 2.退票\t\n");

printf(" 3.返回主菜单.\n");

printf("============================================================================\n");

printf("选择你需要的功能:");

scanf("%*c%c",&functionNumber);

switch(functionNumber)

{

case'1':

{

TicketOrder();

//getchar();

//getchar();

}

break;

case'2':TicketDelete();break;

case'3':

{

getchar();

mainmenu();

}

break;

default:

{

printf("输入错误,请确保你的输入为1--3.\n");

printf("按任意键回主菜单......\n");

getchar();

getchar();

mainmenu();

}

}

}

void TicketOrder(void)

{

int i;

printf("请输入要订购的车票的班次:");

scanf("%d",&i);

if(i<0||i>RecordNumber)

{

printf("对不起,今天没有这趟车,请明天再来,谢谢使用!\n");

printf("按任意键回主菜单......\n");

getchar();//getchar();

TicketManagement();

}

time_t tval;

struct tm*now;

tval= time(NULL);

now= localtime(&tval);

if((now->tm_hour==car[i].SetOut.hour&&now->tm_min<car[i].SetOut.minutes)||(now->tm_hour<car[i].SetOut.hour))

{

if(car[i].FixedNumber<car[i].FixNumber)

{

car[i].FixedNumber++;

printf("你的订票成功,请按时上车,谢谢使用!\n");

}

else printf("对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作!\n");

}

else printf("对不起,今天的这趟车已发出,请明天再来,谢谢合作!\n");

printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");

printf("%d\t%d:%d\t\t",car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes);

printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber);

//printf("按任意键回主菜单......\n");

//getchar();getchar();

}

void TicketDelete(void)

{

int i;

printf("请输入要退购的车票的班次:");

scanf("%d",&i);

if(i<0||i>RecordNumber)

{

printf("对不起,今天没有这趟车,无法完成退票.谢谢使用!\n");

getchar();

//getchar();

TicketManagement();

getchar();

}

time_t tval;

struct tm*now;

tval= time(NULL);

now= localtime(&tval);

if((now->tm_hour==car[i].SetOut.hour&&now->tm_min<car[i].SetOut.minutes)||(now->tm_hour<car[i].SetOut.hour))

{

if(car[i].FixedNumber>=1)

{

car[i].FixedNumber--;

printf("退订车票成功,谢谢使用!\n");

}

else printf("对不起,今天的这趟车的票尚未卖出,无法完成退票!\n");

}

else printf("对不起,今天的这趟车已发出,无法完成退票!\n");

printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");

printf("%d\t%d:%d\t\t",car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes);

printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber);

getchar();//getchar();

}

void exit(void)

{

printf("\n\n*********************谢谢使用本系统,欢迎下次继续使用***********************\n");

exit(0);

}

c语言程序设计实验报告内容

1、实验名称:计算出1000以内10个最大素数之和。

2、实验目的:熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

3、实验内容:计算并输出1000以内最大的10个素数以及它们的和。

4、要求:在程序内部加必要的注释。由于偶数不是素数,可以不考虑对偶数的处理。虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。输出形式为:素数1+素数2+素数3+…+素数10=总和值。

5、算法描述流程:Main函数:判断素数:

6、测试数据:分别输入1000、100、10测试。

7、运行结果:出现问题及解决方法:当素数个数小于10时的处理不够完善,考虑不够周全。学习耐心与细心不足,如scanf(“%d”,&n);中的“&”经常忘记。

8、编程思想不够发散,例如如何判断素数,只能想出2种方式(其中1种为参考教科书上内容);在今后学习中应更多的动脑,综合运用所学。

9、基本功不够,如清屏clrscr()等函数用的不好,有时同样的问题多次犯,给实验课老师带来很大的麻烦。这说明我的知识不够广,有很多有用但不做考试要求的书中内容没有学好,认识程度不够深刻。就算以后C语言这门课程结束后,也应多看相关东西,多上机练习,才能真正从本质上提高自己。

10、物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板

11、知识不够广泛,如VC++6.0等程序,自己试了好一阵也不会用;说明我电脑水平还是不够,自学能力不够。已会的东西掌握的还是不够好。

12、实验心得:通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。其间开心过、郁闷过、无奈过、彷徨过……随着实验的胜利成功与实验报告的胜利完成,有点微微的自豪感使人难忘。感谢高克宁老师的高标准、严要求,感谢实验课上小老师们的耐心指点,也感谢我在实验中经历过的点点滴滴……伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。对C语言,我会更加努力。

C语言程序设计实验报告

1,若程序定义为三行三列的矩阵,并在主函数中键盘赋值。请编写函数juzhen(int a[][3],int n),函数功能是:使矩阵左下角元素中的值乘以.例如:若矩阵中的值为:

1 9 7

2 3 8

4 5 6

n=3,则矩阵值变为:

1 9 7

6 9 8

12 15 18

注:二维数组下三角元素每行最后元素的列标和该列的列号一致

源程序如下:

#include<stdio.h>

int juzhen(int a[][3],int n)

{

int i,j;

for(i=1;i<3;i++)

for(j=0;j<=i;j++)

a[i][j]=a[i][j]*n;

}

main()

{

int i,j,a[3][3],m;

clrscr();

printf("please enter 9 numbers:\n");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

printf("the old ju zhen is:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%3d",a[i][j]);

printf("\n");

}

printf("please enter a int number:\n");

scanf("%d",&m);

juzhen(a,m);

printf("the new ju zhen is:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%3d",a[i][j]);

printf("\n");

}

}

2,请编写函数juzhen,该函数的功能是:将三行四列矩阵x乘以四行三列矩阵y,结果放在三行三列矩阵中。矩阵相乘的基本方法是:矩阵Xy中行列下标分别为i,j的元素的值,是矩阵X中第i行上四个元素与矩阵Y中第j列上四个元素对应相乘的积。

#include<conio.h>

#include<stdio.h>

void juzhen(int a[3][4],int b[4][3],int ab[3][3])

{

int i,j,z;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

for(z=0;z<3;z++)

ab[i][z]=ab[i][z]+a[i][j]*b[j][z];/*此得为要填写的内容*/

}

main()

{

int x[3][4]={1,0,1,1,2,1,0,1,1,2,0,3};

int y[4][3]={1,1,1,0,0,0,2,1,1,1,1,3};

int xy[3][3]={0},i,j;

clrscr();

juzhen(x,y,xy);

printf("x ju zhen is:\n");

for(i=0;i<3;i++)

{

for(j=0;j<4;j++)

printf("%3d",x[i][j]);

printf("\n");

}

printf("y ju zhen is:\n");

for(i=0;i<4;i++)

{

for(j=0;j<3;j++)

printf("%3d",y[i][j]);

printf("\n");

}

printf("xy ju zhen is:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%3d",xy[i][j]);

printf("\n");

}

}

关于本次c语言程序设计实验报告答案和c语言程序设计实训答案的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

网络编程课哪家好,学编程比较好的网课java输入 java输入语句scanner