好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Linux课程设计Linux环境下C语言程序设计.doc

20页
  • 卖家[上传人]:人***
  • 文档编号:488646173
  • 上传时间:2023-02-21
  • 文档格式:DOC
  • 文档大小:271KB
  • / 20 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 课程设计报告课程名称 系统软件实践 设计题目 Linux环境下C语言程序设计 专业、班级 软件0802 学 号 080203051 2010 年 10 月 6日一、 引言(简要说明设计题目的目的、意义、内容、主要任务等)1. 目的1) 巩固和复习c语言的基础知识,进一步加深对c语言的理解和掌握2) 课程设计提供了一个既动脑又动手,独立实践的机会,将课本上得理论知识和实际3) 有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的4) 能力;5) 熟悉linux的基本操作,并且能够在linux环境下编写c语言程序、6) 培养在项目开发中团队合作精神,创新意识及能力2. 意义1) 综合应用c程序设计课程的理论基础和知识,掌握程序设计的一般方法,树立正 确的设计思想,培养了分析问题和解决问题的能力2) 学会了从实际的要求出发,合理的选择算法,正确的使用测试方法,培养了程序设计能力3) 学会运用帮助和查阅有关技术资料的能力。

      3. 内容 程序一:制作一个可供小学数学运算的程序:10以内加减法,能根据输入题数出题,判断题是否正确,最后计算分数例如:请输入题数:21+5=2+4=由用户输入答案,程序根据答案判断正误,输出正确率(%)并用make工程管理器编译注意分割文件,可参考第一题的提示编写makefile文件 程序二:设计一个程序,要求新建一个文件“hello”,利用write函数将“Linux下c软件设计”字符串写入该文件 程序三: 利用命名管道实现两个进程间的通信 程序四: 服务器通过socket连接后,向客户端发送字符串“连接上了”在服务器上显示客户端的IP地址或域名4. 主要任务1) 分析题目的要求,2) 总结各个程序所涉及的相关知识点3) 各种算法的涉及4) 画出部分模块的流程图5) 程序代码的设计与实现二、 正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。

      程序一: 流程图: 开始a=rand()%10b=rand()%10unsigned time time=0Srand(time)a+b=,判断正误给出正确答案x=rand()%2x=rand()%2a-b=,判断正误给出正确答案a+b=,判断正误给出正确答案a-b=,判断正误给出正确答案输出测试相关结果goto语句实现是否循环a#include void print_random(int count, int *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; }else{ printf("错误%d\n",d); total+=0; } if(ii==count){ break; } ii++; i=*a; a++; j=*a; a++; d=0; } printf("正确率为:%d%\n",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(void){ printf("请您输入数量:"); int c; scanf("%d",&c); int a[200]; gen_random(c,a); printf("%d",a[2]); print_random(c,a); return 0;} Makefile文件:main:start.o main.o gcc start.o main.o -o xxlxisDelta.o:start.cgcc start.c -cmain.o:main.cgcc main.c -c 运行结果图:程序二: 程序描述:此程序主要实现了文件的打开,关闭,读取和写入。

      1. creat 函数 creat 的作用是在目录中建立一个空文件,该函数的使用方法如下所示 int creat(char * pathname, mode_t mode); 函数的参数 pathname 表示需要建立文件的文件名和目录名,mode 表示这个文件的权限文件权限的设置见本章第一节所述文件创建成功时返回创建文件的编号,否则返回-1 使用这个函数时,需要在程序的前面包含下面三个头文件 #include #include #include 如果创建文件不成功,可用 errno 捕获错误编号然后输出creat 函数可能发生的错误如下所示 EEXIST:参数 pathname 所指的文件已存在 EACCESS:参数 pathname 所指定的文件不符合所要求测试的权限 EROFS:欲打开写入权限的文件存在于只读文件系统内。

      EFAULT:参数 pathname 指针超出可存取的内存空间 EINVAL:参数 mode 不正确 ENAMETOOLONG:参数 pathname 太长 ENOTDIR:参数 pathname 为一目录 ENOMEM:核心内存不足 ELOOP:参数 pathname 有过多符号链接问题 EMFILE:已达到进程可同时打开的文件数上限2. open 函数 open 的作用是打开一个文件,使文件处于可读写的状态这个函数的使用方法如下所示 int open(char *pathname, int 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 已被设置,此指令会去检查文件是否存在文件若不存 在 则建立该文件,否则将导致打开文件错误此外,若 O_CREAT 与 O_EXCL 同时设置 时,如果要打开的文件为一个链接,则会打开失败 O_NOCTTY:如果要打开的文件为终端机设备时,则不会将该终端机当成进程控制终 端机 O_TRUNC:若文件存在并且以可写的方式打开时,此标志会清空文件这样原来的文件内容会丢失 O_APPEND:以附加的文件打开文件当读写文件时会从文件尾开始向后移动,写入的数据会以附加的方式加入到文件后面 O_NONBLOCK:以不可阻断的方式打开文件,也就是无论文件有无数据读取或等待操作,都会立即打开文件。

      O_NDELAY:O_NONBLOCK #include O_SYNC:以同步的方式打开文件,所有的文件操作不写入到缓存 O_NOFOLLOW:如果参数 pathname 所指的文件为一符号链接,则会打开失败。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.