c语言课设实验报告-记事本程序(含源码)

c语言课设实验报告-记事本程序(含源码)
c语言课设实验报告-记事本程序(含源码)

C语言课设实验报告

[记事本程序]

班级:

学号:

姓名:

指导老师:

2012.9.3-2012.9.24

C语言课设实验报告

题目:编写一个记事本程序。

设计要求:1、记录要做的事,到设定的时间后弹出对话框提醒。2、能实现编辑、保存、另存为、查找替换等功能。3、提示:使用文件输入输出流,定时器。

课设过程:拿到题目时,还没有一个大概的设计思路。当看完file,menu,graphic的程序代码之后,有了大

致的代码结构:1、先做好一个菜单的界面2、file的子菜单及其功能(新建,打开,保存,另存为,退出)的实现3、edit子菜单(查找,替换,定时)及其功能的实现。基本框架做好后,再写各个功能的函数,写好后将其插到主函数中。因为各个功能互不影响,其中还涉及到功能函数之间的嵌套,还有功能的子函数的位置。在课设过程中遇到的第一个问题是输入内容的存放。在file例子中是用结构体来存放输入内容,一开始,我想用一个字符串数组来存放,但文件内容写入的时候写入失败,文件可以建立,但打开后里面没有内容。我觉得是fwrite()函数中的各个参数有问题,fwrite括号中的参数为(w(已定义的用来存放输入内容的字符串数组名),strlen(w[2000]),1,fp),于是就换成了一个普通的指针来存放,但还是行不通。之所以不用像file 中的结构体那样来存放数据,是因为如果用结构体,那结构体中就只有一个元素,且也元素必是一个字符串数组或是指针,为了更简洁一点,就排除了用结构体这个想法。虽然输入的内容写不进所建立的文件中,但不会影响其他功能函数的编写。在写完输入,文件的建立和内容的写入函数后,接着就是输入内容的保存和另存为,这两个功能差不多,只是文件名不同。因为在创建文件程序块里文件名是程序员自己命名好了的,并且只能建立一个,每次输入的内容会把上次输入的文件内容覆盖。所以我想由用户自己给文件命名,文件名是用一个字符串数组来存放,猜想建立文件的函数为fp=fopen("c:\%s.txt",s(存放文件名的数组名),''ab+"),但运行报错,猜想不可行,于是向老师请教了这个问题,经老师指导,用指针来存放文件名,fp=(s,"ab+"),输入文件名时得要按某盘根录下+某文件夹下+文件名的形式输入。编到这儿,file子菜单的功能就完成了,接下来就是edit子菜单功能函数的编写。但因为不知道key_alt_e的扫描码,在网上也搜索不到,课设老师也不太记得了,说用bioskey函数把这个值输出来,但是程序编写好后,输出的值不稳定,且不是十进制数值,于是就向其他的老师需求帮助,在老师的帮助下,知道了key_alt_e的扫描码,于是可以打开edit子菜单功能。但在这个过程中又遇到了edit子菜单窗口的问题,通过不断改变window(),box(),gotoxy()函数中参数的数值,一次一次运行调试,查看是否到位,是否美观,最后才把把值确定。edit子菜单中查找和替换功能要繁琐,就没编译。程序大致也编译完成了,功能都可以实现,但是还是文件写入的问题,文件打开后,里面没有任何内容,实为系统问题,程序无任何语法错误,但程序的功能可以运行。

代码及注释:

#include

#include

#include

#include

#include

#include /*textcolor,clrscr,where

#define key_down 80

#define key_up 72

#define key_esc 1

#define key_alt_f 33

#define key_alt_x 45

#define key_enter 28

#define key_alt_e 18

int get_key();

void box(int startx,int stary,int high,int width);

{

int i,key,x,y,l;

char *w=NULL,*d=NULL,*s=NULL;

FILE *fp;

char *menu[]={ "File ", "Edit ","Format","View","Help"};

char *red[]={ "F", "E","F","V","H"};

char *f[]={ "New ", "Open" , "Save", "Another","Quit alt_x"};

char *e[]={"Search","Search next","Replace","Date"};

char buf[16*10*2],buf1[16*2];

textbackground(3);

clrscr();

window(1,1,80,1);

textbackground(WHITE);

textcolor(BLUE);

clrscr();

window(1,1,80,2);

for(i=0, l=0; i <5;i++)

{

x=wherex();

y=wherey();

textcolor(BLACK);

cprintf( " %s ",menu[i]);

l=strlen(menu[i]);

gotoxy(x,y); x.y等的头文件*/

/*功能键的扫描码的定义

*/

/* i为循环次数的序数,key为从键盘输入的功能键,x,y 为光标的坐标,l为菜单栏中菜单的字符长度*/

/*w是存放输入的内容(记录的事情)的指针,*s是存放输入的文件名的指针,*d是存放输入要定时的文件的文件名的指针*/ /*菜单栏中各个菜单的定义*/

/*菜单栏中菜单开头要标颜色的字母的定义*/

/* file 子菜单中项目的定义*/

/*edit子菜单的定义*/ /*缓冲区的定义*/

/*整个大窗口的背景颜色设置*/

/*创建菜单栏窗口*/ /*设置菜单栏窗口背景颜色为白色,字体颜色为蓝色*/

/*

利用循环输出menu菜单栏,有多少个菜单循环多少次。

x,y为光标的移动位置。

textcolor(RED);

cprintf( " %s",red[i]);

x=x+l+4;

gotoxy(x,y);

}

printf("\n");

printf("You can take your note now\n"); gets(w);

printf("kkk%s",w);

while(1)

{

key=0;

while(bioskey(1)==0)

{

key=get_key();

if(key==key_alt_e)

{

textbackground(BLACK);

textcolor(WHITE);

gotoxy(12,1);

cprintf("%s",menu[1]);

gettext(4,2,25,8,buf);

window(12,2,25,6);

textbackground(WHITE);

textcolor(BLACK);

clrscr();

window(12,2,25,9);

box(1,1,6,14);

for(i=2;i<6;i++)

{

gotoxy(2,i);

cprintf( "%s ",e[i-2]);

}

gettext(2,2,18,3,buf1);

textbackground(0);

textcolor(15);

gotoxy(2,2); 每输出一个菜单项目,光标向右移动菜单项目字符的长度加上4,每个项目相隔4个空格。同时设置菜单的搜字母颜色为红色。

将输入内容存放至w 中。

检查输入的数据是否已存入指针w中。

利用循环来不断接收从键盘输入的功能键,使功能能重复使用。

/若按alt_e,打开edit 子菜单,以下是edit 子菜单的创建:

按完功能键后edit菜单的背景颜色和字体颜色设置。

保存4,2,25,8矩形框中的数据

设置子菜单背景颜色为白色,字体为黑色。

创建子菜单窗口,括号中的数值为窗口的大小,利用box函数将窗口框住。

利用循环将edit子菜单中的项目输出,有多少个就循环多少次。gotoxy函数使子菜单栏中项目换行输出。

将2,2,18,3中的数据保存到buf1中。

子菜单输出完后,edit 菜单背景和字体颜色

cprintf( "%s ",e[0]);

y=2;

key=get_key();

while(key!=key_alt_e&&key!=key_enter&&key!=key_esc) {

if(key==key_up||key==key_down)

{

puttext(2,y,32,y+1,buf1);

if(key==key_up)

y=y==2? 5:y-1;

if(key==key_down)

y=y==5? 2:y+1;

gettext(2,y,32,y+1,buf1);

textbackground(0);

textcolor(15);

gotoxy(2,y);

cprintf( "%s ",e[y-2]);

}

key=get_key();

}

if(key==key_alt_x)

exit(0);

if(key==key_enter)

{

switch(y-1)

{

case 1: window(1,2,80,25);

textbackground(YELLOW);

clrscr();

/* Search(); */

break;

case 2: window(1,2,80,25);

textbackground(YELLOW);

clrscr();

/* Search_next(); */

break;

case 3: window(1,2,80,12);

textbackground(YELLOW);

clrscr();

/* Replace(); */

break;

case 4: window(1,2,80,25); 的设置。

y=2使光标从edit子菜单中第一个项目开始。循环使功能键能重复使用。

将buf1中存入的数据输出到2,y,32,y+1中。这两个if语句使子菜单栏中的项目上下移动,从2开始,移动范围可以在这设置。

保存2,y,32,y+1的数据.

移动子菜单栏中项目时,所在的项目背景颜色和字体颜色的设定。

/

子菜单中各个项目的功能的实现:

每执行一个功能,利用window函数产生一个新的界面。

查找功能函数(太繁琐,未编写)

查找下一个(未编写)替换(未编写)

textbackground(YELLOW);

clrscr();

fp=fopen(d,"rb+");

if(fp==NULL)

printf("Not exist!");

else

{

printf("Input the file to date; "); scanf("%s",d);

fp=fopen(d,"rb+");

if(fp==NULL)

printf("Not exist!");

else

{

printf("Enter the time of reminding:");

scanf("%ld",&t);

rewind(fp);

delay(t);

fread(w,strlen(*w),1,fp);

printf("%s",*w);

}

}

break;

default: break;

}

}

else

{

window(1,1,80,2);

puttext(4,2,25,8,buf);

textbackground(WHITE);

textcolor(BLACK);

gotoxy(21,1);

cprintf( "%s ",menu[2]);

}

}

if(key==key_alt_x)

exit(0);

if(key==key_alt_f)

{ 定时

输入要定时的文件名。

输入要定时时间。

到指定的这个时间输出

将4,2,25,8,buf中缓存中的数据输出

textbackground(BLACK);

textcolor(WHITE);

gotoxy(4,1);

cprintf( "%s ",menu[0]);

gettext(4,2,18,12,buf);

window(4,2,17,7);

textbackground(WHITE);

textcolor(BLACK);

clrscr();

window(4,2,20,10);

box(1,1,7,14);

for(i=2; i <7;i++)

{

gotoxy(2,i);

cprintf( "%s ",f[i-2]);

}

gettext(2,2,18,3,buf1);

textbackground(0);

textcolor(15);

gotoxy(2,2);

cprintf( "%s ",f[0]);

y=2;

key=get_key();

while(key!=key_alt_x&&key!=key_enter&&key!=key_esc) {

if(key==key_up||key==key_down)

{

puttext(2,y,18,y+1,buf1);

if(key==key_up)

y=y==2? 6:y-1;

if(key==key_down)

y=y==6? 2:y+1;

gettext(2,y,18,y+1,buf1);

textbackground(0);

textcolor(15);

gotoxy(2,y);

cprintf( "%s ",f[y-2]);

}

key=get_key();

} /若按alt_f,以下是file 子菜单的建立及其功能的实现:

按完功能键后file菜单的背景颜色和字体颜色设置。

保存4,2,18,12矩形框中的数据

设置子菜单背景颜色为白色,字体为黑色。创建子菜单窗口,括号中的数值为窗口的大小,利用box函数将窗口框住。

利用循环将file子菜单中的项目输出,有多少个就循环多少次。gotoxy函数使子菜单栏中项目换行输出。将2,2,18,3中的数据保存到buf1中。

子菜单输出完后,file 菜单背景和字体颜色的设置。

y=2使光标从file子菜单中第一个项目开始。循环使功能键能重复使用。

将buf1中存入的数据输出到2,y,18,y+1中。这两个if语句使子菜单栏中的项目上下移动,从2开始,移动范围可以在这设置。

保存2,y,18,y+1的数据.

移动子菜单栏中项目时,所在的项目背景颜色和字体颜色的设定。

if(key==key_alt_x) exit(0);

if(key==key_enter) {

switch(y-1)

{

case 1: window(1,2,80,25);

textbackground(YELLOW);

clrscr();

printf("You can take your note now:\n");

scanf("%s",w);

break;

case 2: window(1,2,80,25);

textbackground(2);

clrscr();

printf("Please input the file you want to open :");

scanf("%s",s);

fp=fopen(s,"r+");

if(fp==NULL)

printf("Not exist!");

else

rewind(fp);

fread(w,strlen(*w),1,fp);

printf("%s",*w);

break;

case 3: window(1,2,80,25);

textbackground(BLUE);

clrscr();

printf("qqq%s\n",w);

save(w);

break;

case 4: window(1,2,80,25);

textbackground(BLUE);

clrscr();

Another(w);break;

case 5: exit(0);

default: break;

}

} 该if程序块为file子菜单各个项目功能的实现

新建菜单栏窗口

设置背景颜色,写字板颜色

新建一个写字板功能

打开指定的文件的功能函数

/

保存功能

检测输入的数据是否存入到了w指针中

另存为功能

else

{

window(1,1,80,2);

puttext(4,2,19,10,buf);

textbackground(WHITE);

textcolor(BLACK);

gotoxy(4,1);

cprintf( "%s ",menu[0]);

}

}

}

}

}

int get_key()

{

union REGS rg;

rg.h.ah=0;

int86(0x16,&rg,&rg);

return rg.h.ah;

}

void box(int startx,int starty,int high,int width) {

int i;

gotoxy(startx,starty);

putch(0xda);

for (i=startx+1;i

putch(0xc4);

putch(0xbf);

for(i=starty+1;i

{

gotoxy(startx,i);

putch(0xb3);

gotoxy(width,i);

putch(0xb3);

}

gotoxy(startx,starty+high-1);

putch(0xc0);

gotoxy(startx+1,starty+high-1);

for(i=startx+1;i

putch(0xc4); /*读取从键盘输入的功能键,将其转换成扫描码,被编译软件识别*/

/*给窗口画框*/

putch(0xd9);

return;

}

int renew_interface() {

int i,key,x,y,l;

char *w=NULL;

char *d=NULL,*s=NULL;

FILE *fp;

char *menu[]={ "File ", "Edit ", "Search "};

char *red[]={ "F", "E", "S"};

char *f[]={ "NEW ", "Open" , "Save", "Another", "Quit alt_x "};

char *e[]={"Search","Search next","Replace","Date"}; char buf[16*10*2],buf1[16*2]; textbackground(3);

clrscr();

window(1,1,80,1);

textbackground(WHITE);

textcolor(BLUE);

clrscr();

window(1,1,80,2);

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

{

x=wherex();

y=wherey();

printf( " %s ",menu[i]);

l=strlen(menu[i]);

gotoxy(x,y);

textcolor(BLUE);

cprintf( " %s ",red[i]);

x=x+l+4;

gotoxy(x,y);

textcolor(BLACK);

}

printf("\n");

printf("You can take your note now:\n");

scanf("%s",w);

while(1)

{

key=0;

while (bioskey(1)==0);

key=get_key(); 执行某个功能后创建一个新界面函数,与主函数的代码一样。

该界面与上面的原始记事本功能界面一样,功能也一样,目的是执行某个功能后,还可以使用其他的菜单的功能,实现菜单功能之间的嵌套和重复使用。

{

textbackground(BLACK);

textcolor(WHITE);

gotoxy(12,1);

cprintf("%s",menu[1]);

gettext(4,2,25,8,buf);

window(12,2,25,6);

textbackground(WHITE);

textcolor(BLACK);

clrscr();

window(12,2,25,9);

box(1,1,6,14);

for(i=2;i<6;i++)

{

gotoxy(2,i);

cprintf( "%s ",e[i-2]);

}

gettext(2,2,18,3,buf1);

textbackground(0);

textcolor(15);

gotoxy(2,2);

cprintf( "%s ",e[0]);

y=2;

key=get_key();

while(key!=key_alt_e&&key!=key_enter&&key!=key_esc) {

if(key==key_up||key==key_down)

{

puttext(2,y,32,y+1,buf1);

if(key==key_up)

y=y==2? 5:y-1;

if(key==key_down)

y=y==5? 2:y+1;

gettext(2,y,32,y+1,buf1);

textbackground(0);

textcolor(15);

gotoxy(2,y);

cprintf( "%s ",e[y-2]);

}

key=get_key();

}

if(key==key_alt_x)

exit(0); /*创建edit的子菜单窗口及功能的实现*/

{

switch(y-1)

{

case 0: window(1,2,80,25);

textbackground(YELLOW);

clrscr();

/* Search(); */

break;

case 1: window(1,2,80,25);

textbackground(YELLOW);

clrscr();

/* Search_next(); */

break;

case 2: /* window(1,2,80,12);

textbackground(YELLOW);

clrscr();

Replace(); */

break;

case 3: window(1,2,80,25);

textbackground(YELLOW);

clrscr();

fp=fopen(d,"rb+");

if(fp==NULL)

printf("Not exist!");

else

{

printf("Input the file to date; "); scanf("%s",d);

fp=fopen(d,"rb+");

if(fp==NULL)

printf("Not exist!");

else

{

printf("Enter the time of reminding:");

scanf("%ld",&t);

rewind(fp);

delay(t);

fread(w,strlen(*w),1,fp);

printf("%s",*w);

}

} break;

default: break;

}

}

else

{

window(1,1,80,2);

puttext(4,2,25,8,buf);

textbackground(WHITE);

textcolor(BLACK);

gotoxy(21,1);

cprintf( "%s ",menu[2]);

}

}

if(key==key_alt_x)

exit(0);

if(key==key_alt_f)

{

textbackground(0);

textcolor(15);

gotoxy(4,1);

cprintf( "%s ",menu[0]);

gettext(4,2,18,12,buf); window(4,2,20,10); textbackground(15); textcolor(0);

clrscr();

window(4,2,20,10);

box(1,1,8,20);

for(i=2; i <7;i++) {

gotoxy(2,i);

printf( "%s ",f[i-2]); }

gettext(2,2,18,3,buf1); textbackground(2); textcolor(15);

gotoxy(2,2);

cprintf( "%s ",f[0]);

y=2; /*创建file的子菜单窗口及功能的实现*/

key=get_key();

while(key!=key_alt_x&&key!=key_enter&&key!=key_esc)

{

if(key==key_up||key==key_down)

{

puttext(2,y,18,y+1,buf1);

if(key==key_up)

y=y==2? 6:y-1;

if(key==key_down)

y=y==6? 2:y+1;

gettext(2,y,18,y+1,buf1);

textbackground(0);

textcolor(15);

gotoxy(2,y);

cprintf( "%s ",f[y-2]);

}

key=get_key();

}

if(key==key_alt_x)

exit(0);

if(key==key_enter)

{

switch(y-1)

{

case 1:

clrscr();

printf("You can take your note now:\n");

scanf("%s",w);

break;

case 2: window(1,2,80,25);

textbackground(2);

clrscr();

printf("Please input the file you want to open :");

scanf("%s",s);

fp=fopen(s,"r+");

if(fp==NULL)

{

printf("Not exist!");

}

else

{

rewind(fp);

fread(&w,strlen(w),1,fp);

printf("%s",*w);

}

break;

case 3: clrscr();

save(w);

break;

case 4: clrscr();

Another(w);

break;

case 5: exit(0);

default: break;

}

}

else

{

window(1,1,80,2);

puttext(4,2,19,10,buf);

textbackground(WHITE);

textcolor(BLACK);

gotoxy(4,1);

cprintf( "%s ",menu[0]);

}

}

}

}

int save(char *k)

{

char *s=NULL;

FILE *fp;

printf("Please input the name of the file:");

scanf("%s",s);

printf("ppp%s",k);

getch();

fp=fopen(s,"ab+");

if(fp==NULL)

{

printf("can not open the file"); save功能函数

将输入的内容传到save函数的指针k中。定义一个存文件名的指针,使其初始值为NULL.

输入文件名(按某盘根录下+某文件下或文件名+文件名的形式),存在指针s中。

检测数据是否传入到了save函数中。

以输入的字符串作为文档的名字创建文档。

另存为功能函数块。将输入内容传入Another函数中,存入指针j中。

和save 函数一样,定义一个指针来存用户输入的另存为的文件名。

以输入的字符串作为文档的名字创建文档。

exit(0);

}

if(fputs(k,fp)==NULL)

{

printf("filen write error");

exit(0);

}

else

{

printf("Save successfully!");

}

}

int Another(char *j)

{

char *s=NULL;

FILE *fp;

printf("Please input another name of the file:");

scanf("%s",s);

fp=fopen(s,"ab+");

if(fp==NULL)

{

printf("can not open the file");

}

if(fputs(j,fp)==NULL)

{

printf("filen write error");

}

else

{

printf("Save successfully!");

}

}

实验结果:整个程序无任何语法错误,但是输入的内容存入不到文件中,经检测,是从一开始输入时,

输入的内容就存入不到定义的指针中,所以打开用户自命名的文件里面午任何内容,实为系统问题。但file,edit子菜单中的各个项目的功能都以实现且可以执行。用户可以新建,打开一个文件,并可以进行保存或是

另存为操作,且文件名有用户自己命名,还可以给指定的文件定时,除了查找替换,其他功能都已实现。

心得体会:通过本次课设实验,对C语言知识有了更深刻的掌握,同时也学到了在课堂上没有学到过的

内容和以前未接触过的函数的使用方法,第一次接触界面,还有文件。例如:做一个菜单界面,程序中文件的创建、数据的写入读取、保存、查找等,如何做图形用户界面,扫描码的使用(编译软件是如何读取键盘输入的功能键),学到了一些更加实用的东西,知道更操作性更强的软件的编译方法。同时也体会到了,以后编程时,要先写算法和流程图,要有条理性,有大致的步骤,按步骤一步步编写。

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

C语言程序设计实验报告参考答案

长沙理工大学C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include main() { printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { inta,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x);

printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4.设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { inta,b,c; a=0; b=-10; c=(a>b)?b:a; printf("c=%d\n",c); }

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

网络程序设计实验报告-Winsock编程接口实验

网络程序设计 实验报告 实验名称: Winsock编程接口实验 实验类型:____验证型实验_____ __ 指导教师:______________________ 专业班级:_____________________ 姓名:_______________________ 学号:_____________________ 电子邮件:____________ 实验地点:______ _______ 实验日期2013 年 3 月29 日 实验成绩:__________________________

一、实验目的 ●掌握Winsock的启动和初始化; ●掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。 二、实验设计 由实验内容可以知道: 1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip https://www.360docs.net/doc/b23469121.html, https://www.360docs.net/doc/b23469121.html,,能输出https://www.360docs.net/doc/b23469121.html,和https://www.360docs.net/doc/b23469121.html,对应的IP地址列表。 2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC 地址。 首先要了解一些基本的知识gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的基本知识gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。结构的声明与gethostaddr()中一致。 之后要根据内容画出函数流程图

三、实验过程(包含实验结果) 1.在实验过程中调用GetAdaptersInfo()时,出现了undeclared identifier的报错,原因是没有包含其头文件,之后进行一些修改解决了问题. 2.实验结果 3.选择查看本机信息 四、讨论与分析 1.Winsock初始化的作用是什么? 答:使用winsock初始化可加载winsock编程的动态链接库。

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

网络编程实验报告

实验一TCP Socket API程序设计 一、预备知识 1.网络编程基本概念 网络上的计算机间的通讯,实质上是网络中不同主机上的程序之间的通讯。在互联网中使用IP地址来标识不同的主机,在网络协议中使用端口号来标识主机上不同进程,即使用(IP地址,端口号)二元组。 套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄,通信时一个网络程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡相连的传输介质将这段信息发送到另一台主机的Socket中,以供其他程序使用。 图1-1 TCP通信流程 2.TCP通信流程 TCP程序是面向连接的,程序运行后,服务器一直处于监听状态,客户端与

服务器通信之前必须首先发起连接请求,由服务器接收请求并在双方之间建立连接后才可以互相通信。 二、实验目的 1.了解Winsock API编程原理; 2.掌握TCP Socket程序的编写; 3.了解C/S模式的特点; 4.学会解决实验中遇到的问题。 三、实验任务 使用Winsock API相关类实现TCP Socket通信程序,并能成功运行。 四、实验环境及工具 1. Windows2000/XP/7 2. Visual C++开发平台 3. Visual Studio2010 五、实验内容和步骤 参照《Visual C++网络编程教程》书中81页,TCP Socket API程序设计。 连接: void CChatClientDlg::OnConnect() { WSADATA wsd; //WSADATA结构 WSAStartup(MAKEWORD(2,2),&wsd); //加载协议,使用Winsock 2.2版 m_client = socket(AF_INET,SOCK_STREAM,0); //创建流式套接字 //服务器地址 sockaddr_in serveraddr; UpdateData(); if(ServerIP.IsBlank()) { AfxMessageBox("请指定服务器IP!"); return; } if(sPort.IsEmpty()) { AfxMessageBox("请指定端口!"); return; }

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

C程序设计实验报告

实验1 C程序运行环境、数据类型、运算符和表达式 一、实验目的 1. 掌握Turbo C集成环境的进入与退出、Turbo C集成环境各种窗口的切换,了解Turbo C集成环境的设置。 2. 掌握C语言源程序的建立、编辑、修改、保存及编译和运行等操作。 3. 学会使用C语言的基本运算符(主要是算术运算符、赋值运算符)及其表达式。 4. 掌握C语言源程序的结构特点与书写规范。 二、实验要求 1. 根据题目要求,进行各种程序测试与验证,并记录结果。 2. 上机调试程序。按各个程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根 据这些信息找到程序中的错误所在,然后修改程序,直至正确。 3. 详细记录数据的输入、输出信息,按要求写出实验报告。 三、实验内容 1. 开机;进入Turbo C集成工作环境,了解Turbo C集成工作环境及其菜单的使用,输入如下C语言源程序,并以exl.C存盘。 / *ex1.c* / #include main() { printf("Hello!\n"); printf("This is C program!\n"); } 试编译、连接、运行该程序,并按Alt+F5查看运行结果。 运行结果是: 2. 输入并调试运行以下程序,查看运行结果 (由此结果可以了解到在实验用的微型机上,几种数据类型所占的字节数)。 main() { printf("char\t%d bytes\n",sizeof(char)); printf("short\t%d bytes\n",sizeof(short)); printf("int\t%d bytes\n",sizeof(int)); printf("long\t%d bytes\n",sizeof(long)); printf("float\t%d bytes\n",sizeof(float)); printf("double\t%d bytes\n",sizeof(double)); } 运行结果是: 3. 输入并调试运行以下程序。 main() {int i,j,m,n; i=8;j=10;

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

C+程序设计实验报告-2013

C++程序设计 实验报告 专业计算机科学与技术班级 ____________ 学号 ____________ 姓名 ____________ 指导教师 __许加兵_ 信息与电子工程学院2013年9月-12月

C++程序设计实验报告 专业__________班级__________学号__________姓名__________ 成绩____________ 指导教师____________ 日期____________ 实验1 C++集成开发环境与C++函数程序设计 一、实验目的 1、了解和使用Visual Studio 2010的C++集成开发环境; 2、熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、学会完整的C++程序开发过程; 4、学习并掌握C++函数程序设计; 二、实验内容 1、安装、了解和使用Visual Studio 2010的C++集成开发环境; 2、通过以下的C++函数程序设计,熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、通过以下的C++函数程序设计,学会完整的C++程序开发过程; 4、完成以下的C++函数程序设计和调试: 1)编写一个函数print(),将一个整型向量输出到cout。此函数接受两个参数:一个字符串(用于“标记”输出)和一个向量。 2) 编写一个函数,接受一个vector 参数,返回一个vector ,其每个元素值是对应字符串的长度。此函数还找出最长和最短的字符串,以及字典序第一个和最后一个字符串。 三、简要说明C++开发环境安装和配置的过程

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

C程序设计上实验报告(完整版)

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017年3月6号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C程序的运行环境和运行C程序的方法 二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C 程序 三、实验内容: (1). 输入并运行一个简单的C程序。 (2). 设计程序,对给定的两个数求和。 (3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf()和scanf()函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar和putchar输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

算法程序设计实验报告

程序设计》课程设计 姓名:王 学号:20100034 班级:软件工程00 班 指导教师:王会青 成绩: 2010年 6 月 实验一.构造可以使n 个城市连接的最小生成树 专业:__软件工程___ 班级:__软件姓名:_王___ 学号:_20100034 完成日期:_2010/6/26 ________ 一、【问题描述】给定一个地区的n 个城市间的距离网,用Prim 算法或Kruskal 算法建立最小生成树,并计算得到的最小生成树的代价。 1 城市间的道路网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道

路,则将相应边的权值设为自己定义的无穷大值。 2 显示出城市间道路网的邻接矩阵。 3 最小生成树中包括的边及其权值,并显示得到的最小生成树的总代价。 4 输入城市数、道路数→输入城市名→输入道路信息→执行Kruskal 算法→执行Prim 算法→输出最小生成树 二、【问题分析】 1. 抽象数据类型结构体数组的定义: #ifnd ef ADJACENCYMATRIXED// 防止该头文件被重复引用 #define ADJACENCYMATRIXED // 而引起的数据重复定义 #define INFINITY 32767 // 最大值∞ #define MAX_VERTEX_NUM 20 // 最大顶点个数 typedef int VRType; // 权值,即边的值 typedef char InfoType; // 附加信息的类型,后面使用时会定义成一个指针 typedef char VertexType[MAX_VERTEX_NUM]; // 顶点类型 typedef enum {DG=1, DN, UDG, UDN} GraphKind; //{ 有向图,有向网,无向图,无向网} typedef struct ArcCell { VRType adj; //VRType 是顶点关系类型。对无权图,用1 或0 表示相邻否;对带权图,则为权值类型。 InfoType*info; // 该弧关系信息的指针

c程序设计实验报告.docx

. C++ 程序设计 实 验 报 告 : 班级: 学号: 指导教师:

. 实验一VC6.0 环境入门与简单程序设计 一、实验目的: 1、熟悉 VC++6.0 开了环境并编写简单的C++ 程序。 3、使用 C++ 语言编写简单的输入输出程序。 4、使用 VC++6.0 的 DEBUG 调试功能:单步执行、设置断点、观察变量值。 二、实验内容: 1、使用 VC++ 建立一个标准C++ 程序,编译、运行如下程序: #include Int main() { Cout<< ”Hello World!\n”; Cout<< ”Welcome to C++!\n”; } 2、编程计算图形的面积。程序可计算圆形、长方形、正方形等的面积,运行时首先提 示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来。 #include using namespace std; void circle_area(); void rectangle_area(); void square_area(); int main()

. { int i; while(1) { cout<<" 请输入图形类型(1:圆形; 2:长方形; 3:正方形; 4:退出。): "; cin>>i; switch(i) { case 1:circle_area();break; case 2:rectangle_area();break; case 3:square_area();break; case 4:return 0; default:cout<<"输入错误!\n"; } } } void circle_area() { float r,s; cout<<" 输入圆的半径:"; cin>>r; s=3.14*r*r; cout<<" 该圆的面积是:"<>a>>b; s=a*b; cout<<" 该长方形的面积是:"<>a; s=a*a; cout<<" 该正方形的面积是:"<

C#程序设计实验报告

学生实验报告 (理工类) 课程名称: C#程序设计专业班级:M11计算机科学与技术(专转本)学生学号: XXXXXXXX 学生姓名: XXX 所属院部:信息技术学院指导教师: XXX 2012 — 2013学年第 1 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:C#基础编程实验学时: 6 同组学生姓名:实验地点: A205 实验日期: 9月17日-9月24日实验成绩: 批改教师:批改时间:

实验1 C#基础编程 一、实验目的 1、熟悉Visual Studio .NET开发环境; 2、掌握C#应用程序的基本操作过程; 3、掌握C#的数据类型,运算符以及表达式的使用; 4、掌握分支和循环语句的使用方法; 5、掌握一维数组,二维数组及数组型数组的使用。 二、实验要求 (1)编写程序要规范、正确,上机调试过程和结果要有记录; (2)做完实验后给出本实验的实验报告。 三、实验设备、环境 安装有Visual Studio .NET软件。 四、实验步骤 1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。 五、实验内容 1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。using System; using System.Collections.Generic; using System.Text; namespace Test1_1 { class Program { static void Main(string[] args) { Console.WriteLine("1121412016 张明星!"); Console.ReadLine(); } } } 2、编写一个简单的Windows应用程序,在标签中显示你的姓名。 Form窗体的代码: using System; using System.Collections.Generic;

相关文档
最新文档