西安邮电大学软件课程设计报告
西安邮电大学 C语言实习 医院管理系统
西安郵電大学C语言课程设计报告题目:医院信息管理系统院系名称:计算机学院专业名称:计算机科学与技术班级:学生姓名:学号(8位):指导教师:王春梅设计起止时间:2012年06月06日~2012年06月15日一. 设计目的1,通过本课程设计,强化上机动手能力,使自己在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握软件设计的基本方法。
2,学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
3,为后续各门计算机课程的学习打下坚实基础;为毕业设计和以后工作打下必要基础。
二. 设计内容建立一个医院信息管理系统,主要应用了数据结构体,数组,指针等。
在内容上包括录入信息模块,读取信息模块,保存信息模块,查寻信息模块,插入信息模块,删除信息模块,修改信息模块,显示信息模块及排序信息模块(按姓名进行排序)等,并且还有统计信息和相关信息的排序。
三.概要设计1.功能模块图;2.各个模块详细的功能描述。
(1)登陆界面:主要是用户进行注册和登陆的程序。
(2)录入模块:录入需要管理的病人及药品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
(3)删除模块:可对病人及药品信息做删除处理。
(4)添加模块:可添加一个或多个病人及药品信息并将所添加病人和药品信息保存,方便查找。
(5)修改模块:可根据需要对病人和药品信息整体进行修改,也可随时对个别项进行修改。
(6)按编号排序:方便管理员进行查找信息。
(7)显示病人信息:使管理员更直接的了解病人及药品的相关信息。
四.详细设计1.功能函数的调用关系图;2.各功能函数的数据流程图;(1)链表的创建,尾插法(2)读取(3)查找((5)添加(6)修改模块(7)排序(8)统计3.重点设计及编码。
(1)密码:while (!feof(fp1))//循环逐行读取data.txt将读取到的信息保存在数组Userdata 中直到文件结束{fgets(Userdata1,30,fp1);if (strcmp(Linedata1,Userdata1)==0 ){printf("该用户已经注册!\n");printf("按任意键重新注册\n");getch();UserReg();}}fputs(Linedata,fp);//将这一行格式调整好的用户名密码信息写入data.txt文件fclose(fp);//关闭data.txt文件指针fputs(Linedata1,fp1);//将这一行格式调整好的用户名密码信息写入data.txt文件fclose(fp1);//关闭文件指针printf("亲,注册成功喽,赶快去登录吧!\n");printf("按任意键进入登陆界面\n");getch();system("cls");Login();}(2)排序while (first != NULL) /*遍历剩下无序的链表*/{/*注意:这里for语句就是体现直接插入排序思想的地方*/for (t=first, q=head; ((q!=NULL) && (q->id1<t->id1)); p=q, q=q->next); /*无序节点在有序链表中找插入的位置*//*退出for循环,就是找到了插入的位置*//*注意:按道理来说,这句话可以放到下面注释了的那个位置也应该对的,但是就是不能。
软件课程设计实验报告(3篇)
软件课程设计实验报告(3篇)【导语】软件课程设计试验报告怎么写出亮点?整理了3篇优秀的《软件课程设计试验报告》通用版范文,有规范的开头结尾写法和标准的书写格式。
是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。
【第1篇】软件课程设计试验报告一、目的、要求通过该课程设计要使同学树立起剧烈的工程化意识,用工程化思想和方法开发软件。
切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,同学在对所开发的系统进行软件方案、需求分析、设计的基础上,实现并测试实际开发的系统。
通过一系列规范化软件文档的编写和系统实现,使同学具备实际软件项目分析、设计、实现和测试的基本力量。
二、主要内容要求同学把握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。
每个同学选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华高校出版社出版),根据软件工程的生命周期,完成软件方案、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的`文档。
详细的方法可以选用传统的软件工程方法或者面对对象的方法,开发环境和工具不限。
三、进度方案略四、设计成果要求1.至少提交4个文档,包括软件方案、软件需求规格说明书、软件设计说明书、软件测试方案,要求文档格式规范、规律性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。
五、考核方式(1)提交的文档规范,工作量大,文档规律性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》试验报告评分表)占60%(2)系统验收、讲解、答辩占25% (3)考勤占15%软件课程设计试验报告【第2篇】应用软件课程设计报告计算机是一门技术性、工程性和应用性很强的学科,教育部高等学校计算机科学与技术教学指导委员会的进展战略讨论报告中也指出:计算机专业的人才应当被分为科学型、工程型、应用型三类,而绝大多数应当是工程型和应用型的。
西安邮电大学java类与对象实验报告
西安邮电⼤学java类与对象实验报告西安邮电⼤学(计算机学院)Java程序设计课内实验报告实验名称:类与对象专业名称:软件⼯程班级:学⽣姓名:学号(8位):指导教师:实验⽇期:2014年4⽉2⽇⼀. 实验⽬的及实验环境理解类与对象的概念,掌握Java 类的定义(域、⽅法)、创建对象和使⽤对象。
理解包的概念,会创建包,引⼊包。
掌握访问权限规则。
环境:eclipse⼆. 实验内容1. 设计Point 类⽤来定义平⾯上的⼀个点,⽤构造⽅法传递坐标位置。
默认构造⽅法创建坐标原点,带参数构造⽅法根据指定坐标创建⼀个点对象。
提供get、set ⽅法返回和设置坐标。
distance 返回两个点之间距离或当前点到指定坐标之间的距离。
同时设计应⽤类进⾏测试。
2. 设计⼀个三⾓形类,能判断给定三边是否构成三⾓形,能判断三⾓形的类型(普通、等腰、等边、直⾓,⽤枚举类型(参见第六章))能计算周长与⾯积。
并在应⽤类中演⽰。
3.定义⼀个Line 类,该类包含两个Point 类型的实例变量,⽤以表⽰线段的两个端点。
提供以下⽅法:计算线段长度;判断线段是否⽔平、判断是否为垂直、计算线段斜率、计算线段中点、判断两条线段是否相等。
并在应⽤类中演⽰。
4.定义两个包p1、p2,三个类C1、C2、C3.其中C1、C2 位于p1 中,C3 位于p2 中。
在C1 中定义四个不同访问控制修饰类型的变量,在C2、C3 中进⾏访问测试。
并练习在JDK 命令⾏下⽣成包。
三.⽅案设计对于第⼀题,⽤了staticstatic double distance(Point p1,Point p2){return Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}对于第⼆题,采⽤if –else,严谨的判断三⾓形的形状public void judge(){if(a==b || b==c || c==a){if(a==b && b==c)System.out.println("该三⾓形为等边三⾓形。
软件工程课程设计报告
软件工程课程设计报告一、需求分析:1、本系统只有一个文件,包含学生姓名、成绩。
姓名、语文成绩、数学成绩、英语成绩均由键盘输入。
(1)文件名:file(2)文件类型:顺序文件(3)文件结构姓名数学语文英语数据类型字符型单精度数单精度数单精度数数据占用长度字节字节字节字节(4)文件记录长度:、输出时根据操作显示排名或查询成绩,按姓名、数学成绩、语文成绩、英语成绩。
、该程序具有初始化学生成绩,录入学生成绩,修改学生成绩,删除学生成绩,添加学生成绩,按总成绩查询,按姓名查询,按总分查询排名,按英语成绩查询,显示所有学生的数据等功能。
、测试数据:例如:姓名语文数学英语小五小王小李按姓名查询:输入姓名小五,显示语文成绩,数学成绩,英语成绩按语文成绩排序:姓名语文数学英语小王小李小五、数据流图:二、概要设计:、类的定义格式:<类名>{<成员函数或函数数据成员的说明>::<数据成员或成员函数的说明>}<各个成员的实现>、定义数组类型{:下标和数据元素值组成的数据堆集合,其中任意两个数据队的下标各不相同。
:():建立一个数组。
():返回下标位的元素值。
():将下标位的数据对的值为.}3、义字符串类型{:: 字符串是由(≤)各字符组成的有限序列”……”(≤)(): 建立一个空串(): 撤销一个串(): 求串长(): 置为空串(): 串赋值(): 串连接(): 串插入(): 串删除(): 串替位(): 取子串(): 求子串在主串中的位置}三、详细设计1、主程序模块的基本算法(){初始化{根据显示键入操作符}(根据状态标志位返回);{(键入的操作符)'':{ 录入模块}'':{ 总成绩查询模块}'':{按姓名查询模块}'':{ 添加成员模块}'':{删除模块}'':{ 修改模块}'':{显示所有学生成绩模块}'':{按总分查询排名}'':{按语文查询排名}'':{按数学查询排名}'':{按英语查询排名}} <<"您想继续进行其他操作吗?()"<<;;{>>;('''')<<"指令错误!请重新输入!"<<;;}();('')<<"请输入操作代码( 录入按总分查询按姓名查询增加人员删除人员修改数据显示所有成员数据按总分排名按语文排名按数学排名按英语排名)"<<;>>;}('');( <){[];<<" !"<<;、子程序函数清单(因为所用到的算法比较简单算法略)();();();();();DEL();();();();();();();、学生成绩管理软件由主控模块形成顶层模块,由初始化,数据录入,增加人员,删除人员,修改数据,按总成绩查询,按语文成绩查询,按数学成绩查询,按英语成绩查询模块组成一级模块如图:四、调试分析:()由于我们在各模块中用到的状态标志位太多,而且在定义时出现了错误,在老师和同学们的帮助下,我们组的成员齐心协力使得错误很快得到了解决。
西安邮电大学C语言毕业课程设计
西安郵電大学C语言课程设计报告题目:小型的电视剧节目管理系统院系名称:计算机学院专业名称:计算机科学与技术班级:学生姓名:学号(8位):指导教师:设计起止时间:2012年06月06日~2012年06月15日一. 设计目的1.通过一个小型的管理系统的程序,使自己对C编程的感觉进一步加深;2.通过这些程序,使得管理员可以更加方便的管理该系统,使得用户可以更方便的查询。
二. 设计内容分为管理员和用户。
1.管理员:可以实现电视剧的添加,查看全部信息,删除,查询,修改;2.用户:可以实现按上映时间和类别查询,显示全部信息,电视剧的由新至旧和由旧至新的排序。
三.概要设计1.功能模块图;2.各个模块详细的功能描述1).管理员模块:a.添加:管理员创建的新结点续到以前结点的后面,为尾插;b.显示全部信息:先打开文件,若文件为空,则返回;否则申请新空间,把文件中的数据放到新申请的空间中,然后再输出全部信息;c:查询:先打开文件,若文件为空,则返回;否则申请新空间,把文件中的数据放到新申请的空间中,再输入要查找的序号,若文件为空或找不到,输出“查询错误”并退出该步;反之输出查询到的结果;d.修改:先打开文件,若文件为空,则返回;否则申请新空间,把文件中的数据放到新申请的空间中,再输入要修改的序号,若找不到该序号或文件为空,输出“查询错误”,并退出该步;反之输入修改后的项目,然后保存文件并输出新的信息;e:删除:先打开文件,若文件为空,则返回;否则申请新空间,把文件中的数据放到新申请的空间中,再输入要删除的序号,若文件为空或找不到,输出“查询错误”,并退出该步;反之把该序号后面的那个结点续到该序号前面的那个结点后面,就把该序号对应的结点删除成功。
2)用户模块:a:显示全部信息:用户进入该步骤后,可以显示当前电视剧节目的全部信息,包括剧名,导演名,主要演员名,类别,上映时间,大概内容;b:按类别查询:用户进入该步骤后,首先输入要查询的类别,若该文件中没有相关信息,系统会报错,并退出该步;反之输出查找到的相关信息;c:按时间查询:用户进入该步骤后,首先输入要查询的时间,若该文件中没有相关信息,系统会报错,并退出该步;反之输出查找到的相关信息;d:按电视剧由新至旧排列:用户选择了该项,系统会输出由新至旧排列的电视剧节目的信息;e:按电视剧由旧至新排列:用户选择了该项,系统会输出由旧至新排列的电视剧节目的信息。
西邮计算机学院java实验报告
网络程序设计报告书系部名称:计算机学院专业班级:学生姓名:学生学号:一、实验目的1.掌握TCP/IP体系结构中端口、套接字、TCP协议概念;2.掌握TCP SOCKET的ServerSocket和Socket;3.掌握TCP SOCKET技术中多线程技术。
二、实验内容1.学习TCP/IP体系结构,理解什么是SAP、端口、套接字的概念;掌握TCP 传输模式和netstat命令的用途;2.学习为TCP服务的Socket和ServerSocket类的使用,掌握TCP连接的方法,服务器接收客户端连接请求的方法,创建输入/输出流的方法,传输数据的方法,以及关闭流和套接字,注意可能会出现的异常操作;3.完成以下各内容程序,截存运行结果图,并提交实验报告。
三、实验内容1.在Windows下使用netstat命令,查看本地计算机开放端口。
获得/help,分别测试-s -e –r -a –n及其组合。
2.简单的单线程,一问一答式通信的TCP Server和TCP Client,注意在编译源代码时有个提示“某API已经过时”,找到该API类或者方法。
在运行程序时,注意通信双方是否随时输入,如果不能,考虑可能是什么原因造成的。
位置2的语句不能放在位置1,因为main方法是个静态的方法,所以除非定义为静态的。
位置2不能放在位置三处,因为代码块是封闭的,第二个try{}里面将会看不到,另一个try{}里面的定义。
2.以下代码是个非常经典的用户自定义一问一答协议,在这里只需要修改服务器端程序即可,添加了GreetingProtocol.java(自定义协议),调试并修改协议使程序可以正常运行。
//服务器端import java.io.*;import .*;public class MyServer{public static void main(String [] args){//TCP通信,作为服务器ServerSocket serverSocket = null;//首先建立服务器try{serverSocket = new ServerSocket(1080);//端口号唯一标是本进程System.out.println("Server is Listening Now");}catch(IOException e){System.err.println("Can't listen on port");System.exit(1);}//接受客户端连接Socket clientSocket = null;try{clientSocket = serverSocket.accept(); //connectSystem.out.println("已经连接上!!");}catch(IOException e){System.err.println("Accept failed");System.exit(1);}try{PrintStream out = new PrintStream(new BufferedOutputStream(clientSocket.getOutputStream(), 1024) ,false);DataInputStream in = new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));String inputLine, outputLine;GreetingProtocol greeting = new GreetingProtocol();//自定义协议outputLine = greeting.processInput(null);//输出操作out.println("Welcome to My Chat Server"+" "+outputLine);out.flush();//立即将数据从输出缓存提交给网络发送//输入操作while((inputLine = in.readLine()) != null){outputLine = greeting.processInput(inputLine); //协议处理out.println(outputLine);out.flush();if(outputLine.equals("bye")) break;}out.close();//流关闭in.close();clientSocket.close();//套接字关闭serverSocket.close();}catch(IOException e){System.err.println("Protocol Stream Error");}}}//协议//自定义协议import java.io.*;import .*;public class GreetingProtocol{private static final int WAITING = 0;private static final int SENDKNOCK = 1;private static final int SENDCLUE = 2;private static final int ANOTHER = 3;private static final int NUMJOKES = 5;private int state = WAITING;private int currentJoke = 0;private String [] clues = {"Turnip", "Little Old Lady", "Atch", "Lamp", "Godness"};private String [] answers = {"Turnip the heat, it's cold in here!","I did not know you could come!","Bless you", "Lamp is bright","Godness is happy"};public String processInput(String theInput){String theOutput = null;//System.out.println(state);if(state == WAITING){theOutput = "Knock! Knock!...";state = SENDKNOCK;}else if( state == SENDKNOCK){if(theInput.equalsIgnoreCase("Who's there?")){theOutput = clues[currentJoke];state = SENDCLUE;}elsetheOutput = "You are supposed to say \" Who's there? \"! Try again.";}else if( state == SENDCLUE){if(theInput.equalsIgnoreCase(clues[currentJoke] + "Who?")){theOutput = answers[currentJoke] + "Want another?(y/n)";state = ANOTHER;}else{theOutput = "You are supposed to say \"" + clues[currentJoke] + "Who? \"! Try again. Knock! Knock!!!";}}else if( state == ANOTHER){if(theInput.equalsIgnoreCase("y")){theOutput = "Knock! Knock!!!";if(currentJoke == (NUMJOKES - 1))currentJoke = 0;elsecurrentJoke ++;state = SENDKNOCK;}else{theOutput = "bye";state = WAITING;}}return theOutput;}}//客户端import java.io.*;import .*;public class Client {public static void main(String [] args){Socket ClientSocket = null;try {ClientSocket = new Socket("localhost",1080);PrintStream out = new PrintStream(new BufferedOutputStream(ClientSocket.getOutputStream(),1024),false);DataInputStream in = new DataInputStream(new BufferedInputStream(ClientSocket.getInputStream()));DataInputStream stdIn = new DataInputStream(System.in);String inputLine, outputLine;while((inputLine = in.readLine()) != null){System.out.println("server:"+inputLine);outputLine = stdIn.readLine();if(outputLine.equals("bye")) break;out.println(outputLine);out.flush();}out.close();//流关闭in.close();ClientSocket.close();//套接字关闭} catch (UnknownHostException e) {System.out.println("无法连接到服务器!!");e.printStackTrace();} catch (IOException e) {System.out.println("无法获得I/O流!!");e.printStackTrace();}}}运行结果如下:3.探测目标计算机开放的TCP端口import java.io.*;import .*;public class ScanPort{public static void main(String args[]) throws IOException{Socket comSocket = null;for(int i=0;i<1024; i++){try{//建立socket连接comSocket = new Socket("localhost", i);//发出连接请求System.out.println("Can get I/O for the Connection, Port:" + i);}catch(UnknownHostException e){System.err.println("Can't find the Server host");//System.exit(0);}catch(IOException e){System.err.println("Can't get I/O for the Connection, Port:" + i);//System.exit(0);}}try{comSocket.close();}catch(Exception e){}}}运行的结果如下:自作实验:1.自行编写一个一问一答的场景,例如,帐号登录场景,A:用户名?B:user。
西安邮电大学嵌入式系统实验报告
西安邮电大学(计算机学院)课内实验报告实验名称:嵌入式系统开发专业名称:软件工程班级:学生姓名:学号(8位):指导教师:实验日期:2014年11月27日一、A DS1.2集成开发环境练习二、蜂鸣器三、跑马灯四、外中断实验五、定时器中断六、UART串行数据通信(查询方式)一、ADS1.2集成开发环境练习1.1实验目的及实验环境1.1.1实验目的:学习ADS1.2集成开发环境的使用方法。
1.1.2实验环境硬件:PC机一台软件:Windows 98/XP/2000系统,ADS1.2集成开发环境。
1.2实验内容:(1)ADS的启动;(2)使用asm for lpc2131工程模板,建立一个新的工程。
(3)在模板文件main.S文件中,加入用户汇编代码。
(4)编译链接工程。
(5)调试工程。
(6)学习ADS工具的使用。
1.3实验步骤:①启动ADS1.2IDE集成开发环境。
②在ADS主窗口主菜单选择File->New,使用asm for lpc2131工程模板建立一个工程(图例中工程名称为:ZQL_LIB1),指定工程路径(图例中工程路径为D:\ARM_Lib_Bak\ARM_asm)。
③点击确认<按钮>,创建工程。
④可在主窗口菜单选择Edit->Perferences,设置字体和字号。
⑤在main.S文件编辑窗的“add the user code here. 添加用户代码”行下建立用户汇编程序代码。
⑥选择Project->Make(或快捷键<F7>),编译链接整个工程。
若编译成功,则Erros &Warnings对话框会报告编译错误为0,此时即可对工程进行仿真。
⑦选择Project->Debug(或快捷键<F5>),IDE环境就会启动AXD调试软件。
1.4实验结果1.5实验总结这次实验主要是学习ADS1.2集成开发环境的使用,通过这次实验,我掌握了嵌入式系统编程的流程,我学会了ADS的启动,学会了使用asm for lpc2131工程模板,建立一个新的工程,在模板文件main.S文件中,加入用户汇编代码,然后编译链接工程,调试工程。
西安邮电大学通信软件设计实验报告
实验一TCP通信程序设计一.实验目的及实验环境(1)掌握TCP的传输格式。
(2)熟悉TCP的Socket和ServerSocket类的用法,掌握基于TCP Socket的服务器和客户方编程的方法和步骤。
二.实验内容(1)创建服务器和客户程序,在运行客户程序的计算机上输入的内容,可以在服务器屏幕上看到。
(2)实现下面Server程序,目的是能够同时服务多个客户,客户的请求是一句话(一个String)。
如果这个请求的内容是字符串"plain"的话,服务器仅将"hello"字符串返回给用户。
否则将用户的话追加到当前目录的文本文件Memo.txt中(路径为"Memo.txt"),并向用户返回"OK"。
注意Server 并发的处理多用户,Memo.txt被共享,要求不能出现数据不一致。
(3)使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的"hello"请求时会回应一个"hello",对客户端的其他请求不响应。
三.方案设计1.首先打开java运行环境;2.接着写入客户器端和服务器端的程序;3.调试成功后点击运行;4.在客户器端写一句话,可以看到服务器端有响应。
四.测试数据及运行结果实验一:实验二:实验三:五.总结开始老师要说下载东西来配置,可是大家都好像配置不好,好歹半节课过去,终于有人弄好了,然后大家都弄好了,开始了老师给的任务,第一次用哪个软件,慢慢熟悉,等第二节课时,熟悉了基本操作。
开始真正的试验,毕竟第一次,还是比较简单,很快就做完了通过这次试验熟悉了这个软件,对TCP的传输格式有了更深的理解,。
西安邮电大学C语言 软件设计报告
西安郵電學院软件设计报告题目:小区物业管理系统院系名称:电子工程学院专业名称:光电信息工程班级:光电1101学生姓名:张萌学号(8位):05114014指导教师:王西龙设计起止时间:2012年04月09日~2012年04月23日一. 设计目的进一步掌握和利用C语言进行程设计的能力,理解和运用结构化程设计的思想和方法,熟练掌握条件语句、循环、数组、函数操作,初步掌握开发一个小型实用系统的基本方法,学会高度一个较长程序的基本方法和利用流程图或N-S图表示算法,将本课程所学的知识合理地运用于实践当中。
了解一些书上没有的函数及使用方法。
二. 设计内容小区管理系统设计:小区管理系统包括小区成员的所住单元、住户号、工作单位姓名、电话号码等信息;——小区管理系统主要提供以下功能:1.系统的登录界面(主要包括用户名、密码的设置、新用户的创建、密码的修改等);2.系统以菜单方式工作3.住户信息录入功能——输入4.住户信息浏览功能——显示5.住户信息查询、修改、增加功能(1)按姓名(2)按电话号码6.住户信息删除功能7.住户信息以文件方式保存、读取8.住户信息的统计三.概要设计1.功能模块图依据程序的数据结构和功能,遵照“自顶向下”原则,采用基于函数的逐步求精法,描述该程序的层次结构:2.各个模块功能的详细描述●主函数: main();●登录菜单:⑴. 进入主菜单:menu();⑵.修改密码函数: repassword();⑶.登录界面函数: print1();⑷创建用户函数: usercreat();●主菜单:⑴输入函数:head=create();⑵输出函数:print(head);⑶住户信息文件的保存函数:save_inf(head);⑷住户信息文件的读取函数:head=read_inf();⑸住户信息的查找函数:find(head);⑹住户信息的修改函数:re(head);⑺住户信息的删除函数:delete(head);⑻住户信息的添加函数:add(head);⑼信息的排序:sort(head);⑽住户信息的统计:count(head);四.详细设计1.功能函数的调用关系图2.各功能函数的数据流程图①输出函数print()的流程图开始执行while循环执行printf()语句结束○2输入函数create()的流程图开始Printf()提示语句;Scanf()语句输入数执行While()语依次查找链表再执行scanf()语句结束○3执行查找函数find()流程图开始执行while循环语句执行if判断语句结束○4执行修改函数re()的流程图开始执行while语句进行查找执行if语句进行判断执行while语句进行选择要修改的内容结束○5执行删除函数delete的流程图开始If语句判断节点是否为空执行while进行查找要删除的节点结束○6添加函数add的流程图开始执行scanf语句输入要添加的信息执行while语句查找添加的位置结束○7执行排序sort函数的流程图开始执行for循环统计节点的数目执行for循环节点一到尾部执行for循环找最大节点执行for循环给最后尾节点排序结束3.重点设计及编码1)密码输入函数(实现密码能够再输错的情况下修改);编码:printf("\n\n**-----------请输入密码(6位)login in: ");for(i=0;i<7;i++){mima[i]=getch();if(mima[i]=='\r')break;if(mima[i]=='\b'){printf("\b \b");i=i-2;}else if(mima[i]!='\r')printf("*");}mima[i]='\0';2)从文件中实现一次读取:编码:fp=fopen("mima.txt","rt");while(fscanf(fp,"%s %s",n,a)!=EOF){if(strcmp(mima,a)==0&&strcmp(root,n)==0)//进行判断是否一致{printf("\n\n***********恭喜你登录成功!***********\n");lead();break;}}fclose(fp);if(fp==NULL){printf("\n\n*-----抱歉登录指令错误,请选择(3)重新登录!-------*\n");}3)登录函数实现与主体函数的链接:编码:lead(){printf("*************** ----- 欢迎进入登录界面-----*************************\n\n");printf("*-------------------------1.进入主菜单--------------------------------*\n");printf("*-------------------------2.修改密码----------------------------------*\n");printf("*-------------------------3.重新登录----------------------------------*\n");printf("*-------------------------4.创建用户----------------------------------*\n");printf("*-------------------------0.退出系统----------------------------------*\n");printf("***************************************************** ******************\n");}4)输入函数找准链表节点进行输入:编码:struct person *head,*p1,*p2;head=p2=(struct person *)malloc(N); /* head *p2都指向头结点*/printf("请输入: 单元号户号姓名性别工作单位电话号码(输入户号0结束)\n");p1=(struct person *)malloc(N);scanf("%s%ld%s%s%s%s",p1->num,&p1->num1,p1->name,p1->sex,p1->com, p1->tel);while(p1->num1!=0){p2->next=p1;/* 将新结点连接到表尾*/p2=p1; /* p2指向新的表尾*/p1=(struct person *)malloc(N);/* p1指向新申请的结点*/scanf("%s%ld%s%s%s%s",p1->num,&p1->num1,p1->name,p1->sex,p1->com,p1-> tel);}p2->next=NULL;/* 表尾结点next域置空*/free(p1); /* 释放无效空间*/return head; }5)文件的保存函数与读取函数要保持一致:编码:for(stu=h->next;stu!=NULL;stu=stu->next)fprintf(fp,"%s %ld %s %s %s %s\n",stu->num,stu->num1,stu->name,stu->sex,stu-> com,stu->tel); /*格式化字符串写函数*/printf("\n文件已成功保存,按任意键返回!\n");getch(); /* 从键盘上输入一个字符但不会现在屏幕上*/fclose(fp); /* 将文件所指的指针FP关闭*/}fscanf(fp,"%s %ld %s %s %s %s\n",stu->num,&stu->num1,stu->name,stu->sex, stu->com,stu->tel);/*格式化字符读函数*/r->next=stu;r=stu;}r->next=NULL; /*尾指针置空*/fclose(fp);6)排序函数关键在找最大节点的位置时能记录前一节点的位置:编码:struct person *p,*pre1,*pre2,*r,*s;int count=0,i;for(s=h;s->next!=NULL;s=s->next) /*统计节点数*/{count++;}for(s=h;s->next!=NULL;s=s->next); /*循环体语句为空,找尾节点*/for(i=1;i<count;i++){pre1=h; /*pre1指向r前的一个节点*/pre2=h->next; /*pre2指向p前的一个节点*/r=pre1->next;p=pre2->next;while(p!=s)//不等于尾节点{if(p->num1>r->num1){pre1=pre2; /*指针r始终指向数据较大的节点*/r=p;}pre2=pre2->next;//依次往下查找p=p->next;}pre1->next=r->next; //释放最大的节点r->next=s->next;//给s节点附上新的节点s->next=r;}for(p=s->next,pre1=s;s->num1>p->num1;pre1=pre1->next,p=p->next);//给s节点后的进行排序h->next=s->next;//找到插入的位置s->next=p;pre1->next=s;printf("按任意键继续\n");getch();7)修改函数中要实现能对修改选项的选择:编码:while(p->next!=NULL){p=p->next; /* 继续查找*/if(strcmp(p->name,name)==0){while(choice!=0)/* 进行选择修改信息*/{printf("请输入要修改的选项:1.单位号 2.房户号 3.工作单位 4.电话号码0:退出\n");printf("请选择(0--4):");scanf("%d",&choice);if(choice==1){printf("请输入新的单位号: ");scanf("%s",p->num);}if(choice==2){printf("请输入新的房户号: ");scanf("%ld",&p->num1);}if(choice==3){printf("请输入新的工作单位: ");scanf("%s",p->com);}if(choice==4){printf("请输入新的电话号码: ");scanf("%s",p->tel);}}}return 1;}return 0;8)删除函数关键在找要删除节点的位置:编码:while(p!=NULL){if(strcmp(p->name,name)==0) /* 找到要删除的节点*/{p0->next=p->next; /*后续结点链接到前驱结点之后*/free(p);return 1;}p0=p; /* 移向指针继续查找*/p=p->next;9)添加函数关键在找到要添加的位置:编码:while(p0->next!=NULL&& p0->next->name==p->name)p0=p0->next; /* 继续查找添加的位置*/if(p0->next!=NULL&& p0->next->name==p->name){free(p);/* 释放新结点的存储空间*/return 0; /* 不添加就返回0*/}p->next=p0->next;/*后续结点连接到新结点之后*/p0->next=p; /* 新节点连接到前驱接点之后*/10)统计函数在于实现住户单元号相同与不同的情况下的记录:编码:struct person *p;sort(h);i=0,j=0,dcount=0;drcount[j]=0;for(p=h->next,d[i]=p->num,dcount=1;p!=NULL;p=p->next){count++; //统计总人数if(d[i]!=p->num)//楼号不相等则继续查找{i++;d[i]=p->num;dcount++;j++;drcount[j]=1;//该栋楼人数加为1}elsedrcount[j]++; //统计每栋住户楼的人数}五.测试数据及运行结果1.正常数据及运行结果从文件中读取信息从键盘中输入信息住户信息的删除住户信息的修改住户信息的添加2.异常测试数据及运行结果六.调试情况,设计技巧及体会1、通过这次实习,我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对WIN—TC和C++的使用技巧。
西安邮电大学C语言实验报告
{ int i,j,s;
for(j=1;j<=9;j++)
{
for(i=1;i<=9;i++)
{
s=j*i;
printf("%d*%d=%d ",j,i,s);
} printf("\n");
}
}
说明:正文一律用宋体,小四号字
最终应提交以下文档:
1实验报告电子版,实验报告保存后的文件名为:班级+学号+姓名
实验三
#include"stdio.h"
#include"math.h"
main()
{int i;
float j,t,pi;
t=1,pi=1;j=1;i=1;
while(fabs(t)>=1e-7)
{j*=i;
i++;
t=1/j;
pi=pi+t;
}
printf("pi=%f\n",pi);
}
实验四
#include <stdio.h>
:
刘辉娟
专业名称
:计算Βιβλιοθήκη 科学与技术班级:计科1106
学号
:
04111201
时间
:
2011年11月20日-2011年11月30日
实验题目循环结构程序设计
一、实验目的
1.掌握for语句的使用。
2.掌握while语句的各种形式的使用。
3.掌握如何控制循环条件,防治死循环或不循环。
二、实验内容
实验一:计算s=1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+4+5……n);
西邮嵌入式课程设计
西邮嵌入式课程设计一、课程目标知识目标:1. 掌握嵌入式系统的基本概念、组成原理及发展历程。
2. 学习嵌入式编程的基础知识,如C语言编程、数据结构与算法。
3. 了解嵌入式系统在不同领域的应用,培养跨学科思维能力。
技能目标:1. 能够运用所学知识进行简单的嵌入式程序设计。
2. 掌握使用嵌入式开发工具,如Keil、IAR等,进行代码编写、调试与优化。
3. 培养学生的动手实践能力,能够独立完成嵌入式项目的设计与实现。
情感态度价值观目标:1. 培养学生对嵌入式技术的兴趣,激发创新精神,树立工程意识。
2. 培养学生良好的团队合作精神,提高沟通与协作能力。
3. 使学生认识到嵌入式技术在国家经济发展和国防建设中的重要作用,增强社会责任感和使命感。
本课程针对西邮嵌入式课程设计,结合学科特点、学生年级(假设为大学二年级)及教学要求,注重理论与实践相结合,培养学生具备扎实的嵌入式系统知识体系和实践能力。
课程目标具体、可衡量,旨在帮助学生和教师明确课程预期成果,为后续教学设计和评估提供依据。
二、教学内容1. 嵌入式系统概述- 嵌入式系统的基本概念与组成- 嵌入式系统的发展历程与趋势- 嵌入式系统的应用领域2. 嵌入式编程基础- C语言编程:语法、数据类型、运算符、控制结构等- 常用数据结构与算法- 嵌入式编程规范与技巧3. 嵌入式系统设计与开发- 嵌入式硬件系统设计:微控制器选型、外围电路设计- 嵌入式软件系统设计:系统架构、模块划分、编程接口- 嵌入式系统调试与优化4. 嵌入式系统实践- 使用Keil、IAR等开发工具进行程序编写与调试- 嵌入式项目案例分析与实践- 嵌入式系统综合设计与实现教学内容根据课程目标进行选择和组织,确保科学性和系统性。
教学大纲明确教学内容安排和进度,与教材章节相对应。
教学内容涵盖嵌入式系统的基础理论、编程技能、设计与开发方法以及实践环节,旨在帮助学生全面掌握嵌入式技术,为实际应用打下坚实基础。
西安邮电大学操作系统进程实验报告含源码
西安邮电大学(计算机学院)课内实验报告实验名称:进程管理专业名称:软件工程班级:学生姓名:学号(8位):指导教师:***实验日期:2014年11月4日一.实验目的及实验环境(一)、实验环境1. 硬件(1) 主机:Pentium III 以上;(2) 内存:128MB 以上;(3) 显示器:VGA 或更高;(4) 硬盘空间:至少100MB 以上剩余空间。
2. 软件Ubuntu下gcc编译器、gdb调试工具。
(二)、实验目的进程: 1、通过观察、分析实验现象,深入理解多进程并发执行的过程、fork函数在创建子进程时对内存的操作;2、加深对进程概念的理解,明确进程和程序的区别;3、进一步认识并发执行的实质;4、分析进程争用资源的现象,学习解决进程互斥的方;5、了解Linux系统中进程通信的基本原理。
线程:1、理解多线程的概念,学会Linux编程中的线程的创建与终止。
2、理解多线程并发工作时对资源的抢占,通过本实验掌握在Linux操作系统中遵循Posix线程标准接口进行多线程程序编程,熟练掌握线程的创建pthread_create()。
互斥与死锁:1、理解死锁的产生原因与Linux编程中对临界资源进行加锁使得多进程或多线程对临界资源进行互斥访问。
2、利用信号量或者互斥锁实现线程间的同步。
二、实验内容<1>、完成程序填空<2>、回答下列问题进程:1、你最初认为运行结果会怎么样?答:会持续输出0-9号进程,直到输入数字键+回车,则会杀死该进程,接下来的输出将不会有该进程号,当输入q+回车,则退出程序。
2、实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。
答:实际的结果与预期差不多。
因输入进程总数3小于设定的最大进程数,因此按进程数3来处理。
随机输出0-2号进程,sleep(SLEEP_INTERVAL),循环输出,输入数字键,则会杀死该数字对应的进程,直到输入q退出循环,然后kill杀死本组所有进程。
西安邮电大学课程设计报告 (2)
该系统实现了“中小型超市管理系统”的工作流程,并让我熟悉了这类信息管理系统的开发原理及流程。在设计过程中,能够深入地理解面向对象设计方法的优越性,获得这些方面的相关经验。
二、课程设计内容
针对一般超市管理系统的需求,通过对超市管理工作过程的内容分析与设计中所要承担的任务,设计出下面的数据项和数据结构:
End If
End Sub
Private Sub Command4_Click()
End退出
End Sub
Private Sub Command1_Click()
Dim s As String
Dim t As String老板登录
s = "select * from denglu where yonghu = '" & Text1 & "'"
Unload Me
Form7.Show
Else
MsgBox "密码错误,重新输入", vbExclamation, "警告"
Text2.Text = ""
Text2.SetFocus
Text1.Enabled = False '更改密码时,不能更改帐户,否则还是refresh会自动恢复,受很大影响
End If
1.Private Sub Command2_Click()
Dim s As String管理员登录
Dim t As String
s = "select * from denglu where yonghu = '" & Text1 & "'"
软件课程设计报告
软件课程设计报告一、课程目标知识目标:1. 让学生掌握软件设计的基本原理和方法,理解软件工程的概念和流程。
2. 使学生能够运用所学知识,结合实际需求,设计出结构合理、功能完善的软件方案。
3. 帮助学生了解软件行业的发展趋势,拓宽知识视野。
技能目标:1. 培养学生运用软件工具进行需求分析、系统设计、编码实现和测试的能力。
2. 提高学生团队协作和沟通能力,能在项目中进行有效的分工与协作。
3. 培养学生独立思考和解决问题的能力,能够针对实际问题提出创新性的解决方案。
情感态度价值观目标:1. 培养学生对软件工程的兴趣和热情,激发学生主动学习和探索的精神。
2. 培养学生具备良好的职业道德和敬业精神,关注软件行业的社会责任。
3. 增强学生的团队合作意识,学会尊重他人、倾听意见,形成积极向上的学习氛围。
课程性质分析:本课程为实践性较强的软件课程,旨在培养学生运用理论知识解决实际问题的能力。
结合学生年级特点,课程内容应以实际案例为主线,注重理论与实践相结合。
学生特点分析:学生具备一定的编程基础和软件知识,但缺乏实际项目经验。
因此,课程设计应注重培养学生的动手能力和实际操作技能。
教学要求:1. 教学过程中,教师应注重启发式教学,引导学生主动参与,提高学生的主体地位。
2. 教学内容应结合实际案例,让学生在实践中掌握理论知识,提高实际操作能力。
3. 教学评价应以学生的实际操作成果和项目完成情况为主要依据,关注学生的综合素质。
二、教学内容1. 软件需求分析:讲解需求分析的基本概念、方法和工具,结合案例进行分析,使学生掌握需求获取、需求分析、需求规格说明书编写等技能。
教材章节:第一章 软件需求分析2. 软件设计:介绍软件设计的基本原理、设计模式和方法,以实际案例为例,让学生学会软件架构设计、模块划分、接口设计等。
教材章节:第二章 软件设计3. 编码实现:讲解编程规范和技巧,指导学生运用编程工具进行代码编写,提高编程能力和代码质量。
西安邮电大学通信原理软件仿真实验报告
西安邮电大学《通信原理》软件仿真实验报告实验名称:数字频带系统--2PSK系统院系:通信与信息工程学院专业班级:通工1003学生姓名:XXXX学号:XXXX(班内序号)41指导教师:XXXX报告日期:2012年8月31日●实验目的:1、掌握2PSK信号的波形和产生方法;2、掌握2PSK信号的频谱特点;3、掌握2PSK信号的解调方法和存在的问题;4*、掌握2PSK系统的抗噪声性能。
●仿真设计电路及系统参数设置:1、采用键控法生成2PSK信号并进行相干解调:时间参数:No. of Samples = 1024,Sample Rate = 50000Hz;信号源(0):Amp = 1v,Freq=1000Hz,Offset=0v;载波(2、3):Freq=2000Hz余弦信号,Amp = 1v,Phase=π或0deg;载波(10):Freq=2000Hz余弦信号,Amp = 2v,Phase= 0deg;高斯噪声(39):Density in 1 ohm=0.01W/Hz;模拟带通滤波器(8):Low Fc = 1000Hz,Hi Fc =3000Hz;模拟低通滤波器(12):Fc = 1000Hz;采样器(13):Rate=1000Hz;比较器(32):Comparison=’>’,True Output=1v,False Output=-1v;直流源(33):Amp=0v;2、采用模拟相乘法生成2PSK信号并以科斯塔斯环提取的载波进行相干解调:载波(2):Freq=2000Hz余弦信号,Amp = 1v,Phase= 0deg;科斯塔斯环(17):VCO Freq=2000Hz,VCO Phase=0deg,Mod Gain=2Hz/v,Loop Fltr a=0,Loop Fltr b=1;注:其他参数设置均与键控法相同。
仿真波形及实验分析:1、2PSK信号的波形:如图所示,当发送符号“0”时,已调载波的初相始终为270度,当发送符号“1”时,已调载波的初相始终为90度,并且这种对应关系是始终如一的,因而我们可以通过已调载波的两种初相位区别符号“0”和“1”,从而体现了二进制绝对调相的物理意义。
西安邮电大学开放式实验报告
开放式电子线路设计实验学院名称:电子工程学院学生姓名:李群专业班级:光信息1103班学号:05113096多级放大电路设计一、实验任务二、实验目的1)掌握利用multisim软件进行电路仿真设计的步骤和方法;2)掌握三极管放大电路的设计和调试方法;3)掌握三极管线性区、饱和区和截止区的特点和非线性区向线性区调整方法;4)掌握共射极放大电路和共集电极放大电路的增益,输入阻抗,输出阻抗等特性;5)掌握三极管放大电路输出信号失真类型的判断及调整方法;6)掌握电路功耗概念及降低功耗的常见办法;7)掌握电路的幅频特性概念及影响幅频特性的因素。
1.二、设计要求:1.信号源内阻:Rs=200K2.输入信号频率 60Khz3.指定频带增益:Av=34.负载阻抗: RL=300Ω5.信号源:有效值≤ 1V6. 电源功耗:≤ 50mW;7. 增益不平坦度:< 0.1dB三、实验环境介绍:1.以Multisim7.0仿真环境;Multisim 以著名的 SPICE 为基础,由三部分集成起来,及电路图编辑器(Schematic Editor)/SPICE3F5 仿真器( Simulator)和波形的产生与分析器(Wave Geneator &Aalyzer)。
三者之间的关系如图 1-1 所示。
仿真器为其核心部分,采用了最新版本的电路仿真软件SPICE3F5,这是一种 32位的相互增强型仿真器。
所谓交互式,即在仿真过程中可接受用户的修改操作。
该仿真实验软件还具有如下列优点:支持 Native 模式的数字以及模拟与数字的混合的仿真;能自动插入信号变换接口;支持层次化电路模块的的多次重用;采用GMIN 步进算法改进了收敛;对仿真电路规模与复杂性均无预订的限制2.硬件实现在面包板上。
四、实验原理介绍:在学习模电的时候我们接触过三种基本的放大电路:共基级、共射级、共集电极电路,在此先得了解并知道他们的区别,最后选择最适合设计要求的电路,以下是三种电路的区别:共射级放大电路:电压增益都大于1,输入电阻在三种组态中居中,输出电阻与集电极电阻有很大的关系。
西安邮电学院
西安郵電學院
高级程序语言课程设计
报告书
一、实验目的
二、实验内容
内容:
1):熟悉Turbo C的实验环境,按照给定的上机步骤练习完成;
2):熟悉C程序的编辑,编译,连接和运行的过程。
3):编译一个应用系统程序,形成一个软件系统。
三、详细设计及运行结果
1 算法设计
内容:包括如何将题目分解成若干模块的算法设计思想
2模块图设计
内容:主函数流程图,要与标号表现出各模块于主函数的关系
3流程图设计
内容:包括各模块的流程图
四调试情况,设计技巧及体
内容:
1)包括合法与非合法的测试数据、预期结果和实测结果。
最好用表格列出。
2)本人在设计中的收获、遇到的困难,如何克服困难以及基本软件的不足和需要改进的的设想。
3)用简短的文字对本次设计中给与直接帮助的人员表示感谢。
附录:
程序清单、参考文献
格式:
内容部分用宋体、小四号字,代码用Courier New字体、五号。
A4打印纸。
西安邮电学院 通信软件设计
西安邮电学院实验报告课程通信软件设计开课时间至学年第学期这个软件主要功能是以UDP为基础实现两台电脑之间收发简单文本消息。
软件全部使用java编写,并以JavaBuilder8为工具进行编写与调试。
布局方式采用NULL方式,主要使用AWT的组件和部分SWING的组件。
使用方法如下:1 首先在输入IP地址的输入栏中输入想与之进行通信的主机的IP地址,即消息接受方的IP地址。
2 在消息编辑框中输入想发送的消息内容。
3 编辑完欲发送的消息后,点击“发送消息”按钮进行发送;4 双方发送的消息和发送方与接受方的IP地址都会在下面的空白区域----“频道”内显示。
6 如果没有输入IP地址便发送编辑完的文本消息,空白区域内会显示出提示信息提示用户应输入接受方的IP地址。
7 当频道内显示的消息太多时,可以按”刷新频道”来清除频道内全部信息!软件运行时候的抓图:本机测试结果的抓图效果程序代码与简要说明1 chatFrame类的代码:package chat;import .*;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;/*** <p>Title: </p>* <p>Description: </p>* <p>Copyright: Copyright (c) 2004</p>* <p>Company: </p>* @author not attributable* @version 1.0*/public class chatFrame extends JFrame {JPanel contentPane;Label label1 = new Label();TextField textField1 = new TextField();Label label2 = new Label();TextField textField2 = new TextField();Button button1 = new Button();TextArea textArea1 = new TextArea();DatagramPacket sendpacket,receivepacket; //定义发送和接受数据包DatagramSocket sendsocket,receivesocket;//定义发送和接受DatagramSocket//Construct the framepublic chatFrame() {enableEvents(AWTEvent.WINDOW_EVENT_MASK);try {jbInit();}catch(Exception e) {e.printStackTrace();}}//Component initializationprivate void jbInit() throws Exception { //定义个组件和他们的布局 contentPane = (JPanel) this.getContentPane();label2.setAlignment(Label.CENTER);label2.setFont(new java.awt.Font("SansSerif", 0, 15));label2.setForeground(Color.black);label2.setText("消息编辑框");label1.setBounds(new Rectangle(14, 17, 133, 32));contentPane.setLayout(null);this.setSize(new Dimension(500, 400));this.setTitle("用UDP实现聊天");textField1.setBackground(SystemColor.text);textField1.setColumns(0);textField1.setFont(new java.awt.Font("Dialog", 0, 16));textField1.setText("");textField1.setBounds(new Rectangle(129, 72, 200, 61));label1.setAlignment(Label.CENTER);label1.setFont(new java.awt.Font("Dialog", 0, 15));label1.setText("输入对方IP地址");label2.setBounds(new Rectangle(23, 86, 108, 28));try{sendsocket=new DatagramSocket(5000); //初始化receivesocket=new DatagramSocket(5001);}catch(SocketException se){ //可能产生Socketexception类的异常 se.printStackTrace();System.exit(0);}button1.setBackground(Color.magenta);button1.setFont(new java.awt.Font("Dialog", 0, 13));button1.setLabel("发送消息");button1.setBounds(new Rectangle(374, 23, 88, 42));button1.addActionListener(new java.awt.event.ActionListener (){ public void actionPerformed(ActionEvent e){button1_actionPerformed(e);}});textField2.setBackground(SystemColor.activeCaptionBorder);textField2.setFont(new java.awt.Font("Dialog", 1, 18));textField2.setLocale(java.util.Locale.getDefault());textField2.setText("");textField2.setBounds(new Rectangle(166, 21, 169, 29));textArea1.setFont(new java.awt.Font("Dialog", 0, 13));textArea1.setText("");textArea1.setBounds(new Rectangle(46, 157, 382, 185));contentPane.setBackground(new Color(113, 111, 159));jButton1.setBackground(Color.pink);jButton1.setBounds(new Rectangle(374, 86, 87, 42));jButton1.setFont(new java.awt.Font("Dialog", 0, 13));jButton1.setText("刷新频道");jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) {jButton1_actionPerformed(e);}});contentPane.add(label1, null);contentPane.add(textField2, null);contentPane.add(textField1, null);contentPane.add(label2, null);contentPane.add(textArea1, null);contentPane.add(jButton1, null);contentPane.add(button1, null);}//Overridden so we can exit when window is closedprotected void processWindowEvent(WindowEvent e) {super.processWindowEvent(e);if (e.getID() == WindowEvent.WINDOW_CLOSING) {System.exit(0);}}public void waitforpackets(){ //这个方法完成接受数据包的功能while(true){try{byte[]array=new byte[100];receivepacket=new DatagramPacket(array,array.length);//创建接受数据包的缓冲receivesocket.receive(receivepacket);//接受数据包textArea1.append("\nfrom "+receivepacket.getAddress() +" : ");byte data[]=receivepacket.getData();String received=new String(data,0);//将字节数组转化为字符串textArea1.append(received);}catch(IOException se){//可能产生的IOException类异常textArea1.append(se.toString() +"/n");se.printStackTrace();}}}void button1_actionPerformed(ActionEvent e){//这个方法完成发送数据包String str = textField2.getText();if(pareTo("")!=0){try{textArea1.append("\nto "+textField2.getText() +" : "+textField1.getText());String s=textField1.getText();byte data[]=new byte[100];s.getBytes(0,s.length(),data,0);sendpacket=new DatagramPacket(data,s.length(),InetAddress.getByName(textField2.getText()),5001);//创建发送的数据包sendsocket.send(sendpacket);//发送数据包}catch(IOException exc){textArea1.append(exc.toString() +"\n");exc.printStackTrace();}}elsetextArea1.setText("please input your friend's IP first!");}JButton jButton1 = new JButton();void jButton1_actionPerformed(ActionEvent e) {textArea1.setText("");}}2.chatapp类的代码:package chat;import .*;import java.io.*;import javax.swing.UIManager;import java.awt.*;/*** <p>Title: </p>* <p>Description: </p>* <p>Copyright: Copyright (c) 2004</p>* <p>Company: </p>* @author not attributable* @version 1.0*/public class chatApp {boolean packFrame = false;//Construct the applicationpublic chatApp() {chatFrame frame = new chatFrame();//Validate frames that have preset sizes//Pack frames that have useful preferred size info, e.g. from their layout if (packFrame) {frame.pack();}else {frame.validate();}//Center the windowDimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize = frame.getSize();if (frameSize.height > screenSize.height) {frameSize.height = screenSize.height;}if (frameSize.width > screenSize.width) {frameSize.width = screenSize.width;}frame.setLocation((screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);frame.setVisible(true);frame.waitforpackets();}//Main methodpublic static void main(String[] args) {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exception e) {e.printStackTrace();}new chatApp();}}。
西安邮电大学linux操作系统课程设计ls的编写含源码
西安郵電大學操作系统课程设计报告书院系名称:计算机学院学生姓名:专业名称:软件工程班级:班学号:时间:2015 年4月13 日至2015 年4月24 日1实验目的操作系统是控制和管理计算机硬件和软件资源的虚拟机,其中的文件系统是对软件和设备进行管理的系统,文件系统是操作系统中非常重要的一个模块,它的实现占用了操作系统源码的最大编码量,其好坏也直接影响着用户对操作系统的感受程度。
通过对操作系统课程设计的实践,进一步加深对文件系统的认识和理解,并在此基础上培养学生的工程应用能力。
实验分别从用户态和内核态两个层次实践文件系统的部分功能。
2实验任务2.1 ls实现在linux下编程实现带参数的shell命令ls,ls命令必须支持如下功能。
1.基本要求(1)支持-l 参数;(2)输出结果按字典排序;(3)列出“.”文件,支持-a参数,在没有-a时候不显示隐藏文件;(4)显示记录总数。
2.高级要求(1)支持对给定的目录进行操作,如ls /tmp;(2)输出结果分栏排序,每栏的宽度由这一栏最长的文件名决定,显示的栏数还受终端显示器的宽度影响,每一列尽可能的等宽;(3)正确显示文件特殊属性suid、sgid和sticky,参见联机帮助确保程序能处理各种情况;(4)支持标准的ls支持选项-R,它的功能是递归地列出目录中所有的文件包含子目录中的文件;(5)支持标准的ls支持选项-u,它会显示出文件的最后访问时间,如果用了-u而不用-l,会有什么结果?;(6)当关掉一个文件的读权限,就不能打开这个文件来读。
如果从一个终端登录,打开一个文件,保持文件的打开状态,然后从另外的终端登录,去掉文件的读权限,这时有什么事情会发生?编写一个程序,先用open()打开一个文件,用read()读一些内容,调用sleep()等待20s以后,再读一些内容,从另外的终端,再等待的20s内去掉文件的读权限,这样会有什么结果?。
2.2编写内核模块显示目录或文件的信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("3----修改学生专业\n");
printf("4----修改学生性别\n");
printf("5----修改学生年龄\n");
printf("0----结束此次修改\n");
fflush(stdin);
scanf("%d",&y);
system("cls");
system("cls");
printf("请输入要删除的学生人数\n");fflush(stdin);
scanf("%d",&x);
if(x>sum)
{printf("删除人数超出已存人数范围");
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
struct stude_nt
{int num;
char name[10];
char yuanxi[15];
char zhuanye[15];
char xingbie[10];
int nianling;
} stdi[MAX],t;
int sum;
/*保存测试*/
void save_message(int sum)
scanf("%d",&n);
if(n==1)
{while(i<sum)
{stdi[i]=stdi[i+1];
i++;
}
sum--;
}
}
}
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void revise_message()
if(del_me[m]==stdi[i].num)
break;
if(i==sum)
{printf("修改的第%d个学生不存在\n",m+1);
if(m+1<x)
{printf("\n按任意键继续!");
fflush(stdin);
getchar();
fflush(stdin);
}
}
if(i!=sum)
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar(); system("cls");
return 0;
}
while(feof(fp)!=1)
{
fread(&stdi[i],sizeof(struct stude_nt),1,fp);
if(stdi[i].num==0) break;
8能够对年龄进行升序和降序排序;
9用文件的形式将录入的数据进行存储,并从其中读取数据。
三、需求分析
根据题目要求,学生信息要从文本文件中存取,所以本程序要提供读写文件,显示,统计,查寻,修改记录,保存文件等操作,此外,还要提供键盘式选择菜单实现功能。
四、概要设计
分析整个系统,根据上面的需求分析,可以将这个系统的设计分为如下几大模块:读取数据,输出数据,添加数据,输入数据、修改数据、查询数据、删除数据、统计数据,排序数据,保存数据。
getchar(); system("cls");
return;
}
read_message() /*读取信息*/
{
FILE *fp;
int i=0;
system("cls"ቤተ መጻሕፍቲ ባይዱ;
if((fp=fopen("1.txt","rb"))==NULL)
{
printf("\n\n*****暂时还没有任何信息*****\n");
五、详细设计及运行结果
输出模块
查询模块
修改模块
六、调试情况,设计技巧及体会
1、本次设计选取内容比较简单;结构比较明晰,涉及内容比较全面,程序采用比较基础的C语言,整个程序中午够多复杂函数。
2、本次设计让我体会到:牢固的程序设计基础知识是设计成功的前提,正确的学习态度是设计成功的基础,知识与实践的有效结合是设计成功的保障;认真学,认真练是程序课程的核心。
fclose(fp);
}
/*输入模块*/
void input_message()
{
int i=0,s=MAX;
system("cls");
printf("\n\n录入学生信息\n");
printf("当输入0结束输入");
do
{
printf("\n第%d个学生信息",i+1);
printf("\n学号");
else i++;
} sum=i;
fclose(fp);
return sum;
}
/*输出模块*/
void output_message()
{
int i;
system("cls");
for(i=0; i<sum;i++)
{printf("第%d学生信息\n",i+1);
PRI;
}
printf("\n --%d学生读取信息完毕!--\n",i);
getchar();
system("cls");
}
}
sum=i;
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void del_message()/*删除信息*/
{int i,x,m,n,del_me[MAX];
{int y,i,x,m,n,del_me[MAX];
system("cls");
printf("请输入要修改的学生人数\n");fflush(stdin);
scanf("%d",&x);
if(x>sum)
{printf("要修改人数超出已存人数范围");
printf("\n按任意键返回主菜单!");
switch(y)
{
case 1:printf("\n姓名");
fflush(stdin);
scanf("%s",stdi[i].name);
break;
case 2:printf("\n院系");
fflush(stdin);
scanf("%s",stdi[i].yuanxi);
break;
case 3:printf("\n专业");
软件课程设计
报 告 书
院系名称
:
电子工程学院
学生姓名
:
李群
专业名称
:
光信息
班级
:
1103
学号
:
05113096
时间
:
2012年4月11日至2012年4月20日
实验题目
一、实验目的
让学生综合应用所学的计算机基础知识和所掌握的程序设计语言(C语言),自行设计并实现一个较为完整的小型管理信息系统或小型应用系统的设计与开发。其主要目的是使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平。要求编程时采用结构体、指针、文件等复杂数据结构存储组织数据。
printf("\n专业");
fflush(stdin);
scanf("%s",stdi[i].zhuanye);
printf("\n性别");
fflush(stdin);
scanf("%s",stdi[i].xingbie);
printf("\n年龄");
fflush(stdin);
scanf("%d",&stdi[i].nianling);
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void insert_message() /*添加信息*/
{ int i,x;
system("cls");
printf("请输入要添加的学生人数\n");
fflush(stdin);
{
FILE *fp;
int i;
if((fp=fopen("1.txt","wb"))==NULL)
{
printf("读文件错误!\n");
return;
}
for(i=0;i<sum;i++)