Linux课程设计Linux环境下C语言程序设计.doc
《Linux课程设计Linux环境下C语言程序设计.doc》由会员分享,可在线阅读,更多相关《Linux课程设计Linux环境下C语言程序设计.doc(20页珍藏版)》请在三一办公上搜索。
1、 课程设计报告课程名称 系统软件实践 设计题目 Linux环境下C语言程序设计 专业、班级 软件0802 学 号 080203051 2010 年 10 月 6日一、 引言(简要说明设计题目的目的、意义、内容、主要任务等)1. 目的1) 巩固和复习c语言的基础知识,进一步加深对c语言的理解和掌握2) 课程设计提供了一个既动脑又动手,独立实践的机会,将课本上得理论知识和实际3) 有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的4) 能力;5) 熟悉linux的基本操作,并且能够在linux环境下编写c语言程序、6) 培养在项目开发中团队合作精神,创新意识及能力2.
2、意义1) 综合应用c程序设计课程的理论基础和知识,掌握程序设计的一般方法,树立正 确的设计思想,培养了分析问题和解决问题的能力2) 学会了从实际的要求出发,合理的选择算法,正确的使用测试方法,培养了程序设计能力3) 学会运用帮助和查阅有关技术资料的能力。3. 内容 程序一:制作一个可供小学数学运算的程序:10以内加减法,能根据输入题数出题,判断题是否正确,最后计算分数。例如:请输入题数:21+5=2+4=由用户输入答案,程序根据答案判断正误,输出正确率(%)。并用make工程管理器编译。(注意分割文件,可参考第一题的提示。)编写makefile文件。 程序二:设计一个程序,要求新建一个文件“h
3、ello”,利用write函数将“Linux下c软件设计”字符串写入该文件。 程序三: 利用命名管道实现两个进程间的通信。 程序四: 服务器通过socket连接后,向客户端发送字符串“连接上了”。在服务器上显示客户端的IP地址或域名。4. 主要任务1) 分析题目的要求,2) 总结各个程序所涉及的相关知识点3) 各种算法的涉及4) 画出部分模块的流程图5) 程序代码的设计与实现二、 正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言
4、流畅、结构严谨,符合各学科、专业的有关要求。)程序一: 流程图: 开始a=rand()%10b=rand()%10unsigned time time=0Srand(time)a+b=,判断正误给出正确答案x=rand()%2x=rand()%2a-b=,判断正误给出正确答案a+b=,判断正误给出正确答案a-b=,判断正误给出正确答案输出测试相关结果goto语句实现是否循环ab成立不成立 源代码: start.c文件: 该文件主要处理算法和逻辑,学生开始答题,运算逻辑的和结果 以及答题结果。#include #include void print_random(int count, int *
5、a) int ii = 1; int i=*a; a+; int j=*a; a+; int c; int total=0; int d=0; int ok = 0; printf(本题库中只有%d题,请认真答题,每题5分n,count); while(1) printf(第%d题:, ii); printf(%d , i); printf(+); printf(%d , j); printf(=?); printf(n); printf(请您输入结果:); scanf(%d,&c); d=i+j; if(c=d) printf(正确n);ok+; total+=5; elseprintf(错
6、误%dn,d); total+=0; if(ii=count) break; ii+; i=*a;a+; j=*a;a+; d=0; printf(正确率为:%dn,ok*100/count); printf(您最后的总分是:%d,total); printf(n); main.c 文件: 该文件主要包含主函数,逻辑的控制,以及学生确定题的数量 还包括生成题库的函数。 #include #include void gen_random(int count,int *a) int i; for (i = 0; i count*2; i+) *a = rand() % 10;a+;int main
7、(void)printf(请您输入数量:);int c; scanf(%d,&c);int a200; gen_random(c,a);printf(%d,a2); print_random(c,a); return 0; Makefile文件:main:start.o main.ogcc start.o main.o -o xxlxisDelta.o:start.cgcc start.c -cmain.o:main.cgcc main.c -c 运行结果图:程序二: 程序描述:此程序主要实现了文件的打开,关闭,读取和写入。1. creat 函数 creat 的作用是在目录中建立一个空文件,该
8、函数的使用方法如下所示。 int creat(char * pathname, mode_t mode); 函数的参数 pathname 表示需要建立文件的文件名和目录名,mode 表示这个文件的权限。文件权限的设置见本章第一节所述。文件创建成功时返回创建文件的编号,否则返回-1。 使用这个函数时,需要在程序的前面包含下面三个头文件。 #include #include #include 如果创建文件不成功,可用 errno 捕获错误编号然后输出。creat 函数可能发生的错误如下所示。 EEXIST:参数 pathname 所指的文件已存在。 EACCESS:参数 pathname 所指定的
9、文件不符合所要求测试的权限。 EROFS:欲打开写入权限的文件存在于只读文件系统内。 EFAULT:参数 pathname 指针超出可存取的内存空间。 EINVAL:参数 mode 不正确。 ENAMETOOLONG:参数 pathname 太长。 ENOTDIR:参数 pathname 为一目录。 ENOMEM:核心内存不足。 ELOOP:参数 pathname 有过多符号链接问题。 EMFILE:已达到进程可同时打开的文件数上限。2. open 函数 open 的作用是打开一个文件,使文件处于可读写的状态。这个函数的使用方法如下所示。 int open(char *pathname, in
10、t flags); int open(char *pathname,int flags, mode_t mode); 在上一节所示函数的参数列表中,pathname 表示要打开文件的路径字符串。参数 flags是系统定义的一些整型常数,表示文件的打开方式。Flags 的可选值如下所示。 O_RDONLY:以只读方式打开文件。 O_WRONLY:以只写方式打开文件。 O_RDWR:以可读写方式打开文件。 上述三种旗标是互斥的,也就是不可同时使用,但可与下列的旗标利用“|”运算符组合。 O_CREAT:若要打开的文件不存在则自动建立该文件。 O_EXCL:如果 O_CREAT 已被设置,此指令会去
11、检查文件是否存在。文件若不存 在 则建立该文件,否则将导致打开文件错误。此外,若 O_CREAT 与 O_EXCL 同时设置 时,如果要打开的文件为一个链接,则会打开失败。 O_NOCTTY:如果要打开的文件为终端机设备时,则不会将该终端机当成进程控制终 端机。 O_TRUNC:若文件存在并且以可写的方式打开时,此标志会清空文件。这样原来的文件内容会丢失。 O_APPEND:以附加的文件打开文件。当读写文件时会从文件尾开始向后移动,写入的数据会以附加的方式加入到文件后面。 O_NONBLOCK:以不可阻断的方式打开文件,也就是无论文件有无数据读取或等待操作,都会立即打开文件。 O_NDELAY
12、:O_NONBLOCK。 #include O_SYNC:以同步的方式打开文件,所有的文件操作不写入到缓存。 O_NOFOLLOW:如果参数 pathname 所指的文件为一符号链接,则会打开失败。 O_DIRECTORY:如果参数 pathname 所指的文件的目录不存在,则打开文件失败。3. wirte 函数 write 可以把一个字符串写入到一个已经打开的文件中。这个函数的使用方法如下所示。ssize_t write (int fd,void * buf,size_t count);在参数列表中,fd 是已经打开文件的文件号,buf 是需要写入的字符串,count 是一个整型数,表示需要
13、写入的字符个数。size_t 是一个相当于整型的数据类型,表示需要写入的字节的数目。将字符串写入文件以后,文件的写位置也会随之移动。如果写入成功,write 函数会返回实际写入的字节数。发生错误发生时则返回-1,可以用errno 来捕获发生的错误。可能发生的错误如下所示。 EINTR:此操作被其他操作中断。 EAGAIN:当前打开文件是不可写的方式打开的,不能写入文件。 EADF:参数 fd 不是有效的文件编号,或该文件已关闭。代码解析:#include #include #include #include /*包含头文件。*/#include main() /*定义打开的文件号。*/ int
14、 fd; /*定义要写入文件的路径*/ char path=hello; char s=Linux下c软件设计; /*定义要写入的字符串。*/ /*使用错误号。*/ extern int errno;1) /*用 creat 函数创建一个文件*/if(creat(path,0766)=-1) /*不能创建文件。*/ printf(cantt create the file %s.n,path); printf(errno:%dn,errno); /*显示错误号。*/ printf(ERR :%sn,strerror(errno); /*显示错误信息。*/ /*另一种情况。*/else /*显示
15、创建成功。*/ printf(created file %s.n,path); /*打开文件。*/ fd=open(path,O_WRONLY|O_CREAT); /*打开文件是否成功。*/ if(fd!=-1) /*文件打开成功。*/ printf(opened file %s .n,path); else /*文件打开不成功。*/ printf(cantt open file %s.n,path); printf(errno:%dn,errno); /*显示错误号。*/ printf(ERR :%sn,strerror(errno); /*显示错误信息。*/ /*将内容写入到文件。*/ w
16、rite(fd,s,sizeof(s); /*关闭文件。*/ close(fd); /*显示信息。*/ pintf(Done); 程序运行结果图: 程序三: 程序描述:主要完成进程的应用,实现进程间的通信问题 #include #include #include #include int main() int pipe_fd2; pid_t pid; char r_buf4; char* w_buf256; int childexit=0; int i; int cmd; memset(r_buf,0,sizeof(r_buf); if(pipe(pipe_fd)0) /parent: sen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 课程设计 环境 语言程序设计
链接地址:https://www.31ppt.com/p-2385022.html