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