编写一个记事本程序_要求:_用图形用户界面实现。_能实现编辑、保存、另存为、查找替换等功能。

合集下载

JAVA简单记事本程序(源代码)课程设计

JAVA简单记事本程序(源代码)课程设计

辽宁工业大学JA V A程序设计课程设计(论文)题目: JAVA简单记事本程序院(系):软件学院专业班级:软件工程班学号:学生姓名:指导教师:教师职称:起止时间:程序设计专题(报告)任务及评语目录第1章课程设计的目的与要求 (4)1.1 课程设计目的 (4)1.2 课程设计的实验环境 (4)1.3 课程设计的预备知识 (4)1.4 课程设计要求 (4)第2章课程设计内容 (5)2.1课题描述 (5)2.2 系统设计 (5)2.2.1功能分析 (5)2.2.2面向对象设计 (5)2.2.3详细设计 (7)2.3程序实现 (10)2.3.1源码分析 (10)2.3.1运行结果 (14)第3章总结 (18)参考文献19第1章课程设计的目的与要求1.1 课程设计目的《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统。

JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。

1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。

要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JA V A程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。

java课程设计报告记事本

java课程设计报告记事本

Java课程设计报告:记事本1. 引言记事本是一款常见的文本编辑工具,广泛应用于日常工作和学习中。

本文将介绍一种基于Java语言开发的简易记事本设计方案。

2. 设计思路2.1 界面设计记事本的界面应简洁明了,方便用户进行文本编辑和操作。

可以考虑使用Swing或JavaFX等图形库来创建用户界面。

2.1.1 主窗体记事本的主窗体应包含一个菜单栏和一个文本编辑区域。

菜单栏包含文件、编辑、格式等功能项,可以使用Java提供的菜单组件来实现。

2.1.2 文件操作在菜单栏的文件功能项中,应包含新建、打开、保存、另存为等操作。

这些功能可以通过文件选择对话框来实现。

2.1.3 文本编辑文本编辑区域应支持基本的编辑功能,如复制、粘贴、剪切和撤销等操作。

可以使用Java提供的文本框组件来实现。

2.2 功能设计记事本的功能设计应满足用户的基本需求,如文本编辑、保存和打开文件等。

2.2.1 文本编辑功能用户可以在文本编辑区域输入和编辑文本内容。

可以提供字体、颜色和对齐等格式设置功能。

2.2.2 文件操作功能用户可以通过菜单栏的文件功能项进行文件的新建、打开、保存和另存为等操作。

可以使用Java的文件IO功能来实现。

2.3 实现步骤2.3.1 创建主窗体首先,需要创建一个主窗体,并设置合适的大小和布局。

可以使用Swing或JavaFX提供的窗体组件来实现。

2.3.2 添加菜单栏在主窗体中添加一个菜单栏,并设置合适的菜单和菜单项。

可以使用Java提供的菜单和菜单项组件来实现。

2.3.3 添加文件操作功能在菜单栏的文件功能项中添加新建、打开、保存和另存为等功能,并实现相应的事件处理。

可以使用Java提供的文件选择对话框和文件IO功能来实现。

2.3.4 添加文本编辑功能在主窗体中添加一个文本编辑区域,并提供复制、粘贴、剪切和撤销等编辑功能。

可以使用Java提供的文本框组件和编辑功能来实现。

3. 实现代码以下是一个简单记事本的Java代码示例:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;public class Notepad extends JFrame {private JTextArea textArea;private JFileChooser fileChooser;public Notepad() {setTitle("记事本");setSize(600, 400);setDefaultCloseOperation(EXIT_ON_CLOSE);createMenuBar();textArea = new JTextArea();JScrollPane scrollPane = new JScrollPane(textArea);add(scrollPane, BorderLayout.CENTER);fileChooser = new JFileChooser();setVisible(true);}private void createMenuBar() {JMenuBar menuBar = new JMenuBar();JMenu fileMenu = new JMenu("文件");JMenuItem newMenuItem = new JMenuItem("新建");JMenuItem openMenuItem = new JMenuItem("打开");JMenuItem saveMenuItem = new JMenuItem("保存");JMenuItem saveAsMenuItem = new JMenuItem("另存为");newMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {textArea.setText("");}});openMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showOpenDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedReader reader = new BufferedReader(new FileReader(file));String line;StringBuilder content = new StringBuilder();while ((line = reader.readLine()) != null) { content.append(line).append("\n");}reader.close();textArea.setText(content.toString());} catch (IOException ex) {ex.printStackTrace();}}}});saveMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});saveAsMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(saveAsMenuItem);menuBar.add(fileMenu);setJMenuBar(menuBar);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {new Notepad();}});}}4. 总结本文介绍了一种基于Java语言开发的简易记事本设计方案。

JAVA课程设计-编写一个记事本程序

JAVA课程设计-编写一个记事本程序

JAVA课程设计-编写一个记事本程序Java语言程序设计B报告题目:编写一个记事本程序一.要求:用图形用户界面实现。

能实现编辑、保存、另存为、查找替换等功能。

提示:使用文件输入输出流。

二.课程设计思路。

设计两个类,一个记事本的类(JSB),具有程序的要求和功能再创建一个课设的主类(KESHE),在主类中创建一个JSB类的对象,就可以直接在编译器中运行程序。

在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。

三.课程设计实现功能结构图。

3.1“文件”菜单。

3.2“编辑”菜单。

四.记事本实现功能代码实现。

4.1.界面设计。

主要代码:f=new Frame(s);p1=new TextArea("");f.setSize(400,600);f.setBackground(Color.white);f.setVisible(true);menubar=new MenuBar(); menu1=new Menu("文件"); menu2=new Menu("编辑"); item1=new MenuItem("新建"); item2=new MenuItem("打开"); item3=new MenuItem("保存"); item4=new MenuItem("另存为"); item5=new MenuItem("退出"); item6=new MenuItem("全选"); item7=new MenuItem("复制");item8=new MenuItem("剪切"); item9=new MenuItem("粘贴");menu1.add(item1);menu1.add(item2);menu1.add(item4); menu1.add(item5); menu2.add(item6); menu2.add(item7); menu2.add(item8); menu2.add(item9); menubar.add(menu1); menubar.add(menu2);f.setMenuBar(menubar);程序代码实现截图:4.2功能代码详细设计。

c语言课设实验报告-记事本程序(含源码)

c语言课设实验报告-记事本程序(含源码)

C语言课设实验报告[记事本程序]班级:学号:姓名:指导老师:C语言课设实验报告#define key_down 80#define key_up 72#define key_esc 1#define key_alt_f 33#define key_alt_x 45#define key_enter 28#define key_alt_e 18int get_key();void box(int startx,int stary,int high,int width);{int i,key,x,y,l;char *w=NULL,*d=NULL,*s=NULL;FILE *fp;char *menu[]={ "File ", "Edit ","Format","View","Help"};char *red[]={ "F", "E","F","V","H"};char *f[]={ "New ", "Open" , "Save", "Another","Quit alt_x"};char *e[]={"Search","Search next","Replace","Date"};char buf[16*10*2],buf1[16*2];textbackground(3);clrscr();window(1,1,80,1);textbackground(WHITE);textcolor(BLUE);clrscr();window(1,1,80,2);for(i=0, l=0; i <5;i++){x=wherex();y=wherey();textcolor(BLACK);cprintf( " %s ",menu[i]);l=strlen(menu[i]);gotoxy(x,y); x.y等的头文件*//*功能键的扫描码的定义*//* i为循环次数的序数,key为从键盘输入的功能键,x,y 为光标的坐标,l为菜单栏中菜单的字符长度*//*w是存放输入的内容(记录的事情)的指针,*s是存放输入的文件名的指针,*d是存放输入要定时的文件的文件名的指针*/ /*菜单栏中各个菜单的定义*//*菜单栏中菜单开头要标颜色的字母的定义*//* file 子菜单中项目的定义*//*edit子菜单的定义*/ /*缓冲区的定义*//*整个大窗口的背景颜色设置*//*创建菜单栏窗口*/ /*设置菜单栏窗口背景颜色为白色,字体颜色为蓝色*//*利用循环输出menu菜单栏,有多少个菜单循环多少次。

软件工程课程设计可供选的题目

软件工程课程设计可供选的题目

软件工程课程设计可供选的题目1.学生学籍管理系统2.图书查询系统3.电话交费系统4.单机五子棋游戏软件开发5.简单图形显示软件6.学生通讯录管理系统7.医药管理系统8.库存管理系统9.货物进销管理系统10.“贪吃蛇”游戏开发与设计11.学分统计系统12.博客系统13.模拟飞行系统14.多媒体播放设计15.计算机屏保开发16.“扫雷”游戏开发17.基于过滤的个人防火墙设计18.“二合一”小游戏开发19.财务管理系统20.工资管理系统21.项目管理系统22.学校收费管理系统23.基于bmp格式的图象压缩24.教务管理系统25.舰艇对战游戏26.俄罗斯方块小游戏27.企业备忘录系统28.图书借阅管理系统29.学生成绩管理系统30.会员管理系统31.网上订书系统32.银行储蓄系统33.医院药品进销存系统34.英语学习助手35.大学生就业咨询系统36.教务辅助管理系统37.手机话费查询系统38.教师信息管理系统39.人事档案管理系统40.学生公寓管理系统41.球队管理系统42.编写一个记事本程序43.模拟龟兔赛跑44.万年历45.日历记事本46.加密与解密47.小游戏48.聊天小程序49.网络监听程序50.网页浏览器开发其中部分的题目的(数据与功能)要求如下:(一)学生学籍管理系统1、主要的数据表学生基本情况数据表,学生成绩数据表,课程表,代码表等。

2、主要功能模块实现学生基本情况的录入,修改,删除等基本操作。

对学生基本信息提供灵活的查询方式。

完成一个班级的学期选课功能。

实现学生成绩的录入,修改,删除等基本操作。

能方便的对学生的个人学期成绩进行查询。

具有成绩统计,排名等功能。

具有留级,休学等特殊情况的处理功能。

能输出常用的各种报表。

具有数据备份和数据恢复功能。

3、设计要求学生成绩表的设计,要考虑到不同年级的教学计划的变化情况。

对于新生班级,应该首先进行基本情况录入,选课,然后才能进行成绩录入。

(二)图书管理系统1、主要的数据表图书基本信息表,借书卡信息表,借阅信息表,图书分类信息表,代码表等。

Android实现记事本功能

Android实现记事本功能

Android实现记事本功能本⽂实例为⼤家分享了Android实现记事本功能的具体代码,供⼤家参考,具体内容如下实现功能1、⽂本数据的存储2、图⽚数据存储3、视频数据存储4、⾃定义的Adapter5、SQlite的创建6、数据listview列表的显⽰demo地址界⾯布局<LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="⽂字" /><Buttonandroid:id="@+id/img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="图⽂" /><Buttonandroid:id="@+id/video"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="视频" /></LinearLayout><ListViewandroid:id="@+id/list"android:layout_width="fill_parent"android:layout_height="wrap_content" ></ListView></LinearLayout>数据库创建public class NotesDB extends SQLiteOpenHelper {public static final String TABLE_NAME = "notes";public static final String CONTENT = "content";public static final String PATH = "path";public static final String VIDEO = "video";public static final String ID = "_id";public static final String TIME = "time";public NotesDB(Context context) {super(context, "notes", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + ID+ " INTEGER PRIMARY KEY AUTOINCREMENT," + CONTENT+ " TEXT NOT NULL," + PATH + " TEXT NOT NULL," + VIDEO+ " TEXT NOT NULL," + TIME + " TEXT NOT NULL)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} }数据的加载public class AddContent extends Activity implements OnClickListener {private String val;private Button savebtn, deletebtn;private EditText ettext;private ImageView c_img;private VideoView v_video;private NotesDB notesDB;private SQLiteDatabase dbWriter;private File phoneFile, videoFile;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.addcontent);//主界⾯点击Button传递过来的数据val = getIntent().getStringExtra("flag");savebtn = (Button) findViewById(R.id.save);deletebtn = (Button) findViewById(R.id.delete);ettext = (EditText) findViewById(R.id.ettext);c_img = (ImageView) findViewById(R.id.c_img);v_video = (VideoView) findViewById(R.id.c_video);savebtn.setOnClickListener(this);deletebtn.setOnClickListener(this);notesDB = new NotesDB(this);dbWriter = notesDB.getWritableDatabase();initView();}//判断存储的是⽂字,图⽚,还是视频,启动相对应的控件public void initView() {if (val.equals("1")) { // ⽂字c_img.setVisibility(View.GONE);v_video.setVisibility(View.GONE);}if (val.equals("2")) {c_img.setVisibility(View.VISIBLE);v_video.setVisibility(View.GONE);Intent img = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);phoneFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/" + getTime() + ".jpg");img.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(phoneFile));startActivityForResult(img, 1);}if (val.equals("3")) {c_img.setVisibility(View.GONE);v_video.setVisibility(View.VISIBLE);Intent video = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);videoFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/" + getTime() + ".mp4");video.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(videoFile));startActivityForResult(video, 2);}}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.save:addDB();finish();break;case R.id.delete:finish();break;}}//存储数据public void addDB() {ContentValues cv = new ContentValues();cv.put(NotesDB.CONTENT, ettext.getText().toString());cv.put(NotesDB.TIME, getTime());cv.put(NotesDB.PATH, phoneFile + "");cv.put(NotesDB.VIDEO, videoFile + "");dbWriter.insert(NotesDB.TABLE_NAME, null, cv);}//时间的显⽰private String getTime() {SimpleDateFormat format = new SimpleDateFormat("yyyy年MM⽉dd⽇ HH:mm:ss"); Date curDate = new Date();String str = format.format(curDate);return str;}//完成数据拍摄后直接显⽰数据@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 1) {Bitmap bitmap = BitmapFactory.decodeFile(phoneFile.getAbsolutePath());c_img.setImageBitmap(bitmap);}if (requestCode == 2) {v_video.setVideoURI(Uri.fromFile(videoFile));v_video.start();}}}⾃定义Adapterpublic class MyAdapter extends BaseAdapter {private Context context;private Cursor cursor;private LinearLayout layout;public MyAdapter(Context context, Cursor cursor) {this.context = context;this.cursor = cursor;}@Overridepublic int getCount() {return cursor.getCount();}@Overridepublic Object getItem(int position) {return cursor.getPosition();}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(context);layout = (LinearLayout) inflater.inflate(yout.cell, null);TextView contenttv = (TextView) layout.findViewById(R.id.list_content); TextView timetv = (TextView) layout.findViewById(R.id.list_time);ImageView imgiv = (ImageView) layout.findViewById(R.id.list_img);ImageView videoiv = (ImageView) layout.findViewById(R.id.list_video); cursor.moveToPosition(position);String content = cursor.getString(cursor.getColumnIndex("content"));String time = cursor.getString(cursor.getColumnIndex("time"));String url = cursor.getString(cursor.getColumnIndex("path"));String urlvideo = cursor.getString(cursor.getColumnIndex("video"));contenttv.setText(content);timetv.setText(time);imgiv.setImageBitmap(getImageThumbnail(url, 200, 200));videoiv.setImageBitmap(getVideoThumbnail(urlvideo, 200, 200,MediaStore.Images.Thumbnails.MICRO_KIND));return layout;}/** ListView 显⽰图⽚*/public Bitmap getImageThumbnail(String uri, int width, int height) {Bitmap bitmap = null;BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;bitmap = BitmapFactory.decodeFile(uri, options);options.inJustDecodeBounds = false;int beWidth = options.outWidth / width;int beHeight = options.outHeight / height;int be = 1;if (beWidth < beHeight) {be = beWidth;} else {be = beHeight;}if (be <= 0) {be = 1;}options.inSampleSize = be;bitmap = BitmapFactory.decodeFile(uri, options);bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap;}/**视频缩略图*/private Bitmap getVideoThumbnail(String uri, int width, int height, int kind) { Bitmap bitmap = null;bitmap = ThumbnailUtils.createVideoThumbnail(uri, kind);bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap;}}ListView点击的详情页显⽰与数据删除public class SelectAct extends Activity implements OnClickListener {private Button s_delete, s_back;private ImageView s_img;private VideoView s_video;private TextView s_tv;private NotesDB notesDB;private SQLiteDatabase dbWriter;/** 点击item 的详情页对数据进⾏删除操作*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.select);s_delete = (Button) findViewById(R.id.s_delete);s_back = (Button) findViewById(R.id.s_back);s_img = (ImageView) findViewById(R.id.s_img);s_video = (VideoView) findViewById(R.id.s_video);s_tv = (TextView) findViewById(R.id.s_tv);/**读写权限*/notesDB = new NotesDB(this);dbWriter = notesDB.getWritableDatabase();s_back.setOnClickListener(this);s_delete.setOnClickListener(this);//判断是否存在图⽚if (getIntent().getStringExtra(NotesDB.PATH).equals("null")) {s_img.setVisibility(View.GONE);} else {s_img.setVisibility(View.VISIBLE);}if (getIntent().getStringExtra(NotesDB.VIDEO).equals("null")) {s_video.setVisibility(View.GONE);} else {s_video.setVisibility(View.VISIBLE);}// 设置需要显⽰的图⽚s_tv.setText(getIntent().getStringExtra(NotesDB.CONTENT));Bitmap bitmap = BitmapFactory.decodeFile(getIntent().getStringExtra(NotesDB.PATH));s_img.setImageBitmap(bitmap);s_video.setVideoURI(Uri.parse(getIntent().getStringExtra(NotesDB.VIDEO)));s_video.start();}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.s_delete:deleteDate();finish();break;case R.id.s_back:finish();break;}}//数据的删除public void deleteDate() {dbWriter.delete(NotesDB.TABLE_NAME,"_id=" + getIntent().getIntExtra(NotesDB.ID, 0), null);}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

记事本程序设计

记事本程序设计

课程设计说明书题目记事本程序系(部) 计算机科学与技术专业(班级) 计算机科学与技术姓名学号指导教师起止日期课程设计任务书课程名称:Java与面向对象程序设计设计题目:记事本程序已知技术参数和设计要求:1. 问题描述(功能要求):a 使用Java的awt包或Swing包的类库设计图形界面的记事本程序b 功能、界面设计仿照Windows的记事本程序c 使用图形界面中的事件委托机制来处理事件响应2.界面要求:用户界面设计不做统一规定,但应做到界面友好,易于操作。

3. 技术要求:要求利用面向对象的方法以及java的编程思想来完成系统的设计;在设计的过程中,建立清晰的类结构;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。

4. 课程设计报告要求:详见《长沙学院课程设计管理规定》。

设计工作量:40课时工作计划:40课时:上机、调试。

计算机系机房指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表目录第一章、需求分析 (1)1.1 需求分析 (1)1.2 功能设计 (1)第二章、概要设计 (2)2.1 程序设计思路 (3)2.2 程序流程 (3)2.2.1主序流程图 (3)2.2.2“文件”菜单操作图 (4)2.2.3“编辑”菜单操作图 (5)2.2.4“格式”菜单操作图 (6)2.2.5“帮助”菜单操作图 (7)2.3 程序相关说明 (8)第三章. 程序详细设计与分析 (9)3.1 初始化组件 (9)3.2. 创建文件菜单及文件菜单项 (9)3.3. 创建编辑菜单及菜单项 (10)3.4. 事件监听 (12)3.5 异常处理 (18)第四章.测试分析 (20)第五章.课程设计总结 (22)参考文献 (23)附录 (24)第一章、需求分析1.1需求分析此次试训课程要求使用Java程序编写简单的记事本程序,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。

c编写记事本课程设计

c编写记事本课程设计

c 编写记事本课程设计一、课程目标知识目标:1. 学生能理解C语言的基本语法和结构,掌握记事本程序的基本框架。

2. 学生能运用C语言标准库函数进行文件操作,实现对记事本文件的读取、写入和保存功能。

3. 学生了解数据类型、变量、运算符等基本概念,并能运用到记事本程序编写中。

技能目标:1. 学生能运用所学知识,独立编写、调试和运行一个简单的C语言记事本程序。

2. 学生掌握基本的编程技巧,如代码规范、注释和错误处理,提高编程能力和代码质量。

3. 学生通过实际操作,学会使用C语言进行问题分析和解决,提高逻辑思维和动手实践能力。

情感态度价值观目标:1. 学生在编程过程中,培养耐心、细致和精益求精的工作态度,树立良好的编程习惯。

2. 学生通过编写记事本程序,激发对计算机科学的兴趣,增强学习动力。

3. 学生在合作交流中,学会倾听、尊重他人意见,培养团队协作精神。

本课程针对高年级学生,结合C语言学科特点和教学要求,以实用性为导向,旨在帮助学生掌握C语言编程基础,培养实际编程能力。

课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,为后续教学设计和评估提供依据。

二、教学内容1. C语言基础语法回顾:变量定义、数据类型、运算符、控制语句(条件语句、循环语句)。

2. 文件操作:文件打开、读取、写入和关闭,文件指针操作,标准库函数(fopen、fprintf、fscanf、fclose等)。

3. 字符串处理:字符串概念,字符串操作函数(strlen、strcpy、strcat、strcmp等)。

4. 编程规范与技巧:代码结构、命名规则、注释、错误处理和调试。

5. 记事本程序设计:需求分析,功能模块划分,界面设计,核心功能实现(打开、新建、保存、编辑等)。

教学内容依据课程目标,结合教材章节进行选择和组织,确保科学性和系统性。

教学大纲安排如下:第一课时:C语言基础语法回顾,介绍文件操作概念。

第二课时:详细讲解文件操作函数,演示文件读写示例。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.io.*;import java.util.Calendar;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NoteBook extends JFrame implements ActionListener,ItemListener,WindowListener,MouseListener{Container c = this.getContentPane();JMenuBar jmb = new JMenuBar();JColorChooser jcc = new JColorChooser();JMenu jm1 = new JMenu("文件(F)");JMenu jm2 = new JMenu("编辑(E)");JMenu jm3 = new JMenu("格式(O)");JMenu jm4 = new JMenu("查看(V)");JMenu jm5 = new JMenu("帮助(H)");JMenuItem jmi1 = new JMenuItem("新建(N)");JMenuItem jmi2 = new JMenuItem("打开(O)");JMenuItem jmi3 = new JMenuItem("保存(S)");JMenuItem jmi4 = new JMenuItem("退出(X)");JMenuItem jmi5 = new JMenuItem("撤消(U)");JMenuItem jmi6 = new JMenuItem("复制(C)");JMenuItem jmi7 = new JMenuItem("粘贴(P)");JMenuItem jmi8 = new JMenuItem("剪切(T)");JMenuItem jmi12 = new JMenuItem("日期和时间");JMenuItem jmi9 =m new JMenuItem("字体(E)");JCheckBoxMenuItem jcbmi = new JCheckBoxMenuItem("自动换行(W)");JMenuItem jmi10 = new JMenuItem("删除(S)");JMenuItem jmi11 = new JMenuItem("背景颜色(H)");JTextArea jta = new JTextArea(15,15);JScrollPane jsp = new JScrollPane(jta);//PupolMenu pm = new Pupolmenu();NoteBook(){this.addWindowListener(this);c.setLayout(new BorderLayout());c.add(jmb,BorderLayout.NORTH);this.setTitle("新建文本文档");jmb.add(jm1);jm1.setMnemonic('f');jm1.addActionListener(this);jmb.add(jm2);jm2.setMnemonic('e');jmb.add(jm3);jm3.setMnemonic('o');jmb.add(jm4);jm4.setMnemonic('v');jmb.add(jm5);jm5.setMnemonic('h');jm1.add(jmi1);jmi1.addActionListener(this);jmi1.setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK,false)); jm1.addSeparator();jm1.add(jmi2);jmi2.setAccelerator(KeyStroke.getKeyStroke('O',Event.CTRL_MASK,false)); jmi2.addActionListener(this);jm1.addSeparator();jm1.add(jmi3);jmi3.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK,false)); jmi3.addActionListener(this);jm1.addSeparator();jm1.add(jmi4);jmi1.setMnemonic('n');jmi2.setMnemonic('o');jmi3.setMnemonic('s');jmi4.setMnemonic('x');jmi4.addActionListener(this);jm2.add(jmi5);jm2.addSeparator();jm2.add(jmi6);jm2.addSeparator();jm2.add(jmi7);jm2.addSeparator();jm2.add(jmi8);jm2.add(jmi12);jmi12.addActionListener(this);jm3.add(jcbmi);jcbmi.addItemListener(this);jm3.addSeparator();jm3.add(jmi9);jm4.add(jmi10);jmi10.addActionListener(this);jm5.add(jmi11);jmi11.addActionListener(this);c.add(jsp);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);this.setSize(500,500);this.setVisible(true);}public void actionPerformed(ActionEvent e){jta.setText("");this.setTitle("无标题- 记事本");}if(e.getSource()==jmi2){File f1;JFileChooser jfc1 = new JFileChooser();int num1 = jfc1.showOpenDialog(this);if(num1==JFileChooser.APPROVE_OPTION){ try{f1 = jfc1.getSelectedFile();this.setTitle(f1.getName());FileReader fr = new FileReader(f1); BufferedReader br = new BufferedReader(fr); String str;while((str = br.readLine())!=null){jta.setText(str);}fr.close();br.close();}catch(FileNotFoundException e1){e1.printStackTrace();}catch(IOException e2){e2.printStackTrace();}}}if(e.getSource()==jmi3){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(this);if(num2==JFileChooser.APPROVE_OPTION){ f2=jfc2.getSelectedFile();this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); bw.write(jta.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}}int a = JOptionPane.showConfirmDialog(this,"文件已被改变,是否要保存?","提示",JOptionPane.YES_NO_CANCEL_OPTION);if(a==1){this.dispose();}else if(a==0){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(this);if(num2==JFileChooser.APPROVE_OPTION){f2=jfc2.getSelectedFile();this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2);BufferedWriter bw = new BufferedWriter(fw);bw.write(jta.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}this.dispose();}}}if(e.getSource()==jmi12){Calendar c1 =Calendar.getInstance();int y = c1.get(Calendar.YEAR);int m = c1.get(Calendar.MONTH);int d = c1.get(Calendar.DATE);int h = c1.get(Calendar.HOUR);int m1 = c1.get(Calendar.MINUTE);int m2 = m+1;jta.setText(y+"年"+m2+"月"+d+"日"+h+":"+m1);}if(e.getSource()==jmi11){Color ccc = JColorChooser.showDialog(this,"color",Color.BLACK);jta.setSelectedTextColor(ccc);jta.setBackground(ccc);}if(e.getSource()==jmi10){jta.replaceRange("",jta.getSelectionStart(),jta.getSelectionEnd());}mHelp = new JMenu("帮助(H)");mHelp.setMnemonic(KeyEvent.VK_H);mHelp.add(new JMenuItem("帮助主题"));mHelp.addSeparator();mHelp.add(new JMenuItem("关于计算器"));mPaste.setEnabled(true);} else if(s.equals("粘贴(P)")){ tResult.setText(copyBoard.toString());} else if(s.equals("CE")){//如果是CE则清除文本框tResult.setText("0.");} else if(s.equals("Backspace")){//如果是backspace则删除一个字符。

相关文档
最新文档