C#语言编程设计--课程实验报告(实验:银行客户服务系统)

C#语言编程设计

课程实验报告

实验:银行客户服务系统

1.实验目的

做一个三层结构的银行客户服务系统,实现客户的存款和取款的过程。

其中三层要求如下:

第一层:业务表现层,在用户界面上实现客户的存款取款过程。

第二层:业务逻辑层,验证用户的输入是否合法,比如用正则表达式验证用户的存款和取款的输入必须是数字。

第三层:数据访问层,当业务逻辑层完成数据的验证以后,使用数据访问层的类直接对数据库进行插入或者删除的操作。

2.设计代码

见附录。

3.实验结果

首页(index.aspx) 提示用户输入用户名和密码:

图1

若输入身份证号码错误,或者密码错误,弹出错误提示框,返回首页

图2

若用户名与密码正确则登陆到账户管理页面

图3

图4

若输入不是数字,或违法恶意输入,弹出提示框,返回用户管理页面

图5

若输入正确,弹出‘交易成功’提示框,返回用户管理页面,余额相应增加

图6

选择取款功能,进入取款界面

图7

若输入不是数字,或违法恶意输入,弹出提示框,返回用户管理页面

图7

若取款金额超出余额,弹出提示框,禁止取款,返回用户管理页面

若输入正确,提示交易成功,跳转到用户管理页面,金额相应减少

图8

若选择注销功能,消除Session值,跳转到登陆页面

图10

图11

4.说明体会

本人熟悉web开发,之前一直使用php在appache环境下做网站,数组库使用的是mysql,也在iis下做过asp,这次有机会使用https://www.360docs.net/doc/857485115.html,,让我感触很多。

首先,.net允许你使用多种不同编程语言的框架,你可以在你的网站中嵌入各种语言,然后,他还有出色的面向对象编程模型,强大的类库为用户带来了很多方便,还有,https://www.360docs.net/doc/857485115.html,起初运行于IIS,现在也可以运行于Apache,这将给.net的安全性带来不少改进。由于接触时间不长,在使用方面不是很熟悉。

通过这次实验我对.net有了进一步了解,以后会继续努力学习钻研!

5.附录

源代码:

//index.aspx

//登陆页面

<%@Page Language="C#"AutoEventWireup="true"CodeFile="index.aspx.cs"Inherits="index" %>

"https://www.360docs.net/doc/857485115.html,/TR/xhtml1/DTD/xhtml1-transitional.dtd">

网上银行

valign="middle">

Style="font-size: 12px; z-index: 100;

left: 228px; vertical-align: middle; font-family: 宋体; position: absolute; top: 143px;

text-align: center"Text="用户名:"Width="65px">

Style="z-index: 103; left: 313px;

position: absolute; top: 142px"Width="119px" OnTextChanged="name_TextChanged">

Style="font-size: 12px; z-index: 102;

left: 236px; position: absolute; top: 169px"Text="密码:" Width="57px">

Style="z-index: 104; left: 313px; position: absolute; top: 169px"TextMode="Password"

Width="119px">

Style="z-index: 106; left: 319px;

position: absolute; top: 201px"Text="重设"Width="40px" OnClick="Button2_Click"/>

//index.aspx.cs

//登陆页面

using System;

using System.Data;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

public partial class index : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void Button2_Click(object sender, EventArgs e)

{

Response.Redirect("index.aspx");

}

protected void submit_Click(object sender, EventArgs e)

{

//连接数据库,查询数据库

string conString = "server=school-913254b1;" +

"Trusted_Connection=yes; database=bank";

SqlConnection conn = new SqlConnection(conString);

conn.Open();

SqlCommand thisCommand = conn.CreateCommand();

https://www.360docs.net/doc/857485115.html,mandText = "select * from [user] where username='" +

name.Text.Trim().ToString() + "' and password='" + psw.Text.Trim().ToString() + "'";

// Response.Write(https://www.360docs.net/doc/857485115.html,mandText);

SqlDataReader thisReader = thisCommand.ExecuteReader();

if (thisReader.Read())

{

Session["username"] = name.Text.Trim().ToString();

Session["password"] = psw.Text.Trim().ToString();

Session["id"] = thisReader["id"].ToString();

Response.Redirect("zhanghu.aspx?id='" + Session["id"] + "'");

}

else

{

Response.Write("");

}

thisReader.Close();

conn.Close();

}

protected void TextBox2_TextChanged(object sender, EventArgs e)

{

}

protected void name_TextChanged(object sender, EventArgs e)

{

}

}

//zhanghu.aspx

//账户管理页面

<%@Page Language="C#"AutoEventWireup="true"CodeFile="zhanghu.aspx.cs"Inherits="zhanghu"%>

"https://www.360docs.net/doc/857485115.html,/TR/xhtml1/DTD/xhtml1-transitional.dtd">

网上银行

 

style="border-right: thin solid; border-top: thin solid; border-left: thin solid; border-bottom: thin solid">

 

 

OnTextChanged="count_TextChanged"ReadOnly="True">

    

//zhanghu.aspx.cs

//账户管理页面

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

public partial class zhanghu : System.Web.UI.Page

{

string balance = "";

//int check = 0;

protected void Page_Load(object sender, EventArgs e)

{

//连接数据库,查询数据库

string connect = "server=school-913254b1;" +

"Trusted_Connection=yes; database=bank";

SqlConnection conn = new SqlConnection(connect);

conn.Open();

SqlCommand command = conn.CreateCommand();

string sql = https://www.360docs.net/doc/857485115.html,mandText = "select * from [user] where id='" + Session["id"] + "'";

SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, conn);

DataSet dataSet = new DataSet();

dataAdapter.Fill(dataSet, "user");

String balance = dataSet.Tables["user"].Rows[0]["balance"].ToString();

// check = Convert.ToInt32(balance);

count.Text = balance.ToString();

}

protected void count_TextChanged(object sender, EventArgs e)

{

}

protected void Button3_Click(object sender, EventArgs e)

{

//进入存款页面

Response.Redirect("cunkuan.aspx?id='" + Session["id"] + "'");

}

protected void Button1_Click(object sender, EventArgs e)

{

//进入取款页面

Response.Redirect("qukuan.aspx?id='" + Session["id"] + "'");

}

protected void Button2_Click(object sender, EventArgs e)

{

//注销

Response.Redirect("index.aspx");

}

}

// cunkuan.aspx

//存款页面

<%@Page Language="C#"AutoEventWireup="true"CodeFile="cunkuan.aspx.cs"Inherits="cunkuan"%>

"https://www.360docs.net/doc/857485115.html,/TR/xhtml1/DTD/xhtml1-transitional.dtd">

网上银行

 

style="border-right: thin solid; border-top: thin solid; border-left: thin solid; border-bottom: thin solid">

 

OnTextChanged="count_TextChanged"ReadOnly="True">

OnTextChanged="SaveAmount_TextChanged">

   

Style="font-size: 12px; z-index: 109;

left: 355px; position: absolute; top: 330px"Text="确定"Width="40px" OnClick="Button1_Click1"/>

//cunkuan.aspx.cs

//存款页面

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using System.Text.RegularExpressions;

public partial class cunkuan : System.Web.UI.Page

{

string balance = "";

private double amount = 0;

string connect = "server=school-913254b1;" +

"Trusted_Connection=yes; database=bank";

protected void Page_Load(object sender, EventArgs e)

{

//连接数据库,查询余额

SqlConnection conn = new SqlConnection(connect);

conn.Open();

SqlCommand command = conn.CreateCommand();

string sql = https://www.360docs.net/doc/857485115.html,mandText = "select * from [user] where id='" + Session["id"] + "'";

SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, conn);

DataSet dataSet = new DataSet();

dataAdapter.Fill(dataSet, "user");

String balance = dataSet.Tables["user"].Rows[0]["balance"].ToString();

amount = Convert.ToDouble(balance);

count.Text = balance.ToString();

}

protected void TextBox1_TextChanged(object sender, EventArgs e)

{

}

protected void Button1_Click(object sender, EventArgs e)

{

}

protected void Button2_Click(object sender, EventArgs e)

{

}

protected void Button1_Click1(object sender, EventArgs e)

{

string input = SaveAmount.Text;

SaveAmount.Text = "";

//使用正则表达式验证输入是否合法

Regex theReg = new Regex(@"^\d+(\.\d{0,2})?$");

if (theReg.IsMatch(input))

{

//输入合法,连接数据库,修改数据

double money = Convert.ToDouble(input);

amount += money;

SqlConnection conn = new SqlConnection(connect);

conn.Open();

SqlCommand command = conn.CreateCommand();

string sql = https://www.360docs.net/doc/857485115.html,mandText = "update [user] set balance = '" + Convert.ToDouble(amount) + "'where id ='" + Session["id"] + "'";

command.ExecuteNonQuery();

conn.Close();

Response.Write("");

SaveAmount.Focus();

}

else

{

Response.Write(""); }

}

protected void SaveAmount_TextChanged(object sender, EventArgs e)

{

}

protected void count_TextChanged(object sender, EventArgs e)

{

}

protected void Button3_Click1(object sender, EventArgs e)

{

Response.Redirect("zhanghu.aspx?id='" + Session["id"] + "'");

}

}

//qukuan.aspx

//取款页面

<%@Page Language="C#"AutoEventWireup="true"CodeFile="qukuan.aspx.cs"Inherits="qunkuan" %>

"https://www.360docs.net/doc/857485115.html,/TR/xhtml1/DTD/xhtml1-transitional.dtd">

网上银行

 

style="border-right: thin solid; border-top: thin solid; border-left: thin solid; border-bottom: thin solid">

 

ReadOnly="True">

OnTextChanged="TakeAmount_TextChanged">

   

Style="font-size: 12px; z-index: 109;

left: 488px; position: absolute; top: 330px"Text="返回"Width="40px" OnClick="Button1_Click1"/>

//qukuan.aspx.cs

//取款页面

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using System.Text.RegularExpressions;

public partial class qukuan : System.Web.UI.Page

{

//连接数据库,查询余额

string balance = "";

private double amount = 0;

string connect = "server=school-913254b1;" +

"Trusted_Connection=yes; database=bank";

protected void Page_Load(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(connect);

conn.Open();

SqlCommand command = conn.CreateCommand();

string sql = https://www.360docs.net/doc/857485115.html,mandText = "select * from [user] where id='" + Session["id"] + "'";

SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, conn);

DataSet dataSet = new DataSet();

dataAdapter.Fill(dataSet, "user");

String balance = dataSet.Tables["user"].Rows[0]["balance"].ToString();

amount = Convert.ToDouble(balance);

count.Text = balance.ToString();

}

protected void TakeAmount_TextChanged(object sender, EventArgs e)

{

}

protected void Button3_Click(object sender, EventArgs e)

{

string input = TakeAmount.Text;

TakeAmount.Text = "";

//使用正则表达式验证输入是否合法

Regex theReg = new Regex(@"^\d+(\.\d{0,2})?$");

if (theReg.IsMatch(input)) //判断余额是否足够

{

//输入合法,连接数据库,修改数据

double money = Convert.ToDouble(input);

amount -= money;

SqlConnection conn = new SqlConnection(connect);

conn.Open();

SqlCommand command = conn.CreateCommand();

string sql = https://www.360docs.net/doc/857485115.html,mandText = "update [user] set balance = '" + Convert.ToDouble(amount) + "'where id ='" + Session["id"] + "'";

command.ExecuteNonQuery();

conn.Close();

Response.Write("");

Response.Redirect("zhanghu.aspx?id='" + Session["id"] + "'");

TakeAmount.Focus();

}

else

{

Response.Write(""); }

}

protected void Button1_Click1(object sender, EventArgs e)

{

Response.Redirect("zhanghu.aspx?id='" + Session["id"] + "'");

}

}

《C语言课程设计》实验报告

《C语言课程设计》报告 学院:信息工程学院 专业:信息管理与信息系统设计题目:通讯录程序设计班级:2016级一班 学号:201601510138 姓名:张进步 指导教师:杨菲菲 时间:12.24

学生通讯管理系统 1.1 设计目的 学习如何实现一个复杂的信息管理系统——学生通讯管理系统,能够实现老师对学生基本信息的记录、查询、修改。 通过本次学习,读者能够掌握: (1)如何设计主菜单和子菜单,以及各级菜单的响应与返回操作; (2)如何合理设计不同的结构体对系统中多个实体进行封装; (3)如何合理设计多个结构体数组管理不同实体对应的数据; (4)如何对复杂的函数过程进行拆分,用多个子函数进行封装; (5)进一步熟悉文件读取的相关操作。 1.2需求分析 本章的学生信息管理系统的主要功能面向老师,能够实现对学生信息进行录入、修改、查询。 学生信息方面的功能需求如下。 (1)新增学生信息,包括姓名、籍贯、电话号码(2)、电子邮箱。 (2)修改学生信息,可以选择对某个学生的某个属性值进行修改。 (3)查找学生信息,即输入要查找的学生学号,实现学生信息查询。 (4)显示所有学生信息,并以列表的形式清晰呈现。 1.3总体设计 系统功能结构图如图所示;学生信息管理系统 学生信息管理模块:包括4个子模块,分别是学生信息的录入,学生信息的修改,学生信息的查询,学生信息的浏览。

1.4详细设计与实现 1.4.1 预处理及数据结构 1.头文件 本项目涉及4个头文件,其中#include使用字符串的函数的时候需要添加此头文件,#include #include /*system使用的函数*/ #include /*getchar、getch函数使用的头文件*/ #include /*strcmp比较2个字符串是否一样*/ 2.宏定义 LEN sizeof(struct student)表示struct student的长度。DATA是按格式输出结构体的各项数据,能够方便输出操作,减少代码量。 #define_CRT_SECURE_NO_W ARNINGS #include #include #include #include #define LEN sizeof(struct student) #define FORMAT "%-8d%-15s%-15s%-15d%-15d%-15s\n" #define DATA stu[i].numb,stu[i].name,stu[i].nat,stu[i].num1,stu[i].num2,stu[i].mail 3.结构体 利用一个结构体struct student struct student/*定义学生信息结构体*/ { int numb;/*学号*/ char name[15];/*姓名*/ char nat[16];/*籍贯*/ int num1;/*电话号码1*/ int num2;/*电话号码2*/ char mail[40];/*邮箱*/ }; 4.全局变量 分别利用全局变量结构体数组struct student stu[50];来记录所有学生的基本信息,避免程序运行过程中多次初始化,方便各个式子函数调用。 struct student stu[50];

智胜商业银行综合业务模拟系统实验报告

商业银行实验报告 智胜商业银行综合业务模拟系统实验报告 目录

实验目的 .................................................... 3.. 实验内容 .................................................... 3.. 1、描述一下智盛商业银行综合业务模拟系统及操作平台 (3) 2、做了哪些模拟业务,举例说明,包括哪些对公业务,对私业务?4 【对公业务】 (4) (1 )日初操作 (4) (2) ................................................................. 对公存贷业务5 (3 )个人贷款业务: (6) (4) ................................................................. 对公结算业务6 (5 )对公特殊业务: (8) (6)对公日终处理: (9) 【对私业务】 (9) (1)储蓄日初处理 (9) (2 )储蓄日常业务: (9) (3) ................................................................. 储蓄特殊业务10 (4 )储蓄代理业务: (10) (5) ................................................................. 信用卡业务:11 (6) ................................................................. 储蓄日终处理11 3、对该套系统有哪些意见和建议,存在哪些问题有待进一步改进。11实验总结和心得 (12) (1)........................................................ 对公业务的操作的总结和心得12 (2).......................................................... 对私业务操作的总结和心得13

华中科技大学计算机学院C语言课设实验报告

华中科技大学计算机科学与技术学院 《C语言程序设计》课程设计 实验报告 题目:科研项目信息管理系统 专业:计算机 班级: 学号: 姓名: 成绩: 指导教师:李开 完成日期:2009年10 月20 日

科研项目信息管理系统一、系统功能结构模块图 二、数据结构设计及其用法说明 typedef struct lakey{ char name[30];/*团队名称*/ int total;/*自然科学基金的科研项目数*/ float dudu;/*经费数*/ struct lakey *next; }*plakey;/*统计3中用到的数据结构*/ typedef struct emmey{ char name[30];/*团队名称*/ int teacher;/*老师人数*/ int harden;/*项目数*/ float bizhi;/*比值*/ struct emmey *next; }*pemmey;/*统计4中用到的数据结构*/ typedef struct kPro{ char code[15];/*项目编号*/ char sort;/*项目种类*/ int aking1; char time[8];/*项目时间*/ float dudu;/*项目经费*/ int aking2;

char beiler[15];/*负责人*/ int aking3; char keynoName[30];/*所在团队名称*/ struct kPro *next; }harden,*pHarden; typedef struct Komo{ int teacher;/*老师人数*/ char name[20];/*院系名称*/ int student;/*学生人数*/ float bizhi;/*二者比值*/ struct Komo *next; }*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/ typedef struct kTea{ char name[30];/*团队名称*/ char beiler[15];/*负责人*/ int stuNum;/*学生人数*/ int aking2; int coco;/*老师人数*/ char colName[20];/*所在院系的名称*/ int aking1; struct kTea *next; pHarden child; }keyno,*pKeyno; typedef struct edward{ char name[20];/*院系名称*/ int totalnum;/*项目总数*/ int num973;/*973项目数*/ int num863;/*863项目数*/ float amount;/*经费数*/ struct edward *next; }*pedward;/*统计2中用到的数据结构*/ typedef struct kCol{ char name[20];/*院系名称*/ int aking; char beiler[15];/*院系负责人*/ struct kCol *next; char call[15];/*负责人电话号码*/ pKeyno child; }kekey,*pKekey;

《C语言程序设计》课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 2.1.4调试过程及实验结果

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页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

89C51单片机课程设计之秒表设计实验报告

单片机课程设计报告 单 片 机 秒 表 系 统 课 程 设 计 班级: 课程名称:秒表设计 成员: 实训地点:北校机房 实训时间:6月4日至6月15日

目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2所需元器件 3 程序编写流程及课程设计效果 3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会

1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。 五、课程设计的意义 1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的 应用进一步的了解。 2)掌握定时器、外部中断的设置和编程原理。 3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统, 拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 1.2课程设计思路及描述

计算机程序设计(C语言)课程设计报告

计算机程序设计(C语言) 课程设计报告 题目:电子动画时钟 学院:机电工程学院 专业: 班级:090109班 学号: : 指导教师: 设计日期:

一、概述 选题背景:随着社会的进步和科技的发展,电子钟表逐渐成为了人们生活中不可缺少的一部分。设计思路:(一)功能模块设计,1.电子时钟执行主流程2.电子时钟界面显示3.电子时钟按键控制模块4.时钟动画处理模块(二)数据结构设计 1.time结构体 2.全局变量(三)函数功能描述1.keyhandle()2.timeupchange()3.timedownchange()4.digitclock()5.drawcursor()6. clearcursor()7.void clockhandle()8.main()(四)程序实现(五)运行结果。 二、概要设计 2.1、数据结构 此程序中,使用了C语言的time结构体和几个全局变量,1.time结构体struct time { unsigned char ti_min; /*分钟*/ unsigned char ti_hour; /*小时*/ unsigned char ti_hund; /*百分之一秒*/ unsigned char ti_sec; /*秒*/ }; time结构体定义在dos.h文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。 1.unsigned char ti_min:保存分钟值。

2.unsigned char ti_hour:保存小时。 3.unsigned char ti_hund:保存百分之一秒,例如,ti_hund=500,表示1/500秒。 4.unsigned char ti_sec:保存秒数。 2.2、全局变量 下面对程序用到的全局变量及数组进行说明. 1. double h,m,s: 此3个全局变量分别用来保存小时,分钟,秒数。 2. double x,x1,x2,y,y1,y2:保存数字时钟中小时,分,秒在屏幕中显示的坐标值。 3.struct time t[1]:定义一个time结构类型的数组,此数组只有t[0]一个元素。 2.3 模块列表 1.时钟动画处理模块 时钟动画处理模块主要由clockhandle()函数来实现,程序中旧时钟指针的擦除是借助setwritemode(mode)函数设置画线的方式来实现。如果mode=1,则表示画线时用现在特性的线所画之处原有的线性异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变时,进行两次画线操作相当于没有画线,即在当前位置处清除了原来的画线。 2.时钟按键控制模块 在电子时钟中,按键控制模块最主要的工作就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作。 3.

实验报告银行业务模拟系统的设计与实现(1)

数据结构实验报告 银行业务模拟系统的设计与实现(该实验为综合性实验,共用6个学时)二、实验要求: 1.问题描述: 假设某银行有四个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需在每个窗口前顺次排队,对于刚进入银行的客户,如果某个窗口的业务员正空闲,则可上前办理业务,反之,若四个窗口均有客户所占,他便会排在人数最少的队伍后面。现在需要编制程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。 2.一个完整的系统应具有以下功能: 1)初始化(OpenForDay),模拟银行开门时各数据结构的状态。 2)事件驱动(EventDrived), 对客户到达和离开事件做相应处理。 3)下班处理(CloseForDay), 模拟银行关门时的动作,统计客户平均逗留时间。 [备注]: 假设银行开门的时刻(间)设为0 , 银行每天营业的时间在程序运行时输入(例如480分钟)。 每个客户办理业务的时间不超过30分钟,两个相邻客户到达银行的时间间隔不超过5分钟要求程序执行时,只要给出银行每天的营业时间即可输出客户平均逗留的时间。 三、总的设计思想、环境语言、工具等 总的设计思想: 为了计算这个平均的逗留时间,自然需要知道每个客户到达银行和离开银行这两个时刻,后者减去前者即为每个客户在银行的逗留时间。所有客户逗留时间的总和被一天内进入银行的客户数除便是所求的平均时间。称客户到达银行和离开银行这两个时间发生的事情为“事件”,则整个模拟程序将按事件的先后顺序进行处理。这样一种程序称做事件驱动模拟。下面是上述银行客户的离散事件驱动的模拟算法。 void Bank_Simulation( int CloseTime ){ // OpenForDay ( ); //初始化,模拟银行开门时各数据结构的状态。 while(有要处理的事件时) //有事件可处理 { EventDrived ; //事件驱动,从事件表中取出事件en; //根据en的类型(客户到达事件或客户离开事件)做相应的处理 if(en表示客户到达) CustomerArrived( );// 处理客户到达事件 else CustomerDeparture( ) ;// 处理客户离开事件 }//while CloseForDay( );//计算客户的平均逗留时间 }// Bank_Simulation 环境语言:Windows下的Microsoft VC++ 四、数据结构与模块说明 下面是模拟程序中需要的数据结构及其操作。

VB程序设计课程设计报告完整版

V B程序设计课程设计 报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

《VB程序设计》 课程设计报告(2016 — 2017 学年第 1 学期) 题目:排序演示 学院:经济与管理学院 班级:物流管理1502 学号: 姓名: 指导教师:阮冰 时间:起 2017年1月3日止 1月6日

一、课程设计基本信息 课程代码:05190124 课程名称:计算机基础课程设计 课程英文名称: Computer-based Course Design 课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群 课程面向专业:生物科学类、制药工程、制药工程(生物制药)、药物制 剂、物流管理 课程类型:必修课 先修课程:大学计算机基础通识选修课程、Visual Basic程序设计课程学分:1 总学时:16 二、课程设计目标 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3.系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4.根据个人的设计调试过程,撰写设计报告。 三、课程设计内容 利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。在强化巩固已有编程知识基础之上,训练新的设计与编程思路,通过综合应用所学知识设计、编制、调试实用的Visual Basic程序。 四、课程设计要求 1.要求每个同学都要认真对待,积极参与。 2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同 时填写并完成《课程设计报告册》。 3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计 中完全未参与的将作不及格处理。 五、考核方式

(完整版)C语言课程设计实验报告

目录 目录 (1) 第1章问题描述 (2) 1.1 题目 (2) 1.2基本要求 (2) 第2章需求分析 (2) 1.1软件的基本功能 (2) 1.2输入/输出形式 (2) 1.3测试数据要求 (3) 第3章概要设计 (3) 1.1主程序 (3) 第4章详细设计 (4) 1.1数据类型 (4) 1.2伪码算法 (4) 1.3 程序流程图 (7) 第5章操作 (8) 1.1 进入足球比赛积分排行榜界面 (8) 1.2进入目录 (8) 1.3输入球队比赛信息 (10) 1.4 显示九轮比赛排行榜 (12) 1.5 保存数据 (15) 1.6 由D 盘查看数据 (16) 第6章参考文献 (16)

第1章问题描述 1.1 题目 足球比赛积分排行榜程序 1.2基本要求 (1)10个足球队进行9轮循环赛,胜一场积3分,平一场积1分,输一场积0分。 (2)如果两个队积分相同,进行净胜球的比较,如果净胜球再相同进行总进球的比较。 (3)编写一程序输入每轮比赛的比分,并可以存储。 (4)最后统计出每轮比赛的积分榜。 第2章需求分析 1.1软件的基本功能 (1)输入10个足球队的9轮比赛进球数。 (2)计算10个球队的积分,净胜球,总进球。 (3)对9轮比赛进行排序。 1.2输入/输出形式 由键盘输入,屏幕输出,并且以TXT形式保存。

1.3测试数据要求 输入九轮比赛10个足球队的进球数,由系统统计积分、净胜球、总进球数,并输出。 第3章概要设计 1.1主程序 头文件: #include 说明:main函数的头文件,控制整个程序。 #include 说明:清屏的头文件。 #include 说明:包括了大量的函数原型,调用现成的库函数。 #include 说明:基于char*的字符串处理函数。 全局变量: void input(); 输入数据函数 void sort(); 排序数据函数 void display(); 显示数据函数 void save(); 保存数据函数

程序设计语言 课程设计题目(补充)

课程设计题目 题目七:销售管理系统 问题描述:设计一个日用商品销售管理系统,以小型超市商品销售为管理对象来设计系统。实现功能:根据销售信息(包含如下内容:商品编号、销售数量、销售单价、销售日期、销售人员;保存为磁盘文件),实现对商品日常信息的管理。 1、日用商品销售信息输入 运用人机对话方式实现商品的商品编号、销售数量、销售单价、销售日期、销售人员的信息录入,以文件的形式保存其信息 2、商品销售信息查询: a) 根据商品编号查询所售商品明细(数量,单价,金额) b) 根据销售日期查询当天所售商品明细(数量,单价,金额) c) 根据销售人员查询某营业员所售商品明细(数量,单价,金额) 3、商品销售信息统计 a) 日销售额统计(按商品编号,销售人员,全部商品)及总销售额统计 b) 月销售额(按商品编号,销售人员,全部商品)及总销售额统计 c) 月度销售排名(按商品编号,销售人员) 知识点:结构体类型变量的应用,文件操作,数据的查询,函数的应用 说明:以十组商品三个营业员构成二十组商品数据 题目八:职工工作量统计系统 问题描述:设计一个以班组职工日常工作量统计为对象的管理系统。 实现功能:根据组内职工日常工作信息(包含如下内容:职工编号,职工姓名,工作内容,完成数量,完成质量,完成日期;保存为磁盘文件),实现对职工日常工作量信息的管理。 1、职工日常工作量信息输入 运用对话方式分别输入职工编号,职工姓名,完成数量,完成质量(优、良、中),完成日期,对就多个完成质量的信息录入,以文件的形式保存其信息 2、职工日常工作量信息统计与输出 a) 以完成工作数量及完成质量进行工作量当日统计排序。名次相同,以完成数量多者优先,再次相同,以职工编号小者优先。 b) 以一个星期为一时间段按上述规则进行排序。 知识点:结构体类型变量的应用,文件操作,数据的查询与排序。 说明:以十人构成一个班组,每天大家都做同一工作来构成数据 题目九:通讯录管理系统 建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。 功能要求 (1) 通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。 (2) 输入功能:可以一次完成若干条信息的输入。 (3) 显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分

商业银行综合业务模拟实验报告

《商业银行综合业务模拟实验》实验报告书 一、实验目的 《商业银行综合业务模拟实验》应用先进的计算机网络技术以及商业银行综合业务模拟系统,采用以总行为数据中心的集中式数据网络系统方式,把银行日常业务处理的流程和各个环节全部纳入计算机处理,形成覆盖银行管理全方位的科学体系,实现网络互联、信息共享、查询自如、方便快捷的电子化管理,实现“以客户为中心、以市场为导向、以风险控制为核心、以量化分析为主”的管理机制。本课程采用的实验平台是“深圳智盛商业银行综合业务模拟系统”,该系统的最终目的是通过模拟的交易环境加强学生对现代商业银行理论知识的理解,训练学生的实际动手能力,满足专业课程的实验、实习及课程设计任务,为学生走向社会提供一个理论结合实际的实验环境,促使学生关注最新的商业银行信息技术,训练学生的实际操作能力,为金融专业及其它相关专业的学生走向社会提供一个良好的实习环境。 二、实验意义 1、通过对模拟银行软件和相关银行系统各个功能模块的具体操作,加深学生对银行实务中基本业务流程的理解和掌握,熟悉业务操作的关键要素。 2、由于本次模拟系统采用面向管理、服务、产品、客户和数据的全新概念设计,提出面向客户信息的设计方法,以客户信息文件为基础,构造客户信息管理子系统,为银行综合掌握客户状况、提供全面的客户追踪和决策分析手段提供便利,在一定程度上有助于学生理解现代商业银行综合业务面向客户的管理体系。 3、通过本课程教学,加强学生把商业银行业务经营的管理理论和实际操作相结合的能力,促进学生充分理解和运用金融法律、银行规章等知识,提高学生运用基本知识分析解决实际问题的创新思维和能力,为学生的成长成才奠定扎实的专业基础。同时,通过学习也能引导学生密切关注我国商业银行经营改革的现状与问题,以便提高学生观察问题、思考问题和解决问题的能力。 三、实验步骤

c课程设计实验报告

c课程设计实验报 告

中南大学 本科生课程设计(实践)任务书、设计报告 (C++程序设计) 题目时钟控件 学生姓名 指导教师 学院交通运输工程学院 专业班级 学生学号 计算机基础教学实验中心 9月7日 《C++程序设计基础》课程设计任务书

对象:粉冶、信息、能源、交通工程实验2101学生时间: .6 2周(18~19周) 指导教师:王小玲 1.课程设计的任务、性质与目的 本课程设计是在学完《C++程序设计基础》课程后,进行的一项综合程序设计。在设计当中学生综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。经过此设计进一步提高学生的动手能力。并能使学生清楚的知道开发一个管理应用程序的思想、方法和流程。 2.课程设计的配套教材及参考书 ●《C++程序设计》,铁道出版社,主编杨长兴刘卫国。 ●《C++程序设计实践教程》,铁道出版社,主编刘卫国杨长兴。 ●《Visual C++ 课程设计案例精编》,中国水力电力出版社,严华峰等编著。 3.课程设计的内容及要求 (1)自己任选一个题目进行开发(如画笔、游戏程序、练习打字软件等),要求利用MFC 工具操作实现。 (2)也可选一个应用程序管理系统课题(如:通讯录管理系统;产品入库查询系统;学生成绩管理;图书管理 等);

设计所需数据库及数据库中的数据表,建立表之间的关系。 设计所选课题的系统主封面(系统开发题目、作者、指导教师、日期)。 设计进入系统的各级口令(如系统管理员口令,用户级口令)。 设计系统的主菜单。要求具备下列基本功能: ●数据的浏览和查询 ●数据的统计 ●数据的各种报表 ●打印输出 ●帮助系统 多种形式的窗体设计(至少有查询窗体、输入窗体) 注意:开发的应用程序工作量应保证在2周时间完成,工作量不能太少或太多。能够2人合作,但必须将各自的分工明确。 4.写出设计论文 论文基本内容及撰写顺序要求: ●内容摘要 ●系统开发设计思想 ●系统功能及系统设计介绍 ●系统开发的体会

C语言课程设计实验报告4340106

《C语言课程设计》 课程设计报告 专业:网络工程 班级:网络10601 姓名:缪军 指导教师:汪北阳余法红 二00八年元月十五日

目录 系统摘要 (3) 系统设计 (4) 系统实现 (7) 系统使用说明 (11) 测试数据 (15) 结论 (18) 附录 (19)

(一)系统摘要 1.功能要求 在主函数中读入两个原始数据文件的内容,保存在对应的结构体数组中,并根据以上内容计算每个学生5门课的加权平均分(保留1位小数,4舍5入),并按平均分排列名次,平均分相同则名次并列。然后显示菜单,利用菜单调用每个函数,完成如下功能:1)用C语言创建一个数据文件,文件名为:“MC0116”。用来存放班级排名后的成绩, 2)分别统计全班每门课的平均分和标准差,并计算个分数段的学生人数; 课程标准差的计算公式为: Y= s^2=1/n[(x1-m)^2+(x2-m)^2+...+(xn-m)^2] 3)用C语言创建一个数据文件,文件名为:“KC0116”。将文件中存放的数据以如下形 式存放

4)打印每名学生成绩条,结果存放到用C语言创建的一个数据文件中,文件名为:“cj0116”。成绩条格式自定。 5)屏幕上显示所有存在不及格的课程的学生的名单(含学号、不及格的课程名称、课程的学分及成绩)。 6)屏幕上显示优等生名单(含学号、6门课程成绩、平均分、名次)。 (二)系统设计 准备工作: 编写两个记事本文件作为原始数据源。 本程序中建立两个文件,第一个中的内容是全班同学的5功课的成绩(英语,C语言,数学,大学物理,线性代数),保存在D盘下,其完整的路径名为D: \wl0116.txt.第二个中的内容是所有的五门功课的属性(编号,名称,学分),同样保存在D盘下内,起完整的路径名为D: \wl01kc.txt. 1.系统功能模块框架图 2.菜单结构图。 3.数据结构说明 /* 学生结构体*/ struct student { long num; /* 学号*/ char name[20]; /* 姓名*/ int score[N]; /* 各科分数构成的一维数组*/ double ave; /* 每名学生所有科目的加权平均分*/ int t; /* 名次*/ }st[M]; struct subject { int num; /* 课程编号*/ int excellent; /* 成绩优秀*/ int good; /* 成绩良好*/ int mid; /* 成绩中等*/ int pass; /* 成绩及格*/ int fail; /* 不及格*/ char kc[30]; /* 课程名称*/ float xuefen; /* 课程学分*/ double ave; /* 课程平均分*/ double bzc; /* 课程标准差*/ }course[N];

程序设计语言(VC++)课程设计(学生成绩管理系统)

1. 2. 3. 4.题目:学生成绩管理系统 5.基本要求 (1)要求用Visual C++语言来实现一个简单的学生成绩管理系统,该系统完成之后,基本上要能够无错运行,能达到学生成绩管理系统的基本要求。 (2)各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.CPP文件中,要求使用头文件。 (3)准备系统模拟的数据,不得少于10条。 (4)成绩管理程序至少应具备以下功能: 1)输入:学生的基本信息,包括学号.姓名.性别.籍贯. Visual C++成绩.英语成绩. 物理成绩等; 2)计算:每个学生的总成绩.平均成绩.所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出; 3)查询:可以按学号.姓名. Visual C++成绩查询 4)4)排序:可以按学号.姓名. Visual C++成绩. 英语成绩.物理成绩.总成绩.平均成绩等进行排序并输出; 5)删除:删除某条记录; 6)帮助和关于; 7)退出:退出整个系统的运行。 8)可以增加更多的菜单项,比如设置颜色.字体风格等。 程序如下: #include #include struct node{ int num; char name[10]; char sex[10]; char jiguan[10]; float Cscore; float Escore; float Pscore;

float sum; float average; node *next; }; node *create(){ node *head; node *p,*pend; int a; char b[10]; char c[10]; char f[10]; float d1,d2,d3; cout<<"请输入学号,姓名,性别,籍贯,C++成绩,英语成绩,物理成绩:"; cin>>a>>b>>c>>f>>d1>>d2>>d3; head=0; int i=0; while(i<2){ p=new node; p->num=a; strcpy(p->name,b); strcpy(p->sex,c);

银行模拟实训报告

银行模拟实训报告集团公司文件内部编码:(TTT-UUTT-MMYB-URTTY-ITTLTY-

航运经济系(金融管理与实务)《银行业务模拟实训》课程考核报告 任课教师:樊薇 个人业务

每天开始办理业务前的准备工作,即日初操作中的柜员签到、领取尾箱号、现金出库及领取重要空白凭证;学会根据系统中的案例办理个人业务中活期定期储蓄存贷款、代理国债等各项业务中的开户、续存、取款、兑换、销户等,重点掌握个人活期储蓄业务的操作。学会运用模拟系统中会计报表模块通过客户号和账号进行业务查询和审核。 .每天完成业务交易后的后续整理核对工作,即日终操作中的尾箱核对、柜员扎帐、现金入库及柜员签退 进行个人业务的操作 储蓄柜员初始操作:登录个人储蓄系统---修改密码和学号并增加尾箱---用尾箱登录 储蓄柜员日初操作:凭证领用---重要空白凭证出库---现金出库---凭证综合查询---重要空白凭证查询 储蓄日常业务操作之个人储蓄业务:开普通客户和一卡通客户---为其开活期储蓄账户进行存取款,销户操作—开整存整取账户,部分提前支取---开定活两便账户并销户---开零存整取账户,存款并销户---开存本取息账户,取息并销户---开通知存款账户,支取部分款项并销户---普通支票账户开户,存款,取款,结清,销户---开教育储蓄账户,存款,销户---一卡通,凭证,挂失,解挂 储蓄日常业务操作之个人贷款:住房贷款---综合消费贷款储蓄日常业务操作之汇款业务:人民币汇款---人民币退汇 储蓄日常业务操作之代理业务:凭证式国债---记账式国债---基金业务---代理缴费业务

在个人业务中,共包括存款业务、银行卡业务、贷款业务、汇款业务、外汇业务、代理业务。而存款业务下面又有开户申请、活期账户、 定期账户、一本通账户,每个账户下面的基本操作也大体相同,包括开户、存款、取款、密码挂密码挂失解挂、换单、销户。 先给个人活期储蓄开户,1,.填写“开立个人银行结算账户申请书” 2.填写“存款凭条” 3.进入柜员签到窗口 4.柜员受理客户业务 5.查收客户提交的现钞 6.审核客户提交的凭证 7.输入业务数据 8.填写空白凭证 9.打印凭证10.盖章11.结束业务。其实,现实中我们柜员是从第5步开始做的,前面的4步是属于客户的提交业务。 有/无折存款中,1.查收客户提交的现钞2.审核客户提交的凭证3. 输入业务数据4.打印凭证5.盖章6.结束业务 有/无折取款,1.审核客户提交的凭证2.输入业务数据3.打印凭证4.盖章5.从尾箱取出现钞6.验证从尾箱取出的钱钞7.结束业务有/无折转账和存取款类似,不外乎审核客户提交的凭证,输入数据,打印凭证,盖章,结束业务。 挂失,挂失又分为口头挂失、正式挂失、密码挂失。口头挂失和正 式挂失的操作基本一致,印象最深的是密码挂失,密码挂失解挂的步骤为,审核桌面提交的凭证,输入数据,授权,解挂,最后结束业务。 换单的操作包括,审核桌面提交的凭证,输入数据,从空白凭证 中拿出所需的,打印凭证,盖章,最后结束业务。销户的操作与上雷 同,首先审核桌面提交的凭证,在计算机输入数据,授权,销户,最后 结束业务。

吉林大学《编译原理课程设计》满分实验报告

2016级《编译原理课程设计》总结报告(组) _2019_年_5_月_25_日

报告正文(请用小四号宋体填写,自行组织章节和段落) 目录 第一部分实验成果统计表 (1) 第二部分实验简介 (2) 第三部分词法分析 (3) 第四部分语法分析 (6) LL(1)语法分析 (7) LR语法分析 (10) 第五部分程序测试 (22) 第一部分实验成果统计表 见首页 第二部分实验简介 实验目的 分组(每组最多3人)完成对SNL语言的以下两个程序:词法分析程序,语法分析程序(方法不限)。察并锻炼学生的团队协作能力,代码编写能力,加深同学对编译原理中SNL编译系统的理解,帮助同学理解整个编译原理的机制 实验内容 本实验中实现了SNL编译系统中的词法分析、语法分析。其中语法分析包括LL(1)分析方法和LR分析方法 词法分析,以源程序为输入,生成单词的内部表示TOKEN序列。 语法分析,以TOKEN序列为输入进行语法分析,并生成整个源程序的语法分析树。在SNL编译程序中,采用了两种语法分析方法实现:LL(1)和LR,前者为自顶向下的,后者为自底向上的。两种语法分析的结果是一样的。 实验步骤 编译系统的总体分析(算法分析,数据结构设计,优化)→代码实现,分工进行词法分析,语法分析部分→代码测试→结果反馈,修正→系统界面优化设计

作符栈和操作数栈。 LL(1)语法分析的主要函数有:doGrammar()、Grammar()、findRuleIndex()、getVariables()、getStartVariable()、computeFirstSets()、computeFollowSet()、getRuledByLeftVariable()、getTerminals()、getFirstSets()、getFallowSets()等等doGrammar()函数是最主要的函数。它利用LL(1)分析表和符号栈进行语法分析,并处理终极符不匹配和文件提前结束错误。函数处理完成后,得到整个语法树。 Grammar()函数主要进行Rule格式转换。 自底向上语法分析 LR(0)分析方法实现过程 结构如下 LR(0)

《C语言程序设计》课程设计

《C语言程序设计》课程设计 刘力斌 一、意义和目的 C语言是光信息科学与技术专业的重要专业基础课。在很多后续课程中,都要使用到C语言。 学生通过对C语言的学习,已经具备了使用C语言编写简单的应用程序的能力。为了加强程序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。 课程设计目的: 提高用程序设计解决实际问题的能力。 通过提出算法、指定输入输出来设计一个解决方案。 用C语言合理地开发两个简洁有效的程序代码来实现该设计。 测试程序是否工作且满足设计指标并评价其效率。 二、目标 完成本课程设计的学生应能在以下几方面证明你们的能力: A、分析问题。各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。 B、提出算法执行特定任务。模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。 C、把一个算法变为用C语言编写的结构化程序。 D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。 E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。 F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。 G、调试程序、测试数据过程成功。

三、要求 参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。 完成课程设计应提交如下文档: ①程序的总体设计和算法分析。 ②技术文档 ③用户文档 ④源程序代码清单。 ⑤测试数据和测试过程记录。 ⑥遇到的问题及解决方法分析。 四、选题 每人一个题,具体题目可以参考附录。 第一题:链表操作题(包括建立、插入、删除、打印等)(参考教材); 第二题:文件操作,具体题目最好是自拟。 如果选题确实有困难的同学,可参考后面参考题目来完成本课程设计(成绩要影响)。 五、评价 评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的一套文件中,严格检查以下各项任务完成情况: 1、课程设计文档是否齐全。 2、程序的用户文档 如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。 3、问题或任务的陈述(描述问题,而且问题是合理原始的、应当包括输 入、输出及其预期范围。)是否正确。 4、问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代 码,把整个解决方案划分成若干模块。 5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。 6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测 试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。 7、程序的技术文档

相关文档
最新文档