1、程序一: 输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。并用make工 程管理器编译。(注意分割文件,可参考第一题的提示。)编写makefile文件。程序二: 设计一个C程序,完成文件的复制工作。要求通过使用read函数和write函数复制 “/etc/passwd”文件到“test”文件中,文件名当程序运行时从键盘键入。程序三: 设计一个程序,要求用户进程复制出一个子进程,父进程向子进程发出信号,子进 程收到此信号,结束子进程。4、主要任务(1)分析题目的要求;(2)总结各个程序所涉及的相关知识点;(3)掌握涉及的各种算法;(4)画出部分模块的流程图;(5)程序代码的涉及与
2、实现。二、 正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。) 1、程序介绍:输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。 并用make工程管理器编译。)编写makefile 文件。 2、功能模块图 3、函数功能main()函数:这是主函数,完成最后的运行。Add()函数:求和函数,返回两数之和。Sub()函数:求差函数,返回两数之差。Mul()函数:求积函数,返回
3、两数之积。Dev()函数:求商函数,返回两数之商。Show()函数:显示运行的结果。 4、主要源程序 #include common.h int get24(int a, int b, int *temp) int i,j,k; for (i = 0; i 4; i += 1) for (j = 0; j j += 1) for (k = 0; k k += 1) switch(i) case 0: *temp = add(a0,a1); break; case 1: *temp = sub(a0,a1); case 2: *temp = mul(a0,a1); case 3: *temp =
4、 dev(a0,a1); switch(j) *temp = add(*temp,a2); *temp = sub(*temp,a2); *temp = mul(*temp,a2); *temp = dev(*temp,a2); switch(k) *temp = add(*temp,a3); if (*temp=24) b0 = i; b1 = j; b2 = k; *temp=24; show(a,b,*temp);return 0; *temp = sub(*temp,a3); *temp = mul(*temp,a3); *temp = dev(*temp,a3); printf(凑数
5、失败!n); 5、运行结果 1、程序说明要求通过使用read函数和write函数复 制“/etc/passwd”文件到“test”文件中,文件名当程序运行时从键盘键入。2、功能模块图main()函数:定义字符数组ch,buf,定义整型变量fd,fd1,len。open()函数:打开文件以及创建文件。read()函数:读取数据到管道中。write()函数:将管道的数据写入到fd1.close()函数:关闭文件及进程。 #includeunistd.hfcntl.hsys/stat.h int main(void) char ch128; char buf32; int fd, fd1, len
6、= 128;请输入文件名: scanf(%s, ch); sprintf(buf, ./test/%s fd=open(/etc/passwd, O_RDONLY); fd1=open(buf, O_WRONLY | O_CREAT, 0777); while (len = read(fd, ch, 128),ch); write(fd1, ch, len); close(fd); close(fd1); return 0;设计一个程序,要求用户进程复制出一个子进程,父进程向子进程发出信号,子进 main()函数:定义整型变量ret. fork()函数:复制进程,返回值存在变量result中。
7、 raise()函数:发送SIGSTOP使子进程暂停。 kill()函数:发送SIGKILL杀死子进程。sys/types.hsemaphore.hsignal.hsys/wait.h int main () pid_t result; int ret; result=fork(); int newret; if(result0) perror(创建子进程失败 exit(1); else if (result=0) raise(SIGSTOP); exit(0); else 子进程的进程号(PID)是: %dn,result); if(waitpid(result,NULL,WNOHANG)=
8、0) if(ret=kill(result,SIGILL)=0)用kill函数返回值是:%d,发出的SIGKILL信号结束的进程 进程号:%dn,ret,result); elseperror(kill函数结束子进程失败三、 结论(应当准确、完整、明确精练;也可以在结论或讨论中提出建议、设想、尚待解决问题等。为了争强我们的C程序的实际操作与设计能力我编写了这个课程设计,从程序的暂停构思到程序的算法设计及程序的编写再到最后的调试,我绞尽脑汁。虽然有遇到很多困难,但是我都克服了,我运用学习到的LINUX知识攻克了所有难关。经过这次的锻炼,我学习到了比书本上的知识更重要的知识,那就是实践。在实践中不
9、畏惧艰辛,勇往直前,同过上网查资料以及相关文献的查阅,向牛逼人士虚心请教,这样才能攻无不克,战无不胜!通过这次的课程设计,拓宽了我们的知识面,打破了课堂以及书本的局限,在一会工作的道路上也要保持这种积极向上的心态,只要坚持不懈地努力下去,人生道路上的任何艰难险阻都可以不足为惧。在互帮互助的过程中,我们交流着自己的思想,体会到了团队精神的主要性。在今后的工作生涯中,更是生活在一个团体里,如果没有团队精神,工作将是乏味的,效率自然也是很差的。这次的锻炼为今后的毕业设计做了个完美的铺垫,让我熟悉了如何去完成一个项目。激发了我自学的能力,在设计时遇到的许多问题都通过自学的方式轻松解决,这不仅帮助我完成
10、了一项作业,更是激励了我的自信心,让我更有把握,更有信心,更有兴趣继续学下去。虽然IT的道路并不是那么丰富多彩,但只要有兴趣的话,工作再苦再累也是值得的。在最后,我希望自己可以把专业知识把握得更透彻,勤加练习。在21世纪这个信息时代,我们就是时代的先驱,我们要比别人走得更艰难也更遥远。路漫漫其修远兮,吾将上下而求索;天降大任于斯人也,必将苦其心志,劳其筋骨,饿其体肤。做好吃亏的准备,迎接最美好的明天。我会继续我们的兴趣编写程序的,相信在越来越多的尝试之后,自己会不断进步和提高。4、 参考文献1 邱世华.Linux操作系统之奥秘.北京:电子工业出版社,20082 李洋,汪虎松.RedHatLinux9系统与网络管理教程.北京:电子工业出版社,20063 骆耀祖,刘远东,骆珍仪.Linux网络服务器管理教程.北京:社,20074 柳青.Linux应用教程.北京:清华大学出版社,20085 李成大.操作系统Linux篇.北京:人民邮电出版社,2005五、 指导教师评语 签名: 年 月 日课程设计成绩(五级分制)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1