简单的文件管理系统-C课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
(本科)
课程:高级语言
程序设计
学号:
姓名:
班级:2011级计算机软件1班教师:
时间:2011.12
计算机科学与技术系
C语言程序代码附录:
#include "stdio.h"
#include "stdlib.h"
#define N 40 /* 宏定义*/
int main() /* 主函数*/
{
void dir();void rename();void del();void move();void copy(); /* 函数声明*/
int a;
for(;a!=0;) /*死循环,如果用户输入的不是0执行循环*/
{
printf("\n\n\n");
printf("\t\t********************************************\n"); /*屏幕上显示主界面*/
printf("\t\t** 欢迎使用文件管理系统 **\n");
printf("\t\t********************************************\n");
printf("\t\t**\t1.查看文件(只适用文本文件) **\n");
printf("\t\t**\t2.重命名文件 **\n");
printf("\t\t**\t3.删除文件 **\n");
printf("\t\t**\t4.移动文件 **\n");
printf("\t\t**\t5.复制文件 **\n");
printf("\t\t**\t0.退出系统 **\n");
printf("\t\t********************************************\n");
printf("\t\t请选择要进行的操作(按enter键执行!):"); /*提示用户输入*/
scanf("%d",&a); /*接受用户输入*/
switch(a)
{
case 1: dir(); break; /*如果用户输入1调用dir()函数查看文件*/
case 2: rename(); break; /*如果用户输入2调用rename()函数-文件*/
case 3: del(); break; /*如果用户输入3调用del()函数-删除文件*/
case 4: move(); break; /*如果用户输入4调用move()函数-移动文件*/
case 5: copy(); break; /*如果用户输入5调
用copy()函数-复制文件*/
case 0: printf("\t\t谢谢使用!!\n");break; /*如果用户输入0 ,
结束循环!退出程序*/
default: {printf("输入有误,自动结束!\n");a=0;} /*如果用户输入有误,
将0赋给a结束循环*/
}
}
return 0;
}
void dir() /*dir()函数*/
{
int a; /*定义变量a,接收用户
的操作选择*/
for(;a!=0;) /*死循环*/
{
FILE *fp; /*定义文件指针*/
char ch,filename[N];
printf("请输入要查看的文本文件(如d:\\1.txt):");/*提示用户输入*/
scanf("%s",filename);
if((fp=fopen(filename,"r"))==NULL) printf("无法找到该文件!\n");/*打开
文件操作*/
else
{
ch=fgetc(fp); /*将fp文件的字符赋给
ch*/
while(ch!=EOF) /*循环直到遇到文件结束
标识符结束*/
{
putchar(ch); /*将字符ch输出到屏幕上*/
ch=fgetc(fp); /*将fp文件的下一个字符赋
给ch*/
}
}
fclose(fp); /*关闭文件*/
printf("\n\n\t1.继续。
\n\t0.返回上一级!\n请选择要进行的操作(按enter
执行!):");
scanf("%d",&a); /*接收用户输入的指令*/ switch(a)
{
case 1: ;break; /*如果输入的是1,继续执行循环-查看文件
*/
case 0: ;break;
default :{printf("输入有误!自动返回上一级\n\n");a=0;};
}
}
}
void rename() /*rename()函数-重命名文件*/
{
int a;
for(;a!=0;)
{
char oldname[N],newname[N]; /*定义字符型数组用来存放好、用户输入的文件名*/
char *p1,*p2;
FILE *fp; /*文件指针*/
printf("要重命名的文件(如C:\\1.txt): ");
scanf("%s",oldname);
if((fp=fopen(oldname,"r"))==NULL) /*打开文件*/
{
printf("无法找该文件!\n");
exit(0);
}
fclose(fp);
p1=oldname ;
printf("输入新的文件名(如C:\\2.txt): ");
scanf("%s",newname);
p2=newname;
if (rename(oldname, newname) == 0) /*rename函数()成功返回值为0,则输出重命名成功*/
printf("将 %s 重命名为 %s.\n重命名成功\n", p1, p2);
else
perror("rename");
getchar();
printf("\n\n\t1.继续。
\n\t0.返回上一级!\n请选择要进行的操作(按enter 执行!):");/*提示用户输入要执行的指令*/
scanf("%d",&a);
switch(a)
{
case 1: ;break;
case 0: ;break;
default :{printf("输入有误!自动返回上一级\n\n");a=0;};/*如果用户输入有误,将0赋给a结束循环*/
}
}
}
void del() /*del()函数-删除文件*/
{
int a;
for(;a!=0;)
{
char delfile[N];
printf("输入要删除的文件(如C:\\1.txt):");
scanf("%s",delfile);
if((remove(delfile))==0) /*remove函数()成功返回值为0,则输出删除文件成功*/
printf("删除文件%s 成功!\n",delfile);
else
perror("remove");
printf("\n\n\t1.继续。
\n\t0.返回上一级!\n请选择要进行的操作(按enter 执行!):");
scanf("%d",&a);
switch(a)
{
case 1: ;break;
case 0: ;break;
default :{printf("输入有误!自动返回上一级\n\n");a=0;};
}
}
}
void move() /*move()函数-移动文件*/
{
int a;
for(;a!=0;)
{
FILE *in ,*out; /*定义文件指针*/ char infile[N],outfile[N];
printf("请输入要移动的文件(如C:\\a.txt):\n");
scanf("%s",infile);
if((in=fopen(infile,"r"))==NULL)
{printf("无法打开文件!\n");
exit(0);
}
printf("请输入移动后的文件(如C:\\a.txt):\n"); /*提示用户输入*/
scanf("%s",outfile); /*接收用户输入*/
if((out=fopen(outfile,"wb"))==NULL) /*使用二进制方式打开文件*/
{
printf("无法打开文件!\n");
exit(0);
}
for(;!feof(in);) /*直到遇到文件结束标
志结束循环*/
fputc(fgetc(in),out); /*将in文件里的字符写入out文件里*/
fclose(out); /*关闭文件*/
fclose(in);
if((remove(infile))==0) printf("移动成功\n");
else
perror("remove");
/*关闭文件*/
printf("\n\n\t1.继续。
\n\t0.返回上一级!\n请选择要进行的操作(按enter 执行!):");
scanf("%d",&a);
switch(a)
{
case 1: ;break;
case 0: ;break;
default :{printf("输入有误!自动返回上一级\n\n");a=0;};
}
}
}
void copy() /*copy()函数-复制文件*/
{
int a;
for(;a!=0;)
{
FILE *in ,*out; /*定义文件指针*/
char infile[N],outfile[N];
printf("请输入要复制的文件(如C:\\a.txt):\n");
scanf("%s",infile);
if((in=fopen(infile,"r"))==NULL)
{printf("无法打开文件!\n");
exit(0);
}
printf("请输入复制后的文件(如C:\\a.txt):\n"); /*提示用户输入*/
scanf("%s",outfile); /*接收用户输入*/
if((out=fopen(outfile,"wb"))==NULL) /*使用二进制方式打开文件*/
{
printf("无法打开文件!\n");
exit(0);
}
for(;!feof(in);) /*直到遇到文件结束标志结束循环*/
fputc(fgetc(in),out); /*将in文件里的字符写入out文件里*/
printf("复制成功\n"); /*提示用户*/
fclose(in); /*关闭文件*/
fclose(out); /*关闭文件*/
printf("\n\n\t1.继续。
\n\t0.返回上一级!\n请选择要进行的操作(按enter 执行!):");
scanf("%d",&a);
switch(a)
{
case 1: ;break;
case 0: ;break;
default :{printf("输入有误!自动返回上一级\n\n");a=0;}; /*提示用户*/
}
}
}。