《C及C++程序设计》实验报告
序有些错误,请上机调试并改正之。 #include
{ struct node
{ char ch; struct node *l; }*h,*p; char c; h=NULL;
while ((c=getchar())!=?\\n?)
{ p=(int *)malloc(sizeof(struct node));
p->ch=c; h=p->l; p=h; } p=h;
while(p!=NULL) { printf(“<”,p->ch); p++; } putchar(?\\n?); }
四、 实验总结
27
《C及C++程序设计》实验报告
实验名称: 算法设计与简单分析 实验时间: 年 月 日 第 周 星期
实验属性:综合性
一、 实验目的
1.掌握文件以及缓冲文件系统、文件指针的基本概念;
2.掌握用C的标准I/O函数对文件进行打开、关闭、读写等操作; 3.进一步掌握程序设计、多函数编程的基本方法; 4.理解模块化程序设计的内涵; 5.熟练掌握单向链表的操作方法。
二、实验预备工作
1. 复习有关文件、文件指针的基本概念;
2. 复习fopen()、fclose()、fscanf()、fprintf()、feof()等函数使用格式和功能; 3. 进一步理解结构化程序设计的三种结构;
4. 进一步复习函数定义、声明、调用的方法及函数参数的传递方式。
三、实验内容
1、填空题
阅读、调试并写出下列程序的功能______________________________________。 #include \ main()
{ FILE *fp;
char ch,fname[10];
printf(\ gets(fname);
if((fp=fopen(fname,\w\ { printf(\ exit(0);
}
printf(\ while((ch=getchar())!='!') fputc(ch,fp); fclose(fp); }
2、改错题
28
《C及C++程序设计》实验报告
[源程序] int main(void) { int *fp; int k;
fp=fopen(“gelatin”); for(k=0;k<30;k++)
fputs(fp, “Nanette eats gelatin.”); fclose(“gelatin”); return 0; }
3、程序设计题
设计一简单的学生成绩管理系统,学生成绩信息以文件形式存储在外存中,需要操作时,需调入内存以链表形式存放;数据的基本操作包括添加、删除、插入、显示全部记录等。
(1) 采用菜单驱动方式;程序显示如下菜单:
****Students' Grade Management System**** /*菜单选择*/ 1. Input Records 2. Display All Records 3. Insert a Record 4. Delete a Record 5. write data to file 0. Quit
*****************************************
(2) 每个学生成绩信息包括学号、姓名、成绩,每个学生的信息构成一条记录。 (3) 以文件形式存储学生成绩信息,以链表形式进行添加、插入、删除和显示全部记录等 操作;
(4) 根据文件创建链表,操作完毕后,以文件存储链表数据。
(5) 部分函数已完成,请完成剩余函数。
#include
#include
typedef struct /*定义学生成绩信息结构体*/ {
char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ }SSCORE;
29
《C及C++程序设计》实验报告
int menu(); /*菜单函数*/
void add(SSCORE * link); /*增加一批记录*/
void display(SSCORE *link); /*显示全部记录*/
void insert(SSCORE *link, char number[]); /*根据学号,在该学号的记录前增加一记录*/ void delete(SSCORE *link, char number[]); /*根据学号,删除一条记录*/ void write(SSCORE *link, char fname[]); /*链表数据写入指定文件*/
SSCORE * createl(char fname[]); /*根据文件,创建链表,并返回该链表的头指针*/
void main() /*主函数*/
{ char c;
char fnameo[20],fnames[20],numid[20]; SSCORE *stulink=NULL;
system(\清屏*/
printf(\
scanf(\ /*输入要打开文件的文件名*/ stulink=create(fname); while(1)
{ c=menu();
switch(c) /*判断具体操作*/ { case 1: printf(\
add(stulink);
system(\ case 2:
printf(\
display(stulink); /*显示所有记录*/
/*增加一批记录*/
system(\ case 3:
printf(\
printf(\ scanf(\ /*输入学号*/ insert(stulink,numid); /*根据学号,在该学号记录前增加一条记录*/
system(\ case 4:
printf(\
printf(\
scanf(\ /*输入学号*/ delete(stulink,numid);
/*根据学号,删除一条记录*/
system(\
30
相关推荐: