XXXX
C语言程序课程设计总结报告
题 目 简单的安装程序
指导教师 XXX
院 系 工学院
专 业 计算机科学与技术
班 级 XXX
学 号 XXXXXXXXXXXX
姓 名 XXXX
成 绩
二〇一四年六月二十八日
进度安排表
短学期实践综合实验进度表
选题名称:简单的安装程序
班级: XXX 学号:X 姓名XXXX
任课教师XXXX
一、系统设计 起始时间及计划完成时间:6.23——6.24
二、系统实现 起始时间及计划完成时间:6.24——6.27
三、测试 起始时间及计划完成时间:6.28——6.28
中期报告表
C语言课程设计中期报告(系统设计)
选题名称:简单的安装程序
班级:XXX 学号:XXX 姓名:XXX
任课教师:XXX 起始时间及计划完成时间: 6.24—6.27
一、题目(问题)描述
该安装程序主要实现的是文件的创建,判断,复制;在安装过程中可以输入目标文件夹,能实现目标文件夹的自动建立功能,对安装所需文件夹需要判断对已存在的文件夹需要跳过或者退出安装。
二、问题分析
实现最基本安装的功能需要进行目标文件夹的自动创建,目标判读,读入文件列表,最后复制文件,利用字符串方式文件读写建立文本文件的读写程序和数据块读写操作实现文件复制,但是首先需要利用函数判断目标文件夹是否存在,在读入过程中需要打开目标文件夹,最后考虑界面优化问题和错误提示等。
三、系统设计
1.程序总体结构
主菜单
重命名
跳过
复制
退出安装
判断复制过程中目标文件夹是否已存在
是
否
安装完成
2.界面设计
界面设计运用了简单的菜单布局,菜单第一行进行该菜单的描述,后面若干行都是该菜单判断的过程和功能的描述。
主菜单
/***********************简单的安装程序*******************************/
/***********************请输入要安装的文件夹名**************************/
目标文件夹存在
1. 重命名
2. 跳过
3. 退出安装
目标文件夹不存在
1.复制
目录
第一章 系统功能说明1
第二章 程序结构1
2.1程序结构说明1
2.2重要数据说明2
2.3函数清单4
第三章 使用说明6
3.1安装手册6
3.2使用手册6
第四章 系统设计难点及其解决方法7
4.1 函数的运用7
4.2 文件的复制7
4.3 编译的错误7
丽水学院C语言程序课程设计总结报告
第一章 系统功能说明
本程序可实现简单的安装功能,对目标文件夹判定是否存在而进行重命名,跳过,复制,退出安装等功能,首先定义文件的路径,以只读方式打开目标文件夹,读入文件列表,在多级文件夹下和本级文件夹下,如果没有这个文件,直接安装完成;如果存在这个文件,就分跳过,覆盖,退出三种情况,程序中创建三个选择,用户可以自己选择以哪种方式完成该程序。
对文件夹的创建是利用creatpaperfile和while来实现的,该程序还可以直接创建多级文件夹,复制多级文件夹下面的内容,弥补了单一的不足,因此在操作上大大节省了用户的时间,减少了繁琐的步骤。
本安装程序的结构模拟了一个循环,实则是利用while语句,进入该程序首先展示的是需要安装的文件夹名字,利用函数调用创建文件夹,也可创建多级文件夹,利用if语句区分多级文件和本级文件夹下,利用swicth语句,来分三种情况,复制过程中,利用数据块读写操作实现文件复制,从源文件一次读取4096个字节的数据块,如果读出数据个数等于0则推出循环,然后按读取的数量向目标文件写入数据块,这种数据块方式读写比字符方式读写速度要快的多。
9
第二章 程序结构
2.1程序结构说明
该程序大体结构如图2-1所示。
主菜单
重命名
跳过
复制
退出安装
判断复制过程中目标文件夹是否已存在
是
否
安装完成
图2-1 安装程序大体结构
程序结构如图所示,通过主菜单可直接判断,用户可选择安装
2.2重要数据说明
//-------------创建文件夹(可以创建多级文件夹)--------------
int creatpaperfile(char *filename)
{
char *t=filename,tc;
do
{
while(*t!=\\&&*t!=0) t++;
tc=*t;
*t=0;
mkdir(filename);
*t++=tc;
}while(tc);
//----------------读入文件列表--------------
while(!feof(file1))
(
fscanf(file1,"%s",filename1);
strcpy(tempd+size,filename1);
file2=fopen(tempd,"r");
fscanf(file1,"%s",tempc+sizef);
//---------------在多级文件夹下----------------
if(strcmp(tempc+sizef,"NULL")!=0)
{
strcat(tempc,"\\");
creatpaperfile(tempc);
fscanf(file1,"%s",tempc+strlen(tempc));
}
//-----------------存在这个文件-------------------------
fclose(file3);
printf("文件%s已存在,请选择操作\nP:跳过并继续安装 \nC:覆盖安装 E:结束安装\n请选择:",tempd+size);
scanf("%c%*c",&t);
switch(t)
{
case P:case p://跳过
{
}break;
case C:case c: //覆盖
{
wirte(file2,file3,tempc);
}break;
case E:case e: //退出
{
}break;
close(file2);
}
}
//--------------复制文件---------------
if((file2=fopen(filename2,"wb"))==NULL) return 1;
while((bufcount=fread(temp,1,4096,file1))>0)
{
fwrite(temp,1,bufcount,file2);
}
return 0;
}
void error(char *s)
{
printf(s);
exit(1);
//------------------------判断-------------------------
printf("文件%s已存在,请选择操作\nP:跳过并继续安装 \nC:覆盖安装 E:结束安装\n请选择:",tempd+size);
scanf("%c%*c",&t);
switch(t)
{
case P:case p://跳过
{
}break;
case C:case c: //覆盖
{
wirte(file2,file3,tempc);
}break;
case E:case e: //退出
{
}break;
fclose(file2);
2.3函数清单
1.int creatpaperfile(char *)//该函数返回值为整形,传递一个字符指针,创建文件夹,也可以创建多级文件夹
2.int wirte(FILE *,FILE *,char *);//该函数传递一个文件指针,如果执行成功则返回实际写入的数据块的个数,如果遇到文件结束或者出错,则返回0。
3.strlen(tempd)//计算tempd数组的长度。
4.strcpy(tempc,filename)//将fiename拷贝到tempc中
5.strcat(tempc,"\\");//连接两个字符串
6.file1=fopen("安装文件列表\\安装文件列表.txt","r");// 以只读方式打开安装列表
7.Feof//文件结束检测函数,如读写操作到达文件尾,则返回非0值,否则返回0值
8.strcmp(tempc+sizef,"NULL")//比较两字符串的ASCALL值大小
9.strcat(tempc,"\\");//将后面的字符串连接到前面的字符串后面
10.fclose(file3);//关闭文件,如果关闭成功,则返回0,出错则返回其他值。
11.While循环//读入文件列表
12.If嵌套语句//判断多级文件夹和本级文件夹下,是否存在这个文件。
13.Switch{case;[break]}语句//根据一个表达式的多种不同取值来进行程序多分枝的选择,若表达式值与某个case分支的常量u值相等时,则执行该分支的语句块直到后面所有分支执行完毕。
15.while((bufcount=fread(temp,1,4096,file1))>0)//从源文件一次读取4096个字节的数据块。如果读出数据个数等于0则推出循环。
16.fwrite(temp,1,bufcount,file2);//按读取的数量向文件目标 写入数据块
17.Mkdir//创建一个目录,创建成功返回0,否则返回-1,并将错误记录到全局变量errno中。
第三章 使用说明
3.1安装手册
该程序无需安装,已由exe运行程序的形式导出,只需双击打开并运行即可。运行时有相关的输入提示。
3.2使用手册
1.打开名程序进入界面如图3-1所示
2.如果安装文件名已存在如图3-2所示
会有三个选择按钮供用户选择:覆盖安装,结束安装,跳过并继续安装。
第四章 系统设计难点及其解决方法
4.1 函数的运用
为了创建文件和文件路径以及读写文件操作,需要运用多张函数和函数调用,而函数多种多样,不过在书上都可以找到,但是自己本人又不熟悉,无从下手,只能将文件这一章内容重新仔细的看一遍,才可以慢慢的运用起来。
4.2 文件的复制
文件的复制中,需要利用数据块读写操作实现,但本人对文件一章不熟悉,虽然书上有文件复制的程序,但还是看不懂,没有清晰的逻辑思维,以及对书上的函数不清楚用处后来在同学慢慢的细说之下,渐渐的懂了过程,程序中也可以写出这一部分的程序。总的来说,这个程序需要清晰的思维以及对文件操作的熟悉,还有对函数的熟悉,通过此程序发现自己弄得不足,和同学的差距,还有待提高。
4.3 编译的错误
在编译的过程中,经常出现编译错误,怎么改也不对,有时就是程序错误或者时间超限。后来在同学的帮助下,找到了原因并改正,一步步减少错误,直到最后成功运行。
丽水学院工学院C语言课程设计评分表
班级: XXX
学号:XXXXX
姓名: XXX
仪器编号: XX
评价项目
序号
评定标准
评分比例
实际得分
考勤
1
全勤满分,迟到或早退1次扣1分,旷课1次扣2分,扣完为止。
20
答辩成绩
2
完成系统的设计,系统能够正确运行。
10
3
输入测试数据,能够得到正确的结果,并且能够能对输入内容进行数据合法性检测并进行相应的异常处理。
10
4
程序结构合理,有充足的(30%以上)注释。
5
5
在正确的基础上提高效率或者增加创新的一些功能。
5
6
对问题的理解及对源程序的理解。
10
小 计
设计
报告
7
设计报告格式规范,风格统一。
5
8
第一章系统功能说明。
5
9
第二章使用说明(安装手册和使用手册完整)。
5
10
第三章程序结构。(程序结构、重要数据说明、函数清单)。
15
11
第四章系统设计难点及其解决方法。
5
12
第五章不足之处。
5
小 计
总分
展开阅读全文