资源描述:
《linux编程技术及源代码.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、西安邮电大学(计算机学院)课内实验报告实验名称:Linux编程技术专业名称:软件工程班级:学生姓名:学号(8位):指导教师:实验日期:2014年9月22日一.实验目的及实验环境熟悉Linux基本命令,学会很好的运用Gdb调试。二.实验内容1.上机练习理论课程中讲过的命令2.上机练习使用tar3.练习使用vim和gcc,编程实现下面的问题。建立一个结构体数组in,输入10名学生的姓名、班级三门课程的成绩。将这些信息写入文件info.txt中,随后将文件中的信息读入数组out4.编程实现自己的error函数5.使用gdb调试下面的程序:#includ
2、eintmain(){inta[5][6],*p,i,j;for(i=0;i<5;i++){for(j=0;j<6;j++){scanf("%d",a[i]+j);}}p=a;for(i=0;i<5*6;i++){printf("%d",*p+i);}return(0);}三.方案设计1.查询Linux手册掌握和运用一些学过的基本命令2.在Linux环境下,熟练操作环境3.温习所学过的数组,文件等所学过的知识对文件进行编译4.学会Gdb的基本调试3.t编程:#include#include#
3、include#include#definePT"%st%st%dt%dt%d",stu->name,stu->grade,stu->score1,stu->score2,stu->score3typedefstructin{charname[20];chargrade[20];intscore1;intscore2;intscore3;structin*next;}in;in*creat(){in*head,*r,*stu;head=(in*)malloc(sizeof(in));/*创建头结
4、点*/head->next=NULL;r=head;inti;for(i=1;i<=10;i++){stu=(in*)malloc(sizeof(in));printf("请输入第%d个学生的信息:",i);printf("姓名,班级,score1,score2,score3");scanf("%s%s%d%d%d",stu->name,stu->grade,&stu->score1,&stu->score2,&stu->score3);fflush(stdin);r->next=stu;r=stu;}r->next=NULL;return(
5、head);}intsave(in*h){in*stu;FILE*fp;fp=fopen("info.txt","wt");if(fp==NULL){printf("写文件出错!");fclose(fp);exit(0);}for(stu=h->next;stu!=NULL;stu=stu->next)fprintf(fp,PT);printf("tttt^_^文件已成功保存!");fclose(fp);}read(){in*head,*r,*stu,out[10+1];FILE*fp;fp=fopen("info.txt",
6、"rt");if(fp==NULL)/*判断文件是否存在*/{printf("读文件出错,退出!");exit(0);}head=(in*)malloc(sizeof(in));/*创建头结点*/head->next=NULL;r=head;inti=1;while(!feof(fp))/*文件未结束*/{fscanf(fp,"%s%s%d%d%d",out[i].name,out[i].grade,&out[i].score1,&out[i].score2,&out[i].score3);i++;}fclose(fp);printf
7、("文件信息已正确读出.");for(i=1;i<=10;i++){printf("%st%st%dt%dt%d",out[i].name,out[i].grade,out[i].score1,out[i].score2,out[i].score3);}}intmain(){in*head=creat();intb=save(head);read();return0;}5.四.测试数据及运行结果1.正常测试数据(3组)及运行结果;1.非正常测试数据(2组)及运行结果。五.总结1.实验过程中遇到的问题及解决办法;查询linux命
8、令,有些不熟悉,所以不能很好的掌握文件部分没有掌握基础知识,所以遇到了很多基础知识的错误在读写文件时,一定要首先判断文件是否打开。在读写