您的位置:

c语言程序设计实验报告的简单介绍

本文目录一览:

C语言实验报告怎么写实验步骤?高手最好给个样板啊!

.实验报告规范

实验报告内容包括:

1.实验目的:说明实验所验证的知识点。

2.需求分析:以无歧义的陈述说明程序设计的任务、约束条件、输入输出要求、对功能的规定及模型。

3.逻辑设计:说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次调用关系。

4.详细设计:逻辑设计中定义的所有数据类型的实现,核心算法的设计描述、人机界面设计、函数之间调用关系的描述,主要功能的算法框架,测试数据设计。

5.测试分析:测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。

6.心得:软件设计与实现过程中的经验与体会,进一步改进的设想。

7.程序清单:源程序中应有足够的注释。如果提交源程序软盘,列出程序文件名。

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

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

#includestdio.h

#includestdlib.h

#includedos.h

#includetime.h

#includeconio.h

#includestring.h

const int MAX=20;

const int N=50;

const int MAXFILENAME=100;

enum {FALSE,TRUE};

struct time

{

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;icount;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;icount;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;iRecordNumber;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(i0||iRecordNumber)

{

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.hournow-tm_mincar[i].SetOut.minutes)||(now-tm_hourcar[i].SetOut.hour))

{

if(car[i].FixedNumbercar[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(i0||iRecordNumber)

{

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.hournow-tm_mincar[i].SetOut.minutes)||(now-tm_hourcar[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语言实验报告总结

你只需要按那个模版就行,那些内容就改成你的作业

班级: 学号: 姓名:

实验9 指针

一、实验目的

(1)掌握指针概念,并定义与使用它。

(2)使用数组的指针和指向数组的指针变量。

(3)使用字符串的指针和指向字符串的指针变量。

二、实验内容

1. 将一个3*3的矩阵转置,用函数实现。

2. 有n个人围成一圈,顺序排号。从第一个人开始报数(1~3),凡报到3的人退出,问第几号的人能留下。

三、实验环境

硬件:(1)学生用微机

(2)多媒体实验教室

软件:(1)Windows XP 中文操作系统

(2)VC++ 6.0

四、实验结果

程序1:

#includestdio.h

void main()

{

void move(int *pointer);

int a[3][3],*p,i;

printf("input marix:\n");

for(i=0;i3;i++)

scanf("%d %d %d",a[i][0],a[i][1],a[i][2]);

p=a[0][0];

move(p);

printf("matrix:\n");

for(i=0;i3;i++)

printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);

}

void move(int *pointer)

{

int i,j,t;

for(i=0;i3;i++)

for(j=i;j3;j++)

{

t=*(pointer+3*i+j);

*(pointer+3*i+j)=*(pointer+3*j+i);

*(pointer+3*j+i)=t;

}

}

程序2:

#includestdio.h

void main()

{

int i,k,m,n,num[50],*p;

printf("input num of person:");

scanf("%d",n);

p=num;

for(i=0;in;i++)

*(p+i)=i+1;

i=0;

k=0;

m=0;

while(mn-1)

{

if(*(p+i)!=0)k++;

if(k==3)

{

*(p+i)=0;

k=0;

m++;

}

i++;

if(i==n)i=0;

}

while(*p==0)p++;

printf("the last num is %d\n",*p);

}

结果1:(就是程序运行之后出现的框,截图后粘贴这里)

结果2:

五、总结:

通过这个实验的学习, 基本掌握了指针的基本用法。