首页技术c语言函数实验报告,c语言实验报告答案

c语言函数实验报告,c语言实验报告答案

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

大家好,关于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语言实验报告

我写了个,不知道行不,有什么不妥的请指出哈,如要格式请加我,将之发给你

四川大学计算机学院、软件学院

实验报告

学号:姓名:专业:计算机科学与技术班级:5第 13周

课程名称 c/C++实验课时 2

实验项目字符串的复制与追加实验时间 08.5. 16

实验目的 1.掌握字符串的基本操作和理解数据结构

实验环境 VC 6.0

实验内容(算法、程序、步骤和方法)先计算出S1和S2的字符个数,为S3分配好空间,利用已有库函数先将S1复制到S3中,再将S2追加到S3中,当显示完后要记住收回空间,做好善后处理。

源代码如下:

#include<iostream>

#include<string.h>

using namespace std;

int main()

{

char*s1="abcdef";

char*s2="123456f";

int n=strlen(s1)+strlen(s2);//计算s1,和s2的总长度n

char*s3=new char[n+1];//定义S3并分配空间大小为n

strcpy(s3,s1);//将s1复制到s3中

strcat(s3,s2);//将s2追加到s3后面

cout<<"s3="<<s3<<endl;

delete []s3;//收回空间

s3=NULL;//将指针指向空

return 0;

}

(接上)

实验内容(算法、程序、步骤和方法)

结构是顺序存储结构,算法顺序链接法

数据记录

和计算数据有:字符串S1,S2;和一未知字符串S3

只需计算前两个字符串长度之和

结论

(结果)利用字符数组可以顺序存储字符数据,并且能够顺序处理数据;

算法复杂度O(n+m);处于中性

小结字符数组能够带来很好的存储结构,便于操作,但是算法不是很好,只能顺序遍历数组,故复杂度不是很小

指导老师评议

成绩评定:指导教师签名:

好了,文章到此结束,希望可以帮助到大家。

choose函数是什么意思?choose函数的使用方法ai人脸替换网站?如何使用AI人脸替换明星造梦网站