文档库 最新最全的文档下载
当前位置:文档库 › 课程设计部分源代码

课程设计部分源代码

课程设计部分源代码
课程设计部分源代码

1.主界面的设计

package frame;

import java.awt.BorderLayout;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JDesktopPane;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JToolBar;

public class MainFrame extends JFrame {

private static final int DEFAULT_WIDTH = 800;

private static final int DEFAULT_HEIGTH = 650;

JDesktopPane desktop = new JDesktopPane();

private JMenuBar menuBar;

private JMenu systemMenu;

private JMenu studentMenu;

private JMenu teacherMenu;

private JMenu departmentMenu;

private JMenu courseMenu;

private JMenu seCourseMenu;

private JMenu gradeMenu;

private JMenu statisticMenu;

MyAction myAction;

private JToolBar toolBar;

public MainFrame() {

systemMenu = new JMenu("系统");

studentMenu = new JMenu("学生管理");

teacherMenu = new JMenu("教工管理");

departmentMenu = new JMenu("系管理");

courseMenu = new JMenu("课程管理");

seCourseMenu = new JMenu("学生选课");

gradeMenu = new JMenu("成绩管理");

statisticMenu = new JMenu("统计报表");

myAction = new MyAction(desktop);

menuBar = new JMenuBar();

toolBar = new JToolBar();

setTitle("教学管理系统");

add(desktop, BorderLayout.CENTER);

setSize(DEFAULT_WIDTH, DEFAULT_HEIGTH);

setLocation(50, 50);

addMenu();

addToolBar();

loadBackgroundImage();

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

private void addMenu(){

setJMenuBar(menuBar);

JMenuItem chPasswordItem = new JMenuItem("更改密码");

JMenuItem exitItem = new JMenuItem("系统退出");

systemMenu.add(chPasswordItem);

systemMenu.add(exitItem);

menuBar.add(systemMenu);

JMenuItem sStorageItem = new JMenuItem("学生录入");

JMenuItem sEditItem = new JMenuItem("学生修改");

JMenuItem sTransferItem = new JMenuItem("学生转学");

JMenuItem sDeleteItem = new JMenuItem("学生删除");

studentMenu.add(sStorageItem);

studentMenu.add(sEditItem);

studentMenu.add(sTransferItem);

studentMenu.add(sDeleteItem);

menuBar.add(studentMenu);

JMenuItem tStorageItem = new JMenuItem("教工录入");

JMenuItem tEditItem = new JMenuItem("教工修改");

JMenuItem tDeleteItem = new JMenuItem("教工删除");

teacherMenu.add(tStorageItem);

teacherMenu.add(tEditItem);

teacherMenu.add(tDeleteItem);

menuBar.add(teacherMenu);

JMenuItem dStorageItem = new JMenuItem("系录入"); JMenuItem dEditItem = new JMenuItem("系修改"); JMenuItem dDeleteItem = new JMenuItem("系删除"); departmentMenu.add(dStorageItem); departmentMenu.add(dEditItem);

departmentMenu.add(dDeleteItem);

menuBar.add(departmentMenu);

JMenuItem cStorageItem = new JMenuItem("课程录入"); JMenuItem cEditItem = new JMenuItem("课程修改"); JMenuItem cDeleteItem = new JMenuItem("课程删除"); courseMenu.add(cStorageItem);

courseMenu.add(cEditItem);

courseMenu.add(cDeleteItem);

menuBar.add(courseMenu);

JMenuItem couSelectItem = new JMenuItem("学生选课"); JMenuItem couEditItem = new JMenuItem("选课修改"); JMenuItem couDeleteItem = new JMenuItem("选课删除"); seCourseMenu.add(couSelectItem);

seCourseMenu.add(couEditItem);

seCourseMenu.add(couDeleteItem);

menuBar.add(seCourseMenu);

JMenuItem gStorageItem = new JMenuItem("成绩输入"); JMenuItem gEditItem = new JMenuItem("成绩修改"); gradeMenu.add(gStorageItem);

gradeMenu.add(gEditItem);

menuBar.add(gradeMenu);

JMenuItem gTableItem = new JMenuItem("成绩表"); JMenuItem cTableItem = new JMenuItem("选课表"); statisticMenu.add(gTableItem);

statisticMenu.add(cTableItem);

menuBar.add(statisticMenu);

dStorageItem.addActionListener(myAction); dEditItem.addActionListener(myAction); dDeleteItem.addActionListener(myAction);

tStorageItem.addActionListener(myAction);

tEditItem.addActionListener(myAction);

tDeleteItem.addActionListener(myAction);

cStorageItem.addActionListener(myAction);

cEditItem.addActionListener(myAction);

cDeleteItem.addActionListener(myAction);

sStorageItem.addActionListener(myAction);

sTransferItem.addActionListener(myAction);

sEditItem.addActionListener(myAction);

sDeleteItem.addActionListener(myAction);

couSelectItem.addActionListener(myAction);

couEditItem.addActionListener(myAction);

couDeleteItem.addActionListener(myAction);

gStorageItem.addActionListener(myAction);

gEditItem.addActionListener(myAction);

exitItem.addActionListener(myAction);

}

private void addToolBar() {

//String ImageName[] = {"借出管理.gif","移动管理.gif","维修管理.gif","折旧管理.gif","报表管理.gif","增加.gif","删除.gif","修改.gif","打印.gif","查询.gif","刷新.gif","退出.gif"};

String ImageName[] = {"科目设置.GIF","班级设置.gif","添加学生.gif","录入成绩.GIF",

"成绩明细.GIF","年级汇总.GIF","系统退出.GIF"};

String TipString[] = {"课程设置","院系设置","学生管理","录入考试成绩",

"教职工设置","成绩汇总","系统退出"};

String ComandString[] = {"课程设置","院系设置","学生管理","录入考试成绩",

"教职工设置","成绩汇总","系统退出"};

for(int i = 0 ; i < ComandString.length; i++){

JButton jb = new JButton();

// ImageIcon image = new ImageIcon(JF_main.class.getResource(ImageName[i]));

ImageIcon image = new ImageIcon(".\\images\\" + ImageName[i]);

jb.setIcon(image);

jb.setToolTipText(TipString[i]);

jb.setActionCommand(ComandString[i]); //设置此按钮的动作命令。

jb.addActionListener(myAction);

toolBar.add(jb);

}

add(toolBar, BorderLayout.NORTH);

}

protected void loadBackgroundImage(){

ImageIcon icon = new ImageIcon(".\\images\\main.jpg");

JLabel desk = new JLabel(icon);

desk.setBounds(0,0,icon.getIconWidth(),icon.getIconHeight());

desktop.add(desk,new Integer(Integer.MIN_V ALUE));

}

}

2.事件监听器的修改

package frame;

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;

import javax.swing.DesktopManager;

import javax.swing.JDesktopPane;

public class MyAction extends AbstractAction {

JDesktopPane desktop = null;

private String EventName = "";

private DesktopManager desktopManager;

public MyAction(JDesktopPane desktop) {

this.desktop = desktop;

desktopManager = desktop.getDesktopManager();

}

public void actionPerformed(ActionEvent e) {

String com = e.getActionCommand();

if (com.equals("系录入")||com.equals("系删除")

||com.equals("系修改")||com.equals("院系设置")) { Department dept = new Department();

desktop.add(dept);

dept.setLocation(50,50);

dept.show();

desktopManager.activateFrame(dept);

}

if (com.equals("学生录入")||com.equals("学生修改")

||com.equals("学生转学")||com.equals("学生删除")

||com.equals("学生管理")) {

Student stu = new Student();

desktop.add(stu);

stu.setLocation(50,50);

stu.show();

desktopManager.activateFrame(stu);

}

if (com.equals("教工录入")||com.equals("教工修改")

||com.equals("教工删除")||com.equals("教职工设置")) { Teacher tea = new Teacher();

desktop.add(tea);

tea.setLocation(50,50);

tea.show();

desktopManager.activateFrame(tea);

}

if (com.equals("课程录入")||com.equals("课程修改")

||com.equals("课程删除")||com.equals("课程设置")) { Course course = new Course();

desktop.add(course);

course.setLocation(50,50);

course.show();

desktopManager.activateFrame(course);

}

if (com.equals("学生选课")||com.equals("选课修改")

||com.equals("选课删除")) {

SelectCourse selectC = new SelectCourse();

desktop.add(selectC);

selectC.setLocation(50,50);

selectC.show();

desktopManager.activateFrame(selectC);

}

if (com.equals("成绩输入")||com.equals("成绩修改")

||com.equals("成绩删除")||com.equals("录入考试成绩")

||com.equals("成绩汇总")) {

ScoreManager sm = new ScoreManager();

desktop.add(sm);

sm.setLocation(50,50);

sm.show();

desktopManager.activateFrame(sm);

}

if (com.equals("成绩表")||com.equals("选课表")) {

}

if (com.equals("系统退出")) {

System.exit(1);

}

}

}

3.增删减操作

package frame;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.SQLException;

import java.util.Vector;

import javax.swing.AbstractAction;

import javax.swing.DefaultDesktopManager;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JInternalFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JSplitPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import model.DepData;

import model.SelectCData;

import util.ConneJdbc;

import util.SqlTableModel;

import util.UpdateDatebase;

public class SelectCourse extends JInternalFrame {

ConneJdbc con = new ConneJdbc();

JSplitPane splitPane = new JSplitPane();

BorderLayout borderLayout = new BorderLayout();

GridLayout gridLayout = new GridLayout();

FlowLayout flowLayout = new FlowLayout();

JScrollPane scrollPane = new JScrollPane();

JPanel panel_1 = new JPanel();

JPanel panel_2 = new JPanel();

JTable table = new JTable();

SqlTableModel tablemodel;

JLabel stu_idL = new JLabel("学生号");

JLabel s_nameL = new JLabel("学生名");

JLabel c_idL = new JLabel("课程号");

JLabel c_nameL = new JLabel("课程名");

JTextField s_nameT = new JTextField();

JTextField c_idT = new JTextField();

JTextField c_nameT = new JTextField();

JComboBox combo = new JComboBox();

JComboBox comboId = new JComboBox();

JButton insertB = new JButton("增加");

JButton updateB = new JButton("修改");

JButton deleteB = new JButton("删除");

JButton exitB = new JButton("退出");

SelectCData data = new SelectCData();

public SelectCourse() {

init();

setVisible(true);

setDefaultCloseOperation(JInternalFrame.EXIT_ON_CLOSE);

}

private void init() {

setLayout(borderLayout);

setSize(450, 380);

setClosable(true);

add(splitPane, BorderLayout.CENTER);

splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT); splitPane.add(scrollPane, JSplitPane.TOP); scrollPane.getViewport().add(table);

splitPane.add(panel_2, JSplitPane.BOTTOM);

gridLayout.setColumns(4);

gridLayout.setRows(2);

panel_2.setLayout(gridLayout);

panel_2.add(stu_idL);

panel_2.add(comboId);

panel_2.add(c_idL);

panel_2.add(combo);

addCombo();

panel_1.setLayout(flowLayout);

add(panel_1, BorderLayout.SOUTH);

panel_1.add(insertB);

panel_1.add(updateB);

panel_1.add(deleteB);

panel_1.add(exitB);

splitPane.setDividerLocation(240);

buildTable();

insertB.addActionListener(new AbstractAction() { public void actionPerformed(ActionEvent arg0) { setSC();

}

});

updateB.addActionListener(new AbstractAction() { public void actionPerformed(ActionEvent arg0) {

}

});

deleteB.addActionListener(new AbstractAction() { public void actionPerformed(ActionEvent arg0) { delete();

}

});

exitB.addActionListener(new AbstractAction() {

public void actionPerformed(ActionEvent arg0) {

DefaultDesktopManager manger = new DefaultDesktopManager();

manger.closeFrame(SelectCourse.this);

}

});

}

private void addCombo() {

String sql = "select stu_id from student";

for(Object temp: con.selectSql(sql))

comboId.addItem(temp);

sql = "select c_id from course";

for(Object temp: con.selectSql(sql))

combo.addItem(temp);

}

public void buildTable() {

String sql = "select score.stu_id,s_name,score.c_id,c_name " +

"from score,student,course " +

"where student.stu_id=score.stu_id " +

"and course.c_id=score.c_id";

String[] name = { "学生号", "学生名", "课程号","课程名" };

tablemodel = new SqlTableModel(sql, name);

table.setModel(tablemodel);

}

private void setSC() {

data.setStu_id(((String)comboId.getSelectedItem()).trim());

int c_id = (Integer)combo.getSelectedItem();

data.setC_id(c_id);

UpdateDatebase SC = new UpdateDatebase();

try {

SC.insert(data);

} catch (SQLException e) {

e.printStackTrace();

}

buildTable();

}

private void delete() {

int del = table.getSelectedRow();

String stu_id = (String)tablemodel.getValueAt(del,0);

int c_id = (Integer)tablemodel.getValueAt(del,2);

UpdateDatebase SC = new UpdateDatebase();

try {

SC.delete(data, stu_id, c_id);

} catch (SQLException e) {

e.printStackTrace();

}

buildTable();

}

}

4.连接数据库的操作

package util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Vector;

public class ConneJdbc {

protected static Connection connection = null;

private Connection con = null;

private ResultSet rs = null;

private ResultSetMetaData rsmd = null;

public ConneJdbc() {

try {

Class.forName("com.mysql.jdbc.Driver");

connection = DriverManager.getConnection(

"jdbc:mysql://127.0.0.1:3306/teach",

"root", "");

System.out.println("数据库操作成功,祝贺你");

} catch (https://www.wendangku.net/doc/e413519246.html,ng.ClassNotFoundException classnotfound) { classnotfound.printStackTrace();

} catch (java.sql.SQLException sql) {

sql.printStackTrace();

}

}

public Connection getCon() {

return connection;

}

public Vector selectSql(String sql) {

Vector vdata = new Vector();

try {

rs = connection.prepareStatement(sql).executeQuery();

rsmd = rs.getMetaData();

while (rs.next())

vdata.addElement(rs.getObject(1));

} catch (SQLException e) {

e.printStackTrace();

}

return vdata;

}

public String selectOne(String sql) {

ResultSet rs = null;

ResultSetMetaData rsmd = null;

try {

rs = connection.prepareStatement(sql).executeQuery();

rsmd = rs.getMetaData();

if (rs.next())

return (String)rs.getObject(1);

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

public boolean inTable(String user, String pa) throws SQLException { Statement stmt = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

String sql = "select password from users " +

"where user_name='" + user +"' and password='"

+ pa + "'";

rs = connection.prepareStatement(sql).executeQuery();

if(rs.next())return true;

else return false;

}

}

简单计算器c++课程设计

简单计算器 1 基本功能描述 简单计算器包括双目运算符和单目运算符。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。 2 设计思路 如图1,是输入数据子函数的流程图。打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。 如图2,是整个计算器的流程图。对于输入的算式,判断运算符是双目运算符还是单目运算符。如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。结束程序。

输入一个数字 在之前输入的数字字符后面加上现在的数字字符。 Eg :m_str+=”9”。 直接使编辑框显示所输入的数字字符。 Eg :m_str=”9”。 pass3=1表示已有数字输入 开始 之前是否有数字输入? pass3==1? 继续键入数字? 用UpdateData(FALSE)刷新显示 图1 输入数据子函数流程图 Y N Y N

输入开始 双目运算符 是否每一个操作数都存入a[]数组? 把操作数存入a[z+2],把运算符存入b[z+1]。 单目运算符 将字符串转换 为可计算的数进行运算 运算是否合法? 将结果存入a[0] 弹出对话框提示错误 结束Y Y N N 图2 简单计算器总流程图

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

学生选课系统课程设计

课程设计报告 课程名称: 学生选课系统的设计与实现 专业: 12级计算机科学与技术 姓名: 班级: 学号: 年月日 学生选课系统的设计与实现一、需求分析

1.设计背景 随着高校教学改革的不断深入,越来越多的高校都陆续采用了学分制。高校大学生们可以根据自己兴趣和爱好来自由选择自己所喜爱的课程。基于高校校园网的网上选课系统不仅克服了以往人工报送选课方式所暴露出的缺点与不足。同时极大地提高了高校教务人员工作效率,极大地方便了高校师生。网上学生选课系统在C/S的架构下采用了目前最流行的Internet的主流技术C#技术作为运行平台。学生选课系统的推出,使得全校选课的维护、学生选课及查询、成绩录入、统计等工作均变得轻松高效,形成了教与学的积极互动,减轻了系统维护的成本与工作量,方便学生及老师的使用。 学生选课系统要求可以进行课程信息的录入,课程信息的浏览,可以按学分查询。作为学生选课系统,我设计了对学生和老师的信息管理,选课系统包含的信息涉及信息多,所以这方面我额外的增加了这方面的信息管理。 2.设计目标 ●系统能够提供友爱的用户界面,使操作人员的工作量最大限度地减少; ●系统具有良好的运行效率,能够达到提高效率的目的; ●系统应有良好的可扩充性,可以容易地加入其他系统的应用; ●通过这个项目可以锻炼自己,提高自己的开发能力和项目管理能力; 3..实现功能 本设计所开发的系统用户有三类:学生用户,教师用户,管理员用户。 当学校公布可以选课了,学生就应该急时登陆选课系统进行选课。对学生来说,进行登陆选课,系统中有哪些可选的课程由管理员添加。课程重要的信息之一就是该课程的老师。当加入老师时,应该跟老师的信息相关联。当老师登陆时,可以查看自己所教的课程的报名情况,以及学生对该课的评价等等信息。学生和老师都不可能使用管理员的功能。 学生选课系统共设计4个模块,其功能介绍如下: ●登录模块:此模块实现用户的的注册和登录 ●学生模块: 1)查询信息:查询学生自己信息 2)录入选课信息 ●教师模块: 1)查询信息:查询教师自己信息 查询选课信息 ●管理员模块: 1)学生信息管理:用于管理学生信息,实现对学生信息的增加,删除,修改等功能。 2)课程信息管理:用于管理课程信息,实现对课程信息的增加,删除,修改等功能。 3)选课系统:用于学生选课,提供学号和课程号,进行选课功能。 4)教师信息管理:用于管理教师信息,实现对教师信息的查询,以及对学生信息的增加,删除,修改等功能。用户管理:用于对用户进行增加,删除,修改操作; 4.数据流图 (1)底层数据流图

C语言课程设计 简单计算器程序

课程设计名称:C语言课程设计课程设计题目:简单计算器程序

目录 第1章需求分析 (1) 1.1设计要求 (1) 1.2任务 (1) 第2章总体设计 (2) 2.1设计简介及设计方案论述 (2) 2.2功能模块层次图 (2) 第3章详细设计 (3) 3.3由(后缀)逆波兰表达式计算中缀表达式原理 (8) 3.3.1算法描述 (8) 第4章调试分析 (10) 4.1程序设计中所遇到的错误及犯错的原因 (10) 4.2错误的解决方法 (10) 第5章用户手册 (11) 总结 (15) 参考文献 (16) 附录(程序清单) (17)

第1章需求分析 1.1 设计要求 (1)用 C 语言数据结构实现程序设计; (2)利用结构体、栈、进行相关信息处理; (2)系统的各个功能模块要求用函数的形式实现; (4)界面简单,可操作性高。 1.2任务 (1)定义一个结构体类型数组,输入0~9 及+、--、*等符号的信息,将其信息存储起来; (2)输入简单的加减乘除算术计算式,并在屏幕上显示逆波兰(后缀式)表达式和计算结果; (3)编写代码; (4)程序分析与调试。 说明: 本课程设计将实现一个简单计算器。在功能上尽量模仿windows 的计算器。系统界面不做牵制要求。该程序能实现标准型中+、-、*、/、(、)、.、的混合运算表达式(一般意义上的中缀表达式),将其转换成逆序波兰表达式(后缀表达式)并计算输出结果。在进行运算后可以选择继续运算或者结束当前运算。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

第2章 总体设计 2.1设计简介及设计方案论述 逆波兰表达式又叫做后缀表达式。在通常的表达式中,二元运算符总是置于与之相 关的两个运算对象之间,所以,这种表示法也称为中缀表达式。波兰逻辑学家 J.Lukasiewicz 于 1929 年提出了另一种表示表达式的方法。按此方法,每一运算符都置 于其运算对象之后,故称为后缀表达式。 后缀表达式的优点是显而易见的, 编译器在处理时候按照从左至右的顺序读取逆波 兰表达式,遇到运算对象直接压入堆栈,遇到运算符就从堆栈提取后进的两个对象进行计算,这个过程正好符合了计算机计算的原理。后缀表达式比前缀表达式更加易于转换,并且它的最左面一定为数字,这一点在实 际编程的时候就会体会到它的好处了。 逆波兰表达式有一个更大的优点,就是拆括号,根据运算符的级别将中缀表达式转 换成逆波兰表达式后,运算顺序就已经替代了运算符的级别,这样也避免了括号提高运 算级别的特殊处理。 2.2功能模块层次图 将算术表达式转化为逆波兰表达式 计算逆波兰表达式的值 简单计算器 表 达 式 格 式 转 换 系统 求 值 计 算 系 统

学生信息管理系统java课程设计含源代码完整版

学生信息管理系统j a v a 课程设计含源代码 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 1 2 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的

C#课程设计学生选课系统论文.

摘要 (1) Abstract (2) 1 绪论 (3) 1.1课题背景 (3) 1.2系统设计目的与意义 (3) 2系统相关技术介绍 (4) 2.1 C#技术简介 (4) 2.2 SQL技术 (5) 2.2.1 数据库的基本概念 (5) 2.2.2 本系统中数据库的访问 (5) 3 系统分析 (6) 3.1 需求分析 (6) 3.1.1可行性分析 (6) 3.1.2 系统性能需求 (7) 3.2 系统流程图设计 (8) 3.3数据存储分析:实体联系图(E-R) (9) 4 系统总体设计 (11) 4.1 系统总体功能层次图 (11) 4.2 系统功能模块设计 (11) 4.3 数据库设计 (12) 4.4 部分源代码的设计 (13) 5 系统的具体实现及测试 (24) 5.1 登录界面 (24) 5.2 教师查询界面 (25) 5.3 学生选课界面 (25) 5.4 学生浏览、修改界面 (26) 总结 (27) 致谢 (28) 参考文献 (29)

摘要 随着在校大学生的不断增加,学生选课也成为学校对学生管理中不可缺少的一部分。以往的选课方法是使用人工的方法管理文件档案,这种管理方式存在许多的缺点:效率低、保密差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来不少的困难。随着科学技术的不断提高,计算机已经进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,实用技术绝对选课信息进行管理,具有手工管理所无法比拟的优点。 本文着重讨论了用https://www.wendangku.net/doc/e413519246.html,技术和SQLServer2005开发选课系统的数据库的访问技术,并给出了一些可以实现的核心代码。通过该系统,使学生可以很方便的在校园网上进行网上选课。该系统使用C#作为https://www.wendangku.net/doc/e413519246.html,的开发语言,SQLServer2005作为数据库,系统有较高的安全性和较好的性能。 关键词:学生选课、C#、https://www.wendangku.net/doc/e413519246.html,、SQLServer2005

学生信息管理系统java课程设计(含源代码)

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 设计时间: 评阅意见: 评定成绩:

目录 一、系统描述 (2) 1、需要实现的功能 (3) 2、设计目的 (3) 二、分析与设计 (3) 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11) 三、系统测试 (16) 四、心得体会 (23) 五、参考文献 (24) 六、附录 (24)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,

android简单计算器课程设计.

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

学生选课系统课程设计

数据库课程设计报告 课题名称:学生选课系统 专业:计算机科学与技术 班级:计算机 姓名: 学号: 指导老师:

设计任务书 指导教师(签章): 年月日

摘要: 随着社会的进步,尤其是计算机技术与网络的发展,人们对于数据传输,远程控制的实时性要求越来越高,这就使得计算机技术的发展越来越面向网络。现代学校管理无疑成为网络应用的典型代表,学生在校期间需要进行大量课程的学习,除学校安排的基本课程之外,还要进行部分选修课的学习。为了达到选课的方便、快捷,高等学校都提供网上选课平台供学生使用。本次课程设计选做学生选课系统就是建立在面向网络的基础之上,选用Visual Studio 2008 开发工具和SQL Server2005 数据库。所开发出的系统能够方面学生选课、教师查询和管理员管理。具有较强的实时性,在面向网络的基础上可以方便在外用户进行各种操作。 关键词:面向网络;数据库;方便

目录 1 需求分析 (1) 1.1 系统目标 (1) 1.2 系统功能需求 (1) 2 数据库概念设计 (1) 2.1 系统概念模型 (1) 3 将概念模型转换为关系模型 (2) 3.1 将E-R模型转换为关系模型 (2) 3.2 数据库结构设计 (3) 3.3 实现数据完整性 (4) 4 应用程序设计 (4) 4.1 学生选课系统处理流程图 (4) 4.2 总体结构和外部结构设计 (4) 5 编程实现 (5) 5.1 Login.aspx (5) 5.2 Student.aspx (5) 5.3 Teacher.aspx (6) 5.4 guanliyuan.aspx (6) 5.5 Acourse.aspx (7) 5.6 Ateacher.aspx (7) 5.7 Astudent.aspx (7) 5.8 Password.aspx (7) 总结 (9) 致谢 (10) 参考文献 (11)

简易计算器课程设计

评阅教师评语:课程设计成绩 考勤成绩 实做成绩 报告成绩 总评成绩指导教师签名: 课程设计报告 论文题目基于ARM的简易计算器设计 学院(系):电子信息与自动化学院 班级:测控技术与仪器 学生姓名:同组同学: 学号:学号: 指导教师:杨泽林王先全杨继森鲁进时间:从2013年 6 月10 日到2013年 6 月28 日 1

目录 1、封面—————————————————————P1 2、目录—————————————————————P2 3、前言—————————————————————P3 4、关键字————————————————————P3 5、原理与总体方案————————————————P3 6、硬件设计———————————————————P6 7、调试—————————————————————P10 8、测试与分析——————————————————P11 9、总结—————————————————————P13

10、附件—————————————————————P14 前言 近几年,随着大规模集成电路的发展,各种便携式嵌入式设备,具有十分广阔的市场前景。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。在嵌入式系统中,数据和命令通过网络接口或串行口经过ARM程序处理后,或显示在LCD上,或传输到远端PC上。 本文通过周立功的LPC2106芯片完成的简易计算器,正是对嵌入式应用的学习和探索。 一、摘要: 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 关键字:中断,扫描,仿真,计算 二、原理与总体方案: 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。 而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

网上选课系统报告参考模板

河南经贸职业学院·信息管理系 Java web课程设计 《网上选课系统》

目录 第一章引言 (1) 1.1项目来源及定义 (1) 1.2项目要达到的目标 (1) 1.3项目开发计划 (1) 第二章需求分析 (2) 2.1系统功能性描述 (2) 2.1.1系统用例图 (2) 2.1.2网上选了子系统结构图 (4) 2.1.3 网上选课子系统结构图 (4) 2.2系统非功能性描述 (4) 2.2.1软硬件环境要求 (5) 2.2.2系统安全性需求 (6) 第三章系统概要设计 (6) 3.1软件模块结构设计 (6) 3.2界面设计 (7) 3.2.1网上选课子系统界面设计 (7) 3.2.2网上选课子系统界面设计 (7) 3.3数据库设计 (8) 3.3.1实体描述 (8) 第四章系统详细设计 (11) 4.1数据库的逻辑设计 (11) 4.1.1 表汇总 (11) 4.1.2 [管理员表] (12) 4.1.3 [课程表] (12) 4.2系统功能设计 (14) 4.2.1网上选课子系统业务流程 (14) 4.2.2网上选课子系统业务流程 (15) 4.3系统人机界面设计 (17) 第五章总结 (25) 5.1问题及解决方法 (25) 5.2总结与体会 (25) 5.3感谢.......................................... 错误!未定义书签。第六章参考文献 (27)

第一章引言 1.1项目来源及定义 网上选课系统是为了方便学生选课,方便主管部门对选课的管理,并为学生和教师的双向选择提供了平台。网上选课系统主要包括待选课程管理、选课学生管理、学生选课功能、选课控制(时间和人数)、选课情况统计汇总等功能,从而满足学生选课及教师选课管理的各项操作要求。 1.2项目要达到的目标 本系统主要是为了方便广大学生选课和老师教课以及管理员对系统的管理而开发的,通过本系统可以让广大学生老师和管理员能够快速有效地完成选课和对课程的管理,从而方便了 1.3项目开发计划 项目开发进度分为系统分析、需求分析、概要分析、详细设计、系统实施、系统维护六个阶段,具体进度安排如图1-1所示: 项目2011.1.10- 2011.1.11 2011.1.11- 2011.1.12 2011.1.12- 2011.1.13 2011.1.13- 2011.1.14 2011.1.14 系统分析需求分析总体设计详细设计 系统实施系统维护

简易计算器课程设计

基于单片机的计算器的设计 摘要:本设计是一个实现加减乘除的计算器,它的硬件主要由四部分构成,一个8051单片机芯片,两个八段共阴极数码管,一个4*4键盘,它可以实现一位数的加减乘除运算。 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 关键词:LED接口;键盘接口;8255A;汇编语言 一、概述 1.1设计要求及任务: (1)设计4*4的键盘,其中10个数字键0~9,其余六个键“+”、“—”、“*”、“/”、“=”、和“C”键; (2)设计两位LED接口电路; (3)实现1位数的简单运算 1.2设计原理 (1)LED显示器接口技术 LED动态显示接口技术 (2)键盘显示技术 逐行(逐列扫描法) 二、系统总体方案和硬件设计 2.1计算器总体思想 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 执行过程:开机显示零,等待键入数值,当键入数字,经通过数码管显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。 图1 系统设计框图

2.2硬件的选择与连接 图二硬件连接总图 2.2.1硬件选择 (1)由于本设计比较简单,因此选用内部含有4KBE2PROM的89C51单片机作为系统的核心。 (2)扩展输入/输出端口 在扩展输入/输出端口时,要求输入口能够缓冲,,输出口能够锁存。常用小规模集成电路芯片74LS244或74LS245等扩展输入端口,用74LS273、74LS373、 74LS377扩展输出端口。这种扩展方法的特点是电路简单,但功能单一、灵活性差。因而常采用中规模的可编程并行接口芯片8255A扩展输入/输出端口。 (3)锁存电路采用74LS373 2.2.2接口设计 (1)单片机与8255A的接口设计 8255A中的数据总线缓冲器为三态双向数据缓冲存储器,用于将8255A的数据线 D0~D7和单片机的数据总线(P0口)连接,实现单片机和接口间的数据传送。 读写控制部件的接口设计 1、/CS为片选信号,接成低电平表示8255A 被选中。/CS与P2.7相连,用P2口的最高位控制8255A是否工作。即将P2.7控制为低电平。 2、RESET-复位信号,高电平有效,接在单片机的RST端。 3、/RD和/WR为读写控制信号,低电平有效。分别将两个端口接单片机的/RD和/WR 4、A1和A0-端口选择信号,分别与单片机的低两位地址线P1.1和P1.0相连。用于选择不同端口。采用74LS373三态锁存器,用于分离P0口第八位地址线,将它的Q0和Q1口接至8255A的地址输入端A0和A1。

5_Java课程设计源代码

package zhouchuan; import java.applet.*; import java.awt.*; import java.awt.event.*; import https://www.wendangku.net/doc/e413519246.html,.*; public class zhouchuan extends Applet implements ActionListener { AudioClip clip; Button buttonPlay, buttonLoop, buttonStop; public void init(){ try{ URL url=new URL("file:"+"F://ding.wav"); clip=getAudioClip(url);}catch(Exception e){ } buttonPlay=new Button("开始播放"); buttonLoop=new Button("循环播放"); buttonStop=new Button("停止播放"); buttonPlay.addActionListener(this); buttonStop.addActionListener(this); buttonLoop.addActionListener(this); add(buttonPlay); add(buttonLoop); add(buttonStop); } public void stop(){ clip.stop(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonPlay) clip.play(); else if(e.getSource()==buttonLoop) clip.loop();

最新单片机简易计算器课程设计

单片机简易计算器课 程设计

引言 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本任务是个简易的两位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的锻炼。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS –51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。 事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台

网上选课系统课程设计文档

《网上选课系统》课程设计 20111 / 2012 学年第 1 学期 姓名:____黄勇、王超、陈云_____ 专业:____计算机科学与技术_____ 班级:_______0905092___________ 指导教师:周蓓、周荣、许秀兰、王剑 计算机科学与工程学院 2011

一、系统简介 (3) 1.1系统基本功能简介 (3) 1.2系统需求分析 (3) 1.2.1业务流程分析 (4) 1.2.2数据流分析 (8) 1.2.3数据字典 (11) 二、系统设计 (13) 2.1数据库设计 (13) 2.1.1概念结构设计 (13) 2.1.2逻辑结构设计 (16) 2.2系统模块设计 (22) 三、系统实现 (25) 3.1实现概况 (25) 3.2 登录模块 (26) 3.2.1程序流程图 (26) 3.2.2关键代码 (26) 3.3 排课模块 (29) 3.4选课模块 (32) 3.4.1程序流程图 (32) 3.4.2选课的存储过程 (33) 3.5其他模块简介 (34) 3.6系统界面设计 (35) 3.6.2选课主界面 (35) 结论 (38)

一、系统简介 1.1系统基本功能简介 网上选课系统是根据大学的选课的网上申请与管理而进行开发设计的是实现选课的网上申请与安排,管理。 此系统功能主要根据角色的不同而设置了不同的权限,例如管理员具管理此系统的全部权限(设置选课时间的开放时间),增删改学生,老师,管理员,发布选课信息,排课等。 学生随时都可以进入系统查看选课信息,等选课开放时间开放后能进行自主选课,取消所选课程。 教师没有时间限制,随时可以登录观看自己的上课时间,地点。 1.2系统需求分析 通过对系统需求进行分析,系统中设有三类用户:管理员,教师,学生期末管理员开放成绩输入的时候输入学生成绩。各用户的具体描述如下:(1)管理员 描述:管理员维护整个系统,包括发布选课信息,设置选课时段,选课前学生只能登录查看选课通知,不能选课;选课结束,学生不能再进行选课更改,只能查看选课信息。管理让学生所选的课程。增删改学生、老师,管理员信息。选课结束后,管理员手动进行排课,排课时数据库中有各种验证来验证排课信息的冲突,排完课后,发布排课信息,让老师,学生进行查看,设置成绩输入的开放时间。 (2)教师 描述:只能查看选课通知,排课安排,根据上课时间,地点准备教学资料,期末管理员开放成绩输入的时候输入学生成绩。 (3)学生: 描述:选课前查看选课通知,不能进行选课;等待到选课时间段后,

硬件课程设计简易计算器设计

中国矿业大学徐海学院 单片机课程设计 姓名:XXX学号: 22090XXX 专业:计算机09-4班 题目:硬件课程设计 专题:简易计算器设计 指导教师: XXX 设计地点:嘉园时间: 2011-12-23 20011年12月

单片机课程设计任务书 专业年级计算机09-4 学号22090XXX 学生姓名XXX 任务下达日期:2011年12 月15日 设计日期:2011 年12 月15 日至2011 年12 月23日 设计题目:硬件课程设计 设计专题题目:简易计算器设计 设计主要内容和要求: 摘要: 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个计算器。 主要能实现 1.加法:能够计算四位以内的数的加法。 2减法:能计算四位数以内的减法。 3乘法:能够计算两位数以内的乘法。 4除法:能够计算四位数的乘法 5有清零功能,能随时对运算结果和数字输入进行清零。 关键词:单片机; 计算器 ; 加减乘除 指导教师签字:

目录 1 系统概述 (1) 1.1硬件知识概述 (1) 1.1.1 单片机 (1) 1.1.2 C语言 (1) 1.1.3 ISP (1) 1.2设计基本思想 (1) 2硬件电路设计 (2) 2.1 单片机最小系统 (2) 2.2键盘接口电路 (2) 2.3数码管显示电路 (3) 3 软件设计 (4) 3.1 复位电路 (4) 4.系统调试 (5) 4.1 软件流程图 (5) 4.1.1系统软件系统流程图 (5) 5.结束语 (6) 参考文献 (7) 附录 (8)

1 系统概述 1.1硬件知识概述 1.1.1 单片机 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 1.1.2 C语言 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。 1.1.3 ISP ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP 方式擦除或再编程。本次课程设计便使用ISP 方式,直接将编写好的程序下载到连接好的单片机中进行调试 1.2设计基本思想 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个计算器,用四位一体数码管显示计算数值及结果。要求用Protel 画出系统的电路原理图,绘出程序流程图,并给出程序清单。 主要能实现 1.加法:能够计算四位以内的数的加法。 2减法:能计算四位数以内的减法。 3乘法:能够计算两位数以内的乘法。 4除法:能够计算四位数的乘法 5有清零功能,能随时对运算结果和数字输入进行清零。

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

相关文档
相关文档 最新文档