同济大学c++复习文件管理系统开发案例
- 格式:ppt
- 大小:331.00 KB
- 文档页数:20
摘要本系统使用MFC提供的文档视图结构为主体框架,用XML文挡进行数据的储存,实现对各种资料的管理。
第一部分是实现对用户界面操作的响应,这部分主要是使用MFC提供的不同的窗口类,即框架窗口,视图窗口,对话窗口以及控件来实现用户操作界面的主体框架的实现。
第二部分为处理具体事务的模块,实现用户对资料的管理和使用。
第三部分是用XML编写储存结构,这部分主要是设计XML树和对其存储和读取的具体实现。
利用本系统可以管理自己的各种资料(文本的和电子的),对每一份资料均有命名,对所有的资料进行归类,指明各资料的存放位置,可以给每一份资料指明关键字,便于用户查找资料。
若是电子资料(如电脑上的文件),可以通过鼠标点击直接打开文件。
整个系统实现了最初设计的各种功能,并能够快速方便的帮助用户查找到需要的资料信息,整个操作界面简洁和实用。
关键词:MFC;XML;框架;窗口3.2系统开发环境3.2.1系统软件环境本系统采用的软件工具有:操作系统:WindowsXP开发环境:VC++6.03.2.2工具简介VC++6.0在提供可视化的编程方法的同时,也适用于编写直接对系统进行底层操作的程序,其生成代码的质量要优于很多其他的开发工具。
VC++6.0所提供的基本类库MFC,对Windows所用的Win32应用程序接口进行了十分彻底的封装,这使得开发人员可以使用完全面向对象的方法来进行Windows编程,从而大大节省了应用程序的开发周期,降低了开发成本。
而且,其强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。
随着多媒体技术和图形图像技术的不断发展,可视化技术得到了广泛的重视,愈来愈多的人开始研究并应用可视化技术。
所谓可视化技术,一般是指软件开发阶段的可视化和对计算机图形技术和方法的应用。
VC++是一个很好的可视化编程工具,使用VC++环境来开发基于Windows的应用程序,其界面更友好,便于程序员操作。
开发环境是程序员同VC++的交互界面,通过它程序员可以访问C++源代码编辑器、资源编辑器,使用内部调试器,还可以创建项目文件3.3系统概述软件主要提供的功能包括:资源管理方面——添加资源,删除资源;资源浏览——按照目录,按照搜索。
课程设计报告(本科)课程:高级语言程序设计学号:姓名:班级: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.继续。
c 文件管理系统课程设计。
一、课程目标知识目标:1. 让学生掌握文件管理系统的基本概念,如文件、文件夹、路径等。
2. 使学生了解文件系统的组织结构,如树状结构、目录层级等。
3. 帮助学生理解文件存储的基本原理,如磁盘空间分配、文件存取速度等。
技能目标:1. 培养学生能够熟练使用文件管理器进行文件创建、复制、移动、删除等操作。
2. 让学生学会利用文件系统进行文件分类、整理、备份和恢复。
3. 培养学生具备简单的文件系统故障排查和处理能力。
情感态度价值观目标:1. 培养学生对计算机文件管理的兴趣,提高学习积极性。
2. 培养学生养成良好的文件管理习惯,如分类存放、定期备份等。
3. 培养学生的团队合作意识,学会在小组讨论中分享观点、倾听他人意见。
课程性质:本课程为信息技术课程,旨在让学生掌握文件管理的基本知识和技能,提高信息素养。
学生特点:本课程针对的是初中年级学生,他们对计算机有一定的基础,好奇心强,但注意力容易分散。
教学要求:结合学生特点,教师应采用生动有趣的教学方法,注重实践操作,引导学生主动探究,确保课程目标的实现。
在教学过程中,关注学生的个体差异,及时给予指导和鼓励,使学生在完成具体学习成果的过程中,不断提高自身能力。
二、教学内容1. 文件管理基础- 文件与文件夹概念- 文件系统组织结构- 文件存储原理2. 文件管理操作- 文件创建、复制、移动、删除- 文件夹创建、重命名、属性修改- 文件搜索与排序3. 文件管理技巧- 文件分类与整理- 文件备份与恢复- 文件系统优化4. 文件管理故障处理- 磁盘空间不足- 文件丢失与误删- 文件权限与共享问题教学内容安排与进度:第一课时:文件管理基础第二课时:文件管理操作第三课时:文件管理技巧第四课时:文件管理故障处理教材章节关联:本教学内容与教材中“文件与文件夹管理”章节相关,涵盖了该章节的核心知识点和操作技能。
通过本课程的学习,学生可以系统地掌握文件管理的相关知识,提高实际操作能力。
c语言项目案例C语言项目案例。
在学习C语言的过程中,很多人会感到枯燥和乏味,因为C语言作为一门结构化的程序设计语言,更多的是以算法和逻辑为主,缺乏实际的项目案例来练习和应用。
因此,本文将给大家介绍一些C语言项目案例,帮助大家更好地理解和应用C语言。
1. 学生成绩管理系统。
学生成绩管理系统是一个非常经典的C语言项目案例。
通过这个项目,你可以学习如何设计一个简单的学生成绩管理系统,包括学生信息的录入、成绩的输入和查询、成绩的统计和分析等功能。
这个项目涉及到文件操作、结构体的使用、指针的应用等内容,对于初学者来说是一个很好的练习项目。
2. 简单的图书管理系统。
图书管理系统是另一个很好的C语言项目案例。
通过这个项目,你可以学习如何设计一个简单的图书管理系统,包括图书信息的录入、借阅和归还功能、图书信息的查询和统计等功能。
这个项目涉及到文件操作、链表的应用、字符串处理等内容,对于提高学生的编程能力和综合运用C语言知识是非常有帮助的。
3. 简单的学生选课系统。
学生选课系统是另一个很好的C语言项目案例。
通过这个项目,你可以学习如何设计一个简单的学生选课系统,包括学生信息的录入、课程的添加和删除、学生选课和退课等功能。
这个项目涉及到文件操作、数组的应用、函数的设计等内容,对于提高学生的逻辑思维和编程能力是非常有帮助的。
4. 简单的学生信息管理系统。
学生信息管理系统是一个非常基础的C语言项目案例。
通过这个项目,你可以学习如何设计一个简单的学生信息管理系统,包括学生信息的录入、修改和删除、学生信息的查询和打印等功能。
这个项目涉及到文件操作、数组的应用、字符串处理等内容,对于初学者来说是一个很好的练习项目。
总结。
通过以上介绍的C语言项目案例,我们可以看到,C语言作为一门结构化的程序设计语言,可以应用到很多实际的项目中。
通过这些项目案例的学习和练习,我们不仅可以提高自己的编程能力,还可以更好地理解和应用C语言的知识。
因此,我建议大家在学习C语言的过程中,多多尝试一些实际的项目案例,这样可以更好地提高自己的编程能力和解决问题的能力。
目录1 设计目的 (1)2 设计内容 (1)3 设计步骤 (1)3.1 开发平台 (1)3.1.1 开发环境介绍 (1)3.1.2 开发界面截图 (2)3.2 详细设计 (2)3.2.1 算法说明 (2)3.2.2 系统流程图 (4)3.3 运行与测试 (4)3.3.1 运行测试 (4)3.3.2 异常处理测试 (7)3.4使用说明 (9)4 设计总结 (10)5 附录 (10)1 设计目的(用小3号黑体,并留出上下间距为:段前0.5行,段后0.5行)《操作系统概论》学习已经快结束了,通过本课程,了解了操作系统的发展,组成,处理器管理,存储管理,文件管理,设备管理,并发进程等相关知识。
理论必须与实际联系,才能理解的更加深刻,所以进行了这次课程设计,制作一个文件模拟系统的程序,加深对相关知识的理解与运用。
2 设计内容本设计应完成以下要求:1.设计一个10个用户的文件系统,用户至少有Create、delete、open、close、read、write等文件操作命令。
2.程序采用多级文件目录管理,仅可能模拟文件存取的全过程。
3 设计步骤3.1 开发平台3.1.1 开发环境介绍我们采用了C语言来并在Visual Studio 2005平台实现。
.NET Framework是生成、运行下一代应用程序和XML Web Services的内部Windows组件。
它简化了分布式Internet环境中的应用程序开发,由公共语言运行库(CLR)和.NET Framework类库两个组件构成。
Visual Studio 2005 是微软公司开发的集成开发环境,支持C、C++、VB、J#、C#等多种开发语言,界面友好,并有自动补全代码功能,便于调式,是当前最流行的.NET Framework开发工具。
安装Visual Studio 2005的系统要求:硬件需求描述处理器Pentium3级600MHZ以上处理器RAM Windows XP Professional至少为160MB硬盘对于Visual C#.NET、Visual ,需要600MB硬盘空间,安装驱动器上需要1.5GB磁盘空间视频800*600像素,256色(建议:增强色16位)鼠标Microsoft鼠标或兼容的指针设备3.1.2 开发界面截图3.2 详细设计3.2.1 算法说明用户登录时要输入用户名和密码,如果正确则进入初始界面,默认只有十个用户。
报告内容:1.管理系统的功能说明这是一个用来进行文件管理的系统,能够实现对文件信息(包括文件号、文件名、文件性质、创建日期、文件大小)的浏览、创建、修改、搜索等功能。
2.储存数据的描述储存的数据由Flies类完成,Flies类中设置了num,name,type,date,space 5个成员来分别记录数据的文件号、文件名、文件性质、创建日期、文件大小。
(便于测试事先录入了5个初始数据)3.概要设计说明源程序主要分为3个部分:1.用于储存数据的Flies类(其中包括修改数据的函数check以及显示数据内容display)。
2.实现系统功能的函数(包括主菜单显示函数menu、增加数据函数add、用于查询数据的函数search1,search2)。
3.主函数。
4.源程序#include <iostream>#include <string>using namespace std;class Flies{ //定义Flies类public:string num,name,type,date,space; //flies类的成员Flies(){}Flies(string n,string N,string T,string D,string S){num=n;name=N;type=T;date=D;space=S;}void check() //修改flies类成员的函数check {cout<<"输入新的文件号:";cin>>num;cout<<"输入新的文件名:";cin>>name;cout<<"输入新的文件类型:";cin>>type;cout<<"输入新的创建日期:";cin>>date;cout<<"输入新的文件大小:";cin>>space;}void display() //显示flies类成员内容的函数display {cout<<"文件号:"<<num<<endl;cout<<"文件名:"<<name<<endl;cout<<"文件类型:"<<type<<endl;cout<<"创建日期:"<<date<<endl;cout<<"文件大小:"<<space<<endl;cout<<endl;}};void menu() //显示主菜单的函数menu {cout<<"*--------------------------*"<<endl;cout<<"| Menu |"<<endl;cout<<"| 输入:T (浏览数据) |"<<endl;cout<<"| A (增加数据) |"<<endl;cout<<"| C (修改数据) |"<<endl;cout<<"| S (查询数据) |"<<endl;cout<<"| Q (退出程序) |"<<endl;cout<<"| |"<<endl;cout<<"*--------------------------*"<<endl;};Flies add() //添加新文件的函数add {string num,name,type,date,space;cout<<"输入文件号:";cin>>num;cout<<"输入文件名:";cin>>name;cout<<"输入文件类型:";cin>>type;cout<<"输入创建日期:";cin>>date;cout<<"输入文件大小:";cin>>space;Flies b(num,name,type,date,space);return b;}void search1(Flies a[],int Num) //按文件名查找对象的函数search1 { int count,i;string V;cout<<"输入要查找的文件名:";cin>>V;cout<<"查找结果为:"<<endl;for(i=0,count=0;i<Num;i++){if (a[i].name==V)a[i].display();elsecount++;}if(count==Num)cout<<"空"<<endl;cout<<endl;}void search2(Flies a[],int Num) //按文件类型查找对象的函数search2 { int count,i;string V;cout<<"输入要查找的文件类型:";cin>>V;cout<<"查找结果为:"<<endl;for(i=0,count=0;i<Num;i++){if (a[i].type==V)a[i].display();elsecount++;}if(count==Num)cout<<"空"<<endl;cout<<endl;}int main() //主函数{static int Num=5;char n,x;int i;Flies A("01","windows","dll","2012/2/3","20k"), //设置初始文件B("02","office word","doc","2012/4/12","500k"),C("03","Warcarft III","exe","2012/6/1","1.2G"),D("04","homework","txt","2012/12/7","128k"),E("05","Mylove","mp3","2013/6/13","4M");Flies a[]={A,B,C,D,E};while(1) {cout<<"****************************************************"<<endl;cout<<endl;menu();cout<<endl;cout<<"****************************************************"<<endl;cout<<"选择功能:"; //程序功能选择的实现cin>>n;if(n=='Q')break;switch (n){case 'T':for(i=0;i<Num;i++){a[i].display();}break;case 'A':a[Num]=add();Num++;break;case 'C':cout<<"需要修改第几个文件:";cin>>i;if(0<i&&i<=Num){a[i-1].check();break;}elsecout<<"该文件不存在,请确认"<<endl;break;case 'S':cout<<"(1)按文件名查找(2)按文件类型查找选择你需要的方式:";cin>>x;switch(x){case '1':search1(a,Num);break;case '2':search2(a,Num);break;default:cout<<"输入错误,请正确输入"<<endl;cout<<endl;break;}break;default:cout<<"输入错误,请正确输入"<<endl;cout<<endl;break;}}cout<<"谢谢使用,再见"<<endl;return 0;}5.测试分析主界面浏览初始数据(T)增加数据(A)修改数据(C)查新数据(S)退出程序(Q)6.总结报告总体来说这次设计还是比较顺利的,整个程序的内容设计基本上都在平时作业中出现过,也都是基础内容,由此可见平时的学习是十分重要的。
文档管理系统说明书主要功能《文档管理系统》主要用于对企业的文档进行有效管理,其主要包括基本信息、文档管理和系统设置。
系统的功能性强,操作灵活,是您企业进行文档管理的最佳帮手。
操作注意事项用户在使用《文档管理系统》之前,应注意以下事项:(1)在登录系统之前应先附加数据库,否则无法运行。
(2)本系统的初始用户名为:mr,密码为:mrsoft。
(3)本系统完全支持按〈Enter〉键跳到下一文本框的功能,用户无需再通过鼠标定位光标位置。
第1章系统登录双击可执行文件,进入如图1.1所示的登录界面。
图1.1 用户登录在用户名和密码的文本框内输入用户名“mr”、密码“mrsoft”,单击【登录】按钮,即可进入如图1.2所示的主界面。
图1.2 文档管理系统主界面第2章基本信息【基本信息】主要包括【单位文档】和【文档类别】。
2.1 单位文档单击【基本信息】/【单位文档】选项,进入如图1.3所示的单位档案主界面。
此界面可对单位档案进行添加、修改、删除操作。
图1.3 基本信息1.基本信息添加在“单位编号”等文本框内输入相应的内容。
最后单击【添加】按钮,即添加完成。
结果如图1.4所示。
图1.4 基本信息添加2.基本信息修改在“单位列表”界面中选择要修改的单位档案,双击进入进行修改。
修改后单击【修改】按钮,即修改完成。
3.基本信息删除●在“单位列表”界面中选择要删除的单位档案,双击进入进行删除。
●在“单位档案”界面中输入“单位编号”直接删除。
2.2 文档类别单击【基本信息】/【文档类别】选项,进入如图1.5所示的界面,该界面可以对文档类别进行添加、修改、删除等操作。
图1.5 基本信息1.档类别添加在“单位编号”等文本框内输入相应的内容。
最后单击【添加】按钮,即添加完成。
结果如图1.6所示。
2.文档类别修改输入要修改的单位编号及类别编号,在文档类别的文本框内输入新的文档类别,最后单击【修改】按钮,即修改完成。
3.文档类别删除输入要删除的单位编号、类别编号和文档类别,最后单击【删除】按钮,即删除完成。
实验文件管理系统设计与实现
【目的】
1、引导学生对程序进行进一步优化和深入思考;
2、学会多文件程序的编写;
3、理解结构化程序的编程抽象及代码组织
【内容】
参照课件内容,实现或优化如下函数功能:
1、实现menu函数;
2、实现display函数;
3、优化search函数;
4、实现append函数;
5、实现del函数;
6、实现modify函数
7、编写统计输出各科最高分的函数count;
8、实现按学号排序的函数sort;
9、实现将学生记录写入文件的save函数
10、实现将文件内容读到学生数组的readf∏e函数;
【要求】
1、将代码组织成由客户文件、接口文件和库文件组成的多文件形式。
2、用结构化和面向对象两种方法实现。
3、编写主函数对以上各函数功能进行测试。
目录一.课程设计目的及要求 (2)二.相关知识 (2)三. 题目分析 (3)四.概要设计 (4)五.代码及流程 (5)六.运行结果 (20)七.设计心得..................................................................... 错误!未定义书签。
八.参考文献.. (23)一.课程设计目的及要求深入了解文件管理系统,初步掌握文件管理系统的实现方法。
用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
编写一程序,模拟一个简单的文件管理系统。
树型结构,目录下可以是目录,也可以是文件。
在此文件管理系统,可实现的操作有:改变目录:格式:cd <目录名>显示目录:格式:dir <目录名>创建目录:格式:md <目录名>删除目录:格式:rd <目录名>新建文件:格式:edit <文件名>删除文件:格式:del <文件名>退出文件系统:exit二.相关知识1.文件结构体struct FileNode{char filename[FILENAME_LEN];//文件名/目录名int isdir;//目录文件识别标志int i_nlink;//文件的链接数int adr;//文件的地址struct FileNode *parent, *child;//指向父亲的指针和指向左孩子的指针struct FileNode *sibling_prev, *sibling_next;//指向前一个兄弟的指针和指向//后一个兄弟的指针.};整个文件系统采用二叉树型存储结构,初始化文件树如下:图2-1 初始目录树2.所使用函数及其功能int Main(); //主函数void Init();//初始化文件树int ParseCommand();//接受输入的命令并把其分解成操作名和路径文件名void ExecuteCommand();//执行命令,分别执行cd,edit,md,del,rd, dir,exit命令int cdComd(); //改变目录功能处理int editComd();//处理edit命令,即创建文件,只要创建表示文件的节点即可,内容及大小不考虑int mdComd(); //创建目录int delComd();//处理del命令,即删除指定文件,不存在是给出错误信息int dirComd();//处理dir命令,显示目录int rdComd(); //删除目录int FindFilename(char Para2[]);//查找文件名struct FileNode* CreateFileNode(char filename[],int isdir,int i_nlink);//创建结点int GetInput(char* buffer,unsigned int buffer_len);//获取输入3.所使用的变量struct FileNode *cp, *tp, *root;// *cp, *tp, *root是根目录节点char path[INPUT_LEN-COMMAND_LEN];//记录当前走过的路径char Para1[COMMAND_LEN],Para2[INPUT_LEN-COMMAND_LEN];//para1数组存储输入的命令,para2数组存储输入的文件名char filename[FILENAME_LEN],tmp;unsigned int i,j;三题目分析1.文件系统采用二叉树型存储结构,结点结构如下:struct FileNode{char filename[FILENAME_LEN];//文件名/目录名int isdir;//目录、文件的识别标志(0为文件,1为目录)int i_nlink;//文件的链接数//int adr;//文件的地址struct FileNode *parent, *child;//指向父亲的指针和指向左孩子的指针struct FileNode *sibling_prev, *sibling_next;//指向前一个兄弟的指针和指向后一个兄弟的指针.};2.目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开3.功能具体描述:改变目录:改变当前工作目录,目录不存在时给出出错信息显示目录:显示指定目录下或当前目录下所有文件和一级目录(选做:带/s参数的dir 命令,显示所有子目录)创建目录:在指定路径或当前路径下创建指定目录。