课程设计报告LinuxC程序设计

上传人:桔**** 文档编号:507880596 上传时间:2022-09-23 格式:DOC 页数:11 大小:958.50KB
返回 下载 相关 举报
课程设计报告LinuxC程序设计_第1页
第1页 / 共11页
课程设计报告LinuxC程序设计_第2页
第2页 / 共11页
课程设计报告LinuxC程序设计_第3页
第3页 / 共11页
课程设计报告LinuxC程序设计_第4页
第4页 / 共11页
课程设计报告LinuxC程序设计_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《课程设计报告LinuxC程序设计》由会员分享,可在线阅读,更多相关《课程设计报告LinuxC程序设计(11页珍藏版)》请在金锄头文库上搜索。

1、北京化工大学北方学院课程设计报告课程名称 系统软件实践 设计题目 Linux C 程序设计 专业、班级 软件1003班 学 号 100220071 姓 名 李超 指导教师 马睿 设计时间 2013年10月12日-2013年11月7日 2013年 10 月 27 日一、 引言(简要说明设计题目的目的、意义、内容、主要任务等)a) 目的i. 巩固和复习c语言的基础知识,进一步加深对c语言的理解和掌握ii. 课程设计提供了一个既动脑又动手,独立实践的机会,将课本上得理论知识和实际iii. 有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;iv. 熟悉linux的基本

2、操作,并且能够在linux环境下编写c语言程序、v. 培养在项目开发中团队合作精神,创新意识及能力b) 意义i. 综合应用c程序设计课程的理论基础和知识,掌握程序设计的一般方法,树立正确的设计思想,培养了分析问题和解决问题的能力ii. 学会了从实际的要求出发,合理的选择算法,正确的使用测试方法,培养了程序设计能力iii. 学会运用帮助和查阅有关技术资料的能力。c) 内容 程序一:有一个已经从小到大排列好的数组,先输入一个数,要求按照原来的规律将它插入到数组中。并用make工程管理器编译。(注意分割文件,可参考第一题的提示。)编写makefile文件。 程序二:设计两个程序,要求一个程序把三个人

3、的姓名和帐号余额信息,通过一次流文件I/O操作写入文件“file”,另一个格式输出帐号信息,把每个人的帐号和余额一一对应显示输出。 程序三: 设计一个程序,要求复制进程,子进程显示自己的进程号(PID)后暂停一段时间,父进程等待子进程正常结束,打印显示等待的进程号(PID)和等待的进程退出状态。 程序四: 设计一个程序,要求创建一个管道,复制进程,父进程往管道中写入字符串,子进程从管道中读取并输出字符串 d) 主要任务程序一:要求按照原来的规律将它插入到数组中。并用make工程管理器编译。(注意分割文件,可参考第一题的提示。)编写makefile文件。程序二:要求设计两个程序,要求一个程序把三

4、个人的姓名和帐号余额信息,通过一次流文件I/O操作写入文件“file”,另一个格式输出帐号信息,把每个人的帐号和余额一一对应显示输出。总结程序过程所用的相关知识(例如:语法,函数调用),分析解决程序运行过程出现的问题。写出程序代码的设计与运行结果。程序三:要求子进程显示自己的进程号,然后暂停一段时间,等正常结束后,父进程打印显示等待的进程号以及等待的进程的退出状态。总结程序过程所用的相关知识(例如:语法,函数调用),分析解决程序运行过程出现的问题。写出程序代码的设计与运行结果。程序四:此题目要求先创建一个管道,父进程往管道内写入一段字符串,子进程读取父进程写入的字符串并且输出。总结程序过程所用

5、的相关知识(例如:语法,函数调用),分析解决程序运行过程出现的问题。写出程序代码的设计与运行结果。二、 正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。)程序一: 程序描述:主程序调用其他程序的方法进行数组的插入。先定义一个排好序的数组,然后输入一个数排序。程序应用makefile文件进行了文件的分割。Makefile文件的作用:Makefile文件 Makefile 一个工程中的源文

6、件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 源程序:4.c#include int main ()paixu();4_1.c#include void paixu ()int a8=1,23,34,38,56,67,89;int i,m;printf(原数组顺序:);for(m=0;m7;m+)printf(%d ,am);printf(n请输入一个数字);scanf(%d,

7、&i);for(m=0;m8;m+)if(iam)int j;j=am;am=i;i=j;a7=i;printf(n得到数组:);for(m=0;m8;m+)printf(%d ,am);printf(n);Makefile文件main:4_1.o 4.ogcc 4_1.o 4.o -o aisDelta.o:4_1.cgcc 4_1.c -cmain.o:4.cgcc 4.c c运行结果:图1 排序程序二:程序描述:程序主要实现了文件流的操作,分别调用了fwrite和fread函数,两个函数的定义详细介绍如下:Fwrite函数和fread函数:直接输入输出操作是以记录为单位进行读写,相应的库

8、函数如下: 表头文件:#include 定义函数:size_t fread (void *ptr,size_t size,size_t nmemb,FILE *fp);size_t fwrite (const void *ptr,size_t size,size_t nmemb,FILE *fp); fread 函数用于执行直接输出操作。 参数ptr是指向读取数据的缓冲区的指针。 参数size是读记录的大小。 参数nmemb是所读记录的个数。 参数fp是指向要读取的流的FILE结构指针。fwrite函数用于执行直接输入操作。 参数这ptr是指向存放要输入数据的缓冲区的指针。 参数size是写入

9、记录的大小。 参数nmemb是所写记录的个数。 参数fp是指向要写入数据的流的FILE结构指针。调用函数fread和fwrite 的返回值是实际读取或写入的记录数目。 这个返回值应当同nmemb的预设值相同。只有当到达文件的末尾(只有在读取操作时有此情况)或出现读写错误时,会造成返回值比设定的nmemb值小,甚至是负值的情况。这时系统内的文件结束标志或文件错误标志会被置为相应的值。 源程序:2.c#include #define set_s(x,y,z) strcpy(sx.name,y);sx.pay=z;#define nmemb 3struct testchar name20;int p

10、ay;snmemb;int main()FILE *fp;set_s(0,赵普,1);set_s(1,赵国庆,0);set_s(2,吕玉彬,23);fp=fopen(yinhang,a+);fwrite(s,sizeof(struct test),nmemb,fp);fclose(fp);return 0;3.c#include #define nmemb 3struct testchar name20;int pay;snmemb;int main()FILE *fp;int i;fp=fopen(yinhang,r);fread(s,sizeof(struct test),nmemb,fp

11、);fclose(fp);for(i=0;inmemb;i+)printf(账号%d:%-20s余额%d:%dn,i,si.name,i,si.pay);return 0;运行结果:图2 读取程序三: 程序描叙:要创建一个进程,最基本的系统调用是fork。fork的作用是根据一个现有的进程复制出一个新进程,原来的进程称为父进程(Parent Process),新进程称为子进程(Child Process)。在Shell下输入命令可以运行一个程序,是因为Shell进程在读取用户输入的命令之后会调用fork复制出一个新的Shell进程,然后新的Shell进程调用exec执行新的程序#include

12、 #include pid_t fork(void);pid_t vfork(void);调用fork时,系统将创建一个与当前进程相同的新的进程。它与原有的进程具有相同的数据、连接关系和在程序同一处执行的连续性。将原有的进程称为父进程,而把新生成的进程称为子进程。子进程是父进程的一个复制,子进程获得同父进程相同的数据,但是同父进程使用不同的数据段和堆栈段。流程图:源程序:#include #include #include #include int main ()pid_t pid,vpid;int status,i;pid=fork();if(pid=0)printf(zheshizijin

13、cheng jinchenghaoshi:%dn,getpid();sleep(5);exit(6);elseprintf(zheshifujincheng zhengzaidengdaizijincheng.n);vpid=wait(&status);i=WEXITSTATUS(status);printf(dengdaidejinchengde jinchenghaoshi:%d,jieshuzhutai:%dn,vpid,i);运行结果:图3 存款 程序四:程序描述:此程序主要实现了管道的创建,管道的读写操作。(1)管道的创建:表头文件:#include 定义函数:int pipe(int 2); 此函数用于创建一个管道。参数是一个两元整型数组,用于存放调用该函数所创建管道的两个文件描述符。 0 存放管道读取端的文件描述符 ; 1存放管道写入端的文件描述符。 调用成功时,返回值为0;调用失败时,返回值为-1。 (2)、管道的读写操作:read(由已打开的文件读取数据)表头文件:#include定义函数:ssize_t read(int fd,void * buf ,size_t count);函数说明:read

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号