当前位置:文档之家› 中南大学C语言课程设计报告

中南大学C语言课程设计报告

中南大学C语言课程设计报告
中南大学C语言课程设计报告

课程设计第一题

题目要求

data1.txt和data2.txt,两个文件中都有很多数字,用空格隔开。运行程序,计算这两个文件中数字的交集,并且排好序,存放在jiao.txt中;计算这两个文件中数字的并集,并且排好序,存放在bing.txt

需求分析

(1)输入两组若干个int型类型的数据;

(2)输出两组数据以及它们的交集和并集;

(3)程序可对输入的两组数据进行交并集处理,并分别保存在文件中;

(4)第一组->data1:3 67 45 2 4

data2:4 76 89 125 7

第二组->data1:56 78 90 3 77 18 45 3 168

data2:88 4 77 35 8 46 0 85 78 99 23 1

……

概要设计

(1)输入若干个int类型的数据给data1.txt,再随机输入若干个int类型的数据给data2.txt。

(2)程序将根据所给的data1和data2的数据通过调用jiao函数对它们的交集进行求解,通过调用save1函数将其结果保存在jiao.txt文件中。

(3)程序将根据所给的data1和data2的数据通过调用bing函数对它们的并集进行求解,通过调用save2函数将其结果保存在bing.txt文件中。

(4)在交并集保存在相应文件之前,通过调用sort函数对其进行从小到大的排序

详细设计

流程图:

(sort函数)

(save2函数)

(save4函数)

(fun函数)

(main函数)

测试结果:

第一组:

data1:

data2:

输出结果:

并集:

第二组:data1:

data2:

输出结果:

并集:

第三组:data1:

data2:

输出结果:

并集:

课程设计第二题

题目要求

文件conf.txt中保存了很多字符,如:ajgdjauqwieueuiwqwgdakdhkjduiwhdsdhkjdk.运行程序,计算这个文件中各个字母出现的频率,频率=出现的次数/总字母数。将频率存储在文件rate.txt中。格式为:

a : 3.20%

k : 3.80%

……

需求分析

(1)从键盘键入若干小写字母组成的字符,以回车键结束字符输入;

(2)计算机将输出a—z所对应的出现频率;

(3)程序自动统计a—z的出现频率,并将结果保存到文本文件中;

(4)测试数据:

例如:输入 gsjfa fhj fh h hsdgfyuweguthfer eutguierghuerhguiergiu

eugtuerigi

结果 a: 1.5% b: 0.0% c: 0.0% d: 1.5% e: 12.3%

f: 7.7% g: 13.8% h: 10.8% i: 7.7% j: 3.1%

k: 0.0% l: 0.0% m: 0.0% n: 0.0% o: 0.0%

p: 0.0% q: 0.0% r: 7.7% s: 3.1% t: 4.6%

u: 13.8% v: 0.0% w: 1.5% x: 0.0% y: 1.5%

z: 0.0%

……

概要设计

(1)从键盘键入小写字母所组成的字符串,通过count来记录实际键入的字符个数。(2)通过调用save1函数将输入的字符串保存到conf.txt文件中。

(3)调用search函数计算出各个字母所出现的频率,同时将其频率分别存放在WORD 的数组中。

(4)在通过调用save2函数将字母及其频率保存在rate.txt文件中。

详细设计

流程图:

(search函数)

(save1函数)

(save2函数)

(main函数)

测试结果第一组:输入字符:

输出结果:

统计结果:

第二组

输入字符:

输出结果:

统计结果:

参考文献

《C语言程序设计》(谭浩强著)

用到的软件:

Visual C++ 6.0 C-Free 4.0 C流程图生成器

课程设计总结

一周的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼。从领到书的那一刻,我就很郁闷,《C 语言程序设计》到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。通过半个学期的学习,我掌握了基本知识。下学期开始时,被通知要进行一周的课程设计当时有点懵,感觉学的东西很少,很零散,不知该怎么练到一起,就要课程设计,是不是太难为我们了。

第一天基本上都是在看书,把基本知识再熟悉一边。到了下午的时候,老师发过来四道练习题,从这几道练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。第一天结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,到了第二天,我们由不得不再次陷入困境。在整个程序的编写过程中。最难的就是修改和删除这两个模块,这也是我们第二天要解决的重点问题。开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,我们组的其他人,帮助了我,完成了修改和删除。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最后,两个程序相互组合,互补,大功告成虽然设计时完成了,但是我觉得其中还是有一些不足:* 1.警告句。程序中缺少一些警告句,例如:“是否真的删除(y/n)”;

* 2. 重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理;

* 3. 选择单一。我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情

况。

整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。短短的一周课程设计结束了,但是这段时间里我又学到了更多C 知识,如:对象数组,string类,文件流等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。通过一周的课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这一周过的挺充实!

通过这次实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

附录:

第一题源程序

#include

#include

#define N 100

int del(int *a,int n)

{

int count=1;

int i,j;

for(i=1;i

{

for( j=0;j

{

if(a[i]==a[j]) break;

}

if(j==count)

{

if(i>count) a[count]=a[i];

count++;

}

}

return count;

}

void sort(int b[],int k) /*排序*/ {

int i,j,t,flag;

for(j=0;j

{

flag=0;

for(i=0;i

if(b[i]>b[i+1])

{

t=b[i];

b[i]=b[i+1];

b[i+1]=t;

flag=1;

}

if(flag==0)break;

中南大学C++实验报告

《C++程序设计》上机实验报告 上机内容:C++程序的运行环境和运行一个C++程序的方法 数据类型和表达式 专业班级:电气信息类1203班 学号:0909120320 姓名:李湖 日期:2013年3月16日

目录 1.实验目的 2.实验内容 3.程序源码 4.调试结果 5.实验心得

程序设计实验(一) 1、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序 (3)通过运行简单的C++程序,初步了解C++源程序的结构和特点。 应学会在一种以上的编译环境下运行C++的程序,建议学习并 掌握Visual C++ 6.0和GCC(RHIDE和DJGPP)的使用方法。2、实验内容和步骤 (1)检查所用所用的计算机系统是否已安装了C++编译系统,并确定他所在的子目录。如果使用的是Windows操作系 统,可以按以下步骤进行: 如果想查找Visual C++ 6.0,可以单击Windows桌面上“开 始”按钮,在菜单中选择“查找”窗口,在“名称”栏中 输入文件名“Microsoft Visual C++ 6.0”,请注意搜索范围, 应当使“搜索”栏中的内容为“C:\”,表示从C盘根目录 开始寻找,即搜索整个C盘。单击“开始查找”按钮, 系统会自动在指定的范围内找寻所需的文件,如果找到, 就会显示出文件路径,如“C:\Windows 000\Start Mean\Program\Microsoft Visual Studio 6.0,表示在

C:\Windows 000\Start Mean\Program\Microsoft Visual Studio 6.0文件中有Visual C++ 6.0。也可以选择Windows 桌面上的“开始”—>“程序”命令,在其弹出的菜单中 选择“Microsoft Visual Studio 6.0”命令,再在其子菜单中 查有无“Microsoft Visual C++ 6.0”命令。如果在安装时采 用系统提供的默认方式安装,应该在这个位置找到 Microsoft Visual C++ 6.0。 如果想查找RHIDE和DJGPP,只须选择“开始”—>“查找(F)”—>“文件或文件夹(F)”命令,并指定RHIDE 和DJGPP即可。 (2)在Visual C++环境下编译和运行C++程序。 在第一次上机时,按以下步骤建立和运行C++程序: ①先进入Visual C++ 6.0环境。 ②按照第15章15.2节介绍的方法,在自己指定的子目录中 建立一个名为test.cpp的新文件(此事尚未向文件输入内 容)。 ③从键盘输入以下程序(第1章第8题): int main(); { int a,b; c=a+b; cout>>”a+b=”>>a+b;

c语言课程设计报告·图书管理系统

第一章 §题目描述 图书管理系统设计: 【要求】图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。试设计一图书管理系统,使之能提供以下功能: (1)新图书基本信息的输入; (2)图书基本信息的查询; (3)对撤销图书信息的删除; (4)办理借书手续; (5)办理还书手续; 【提示】建立图书馆里信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。存在状态设为整型,可用不同数字代表借还状态。借书和还书手续要注意修改结构体的成员变量存在状态的值。 §算法设计 1.设计思想: 在整个系统编写的过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。由此进一步加深、巩固了所学的课程的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,参考了学校图书馆的图书管理系统,实现了程序的模块化、结构化。在主函数中调用各种函数,操作界面简单,易操作,人机互动性较强。 2.实现注释: 这个实用的小型图书管理系统程序以结构体数组指针操作完成,并实现文件信息的录入、修改和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。本图书管理系统分为管理员和学生两个部分,其基本功能包括了对图书信息的存储、查询、添加、删除和借书、还书手续办理等。查询时可按书名、编号等方式查询,找到后输出这本书的所有信息。可查询图书的在库状态,方便用户进行借书、还书操作。在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。系统中主要的数据结构就是图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。在处理过程中各项可以作为一本图书的不同属性来进行处理。 3.结构体系设计 图:主函数结构;图:新书信息录入流程;图:图书信息查询(管理员)流程;图:图书信息查询(学生)流程;图:图书信息删除流程;图:办理借书手续流程;图:办理还书手续流程; §程序设计及代码分析 1.程序设计: 下面,我大致介绍一下我的系统的主要功能和注意事项: 当运行此程序时,首先进入系统主界面,然后可以选择[1].管理员登陆(密码:123),[2].学生登陆,[0].退出系统; 选择[1]后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。管理员功能菜单中,[1].新书信息录入,[2].图书信息查询,[3].图书信息删除,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字,输完之后按回车(下同)。首次运行系统需要先选择[1]录入库存书籍信息,图书各信息项须用空格键隔开,输入完毕后信息自动储存并更新至数据库,然后再选择其他操作。当选择[3]时会进入图书信息删除,在这里可以选择删除图书信息等操

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运

一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户

在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。

四、流程图

五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个

中南大学微机课程设计报告交通灯课案

微机课程设计报告

目录 一、需求分析 1、系统设计的意义 (3) 2、设计内容 (3) 3、设计目的 (3) 4、设计要求 (3) 5、系统功能 (4) 二、总体设计 1、交通灯工作过程 (4) 三、设计仿真图、设计流程图 1、系统仿真图 (5) 2、流程图 (6) 3、8253、8255A结构及功能 (8) 四、系统程序分析 (10) 五、总结与体会 (13) 六、参考文献 (13)

一、需求分析 1系统设计的意义: 随着社会经济的发展,城市问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏通的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。 随着城市机动车量的不断增加,组多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速通道,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速通道,缓解主干道与匝道、城市同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通灯的控制方式很多,本系统采用可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现本系统的各种功能。同时,本系统实用性强,操作简单。 2、设计内容 采用8255A设计交通灯控制的接口方案,根据设计的方案搭建电路,画出程序流程图,并编写程序进行调试 3、设计目的 综合运用《微机原理与应用》课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。针对此次课程设计主要是运用本课程的理论知识进行交通灯控制分析及设计,掌握8255A方式0的使用与编程方法,通从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。 4、设计要求: (1)、分别用C语言和汇编语言编程完成硬件接口功能设计; (2)、硬件电路基于80x86微机接口;

中南大学机械制造工艺学实验报告

机械制造工艺学实验报告 班级机械1301 姓名黄佳清 学号 07

中南大学机电学院 《机械制造工艺学》课程实验报告 实验名称:加工误差的统计分析 姓名:黄佳清班级:机械1301 学号: 07 实验日期: 2015 年 10 月 18 日指导教师:成绩: 1. 实验目的 (1)掌握加工误差统计分析方法的基本原理和应用。 (2)掌握样本数据的采集与处理方法,要求:能正确地采集样本数据,并能通过对样本 数据的处理,正确绘制出加工误差的实验分布曲线和图。 (3)能对实验分布曲线和图进行正确地分析,对加工误差的性质、工序能力及工艺 稳定性做出准确的鉴别。 (4)培养对加工误差进行综合分析的能力。 2. 实验内容与实验步骤

1.按加工顺序测量工件的加工尺寸,记录测量结果。 2.绘制直方图和分布曲线 1)找出这批工件加工尺寸数据的最大值x max和最小值x min,按下式计算出极差R。 R=x max一x min 2)确定分组数K(K一般根据样本容量来选择,建议可选在8~11之间)。 3)按下式计算组距 d。 4)确定组界(测量单位:微米)。 5)做频数分布表。 6)计算x和 。 7)画直方图 以样本数据值为横坐标,标出各组组界;以各组频率密度为纵坐标,画出直方图。 8)画分布曲线 若工艺过程稳定,则误差分布曲线接近正态分布曲线;若工艺过程不稳定,则应根据实际情况确定其分布曲线。画出分布曲线,注意使分布曲线与直方图协调一致。 9)画公差带 在横轴下方画出公差带,以便与分布曲线相比较。 3.绘制图 1)确定样组容量,对样本进行分组

样组容量m 通常取4或5件。按样组容量和加工时间顺序,将样本划分成若干个样组。 2)计算各样组的平均值和极差 对于第i 个样组,其平均值和极差计算公式为: ∑==m j ij i x m x 1 1 式中 ——第i 个样组的平均值; ——第i 个样组的标准差; ——第i 个样组第j 个零件的测量值; ——第i 个样组数据的最大值; ——第i 个样组数据的最小值 3)计算图控制限(计算公式见实验原理) 4)绘制 图 以样组序号为横坐标,分别以各样组的平均值和极差R 为纵坐标,画出图,并在图上标出中心线和上、下控制限。 4. 按下式计算工序能力系数Cp 5. 判别工艺过程稳定性 可按下表所列标准进行判别。注意,同时满足表中左列3个条件,工艺过程稳定;表中右列条件之一不满足,即表示工艺过程不稳定。

c语言课程设计报告书--学生成绩管理

C 语言程序设计报告 课题:学生成绩管理 时间:

一、需求分析 任务要求: 自学C语言中有关链表及外部文件的内容,设计出学生成绩管理。具体要求如下: 1.主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改 (2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序 (3)能查询学生成绩,不及格科目及学生名单 (4)能按班级输出学生的成绩单 系统功能需求分析: 1、定义一个结构体类型,成员包括学期、班级、各科成绩、建立链表,定义该结构体类型的指针,用于指向各结点; 2、分别建立具有添输入、修改、查询、总分及平均分、排序等功能的子函数,完成相应功能,对程序实现模块化。 二、概要设计 系统总体设计框架: 对程序进行模块化,建立输入、修改、查询、查找和显示功能的子函数,各子函数中运用链表存储数据。 系统功能模块图:

三、详细设计 主要功能模块的算法设计思路如下: 1、输入信息函数 (1)定义指向结构体变量的指针; (2)移动指针,找到插入结点; (3)在要插入的结点输入信息; (4)返回头指针。 2、修改信息 (1)定义指向结构体变量的指针; (2)用指针检验链表中是否有记录,若没记录,出现报错,然后要求重新输入; (3)根据要修改的编号查找对应结点; (4)修改信息;

(5)修改成功。 3、排序函数 (1)定义所要排序的班级和链表的头指针为形参; (2)调用排序函数,把班级和链表的头指针赋给形参; (3)在子函数中进行排序; (4)输出排序结果。 4、显示学生成绩信息(void Disp(Link l)) (1)选择想要查询的项目(学生各科成绩、不及格科目、班级成员);(2)用指针检验是否有记录; (3)若无记录,输出提示信息,返回主函数; 若有记录,移动指针,依次输出记录; 5、查询班级成绩信息(void Find(Link l)) (1)选择所要查询的班级; (2)输入班级: (3)在链表中寻找相应结点; (4)输出结点信息。 以上各个函数的流程图如下:

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

计算机网络课程设计实验报告

中南大学课程设计报告 课程:计算机网络课程设计 题目:基于Winpcap的网络流量统计分析 指导教师:张伟 目录 第一章总体设计 一、实体类设计 --------P3 二、功能类设计 --------P3 三、界面设计 --------P3

第二章详细设计 一、实体类实现 --------P4 二、功能类实现 --------P4 三、界面实现 --------P5 第三章源代码清单及说明 一、CaptureUtil.java --------P7 二、MyPcapPacketHandler.java --------P9 三、PacketMatch.java --------P9 四、Windows.java --------P13 第四章运行结果 --------P19 第五章心得体会 --------P21 第一章总体设计 一、实体类设计 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计 二、功能类设计 (1)网卡获取 (2)包的抓捕

(3)包的处理 三、界面设计 (1)布局 (2)按钮功能连接 第二章第二章详细设计 一、实体类实现 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。 本程序采用Java编写,基于win10pcap。Win10pcap是winpcap在win10系统上的适用版本。Java对于winpcap使用jnetpcap进行支持。对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在jnetpcap的jar包中大部分已经封装好了相关的实体类型。对应如下:ARP 实体类:https://www.doczj.com/doc/6f13415558.html,work.Arp; UPD 实体类:https://www.doczj.com/doc/6f13415558.html,work.Icmp;

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

c语言课程设计报告

C语言程序设计B 课程设计报告 设计题目:学生成绩管理系统年级班级: 学号: 姓名: 指导教师: 2020 年 6 月 18 日

目录 一、设计目的 (3) 二、课程设计内容和要求 (4) 三、总体设计 (5) 四、主要步骤 (12) 五、功能实现 (13) 六、功能测试 (64) 七、评价程序 (83) 八、课程设计体会 (84)

一、设计目的 程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。 程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。 主要目的为以下几点: 1、熟练掌握面向过程(结构化)程序设计基本知识; 2、综合运用所学知识解决实际问题; 3、受到面向过程(结构化)程序设计的基本训练; 4、体会面向过程(结构化)开发程序的过程。

二、课程设计内容和要求 1.课程设计内容: 学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。 2.课程设计要求 1)具有菜单,可以在菜单上进行选择; 2)能实现学生数据录入、修改、删除、查询; 3)能实现数据排序; 4)有数据输出功能; 5)有数据读取与存储功能; 6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数 学、英语、总分、名次等信息; 7)以结构方式存储每条记录; 8)多条记录以链表方式存储到内存; 9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

学生成绩管理系统_课程设计报告

中南大学 《C语言程序设计》 课程设计报告课题名称:学生成绩管理系统 专业电气信息 学生姓名舒畅 班级0914 学号0909091424 指导教师穆帅 完成日期2010年7月10日 信息科学与工程学院

目录 1 课程设计的目的 (1) 2 设计内容与要求 (1) 3 主要技术指标及特点 (2) 3.1 登录界面显示 (2) 3.2登记学生资料 (4) 3.3保存学生资料 (5) 3.4 删除学生资料 (6) 3.5修改学生资料 (7) 3.6 查询学生资料 (8) 3.6统计学生资料(自加功能) (8) 3.8对学生资料进行排序 (9) 3.9程序主要代码 (9) 4 设计小结 (31)

成绩管理系统 1 课程设计的目的 1.加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤; 2.进一步掌握和利用C语言进行程设计的能力; 3.进一步理解和运用结构化程序设计的思想和方法; 4.初步掌握开发一个小型实用系统的基本方法; 5.学会调试一个较长程序的基本方法; 6.学会利用流程图或N-S图表示算法; 7.掌握书写程设计开发文档的能力(书写课程设计报告)。 2 设计内容与要求 设计内容:成绩管理系统 现有学生成绩信息,内容如下: 姓名学号 C 数学英语 shuchang 12 99 98 99 jiutian 32 87 68 87 changzi 33 98 89 99 jiutia 13 7 43 45 设计要求: ?封面(参见任务书最后一页) ?系统描述:分析和描述系统的基本要求和内容; ?功能模块结构:包括如何划分功能模块,各功能模块之间的结构图,以及各模块 的功能描述; ?数据结构设计:设计数据结构以满足系统的功能要求,并加以注释说明; ?主要模块的算法说明:即实现该模块的思路; ?运行结果:包括典型的界面、输入和输出数据等; ?总结:包括C语言程序设计实践中遇到的问题,解决问题的过程及体会、收获、

中南大学软件体系结构实验报告-实验1

实验1 UML实验 实验学时: 4 每组人数:1 实验类型:3 (1:基础性2:综合性3:设计性4:研究性) 实验要求:1 (1:必修2:选修3:其它) 实验类别:3 (1:基础2:专业基础3:专业4:其它) 一、实验目的 1.学会安装和使用建模工具PowerDesigner,熟练使用PowerDesigner绘制常用的UML 图形,熟悉常用的UML建模符号; 2.构建用例模型来描述软件需求,包括绘制用例图,撰写用例文档并制作用例检查矩阵; 3. 学习使用状态图描述对象的状态及转换; 4.学习使用活动图为业务流程建模; 5. 学习使用顺序图描述对象之间的交互; 6. 学习类图的绘制; 7. 学习从系统需求中识别类,并构建相应的面向对象模型; 8. 学习使用PowerDesigner实现正向工程和逆向工程; 9. 学习使用组件图描述每个功能所在的组件位置以及它们之间的关系; 10. 学习使用部署图描述软件中各个组件驻留的硬件位置以及这些硬件之间的交互关系。 二、实验内容 1. 某酒店订房系统描述如下: (1) 顾客可以选择在线预订,也可以直接去酒店通过前台服务员预订; (2) 前台服务员可以利用系统直接在前台预订房间; (3) 不管采用哪种预订方式,都需要在预订时支付相应订金; (4) 前台预订可以通过现金或信用卡的形式进行订金支付,但是网上预订只能通过信用卡进行支付; (5) 利用信用卡进行支付时需要和信用卡系统进行通信; (6) 客房部经理可以随时查看客房预订情况和每日收款情况。 绘制该酒店订房系统的用例图。 2. 根据以下场景绘制用例图: 某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:Cafeteria Ordering System),企业员工可通过企业内联网使用该系统。该系统功能描述如下: (1) 企业的任何员工都可以查看菜单和今日特价;

C语言课程设计图书管理系统课程设计报告

C语言课程设计 图书管理系统 Books Management System 学生姓名张朝柱 学院名称徐州工程学院学号140 班级13计转本 专业名称计算机科学与技术 指导教师李子龙 2016年5月10日

一、需求分析 为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、数量、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。 二、算法设计: 1.设计思想: 整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。 2,设计表示: (1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。 (2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。它引用了一个顺序表SL。其他函数调用时只需传入顺序表头即可。 (3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。 (4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。、

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

中南大学C++课程设计实践报告!

中南大学 本科生课程设计(实践)任务书、设计报告 (C++程序设计) 题目学生成绩管理系统 学生姓名 指导教师 学院 专业班级 学生学号 计算机基础教学实验中心 年月日

学生成绩管理系统 关键字:学生成绩 MFC 编写系统 内容:定义一个结构体,存放下列信息: 学号、姓名、性别、系名、班级名、成绩等 1.学生成绩管理系统开发设计思想 要求: 一:数据输入:输入学生的相关信息,若用户输入数据或信息不正确,给出“错误”信息显示,重复刚才的操作;至少要输入10个学生的数据;可以随时插入学生信息记录; 二:每个学生数据能够进行修改并进行保存; 三:可以根据学号或者姓名删除某学生数据; 四:查询模块要求能按学号,按姓名,按班级等条件进行查询; 五:界面要求美观,提示信息准确,所有功能可以反复使用。 学生成绩管理程序从总体设计方面来看,基本的功能包括主控模块,数据输入模块,数据修改模块,数据查询模块等。 设计模块图:

2.系统功能及系统设计介绍 详细设计: 对于总体设计说明的软件模块,进一步细化,要说明各个模块的逻辑实现方法。下面逐个说明。 主控模块:主要完成初始化工作,包括屏幕的初始化,显示初始操作界面。初始界面中主要包括功能的菜单选择项。 输入处理:利用链表技术输入多名学生的数据,直到输入学生的学号以“@”开头,则结束数据的输入。程序运行流程图如下:删除处理:利用链表技术删除某学号的学生成绩信息,如果找到该学号则进行删除,否则输出“未找到”的信息。程序运行流程图略。 查找处理:利用链表技术根据学生学号或姓名等方式查找某学号

的学生成绩信息,其程序流程图略。 排序处理:利用链表技术根据学生学号对学生数据进行排序,其 部分源代码如下:/***********xuesheng.c***********/ /******头文件(.h)***********/ #include "stdio.h" /*I/O函数*/ #include "stdlib.h" /*其它说明*/ #include "string.h" /*字符串函数*/ #include "conio.h" /*屏幕操作函数*/ #include "mem.h" /*内存操作函数*/ #include "ctype.h" /*字符操作函数*/ #include "alloc.h" /*动态地址分配函数*/ #define N 3 /*定义常数*/ typedef struct z1 /*定义数据结构*/ { char no[11]; char name[15]; char sex[5]; char major[15]; char class[15];

中南大学 计算机体系结构实验报告

计算机体系结构课程设计 学院:信息科学与工程学院 专业班级: 指导老师: 学号: 姓名:

目录 实验1 对指令操作码进行霍夫曼编码 (3) 一、实验目的 (3) 二、实验内容 (3) 三、设计思路 (4) 四、关键代码 (4) 五、实验截图 (5) 六、源代码 (5) 实验2 使用LRU 方法更新Cache (8) 一、实验目的 (8) 二、实验内容 (8) 三、设计思路 (9) 四、程序截图 (9) 五、实验代码 (9) 实验总结 (16) 参考文献 (16)

实验1 对指令操作码进行霍夫曼编码一、实验目的 了解和掌握指令编码的基本要求和基本原理 二、实验内容 1. 使用编程工具编写一个程序,对一组指令进行霍夫曼编码,并输出最后的编码结果以及对指令码的长度进行评价。与扩展操作码和等长编码进行比较。 2. 问题描述以及问题分析 举例说明此问题,例如: 下表所示: 对此组指令进行 HUFFMAN 编码正如下图所示: 最后得到的HUFFMAN 编码如下表所示:

最短编码长度为: H=0.45*1+0.30*2+0.15*3+0.05*4+0.03*5+0.01*6+0.01*6=-1.95. 要对指令的操作码进行 HUFFMAN 编码,只要根据指令的各类操作码的出现概率构造HUFFMAN 树再进行 HUFFAM 编码。此过程的难点构造 HUFFMAN 树,进行 HUFFAM 编 码只要对你所生成的 HUFFMAN 树进行中序遍历即可完成编码工作。 三、设计思路 观察上图,不难看出构造 HUFFMAN 树所要做的工作:1、先对各指令操作码的出现概率进行排序,构造一个有序链表。2、再取出两个最小的概率节点相加,生成一个生的节点加入到链表中,同时从两表中删除此两个节点。3、在对链表进行排序,链表是否只有一个节点,是则 HUFFAN 树构造完毕,否则继续做 2 的操作。为此设计一个工作链表(链表的元素时类,此类的功能相当结构。)、HUFFMAN 树节点、HUFFMAN 编码表节点。 四、关键代码 哈夫曼树重点在于如何排列权值大小不同的结点的顺序 private int leafNum; //叶子结点个数 private HaffmanNode[] hnodes; //哈夫曼树的结点数组 public HaffManCode(double[] weight) //构造指定权值集合的哈夫曼树 { int n = weight.length; //n个叶子结点 this.leafNum = n; this.hnodes = new HaffmanNode[2*n-1]; //n个叶子结点的哈夫曼树共有2n-1个结点 for(int i=0; i

c语言语言课程设计报告

上海应用技术学院 课程设计 2011~ 2012学年第二学期 设计题目成绩记录簿 院(系)计算机科学与信息工程学院 专业计算机应用技术 班级 11104114 学号 1110411414 学生姓名蒋佳琴 设计时间 2012.06.25 -2012.07.06 指导教师马智娴 提交日期 2012.07.06

上海应用技术学院课程设计任务书 指导教师(签名):马智娴教研室主任(签名):马智娴2012年6 月25日2012年6月25日

目录 1 设计目的 (5) 2 功能描述 (5) 2.1模块功能 (5) 2.2流程图 (6) 3 总体设计 (13) 3.1 功能模块设计 (13) 3.2 数据结构设计 (13) 3.3 函数功能描述 (13) 4 程序实现 (14) 4.2 运行结果 (25) 5课程设计总结 (28)

成绩记录簿 1. 设计要求: 基本功能 a) 添加成绩 b) 删除成绩 c) 查询学生成绩 d) 查询班级成绩 e) 退出 拓展功能 a) 写入文件 b) 读取文件 创新(自拟)功能: 程序实现的其它功能由个人自拟。 2. 设计要求具体说明 基本功能: 成绩记录簿中记录以下数据: 学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分; 输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 ~ 100 之间的整数,学分: 1~ 5之间的实型数。 添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示; 查询(班级或个人)成绩: a) 查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成 的总学分。 b) 查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同 学不同课程在不同分数段分布的人数及百分比。 拓展功能: a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示; b) 每次修改的数据写入文件。 3. 提示 定义合适的结构体类型,使用链表或数组的方式组织数据。

中南大学Linux实验报告

Central South University UNIX/Linux 实验报告 学院: 信息科学与工程学院 班级: 物联网1102班 学号: 0909111612 姓名: 田刚 时间: 2014年5月4

实验一 Linux的安装 1、实验目的 (1)了解硬盘分区的概念和方法; (2)掌握硬盘的分区规划; (3)掌握Linux操作系统的安装和配置过程。 2、实验设备 一台pc机、RedHat Linux 7.2以上版本、VMware Workstation v5.5 3、实验原理 Linux可以以多种方式安装在PC机上: (1)独立分区安装、 (2)DOS分区安装和 (3)虚拟机VMWare下安装。鉴于VMware下安装对原来系统影响较小且不影响本实验目的,因此采用VMWare下安装方式。 4、实验步逐 (1) 在Windows XP下安装VMware 5.5 (2)配置虚拟机 (3)启动虚拟机 (4)启动Linux安装过程 (5)安装过程配置 (6)安装后配置 (7)第1次启动 VMWare下Linux操作系统 5、实验记录

(1)记录详细安装过程 这是在本机安装的VM,VM软件安装比较简单,详细过程 不再贴图。 (2)安装过程中出现的问题及其解决措施 此安装过程按照默认安装即可,其中要特别注意的是该 软件需要注册,所以必须要提前准备好注册码。 实验2 Linux基本操作 1、实验目的 (1)复习Linux基本命令。 (2)掌握常用Linux命令 2、实验内容 (1)练习命令行模式下的常用命令: man:命令帮助 ALT-Fx:虚终端切换 常用命令:cat、Ls、ps、chmod、kill、ln、cp、mv、rm、cd、pwd、mkdir、chown、who、w、wc、whoami、date、uname 等 (2) 编辑器vi的使用:使用vi建立并修改一个文本文件

相关主题
文本预览
相关文档 最新文档