南邮学生基本信息管理系统程序设计报告

合集下载

南邮学生基本信息管理系统程序设计报告

南邮学生基本信息管理系统程序设计报告

程序设计报告( 2014/2015学年第二学期)题目:学生基本信息管理系统专业信息管理与信息系统组长学号姓名组员学号姓名指导教师指导单位计算机软件中心日期 2015 年 6 月 25 日学生基本信息管理系统一、课题内容和要求此系统是可实现最基本功能的学生管理系统。

具体的管理信息应包括:两个txt文件,其中a.txt为学生基本信息文件,应该包括学号、姓名、性别、宿舍号码、电话号码;b.txt 为学生成绩基本信息文件,应包括学号、课程编号、课程名称、学分、平实得分、实验成绩、卷面成绩、综合成绩、实得学分。

① a.txt文件不需要编程录入数据,可用文本编辑工具直接生成②数据录入功能: 对b.txt进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。

③学生基本情况查询1)输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。

2)输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。

④成绩查询:输入一个学号时,查询出此生的所有课程情况,⑤删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。

⑥排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

二、需求分析学生基本信息管理系统的功能框架图如图2.1所示。

图2.1 功能框架图本次课程设计主要利用了结构体数组、结构体指针以及与文件有关的基本操作,通过采用模块化设计的思想,首先创建好各个模块的函数,然后被主函数调用。

主函数通过多次调用不同的函数实现创建文件、查询、删除学生信息模块和排序得基本功能,其总体框图如图2.1。

各个模块的程序编写比较容易,各个函数的接口是否处能理好,是本次课程设计能否成功的关键。

通过合理处理各函数得接口,使之能结合为一个完整的具有多功能的程序,从而顺利完成本次课程设计。

三、概要设计3.1主函数模块在主函数中需要输出主菜单选择界面,简单菜单的制作可利用myprint()函数实现。

南邮系统分析与设计实验报告-3

南邮系统分析与设计实验报告-3

通达学院课内实验报告课程名:系统分析与设计任课教师:刘影专业:信息管理与信息系统学号:姓名:二○一四至二○一五年度第二学期南京邮电大学管理学院)链和消息的创建:在协作图中添加“Administrator”类对象“)序列图和协作图的转换:双击浏览器中要转换的协作图,选择菜单栏中“活动图的建模——借阅者借书活动图首先要确定要为哪个对象建模和明确所需要建立模型核心问题。

们确定需要建模的系统的用例,以及用例的参与者。

对于“借阅者借书”的用例来说,参与者是借阅者和图书管理员,借阅者通过图书管理员来进行借书活动,涉及的用例是借书。

)创建活动图:右击浏览器中的“Logic View”图标,在弹出的快捷菜单中选择“”命令,在“Logical View”下会创建“State/Activity Model)绘制泳道:在“借阅者借书活动图”中创建“借阅者”和“图书管理员”这两个泳道,具体方法如下:单击工具栏中相应按钮,在图形编辑区域单击,可以创建默认名为其他活动状态与分支可按照上述方法绘制,完整的“借阅者借书”活动图如下图所示:状态图的建模——图书状态图一.确定状态间的实体以及实体的状态对于图书管理系统而言,最需要的建模实体就是图书的状态,添加,被预定,被借阅,被删除。

当确定了需要建模的实体,并找出了实体的初始状态和终止状态以及其他相关状态后,找出相关状态间的事件和转换,它们间的转换规则是:刚被购买后的新书可以通过系统管理员添加成为能够被借阅的图书。

图书被预定后成为被预定状态。

)绘制转换:单击工具栏中相应图标,单击起始状态向目标状态拖动。

)绘制事件:双击“图书状态图”图形编辑区域中刚建好的转换,在弹出的“其余状态和事件可按照上述方法依次绘制。

南京邮电大学操作系统实验报告

南京邮电大学操作系统实验报告

通信与信息工程学院2015 / 2016学年第二学期实验报告课程名称:操作系统实验名称:1、LINUX及其使用环境2、进程管理3、进程间通信4、文件的操作和使用班级学号专业电子信息工程学生姓名指导教师赵建立实验名称试验一 LINUX及其使用环境实验类型验证实验学时1实验时间2016.6.2一、实验目的和要求1、了解UNIX的命令及使用格式。

2、熟悉UNIX/LINUX的常用基本命令。

3、练习并掌握UNIX提供的vi编辑器来编译C程序。

4、学会利用gcc、gdb编译、调试C程序。

二、实验环境Windows XP + VMWare + RedHat Enterprise Linux(RHEL) 4三、实验原理及内容1、熟悉LINUX的常用基本命令。

如ls、mkdir、grep等,学会使用man、help等其它命令,掌握vi编辑器的使用。

(1)显示目录文件 ls例:ls -al 显示当前目录下的所有文件(2)建新目录 mkdir例:mkdir test 新建一个test目录(3)删除目录rmdir(4)改变工作目录位置 cd例:cd test 更改工作目录至test目录下(5)显示当前所在目录pwd(6)查看目录大小du(7)文件属性的设置 chmod(8)命令在线帮助 man2、设计一个实现文件拷贝功能的shell程序。

(1)在文本编辑器里输入shell程序:#!/bin/shecho “please enter source file:”read soucecho please enter destination file:”read destcp $souc $destls $dest将程序保存在主目录下,命名为shell.(2)打开终端,输入ls -l,显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称。

输入 ./shell,运行shell程序。

输入源文件hello.c,目标文件B13011206.c。

南京邮电大学软件设计实验报告

南京邮电大学软件设计实验报告

通信与信息工程学院2012/2013学年第二学期软件设计实验报告模块名称Visual C++专业广播电视工程学生班级B100117学生学号B10011714学生姓名王建明指导教师田炜题目一:P021E实验要求:设计一个简单的文本编辑器,该系统要求对一个文本文件中的容进行各种常规操作,例如:(1)编辑文本;(2)保存、打开指定位置的文本文件;(3)具有输入输出界面。

1、问题分析与方案设计。

本次程序主要为了让我们了解C语言中对于文件的一般操作。

文件是程序设计中的一个重要概念。

操作系统是以文件为单位对数据进行管理的,也就是说,如果想找外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。

C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。

根据数据的组织形式,可分为ASCII文件和二进制文件。

ASCII文件又称文本(text)文件,他的每一个字节放一个ASCII代码,代表一个字符。

二进制文件是把存中的数据按其在存中的存储形式原样输出到磁盘上存放。

在文件系统中,“文件指针”是一个非常重要的概念,通常在进行关于文件操作的C程序时,会定义一个结构体变量的文件指针(FILE *fp),以便于C语言程序能够准确的对文件进行访问及操作。

本次实验程序包含了简单地对于文件的打开、插入、删除、查找、替换、显示、保存的操作,通过对于文件指针的运用以及各种文件指令的运用,基本达到了实验的要求。

在本次实验中,按照顺序程序的设计方法,加以熟练地运用C程序中主函数与一般函数之间的熟练调用,顺利的实现了实验要求的各种结果。

程序中用到的核心方法包括:文件的打开与关闭、文件的读写、文件的定位以及文件的出错检测等。

其中包括了fopen、fclose、fputc、fgetc、fread、fwrite、rewind、fseek、ftell和ferror等函数。

这些函数对算法的实现起了很大的作用具体算法实现过程如下图所示。

南邮软件设计报告

南邮软件设计报告

软件设计报告姓名:琳学号:B2015年5月16日~2015年6月16日目录第一章软件设计介绍 .................................................................................. 错误!未定义书签。

第二章软件开发平台简介........................................................................... 错误!未定义书签。

第三章软件设计的内容............................................................................... 错误!未定义书签。

分数统计软件(A1) ...................................................................... 错误!未定义书签。

设计题目及要求....................................................................................... 错误!未定义书签。

设计思想及程序流程框图....................................................................... 错误!未定义书签。

逻辑功能程序........................................................................................... 错误!未定义书签。

结果及完善方向....................................................................................... 错误!未定义书签。

南京邮电大学管理信息系统实验报告

南京邮电大学管理信息系统实验报告

课内实验报告课程名:管理信息系统任课教师:专业:学号:姓名:二○一○至二○一一年度第 1 学期南京邮电大学经济与管理学院《管理信息系统》课程实验第 1 次实验报告实验内容及基本要求:实验项目名称:用友ERP供应链管理综合实验实验类型:验证每组人数:1实验内容及要求:1. 基于用友ERP软件中供应链模块,完成企业中采购管理领域的各项业务的操作。

实验结果:一、实验操作步骤总结(限300字,对所做实验的主要流程进行总结,禁止复制实验指导书)1.进入系统管理进行建账工作,具体步骤如下:(1)注册“系统管理员”、(2)增加操作员、(3)创建账套(包括帐套号、单位名称、本位币、存货需要分类、编码方案、数据精度、系统启用)、(4)权限分配2.打开企业应用平台,输入登录信息后进行初始化设置,具体步骤如下:(1)输入基础档案(包括部门及志职员档案、供应商档案、存货信息、仓库档案和收发类别)。

(2)进行期初数据的录。

(填写采购入库单后需要记账)3.处理日常业务。

(操作时要注意细节问题)4.期末工作:月末结账。

5.账簿查询:查询未完成的业务明细表、订单执行情况统计表、暂估入库余额表、入库明细表及发票明细表。

二、实验中遇到的问题及解决方法1、输入基础档案时无法先输入人员档案。

解决方法:要先输入部门档案后再在人员档案中选择部门名称,才能完成输入。

2、在填制到货退回单数量时不知如何表示。

解决方法:在英文状态下在数字前加负号即可。

3、手工结算找不到对应具体的账单。

解决方法:筛选信息要具体,从时间、厂商等具体排除。

三、实验小结(写实验心得和体会)第一次使用ERP软件做的是采购管理练习,虽然老师有过介绍和一些步骤的说明,但是在做得过程中还是会出现很多问题,其实做练习的过程照书本按部就班的做是远远不够的。

在做得过程中我们需要思路清晰,要想明白每一步为什么要这样做,这样我们日后走向工作岗位才能做到脱离书本真正把学到的东西运用到工作上。

南邮C语言程序设计(上机)报告

南邮C语言程序设计(上机)报告

图 1.1:算法流程图
4、源代码: #include <stdio.h> void main() { int i,j,maxmin,minmax; int a[10][20]; int min[20],max[10]; printf("输入 10 行﹑20 列学生身高:\n"); for(i=0;i<10;i++) for(j=0;j<20;j++) { scanf("%d",&a[i][j]); //输入数组的值 }
R009M
Middle
2、课题分析: 根据题目要求,可知这题需要运用数组和比较大小。先建立一个 10 行 20 列的数组,然后通过置换 比较求得每一列的最小值和每一行的最大值,分别存入 min[j]和 max[i]中。再比较 min[j]中的数,求 得其中最大数 minmax;比较 max[i]中数,求得其中的最小数 maxmin.最后比较 minmax 和 maxmin,并输 出结果。 3、算法描述: 算法流程图如下图 1-1 所示:
南京邮电大学通达学院 程序设计(上机)报告
题 目: R009M R024M
专 学 班 指 日 生 级 导 姓 学 教
业 名 号 师 期
软件工程 xxx xxx 韦 剑 2016 年 6 月 6 日
1
评分项 评 分 细 则 评 分 等 级 备 注 平时成绩 软件验收 设计报告
优秀
良好
中等
及格
不及格
教师签名: 年 月 日
7
n=10,m=12,k = 4
8
4
根据输入的数值,可知数组 min[j]中存放的数按顺序为:157、154、158、159、157、157、159、 159、158、158、158、159、158、154、157、159、157、158、158、154,minmax 为 159,即矮人中的 高个子身高为 159cm.max[i]中存放的数按顺序为:185、190、190、196、186、197、187、191、187、 196, maxmin 为 185, 即高个子中的矮子的身高为 185cm.最后比较 minmax 和 maxmin, maxmin 大于 minmax, 所以高个子中的矮子比矮人中的高个子高。程序输出的结果与实际相符。 题目二: 1、问题描述: 题目编号 内容 要求 设有n个人围坐在圆桌周围,从某个位置开始用自然数进行编号为 1,2,…,n。然后从编号为k的人从1开始报数,数到m的人便出列; 下一个人(第m十1个)又从1开始报数, 数到m的人便是第二个出列的 人。如此继续下去,直到最后一个人出列为止。要求输出这个出列 的顺序。 这个问题称为雅瑟夫(Josephu)问题。 具体要求如下: (1)n、m、k由键盘输入,输入前要有提示。 (2)在输入n后,动态建立方法说明中所需要建立的数组空间; 程序运行结束时释放该存储空间。 (3)分别用n=8,m=4,k=1以及n=10,m=12,k = 4调试运 行你的程序。 难度

大学生活动信息管理系统的设计与实现——以南京邮电大学通达学院为例

大学生活动信息管理系统的设计与实现——以南京邮电大学通达学院为例

第6期2019年2月No.6February ,2019卢俊鹏,薛佳雷,高瑶瑶(南京邮电大学通达学院计算机工程学院,江苏扬州225127)引言近年来,互联网发展迅速,网络便利了人们的生活,也提高了管理效率。

现在各行业的管理系统往往都与网络紧密相关,于是我们想要把互联网络与学校活动管理相结合,顺应时代发展的潮流,便于学校更好地管理活动,学生更积极地参与活动。

现阶段的社团活动管理主要还是以纸质的宣传、统计方式居多。

例如社团招新时的报名表和宣传单,活动统计时的签到表,都是一人一纸现场填写。

这种管理活动参与人员的方式,不仅不环保,而且消耗人力资源,在一定程度上造成了资源浪费。

况且若组织者不能很好地维护现场秩序,会造成人员混乱甚至产生安全隐患。

处于现在这个高度信息化的快速社会中,人工管理也就不再适用,传统的活动管理方法也必将会被淘汰,取而代之的一定是更高效、更简便、更安全的信息管理方式。

大学生社团活动信息管理系统会大大简化像传统社团管理那样的人员分工复杂度,不会再有各种繁重易错的工作冗余,节约了时间成本,也减少了纸张的浪费。

能够让活动管理者的工作更加有条理和轻松,是新时代必将广泛推广和使用的互联网线上管理方式[1]。

1系统概要大学生活动信息管理系统会将关于社团相关活动的信息和各种学校的通知发布在该系统中。

例如新学期社团的招新活动、由社团承办的公益类活动、辅导课程、专业技能和比赛通知等。

实现了面向学生和管理者的社团消息实时化、管理高效化和数据同步化。

将信息加入数据库中存档以便之后的管理和查询。

后台管理界面页本着人性化、简便化的设计理念,可以方便社团管理人员进行各项操作,降低了系统的使用门槛。

2需求分析我们通过与活动负责人的深入沟通和对在校学生的广泛调查,提出了如下的功能需求。

学生参加社团活动时,希望能够便捷地了解该活动的详细情况,进而快捷报名,之后能及时地了解该活动的最新进展情况。

社团活动负责人在活动的发布与后续的开展过程中,希望能够花费更少的时间,减少报名审批的流程和简化签到的方式。

南京邮电大学程序设计(银行管理系统)DOC

南京邮电大学程序设计(银行管理系统)DOC

程序设计报告( 2015 / 2016学年第 1 学期)题目:银行定期储蓄管理系统专业测控技术与仪器组长学号姓名 B14050608 刘晨星昱组员学号姓名B14050629 郭文超B14050633蒋文杰指导教师崔子冠指导单位计算机学院软件教学中心日期2015年 9月24日银行定期储蓄管理系统一、课题内容和要求银行定期储蓄管理系统可以实现定期利息计算,客户按密码取款,工作人员口令修改等功能。

具体功能如下:(1)工作人员根据口令进入系统;(2)可以录入新的存单信息(存单编号,储户姓名,身份证编号,住址,联系电话,存款金额,存期,利率,密码),存单信息可以保存在文件中,利率在存期决定后自动得到;(3)根据存单编号可以查询存单信息;(4)根据存单编号和密码可以完成储户取款操作,自动算清应支付的利息并显示在屏幕上。

(5)界面友好,可操作性强,输入信息符合逻辑如存款金额不为负数、不可能有非数字的字符等;(6)工作人员可对信息维护,如口令修改等。

二、需求分析系统中要求工作人员有一个系统帐号,并且帐号有密码,系统的一切操作(如:录入存单信息,信息维护等)都由工作人员执行,而不是由存储用户执行,也主要是说存储用户并不直接与系统交互,而是通过管理员与系统交互。

储户填写的新的存单信息由工作人员输入系统,存单信息包括存单编号,储户姓名,身份证编号,住址,联系电话,存款金额,存期,利率,密码。

存单信息可以保存在文件中,利率在存期决定后自动得到;储户可以根据存单编号查询存单信息,根据存单信息和密码完成储户取款操作,自动计算利息,并显示利息。

功能如图1所示:图1 功能框架图(1)提供可操作的主菜单:输出5个菜单,用于显示管理人员和用户可供操作的函数选项。

根据客户输入的选项来运行不同的功能,运行不同的函数。

(2)新建存单函数:管理人员利用函数输入存单单号,姓名,身份证,地址,手机号码,存期,取款密码,存入金额。

(3)查询存单函数:管理人员和用户利用函数查询已存入的存单信息。

南邮管理信息系统实验报告.doc

南邮管理信息系统实验报告.doc

南邮管理信息系统实验报告1 课内实验报告课程名:管理信息系统A任课教师:吴振宇专业:软件工程学号:B13051734姓名:风水师成绩:2016/2017学年第1学期南京邮电大学管理学院用友ERP软件实验报告1.实验过程描述通过学习用友ERP软件中供应链模块的使用方法,了解企业管理信息系统的总体功能结构,掌握软件的操作方法,熟悉企业运作的基本流程。

本次实验主要分为三个部分,采购模块(了解企业采购业务的标准化处理流程学习使用采购模块的操作方法,包括建立基础档案、录入期初数据、填写请购单、采购单、到货单、入库单),销售模块(了解企业库存管理业务的标准化处理流程学习使用库存模块的操作方法,包括建立基础档案、录入期初数据、填写入库单、出库单),以及库存模块(了解企业销售业务的标准化处理流程学习使用销售模块的操作方法,包括建立基础档案、录入期初数据、填写销售订单、发货单、发票)。

采购模块,销售模块,以及库存模块.主要就有以下几步流程:建账工作-->初始化设置-->日常业务-->期末工作-->账簿查询2.业务流程分析(1)采购模块:主要注意的就是在初始化数据是的操作.1、基础档案设置(左下角)——基础档案(1)部门及职员档案(基础档案——机构人员)部门档案-增加-01采购部-保存-02-保存-03-保存-退出人员档案-增加-填0101,蓝色字体必填,单击放大镜,双击内容-保存-增加-填0201-保存-增加-填0301-保存-退出再次退出人员档案(2)客户档案、供应商档案(基础档案——客商信息-供应商档案)增加-填01-保存-……保存-退出客户信息为何无法录入?因为没有启用销售模块,不提供客户管理功能。

如何启用销售模块?基本信息-系统启用-销售管理-当月首日。

现在录入客户信息,选择客商信息-客户档案(3)存货信息(基础档案——存货)计量单位(分组-增加-填写编号、名称、类别-退出,然后选择单位-增加-填写01到04-保存-最后退出A.存货分类:先增加,然后填写,然后保存-最后退出C、存货档案-最后退出(5)仓库档案:(基础档案——业务)-最后退出(6)收发类别:(基础档案——业务)输入1和2时要指定收发标志,输入101 102…时无需指定,因为收发类别已经确定了(101不可能代表出库)收发发发发发发2、期初数据系统启用时如果已经发生下列业务:上月末从南京钢铁厂(供货单位)购进原煤200吨,入1号仓库,入库类别为101采购入库,暂估单价6000。

南邮软件设计报告

南邮软件设计报告
本文由chenyunlong168贡献 doc1。 软件设计报告 姓名: 姓名: 陈云龙 学号: 学号:B07040414 2010 年 5 月 11 日~2010 年 5 月 20 日 目 录 第一章 软件设计介绍…… 1 第二章 软件开发平台简介 …… 2 第三章 软件设 计的内容…… 4 3.1 分数统计软件(A1) …… 4 3.1.1 设计题目及要求 …… 4 3 .1.2 设计思想及程序流程框图 …… 4 3.1.3 逻辑功能程序 …… 5 3.1.4 结果及完 善方向 …… 5 3.2 打字软件(A2)…… 6 3.2.1 设计题目及要求 …… 7 3.2.2 设 计思想及程序流程框图 …… 8 3.2.3 逻辑功能程序 …… 9 3.2.4 结果及完善方向 …… 10 3.3 文本编辑器(A3) …… 10 3.3.1 设计题目及要求 …… 11 3.3.2 设 计思想及程序流程框图 …… 12 3.3.3 逻辑功能程序 …… 13 3.3.4 结果及完善方 向 …… 14 3.4 加密软件(A4)…… 14 3.4.1 设计题目及要求 …… 15 3.4.2 设 计思想及程序流程框图 …… 16 3.4.3 逻辑功能程序 …… 17 3.4.4 结果及完善方 向 …… 18 3.5 进制转换器(A5) …… 18 3.5.1 设计题目及要求 …… 20 3.5.2 设计思想及程序流程框图 …… 22 3.5.3 逻辑功能程序 …… 24 3.5.4 结果及完善 方向 …… 25 3.6 学生成绩核算系统的设计与实现(B1) …… 26 3.6.1 设计题目 及要求 …… 29 3.6.2 设计思想及程序流程框图 …… 32 3.6.3 逻辑功能程序 …… 34 3.6.4 结果及完善方向 …… 36 3.7 模拟电信计费系统的设计与实现(B2) … … 36 3.7.1 设计题目及要求 …… 39 3.7.2 设计思想及程序流程框图 …… 42 3. 7.3 逻辑功能程序 …… 37 3.7.4 结果及完善方向 …… 43 第四章 心得体会…… 47 第一章 软件设计介绍 一、软件设计的性质、目的 软件设计的性质、 本课程是一门技能训练课,为在 校学生的必修课程。通过设计培 养学生良好的编程习惯,使学生掌握编程的基本步骤 ,规范学生的编 写程序的格式,锻炼学生编写程序的能力,为将来编写较大程序的打 好基础。 二、软件设计的任务 通过集中时间上机实验,使学生充分发挥已有的编程 能力,熟悉 编译环境,选择若干课题,进行审题、分析、设计和调试,并根据要 求 写出实验报告。 三、实验内容 软件设计课题共分 A 、B 两档。A 档共 5 题,第一 周完成;B 档共 2 题,第二周完成。 四、考核办法 考核采取程序验收和面试的方法 进行。其中,程序验收及面试占 50%,实验报告占 50%。在考核过程中,若发现抄袭 程序者,所抄袭 的程序按零分记。 注:如有以下情况,视为抄袭: 1、 与已验收的程序明显雷同; 2、 面试时不 能解释程序中的某些基本功能,或对所写程序一无所 知。 1 第二章 软件开发平台简介 软件开发平台简介 Visual C++是一个功能强大的可视化软件开发工具。自1993年 Microsoft 公司 推 出 Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进 行 软件开发的首选工具。 虽然微软公司推出了 Visual C++.NET(Visual C++7.0) ,但它的应用的很大的局 限性,只适用于 Windows 2000,Windows XP 和 Windows N T4.0。所以实际中,更多 的是以 Visual C++6.0为平台。 Visual C++6.0不仅是一个 C++编译器,而且是 一 个 基 于 Windows 操 作 系 统 的 可 视 化 集 成 开 发 环 境 ( integrated development environment,IDE) 。Visual C++6.0由许多组 件组成,包括编辑器、调试器以及程序向 导 AppWizard、 类向导 Class Wizard 等 开发工具。 这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发环境 。 Visual C++分类 分类

程序设计报告_南京邮电大学_学生管理系统 c语言

程序设计报告_南京邮电大学_学生管理系统 c语言
};
void findsco(int sco,fstream &f);按学号查找并输出学生信息,其中与类中的bool findsc(int n)配合,保持了程序中学生信息的不可见性
void findnam(char nam[],fstream &f,int i)与类中的bool findna(char n[]);结合,保持程序中学生信息不可见性,并可以有i值判断是否接入delnum已删除查找出来的学生信息
int a,b,i,temp;
char tempna[20],tempnu[10];
f.seekg(0,ios::beg);
f.read((char *)&stu,sizeof(Student)*count);
for(a=0;a<count;a++)
{
for(b=0;b<count-a;b++)
if(stu[b].score<stu[b+1].score)
}
const int NUM=sizeof(Student);
bool Student::findna(char n[]) //name search
{
if(strcmp(name,n)==0)
{
return true;
}else
return false;
}
bool Student::findsc(int n)
strcpy(stu[b].num,tempnu);
temp=stu[b+1].score;
stu[b+1].score=stu[b].score;
stu[b].score=temp;

南邮系统分析与设计实验报告

南邮系统分析与设计实验报告

通达学院课内实验报告课程名:系统分析与设计任课教师:刘影专业:信息管理与信息系统学号:____________姓名:______________二O—四至二O—五年度第二学期南京邮电大学管理学院《系统分析与设计》课程实验第二次实验报告“Use Case Diagram ”命令,创建新的用例图后,在浏览器的" Use Case View ”树形结构下多了一个名为“ NewDiagram”的图标,重命名为“借阅者用例图”。

双击“借阅者用例图” 图标,会出现用例图编辑工具和编辑区。

①绘制参与者:单击工具栏的参与者图标到右边的编辑区,修改名称为“借阅者”。

②绘制用例:单击工具栏中用例图标,在编辑区内要绘制的地方单击左键,会出现带有默认名的“ NewUseCase的新用例,双击该用例,弹出“Use Case Specification for NewUseCase对话框,用于属性的设置。

③绘制用例与参与者的关系:单击相应的图标,鼠标移动到“借阅者”上,这时按下鼠标左键不放,移动鼠标至用例上松开鼠标,注意线段箭头的方向为松开鼠标的方向,关联关系的箭头应有参与者指向用例,不可画反。

④绘制用例间的关系:单击相应图标,注意线段箭头的方向是松开鼠标左键时的方向,双击虚线段,在弹出的“ Depe ndency Specificatio n for Un title ”对话框,设置相应属性,“Stereotype ”下拉列表列出了用例间所有可用的关系,选择相应关系。

根据以上步骤,创建出的借阅者用例图如下:*圳!1百2.按照以上步骤,图书管理员用例图和系统管理员用例图如下:駅烯悴士-L^in^4Kbt>>険査用戶自畫性"沁血冲点11书曰I •片料口图书管理员用例图系统管理员用例图类图建模一一图书管理系统类图—.确定系统中的类对于“图书管理系统”来说,根据功能可以基本抽象出图书管理系统中的多个类:“ Borrower ”借阅者类,“ Librarian ”图书管理员类,“ Administrator ”系统管理员类, “Book”图书类,“Resever”预定类,“Loan”借阅类,“Title ”书目类。

南邮程序设计题目304

南邮程序设计题目304

程序设计指导老师:朱建E_mail: zhujian@程序设计题1:手机信息管理系统模拟手机信息管理,能实现对手机中的通信录进行添加、修改、查询功能,模拟拨号、接听功能,能对通话情况进行记录和管理。

【基本要求】(1)通讯录中的每一条信息包括:姓名、电话号码、分类(可能选项有:A为办公类 B为个人类 C为商务类)、电子邮件。

(2)通话情况的每一条信息包括:来电号码、去电号码、通话分类(可能选项有:A为已拨、B为已接、C为未接)、来去电时刻、通话时间(调用时间函数)(3)将通讯录和通话情况分别用两个文件存储,文件类型可以是文本文件或是二进制文件。

【系统基本功能】(1)查看功能:①当输入某类时,显示出此类所有数据中的姓名和电话号码;②当输入某人姓名时,显示出此人的姓名、电话号码所在类;③可以查看所有的来电记录、去电记录和未接电话记录,如果对方号码是你通讯录中已有的,则显示电话主人的姓名,否则显示对方号码;(2)添加数据功能:①能录入新数据添加到通讯录文件中,当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,提示不能再录入新数据,录入的新数据能按递增的顺序自动进行条目编号。

②模拟拨号、接听功能,自动将去电、来电、未接听情况记入通话情况表所对应的文件中。

(3)修改功能:选中某个人的姓名时,可对此人在通讯录中的相应数据进行修改(4)删除功能:选中某个人的姓名时,可对此人在通讯录中的相应数据进行删除,并自动调整后续条目的编号。

(5)主界面提供菜单选择的方法选择实现某一功能,一次运行程序能进行多次选择执行不同的功能。

程序设计题2:票务管理系统火车站每天有n个发车班次,每个班次都有一班次号,固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量,如:车次发车时间起点站终点站行车时间额定载量余票数量K234 8:00 南京广州12 1100 30K211 6:30 南京西成都18 1500 40T25 7:00 北京广州24 1700 20T58 10:00 南京上海 2 800 2该系统要求对一个文件中所存储的票务信息进行各种常规操作,如:查询、计算、显示等功能。

南京邮电大学操作系统实验报告

南京邮电大学操作系统实验报告

南京邮电大学操作系统实验报告This manuscript was revised on November 28, 2020通信与信息工程学院2015 / 2016学年第二学期实验报告课程名称:操作系统实验名称:1、LINUX及其使用环境2、进程管理3、进程间通信4、文件的操作和使用班级学号专业电子信息工程学生姓名指导教师赵建立一、实验目的和要求1、了解UNIX的命令及使用格式。

2、熟悉UNIX/LINUX的常用基本命令。

3、练习并掌握UNIX提供的vi编辑器来编译C程序。

4、学会利用gcc、gdb编译、调试C程序。

二、实验环境Windows XP + VMWare + RedHat Enterprise Linux(RHEL) 4三、实验原理及内容1、熟悉LINUX的常用基本命令。

如ls、mkdir、grep等,学会使用man、help等其它命令,掌握vi编辑器的使用。

(1)显示目录文件 ls例:ls -al 显示当前目录下的所有文件(2)建新目录 mkdir例:mkdir test 新建一个test目录(3)删除目录rmdir(4)改变工作目录位置 cd例:cd test 更改工作目录至test目录下(5)显示当前所在目录pwd(6)查看目录大小du(7)文件属性的设置 chmod(8)命令在线帮助 man2、设计一个实现文件拷贝功能的shell程序。

(1)在文本编辑器里输入shell程序:#!/bin/shecho “please enter source file:”read soucecho please enter destination file:”read destcp $souc $destls $dest将程序保存在主目录下,命名为shell.(2)打开终端,输入ls -l,显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称。

输入 ./shell,运行shell程序。

南邮管理信息系统实验报告

南邮管理信息系统实验报告

南邮管理信息系统实验报告课内实验报告课程名:管理信息系统A任课教师:吴振宇专业:软件工程学号: B13051734姓名:风水师成绩:2016/2017学年第1学期南京邮电大学管理学院用友ERP软件实验报告1.实验过程描述通过学习用友ERP软件中供应链模块的使用方法,了解企业管理信息系统的总体功能结构,掌握软件的操作方法,熟悉企业运作的基本流程。

本次实验主要分为三个部分,采购模块(了解企业采购业务的标准化处理流程学习使用采购模块的操作方法,包括建立基础档案、录入期初数据、填写请购单、采购单、到货单、入库单),销售模块(了解企业库存管理业务的标准化处理流程学习使用库存模块的操作方法,包括建立基础档案、录入期初数据、填写入库单、出库单),以及库存模块(了解企业销售业务的标准化处理流程学习使用销售模块的操作方法,包括建立基础档案、录入期初数据、填写销售订单、发货单、发票)。

采购模块,销售模块,以及库存模块.主要就有以下几步流程:建账工作-->初始化设置-->日常业务-->期末工作-->账簿查询2.业务流程分析(1)采购模块:主要注意的就是在初始化数据是的操作.1、基础档案设置(左下角)——基础档案(1)部门及职员档案(基础档案——机构人员)部门档案-增加-01采购部-保存-02-保存-03-保存-退出人员档案-增加-填0101,蓝色字体必填,单击放大镜,双击内容-保存-增加-填0201-保存-增加-填0301-保存-退出再次退出人员档案(2)客户档案、供应商档案(基础档案——客商信息-供应商档案)增加-填01-保存-……保存-退出客户信息为何无法录入?因为没有启用销售模块,不提供客户管理功能。

如何启用销售模块?基本信息-系统启用-销售管理-当月首日。

现在录入客户信息,选择客商信息-客户档案(3)存货信息(基础档案——存货)计量单位(分组-增加-填写编号、名称、类别-退出,然后选择单位-增加-填写01到04-保存-最后退出A.存货分类:先增加,然后填写,然后保存-最后退出C、存货档案-最后退出(5)仓库档案:(基础档案——业务)-最后退出(6)收发类别:(基础档案——业务)输入1和2时要指定收发标志,输入101 102…时无需指定,因为收发类别已经确定了(101不可能代表出库)2、期初数据系统启用时如果已经发生下列业务:上月末从南京钢铁厂(供货单位)购进原煤200吨,入1号仓库,入库类别为101采购入库,暂估单价6000。

学生信息管理系统c课设报告

学生信息管理系统c课设报告

前言-----------------------------------------------------------2 概要设计-------------------------------------------------------3 详细设计-------------------------------------------------------4 原程序清单和执行结果-------------------------------------------61.源程序--------------------------------------------------62.执行结果-----------------------------------------------34 用户使用说明---------------------------------------------------36 调试与测试-----------------------------------------------------36 总结与体会-----------------------------------------------------36 参考资料-------------------------------------------------------36学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统;它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况;在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等;诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率;随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用;作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点;例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等;这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件;因此,开发这样一套管理软件成为很有必要的事情;概要设计1、功能模块图2void Delete; 实现数据删除功能void Total; 实现数据统计功能void Save; 实现数据保存功能void Read; 可从文件中将记录读取到该类的数组中;然后定义了一个主菜单函数和三个分菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作;主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数;详细设计1、程序中函数及数据介绍class Person 学生类class zhongxuesheng 中学生类class daxuesheng 大学生类class xiaoxuesheng 小学生类class xiao_Manage 小学生管理类class zhong_Manage 中学生管理类class da_Manage 大学生管理类void xiaoMenu 小学生管理菜单函数void zhongMenu 中学生管理菜单函数void daMenu 大学生管理菜单函数int main 主函数2、函数功能介绍显示函数显示保存的数据添加函数此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息;在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面;删除函数此函数实现的功能主要是,删除一个学生的信息;在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件;再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件除了打算删除的那个学生的信息,由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据;修改函数此函数实现的功能主要是,修改一个学生的信息;此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖;查询函数在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询;使用if语句来选择查询条件;按学号查询根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环;当无查询结果时,会输出一条提示信息“无此人信息”;按姓名查询根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生;当无查询结果时,会输出一条提示信息“无此人信息”;显示函数此函数实现的功能主要是,显示所有学生的信息;先是从文件中读取学生信息,然后在输出到显示窗口中;用一个for循环语句,来把所有学生的信息都输出;退出系统当输入“0”时,就能退出系统,这是通过while语句来控制实现的;保存函数将输入程序的数据保存到文件中统计函数根据选择的统计方式,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的信息和选择统计方式一样,则计数变量自增,应该从第一个学生开始检索直到最后一名学生;最后输出结果源程序清单和执行结果1、源程序include<iostream>include<string>include<fstream>include<iomanip> 2.女"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice2;switchchoice2{case 1:sex="男";break;case 2:sex="女";break;default:cout<<"输入错误;"<<endl;break;}cout<<"请输入学生年龄"<<endl;cin>>age;cout<<"请输入学生班级"<<endl;cin>>banji;cout<<"选择地址"<<endl;cout<<setw10<<"1.上海路"<<setw10<<"2.北京东路"<<setw10<<"3.北京西路"<<setw10<<"4.顺外路"<<setw10<<"5.南京东路"<<setw10<<"6.南京西路"<<setw10<<"7.解放东路"<<setw10<<"8.解放西路"<<setw10<<"9.青山湖大道"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice1;switchchoice1{case 1:depart="上海路";break;case 2:depart="北京东路";break;case 3:depart="北京西路";break;case 4:depart="顺外路";break;case 5:depart="南京东路";break;case 6:depart="南京西路";break;case 7:depart="解放东路";break;case 8:depart="解放西路";break;case 9:depart="青山湖大道";break;default:cout<<"输入错误;"<<endl;break;}cout<<"地理成绩 "<<endl;cin>>spec;cout<<"历史成绩"<<endl;cin>>title;cout<<"语文成绩 "<<endl;cin>>yuwen;cout<<"数学成绩"<<endl;cin>>shuxue;cout<<"英语成绩 "<<endl;cin>>yingyu;}void Output{ cout<<setw10<<"学号"<<setw10<<"姓名"<<setw10<<"性别"<<setw10<<"年龄"<<setw10<<"班级"<<endl;cout<<setw10<<num<<setw10<<name<<setw10<<sex<<setw10<<age<<setw10<<banji<<endl;cout<<setw10<<"地址"<<setw10<<"地理"<<setw10<<"历史"<<setw10<<"语文"<<setw10<<"数学"<<setw10<<"英语"<<endl;cout<<setw10<<depart<<setw10<<spec<<setw10<<title<<setw10<<yuwen<<setw10<<shuxue<<setw10<<yingyu<<endl;}};class daxuesheng:virtual public Person 2.女"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice2;switchchoice2{case 1:sex="男";break;case 2:sex="女";break;default:cout<<"输入错误;"<<endl;break;}cout<<"输入年龄"<<endl;cin>>age;cout<<"请输入学生班级"<<endl;cin>>banji;cout<<"选择地址"<<endl;cout<<setw10<<"1.上海路"<<setw10<<"2.北京东路"<<setw10<<"3.北京西路"<<setw10<<"4.顺外路"<<setw10<<"5.南京东路"<<setw10<<"6.南京西路"<<setw10<<"7.解放东路"<<setw10<<"8.解放西路"<<setw10<<"9.青山湖大道"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice1;switchchoice1{case 1:zzmm="上海路";break;case 2:zzmm="北京东路";break;case 3:zzmm="北京西路";break;case 4:zzmm="顺外路";break;case 5:zzmm="南京东路";break;case 6:zzmm="南京西路";break;case 7:zzmm="解放东路";break;case 8:zzmm="解放西路";break;case 9:zzmm="青山湖大道";break;default:cout<<"输入错误;"<<endl;break;}cout<<"输入专业"<<endl;cin>>zc;cout<<"地理成绩 "<<endl;cin>>dili;cout<<"历史成绩"<<endl;cin>>lishi;cout<<"语文成绩 "<<endl;cin>>yuwen;cout<<"数学成绩"<<endl;cin>>shuxue;cout<<"英语成绩 "<<endl;cin>>yingyu;cout<<"联系电话 "<<endl;cin>>lianxi;}void Output{cout<<setw10<<"学号"<<setw10<<"姓名"<<setw10<<"性别"<<setw10<<"年龄"<<endl;cout<<setw10<<num<<setw10<<name<<setw10<<sex<<setw10<<age<<endl;cout<<setw10<<"班级"<<setw10<<"地址"<<setw10<<"专业"<<setw10<<"地理"<<setw10<<"历史"<<endl;cout<<setw10<<banji<<setw10<<zzmm<<setw10<<zc<<setw10<<dili<<setw10<<lishi<<endl;cout<<setw10<<"语文"<<setw10<<"数学"<<setw10<<"英语"<<setw10<<"联系电话"<<endl;cout<<setw10<<yuwen<<setw10<<shuxue<<setw10<<yingyu<<setw12<<lianxi<<endl;}};class xiaoxuesheng:virtual public Person 2.女"<<endl;cout<<"请输入你的选择"<<endl;cin>>choice2;switchchoice2{case 1:sex="男";break;case 2:sex="女";break;default:cout<<"输入错误;"<<endl;break;}cout<<"输入年龄"<<endl;cin>>age;cout<<"输入班级"<<endl;cin>>banji;cout<<"语文成绩"<<endl;cin>>yuwen;cout<<"英语成绩"<<endl;cin>>yingyu;cout<<"数学成绩"<<endl;cin>>shuxue;}void Output{cout<<setw10<<"职工编号"<<setw10<<"姓名"<<setw10<<"性别"<<setw10<<"年龄"<<setw10<<"班级"<<setw10<<"语文"<<setw10<<"英语"<<setw10<<"数学"<<endl;cout<<setw10<<num<<setw10<<name<<setw10<<sex<<setw10<<age<<setw10<<banji<<setw10<<yuwen<<setw10<<yingyu<<setw10<<yingyu<<endl;}};class xiao_ManageetNumutput;}}void xiao_Manage::Search编号查找 2.按姓名查找."<<endl;cin>>choice;switchchoice{case 1:{cout<<"请输入要查找的编号:"<<endl;int num;cin>>num;forint i=0;i<top;i++{ifzhongi.GetNum==num{zhongi.Output;return;}}cout<<"查无此人"<<endl;}break;case 2:{cout<<"请输入要查找的姓名"<<endl;string name;cin>>name;forint i=0;i<top;i++{ifzhongi.GetName==name{zhongi.Output;}}for i=0;i<top;i++ifzhongi.GetName==namereturn;cout<<"查无此人"<<endl;}break;default :cout<<"无此选项请重试"<<endl;break;}}void xiao_Manage::EditetNum==num{cout<<"请对这位教师的信息进行修改:"<<endl;zhongi.Input;cout<<"修改成功"<<endl;return;}}cout<<"查无此人"<<endl;}void xiao_Manage::Deleteum{cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++zhongj=zhongj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;} ;break;case 2:{cout<<"请输入姓名:";string name;cin>>name;forint i=0;i<top;i++{ifname=={cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++zhongj=zhongj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;}; break;default:cout<<"没有此项,失败:"<<endl;break;}}void xiao_Manage::Totalex=="男" a++;ifzhongi.sex=="女" b++;}cout<<"男性人数为"<<a<<endl;cout<<"女性人数为"<<b<<endl;}break;default:cout<<"输入错误;请重新输入"<<endl;break;}}void xiao_Manage::Saveum<<" "<<<<" "<<zhongi.sex<<" "<<zhongi.age<<" "<<zhongi.yuwen<<" "<<zhongi.yingyu<<endl;um>>>>zhongi.sex>>zhongi.age>>zhongi.yuwen>>zhongi.yingyuutput;i++;top++;};};class zhong_Manage{zhongxuesheng zhongTMAX; etNum{cout<<"该编号的人员已存在"<<endl;return;}zhongtop=t;top=top+1;cout<<"添加成功"<<endl;}void zhong_Manage::Show{iftop==0{cout<<"无数据"<<endl;return;}forint i=0;i<top;i++zhongi.Output;}void zhong_Manage::Search{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int choice;cout<<"请选择查找方式:1.按编号查找 2.按姓名查找."<<endl;cin>>choice;switchchoice{case 1:{cout<<"请输入要查找的编号:"<<endl;int num;cin>>num;forint i=0;i<top;i++{ifzhongi.GetNum==num{zhongi.Output;return;}}cout<<"查无此人"<<endl;}break;case 2:{cout<<"请输入要查找的姓名"<<endl;string name;cin>>name;forint i=0;i<top;i++{ifzhongi.GetName==name{zhongi.Output;}}for i=0;i<top;i++ifzhongi.GetName==namereturn;cout<<"查无此人"<<endl;}break;default :cout<<"无此选项请重试"<<endl;break;}}void zhong_Manage::Edit{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int num;cout<<"请输入要查找的教编号:"<<endl;cin>>num;forint i=0;i<top;i++{ifzhongi.GetNum==num{cout<<"请对该生信息进行修改:"<<endl;zhongi.Input;cout<<"修改成功"<<endl;return;}}cout<<"查无此人"<<endl;}void zhong_Manage::Delete{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;int choice;cin>>choice;switchchoice{case 1:{cout<<"请输入编号:";int num;cin>>num;forint i=0;i<top;i++{ifnum==zhongi.num{cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++zhongj=zhongj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;} ;break;case 2:{cout<<"请输入姓名:";string name;cin>>name;forint i=0;i<top;i++{ifname=={cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++zhongj=zhongj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;}; break;default:cout<<"没有此项,失败:"<<endl;break;}}void zhong_Manage::Total{cout<<"1 按人数统计 2 按性别统计 3 按地址统计 "<<endl;int choice;cout<<"请输入你的选择"<<endl;cin>>choice;switchchoice{case 1:cout<<"中学生人数为:"<<top<<endl;break;case 2:{int a=0,b=0;forint i=0;i<top;i++{ifzhongi.sex=="男" a++;ifzhongi.sex=="女" b++;}cout<<"男生人数为"<<a<<endl;cout<<"女生人数为"<<b<<endl;}break;case 3:{int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0;epart=="上海路" a1++;ifzhongi.depart=="北京东路" a2++;ifzhongi.depart=="北京西路" a3++;ifzhongi.depart=="顺外路" a4++;ifzhongi.depart=="南京东路" a5++;ifzhongi.depart=="南京西路" a6++;ifzhongi.depart=="解放东路" a7++;ifzhongi.depart=="解放西路" a8++;ifzhongi.depart=="青山湖大道" a9++;}cout<<"上海路人数为"<<a1<<endl;cout<<"北京东路人数为"<<a2<<endl;cout<<"北京西路人数为"<<a3<<endl;cout<<"顺外路人数为"<<a4<<endl;cout<<"南京东路人数为"<<a5<<endl;cout<<"南京西路人数为"<<a6<<endl;cout<<"解放东路人数为"<<a7<<endl;cout<<"解放西路人数为"<<a8<<endl;cout<<"青山湖大道人数为"<<a9<<endl;}break;default:cout<<"输入错误;请重新输入"<<endl;break;}}void zhong_Manage::Save{ofstream out"D:\\",ios::out;ifout{cout<<"打开失败"<<endl;return;}cout<<"打开成功"<<endl;forint i=0;i<top;i++{out<<zhongi.num<<" "<<<<" "<<zhongi.sex<<" "<<zhongi.age<<" "<<zhongi.depart<<" "<<zhongi.spec<<" "<<zhongi.title<<endl;}cout<<"写入成功"<<endl;;}void zhong_Manage::Read{ifstream in"D:\\",ios::in;ifin{cout<<"打开失败"<<endl;return;}int i=0;whilein>>zhongi.num>>>>zhongi.sex>>zhongi.age>>zhongi.depart>>zhongi.spec>>zhongi.title{zhongi.Output;i++;top++;};};class da_Manage{daxuesheng zhongTMAX; etNum{cout<<"该编号的人员已存在"<<endl;return;}zhongtop=t;top=top+1;cout<<"添加成功"<<endl;}void da_Manage::Show{iftop==0{cout<<"无数据"<<endl;return;}forint i=0;i<top;i++zhongi.Output;}void da_Manage::Search{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int choice;cout<<"请选择查找方式:1.按编号查找 2.按姓名查找."<<endl;cin>>choice;{case 1:{cout<<"请输入要查找的编号:"<<endl;int num;cin>>num;forint i=0;i<top;i++{ifzhongi.GetNum==num{zhongi.Output;return;}}cout<<"查无此人"<<endl;}break;case 2:{cout<<"请输入要查找的姓名"<<endl;string name;cin>>name;forint i=0;i<top;i++{ifzhongi.GetName==name{zhongi.Output;}}for i=0;i<top;i++ifzhongi.GetName==namereturn;cout<<"查无此人"<<endl;}break;default :cout<<"无此选项请重试"<<endl;break;}}void da_Manage::Delete{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;int choice;switchchoice{case 1:{cout<<"请输入编号:";int num;cin>>num;forint i=0;i<top;i++{ifnum==zhongi.num{cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++zhongj=zhongj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;} ;break;case 2:{cout<<"请输入姓名:";string name;cin>>name;forint i=0;i<top;i++{ifname=={cout<<"是否确认删除 1、是 2、否 "<<endl;int choice;cin>>choice;switchchoice{case 1:{forint j=i;j<top-1;j++zhongj=zhongj+1;cout<<"删除成功"<<endl;top--;};break;case 2:return;default:cout<<"无此项,失败"<<endl;break;}return;}}cout<<"无此人"<<endl;}; break;default:cout<<"没有此项,失败:"<<endl;break;}}void da_Manage::Edit{iftop==0{cout<<"当前系统中没有存储记录"<<endl;return;}int num;cout<<"请输入要查找的学号:"<<endl;cin>>num;forint i=0;i<top;i++{ifzhongi.GetNum==num{cout<<"请修改该生信息:"<<endl;zhongi.Input;cout<<"修改成功"<<endl;return;}}cout<<"查无此人"<<endl;}void da_Manage::Total{cout<<"1 按人数统计 2 按性别统计 "<<endl;int choice;cout<<"请输入你的选择"<<endl;cin>>choice;switchchoice{case 1:cout<<"大学生人数为:"<<top<<endl;break;case 2:{int a=0,b=0;forint i=0;i<top;i++{ifzhongi.sex=="男" a++;ifzhongi.sex=="女" b++;}cout<<"男性人数为"<<a<<endl;cout<<"女性人数为"<<b<<endl;}break;default:cout<<"输入错误;请重新输入"<<endl;break;}}void da_Manage::Save{ofstream out"D:\\",ios::out;ifout{cout<<"打开失败"<<endl;return;}cout<<"打开成功"<<endl;forint i=0;i<top;i++{out<<zhongi.num<<" "<<<<" "<<zhongi.sex<<" "<<zhongi.age<<" "<<zhongi.zzmm<<" "<<zhongi.zc<<endl;}cout<<"写入成功"<<endl;;}void da_Manage::Read{ifstream in"D:\\",ios::in;ifin{cout<<"打开失败"<<endl;return;}int i=0;whilein>>zhongi.num>>>>zhongi.sex>>zhongi.age>>zhongi.zzmm>>zhongi.zc{zhongi.Output;i++;top++;};};void xiaoMenu;void zhongMenu;void daMenu;int main{cout<<" 欢迎进入高校人员信息管理系统"<<endl;int choice;do{cout<<" 主菜单\n"<<endl;cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;cout<<"|| ||"<<endl; cout<<"|| ||"<<endl; cout<<"|| ||"<<endl;cout<<"|| 1=>小学生信息管理 ||"<<endl;cout<<"|| 2=>中学生信息管理 ||"<<endl;cout<<"|| 3=>大学生信息管理 ||"<<endl;cout<<"|| 0=>退出系统 ||"<<endl;cout<<"|| ||"<<endl;cout<<"|| ||"<<endl;cout<<"|| ||"<<endl;cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;cout<<"\n请输入您的选择:";cin>>choice;switchchoice{case 1:xiaoMenu;break;case 2:zhongMenu;break;case 3:daMenu;break;case 0:cout<<"\n您已安全退出系统."<<endl;break;default:cout<<"\n没有此选项.请重选."<<endl;break;}}whilechoice=0;cout<<"\n 欢迎您下次再使用本系统"<<endl;return 0;}void xiaoMenu{xiao_Manage t;int choice;whilechoice=0{cout<<" 小学生\n"<<endl;cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;cout<<"|| ||"<<endl; cout<<"|| 1=>添加信息 ||"<<endl; cout<<"|| 2=>查找信息 ||"<<endl;cout<<"|| 3=>修改信息 ||"<<endl;cout<<"|| 4=>删除信息 ||"<<endl;cout<<"|| 5=>显示信息 ||"<<endl;cout<<"|| 6=>保存信息 ||"<<endl;cout<<"|| 7=>读取信息 ||"<<endl;cout<<"|| 8=>统计信息 ||"<<endl;cout<<"|| 0=>退出 ||"<<endl;cout<<"|| ||"<<endl;cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;cout<<"\n输入您操作的选项:";cin>>choice;switchchoice{case 1:;break;case 2:;break;case 3:;break;case 4:;break;case 5:;break;case 6:;break;case 7:;break;case 8:;break;case 0:cout<<"退出成功"<<endl;break;default:cout<<"无此选项请重试"<<endl;break;}}}void zhongMenu{zhong_Manage t;int choice;whilechoice=0{cout<<" 中学生\n"<<endl;cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;cout<<"|| ||"<<endl; cout<<"|| 1=>添加信息 ||"<<endl; cout<<"|| 2=>查找信息 ||"<<endl;cout<<"|| 3=>修改信息 ||"<<endl;cout<<"|| 4=>删除信息 ||"<<endl;cout<<"|| 5=>显示信息 ||"<<endl;cout<<"|| 6=>保存信息 ||"<<endl;cout<<"|| 7=>读取信息 ||"<<endl;cout<<"|| 8=>统计信息 ||"<<endl;cout<<"|| 0=>退出 ||"<<endl;cout<<"|| ||"<<endl;cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;cout<<"\n输入您操作的选项:";cin>>choice;switchchoice{case 1:;break;case 2:;break;case 3:;break;case 4:;break;case 5:;break;case 6:;break;case 7:;break;case 8:;break;case 0:cout<<"退出成功"<<endl;break;default:cout<<"无此选项请重试"<<endl;break;}}}void daMenu{da_Manage t;int choice;whilechoice=0{cout<<" 大学生\n"<<endl;cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;cout<<"|| ||"<<endl;cout<<"|| 1=>添加信息 ||"<<endl;cout<<"|| 2=>查找信息 ||"<<endl;cout<<"|| 3=>修改信息 ||"<<endl;cout<<"|| 4=>删除信息 ||"<<endl;cout<<"|| 5=>显示信息 ||"<<endl;cout<<"|| 6=>保存信息 ||"<<endl;cout<<"|| 7=>读取信息 ||"<<endl;cout<<"|| 8=>统计信息 ||"<<endl;cout<<"|| 0=>退出 ||"<<endl;cout<<"|| ||"<<endl;cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;cout<<"\n输入您操作的选项:";cin>>choice;switchchoice{case 1:;break;case 2:;break;case 3:;break;case 4:;break;case 5:;break;case 6:;break;case 7:;break;case 8:;break;case 0:cout<<"退出成功"<<endl;break;default:cout<<"无此选项请重试"<<endl;break;}}}2、执行结果用户使用说明由于时间有点匆忙,故本程序未过多做人性化设计,请用户严格按照程序提示操作,并记得按回车键调试与测试首先,是对文件的处理不够熟练,通过看书和搜集一些资料解决了这个问题;其次,是在编写程序的过程中出现了一些语法错误,后通过调试逐一解决;总结与体会这两周的C++课程设计,时间上说长不长,说短也不短,却让我学到了很多,第一点就是:C++很难,似乎是学不完的,你觉得自己了解一点,是总会发现还有很多自己所不懂的东西,还。

南邮软件工程课程设计实验报告计划教务管理系统

南邮软件工程课程设计实验报告计划教务管理系统

南京邮电大学实验报告课程名称:软件工程课题名称教务系统课程设计专业:广播电视工程学生姓名:陈超班级学号:B13011413指导教师:范山岗日期:2015年12月25日实验面象对象软件设计一、实验目的用面象对象方法设计合用软件,掌握需求解析方法,掌握掌握 UML设计方法。

二、实验性质考据、设计实验。

三、实验要求1、选定题目编写需求解析说明2、学习 Rational Rose环境3、学习经过 Rational Rose绘制各种框图的方法。

四、环境简介1、 Rational Rose可视化环境组成Rose 界面的五大部分是阅读器、文档工具、工具栏、框图窗口和日志。

见图 1-1。

图 1-1 :Rose 界面阅读器:用于在模型中迅速游览。

文档工具:用于查察或更新模型元素的文档。

工具栏:用于迅速接见常用命令。

框图窗口:用于显示和编写一个或几个UML框图。

日志:用于查察错误信息和报告各个命令的结果。

1.2 阅读器和视图阅读器是层次构造,用于在Rose 模型中迅速游览。

在阅读器中显示了模型中增加的所有,如参加者、用例、类、组件等。

阅读器中包括四个视图: Use Case 视图、Logical视图、Component视图和Deployment视图。

点击每个视图的右键,选择 new 就可以看到这个视图所包括的一些模型元素。

1.3 框图窗口在框图窗口中,我们可以阅读模型中的一个或几个UML框图。

改变框图中的. .元素时, Rose 自动更新阅读器。

同样用阅读器改变元素时,Rose 自动更新相应框图。

这样, Rose就可以保证模型的一致性。

五、实验步骤1、编写需求解析说明书对系统需求进行初步的整理与解析,是后续建模和设计工作的基础。

需求分析说明书详情请见附录。

2、用 UML语言对系统进行解析与建模(OOA)2.1 建立用例图 use case diagram从用例图中我们可以看到系统干什么,与谁交互。

用例是系统供应的功能,参加者是系统与谁交互,参加者可以是人、系统或其他实体。

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

程序设计报告( 2014/2015学年第二学期)题目:学生基本信息管理系统专业信息管理与信息系统组长学号姓名组员学号姓名指导教师指导单位计算机软件中心日期 2015 年 6 月 25 日学生基本信息管理系统一、课题内容和要求此系统是可实现最基本功能的学生管理系统。

具体的管理信息应包括:两个txt文件,其中a.txt为学生基本信息文件,应该包括学号、姓名、性别、宿舍号码、电话号码;b.txt 为学生成绩基本信息文件,应包括学号、课程编号、课程名称、学分、平实得分、实验成绩、卷面成绩、综合成绩、实得学分。

① a.txt文件不需要编程录入数据,可用文本编辑工具直接生成②数据录入功能: 对b.txt进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。

③学生基本情况查询1)输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。

2)输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。

④成绩查询:输入一个学号时,查询出此生的所有课程情况,⑤删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。

⑥排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

二、需求分析学生基本信息管理系统的功能框架图如图2.1所示。

图2.1 功能框架图本次课程设计主要利用了结构体数组、结构体指针以及与文件有关的基本操作,通过采用模块化设计的思想,首先创建好各个模块的函数,然后被主函数调用。

主函数通过多次调用不同的函数实现创建文件、查询、删除学生信息模块和排序得基本功能,其总体框图如图2.1。

各个模块的程序编写比较容易,各个函数的接口是否处能理好,是本次课程设计能否成功的关键。

通过合理处理各函数得接口,使之能结合为一个完整的具有多功能的程序,从而顺利完成本次课程设计。

三、概要设计3.1主函数模块在主函数中需要输出主菜单选择界面,简单菜单的制作可利用myprint()函数实现。

获取用户的输入选择,存放在choose 中,接着判断用户是否继续选择,若选择,则重新获得用户输入;否则,推出程序,其流程图见图3.1。

图 3.1 主函数模块的流程图3.2显示菜单模块myprint()函数不需要传递参数,也不需要再定义任何变量,主要是实现输出主菜单。

其函数的流程图见图3.2.图3.2 myprint()函数的流程图3.3创建文件模块3.3创建文件模块mycreat()函数主要实现打开 b.txt文件,并通过fscanf()函数从磁盘上读取文件b.txt的学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩信息然后依据学分、平时成绩、实验成绩、卷面成绩计算得到综合成绩和实得学分并借助临时文件c.txt将综合成绩和实得学分也加到b.txt文件中。

其中第一个for循环语句主要实现计算综合成绩和实得学分的功能,通过fsanf()语句将文件 b.txt得数据一一读入,同时计算综合成绩和实得学分,并将这些数据通过fprintf语句写入临时文件c.txt。

rewind(fp)函数是将fp指示的文件位置指针置于文件开头位置,并清除文件结束标志和错误标志,以便将临时文件c.txt中的数据写入b.txt文件中。

getc与putc函数与文件指针将临时文件c.txt的信息写入b.txt文件中。

其流程图见图3.3。

其流程图见图3.3。

图3.3 mycreat()函数流程图3.4显示信息模块设计本模块主要设计mydisplay(……)函数。

将文件b.txt的数据通过fscanf()语句写入内存,然后通过printf()语句将读到的信息显示到屏幕上。

若文件中无记录,则显示文件中没有记录。

其流程图见图3.4。

图3.4 显示信息模块流程图3.5查询模块的设计本模块主要设计mysearch(……)函数、mysearchbase(……)函数、mysearchscore(……)函数、print()函数。

mysearchbase(……)函数的流程图见图3.5,sch_num ()函数的流程图见图3.6, sch_name()函数的流程图见图3.7, sch_dom()函数的流程图见图3.8。

mysearch (……)函数主要是查询菜单的显示、输出你要查询的信息。

查询菜单主要包括查询基本情况和查询成绩。

它首先在屏幕上显示查询显示菜单,然后利用getch()与if语句判断查询方式以确定需要调用的函数。

数据结构说明:学生结构体数组同3.3.c 选择的不同方式tempnum[10] 要查询的学号tempname[10] 要查询的姓名tempdom[10] 要查询的宿舍号码图图3.6 sch_num ()函数的流程图图3.7 sch_name()函数的流程图图3.8 sch_dom()函数的流程图3.5.2查询成绩信息模块设计本模块主要设计mysearchscore(……)函数。

mysearchscore(……)用绩信息。

其流程图见图3.9schscore_num ()询学生成绩。

其流程图见图3.10图3.9 mysearchscore()图3.10 schscore_num()函数的流程图3.6删除信息模块设计本模块主要设计mydelete(……)函数。

mydelete (……)函数按学号删除信息。

先以只读方式打开文件,进行读取。

如找到相应的信息,结束本次循环,并将a.txt 文件删除后的数据写入临时文件c.txt 中,同时释放文件a.txt 的空间。

再创建一个文件a.txt ,并将临时文件c.txt中的数据一次通过fpintf()语句写到文件a.txt上。

如没有找到则显示文件中无此信息。

文件b.txt的删除与文件a.txt类似。

mydelete()模块的流程图见图3.11。

del_num ()函数实现按学号删除学生成绩。

由于任务要求在文件a.txt中删除某学生的基本信息,在文件b.txt中该生的成绩信息也相应的被删除,所以需要通过学号对文件a.txt与b.txt均进行删除操作。

这是定义函数del_num ()的关键,其流程图见图3.12。

(其中对b.txt的操作与对文件a.txt的操作相似,在此仅画出对文件a.txt的操作)数据结构说明:学生结构体数组同3.3. c 选择的不同方式tempnum[10] 要删除学生的学号FILE *fp *fp1 文件指针图3.11 mydelete()模块的流程图图3.12 函数del_num ()的流程图3.7排序模块设计本模块主要设计mysort(……)函数、print()函数。

mysearchsort(……)函数主要是排序菜单的显示、输出排序后的信息。

排序菜单主要包括按综合成绩和实得学分两种方式实现升序与降序不同方式得排序。

它首先在屏幕上显示排序显示菜单,然后利用getch()与if语句判断排序方式以确定需要调用的函数,然后以只读方式打开文件,进行读取。

通过插入排序法分别实现不同的排序方式。

如找到相应的信息,则将该信息通过调用printf()函数输出到屏幕上。

所谓插入排序就是将无序序列中的各各元素依次插入到已经有序的线性表中。

mysort (……)函数的流程图见图3.13,sort_sumscore ()函数的流程图见图图3.13 mysort (……)函数的流程图四、源程序代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 100struct student{char num[10];char name[10];char tel[11];char sex[2];int dom; /*宿舍*/char cousenum[3]; /*课程编号*/float cousecount; /*课程学分*/char cousename[25]; /*课程名称*/float comscore; /*平时成绩*/signed int expscore; /*实验成绩*/float paperscore; /*卷面成绩*/float sumscore;/*综合成绩*/float count; /*实得学分*/}stu[12];/* 以下是函数原型说明,被调函数的定义在主调函数后面时,要加此部分*/ void myprint(); /*创建主菜单*/void mycreate(); /*创建管理系统*/void mydisplay(); /*显示*/void mysearchbase(); /*基本情况查询*//* schbase_num sch_dom与schbase_name函数被mysearchbase调用*/void sch_num(FILE *fp);void sch_name(FILE *fp);void sch_dom(FILE *fp);void mysearch(); /*查询*/void mysearchscore(); /*成绩查询*/void schscore_num(FILE *fp,FILE *f); /*成绩查询*/void mydelete(); /*删除*//* del_num函数被mydelete调用*/void del_num(FILE *fp,FILE *f);void mysort(); /*排序*/void sort_sumscore();void sort_count();/*主函数*/void main(){char choose,yes_no;/* system("color 8e");system("cls");*/do{myprint(); /* 显示主菜单*/printf(" ");choose=getch();switch(choose){case '1': mycreate(); break; /* 创建*/case '2': mydisplay(); break; /* 显示*/case '3': mysearch(); break; /*查询*/case '4': mydelete(); break; /* 删除*/case '5': mysort(); break; /* 排序*/case '0': break;default:printf("\n %c为非法选项!\n",choose);}if(choose=='0')break;printf("\n 要继续选择吗(Y/N)?\n");do{yes_no=getch();}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');}while(yes_no!='Y'||yes_no!='y');}void myprint() /* 显示菜单界面*/{/* clrscr(); */printf("\n\n\n\n\n\n\n\n");printf(" 学生管理系统\n ");printf("\n");printf(" |*************************************************************|\n");printf(" | 请输入选项编号(0-5): |\n");printf(" |-----------------------------------------|\n");printf(" | 1--创建学生信息|\n");printf(" | 3--查询学生信息|\n");printf(" | 4--删除学生信息|\n");printf(" | 5--排序学生信息|\n");printf(" | 0--退出|\n");printf(" |-----------------------------------------|\n");printf(" |*****************************************************************|\n");printf("\n");printf(" 欢迎进入学生管理系统——请选择要进行的操作!\n ");}/* 定义创建信息管理系统的函数*/void mycreate(){int i,n;FILE *fp;fp=fopen("e:\\源程序2\\b.txt","r+");if(fp==NULL){printf("\n 打开文件失败!\n");return;}rewind(fp);printf("\n\n");printf("\t\t\t\t请输入学生个数");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入学生学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩\n");scanf("%s %s%s %f %f %d %f" ,&stu[i].num ,&stu[i].cousenum,&stu[i].cousename,&stu[i].cousecount, &stu[i].comscore,&stu[i].expscore,&stu[i].paperscore);}for(i=0;i<n;i++){if( stu[i].expscore==-1)stu[i].sumscore=stu[i].comscore*3/10+stu[i].paperscore*7/10;elsestu[i].sumscore= stu[i].comscore*15/100+ stu[i].expscore*15/100+ stu[i].paperscore*7/10;if(90<stu[i].sumscore&&stu[i].sumscore<=100)stu[i].count=stu[i].cousecount;if(80<stu[i].sumscore&&stu[i].sumscore<=90)if(70<stu[i].sumscore<=80)stu[i].count=stu[i].cousecount*3/4;if(60<=stu[i].sumscore&&stu[i].sumscore<=70)stu[i].count=stu[i].cousecount*3/5;if(stu[i].sumscore<60)stu[i].count=0;fprintf(fp,"%-10s%-7s%-15s%-5.0f%-8.2f%-5d%-8.2f%-8.2f%-8.2f\n",stu[i].num ,stu[i].cousenum,stu[i] .cousename,stu[i].cousecount,stu[i].comscore,stu[i].expscore,stu[i].paperscore,stu[i].sumscore,stu[i].count);}fclose(fp);printf("创建成功!!\n\n");}/* 定义显示信息管理系统的函数*/void mydisplay(){ int i=0;int n=0;struct student temp;FILE *fp;fp=fopen("e:\\源程序2\\b.txt","r");if(fp==NULL){printf("\n 打开文件失败!\n");return;}printf("\n学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分\n");while(feof(fp)==0){fscanf(fp,"%s%s%s%f%f%d%f%f%f\n",&stu[i].num ,&stu[i].cousenum,&stu[i].cousename,&stu[i].cous ecount,&stu[i].comscore,&stu[i].expscore,&stu[i].paperscore,&stu[i].sumscore,&stu[i].count);printf("%-4s %-7s %-12s%-5.0f %-8.2f %-5d %-8.2f %-8.2f %-8.2f\n",stu[i].num ,stu[i].co usenum,stu[i].cousename,stu[i].cousecount,stu[i].comscore,stu[i].expscore,stu[i].paperscore,stu[i].sumscore,st u[i].count);n++;}printf("\n 文件中无记录!\n");elseprintf("\n 文件中共有%d个记录!\n",n);fclose(fp);}/* 定义查询信息的函数*/void mysearch(){char c;FILE *fp;fp=fopen("e:\\源程序2\\a.txt","r");if(fp==NULL){printf("\n 打开文件失败!\n");return;}printf("\n 查询基本信息(b),还是查询成绩(r)?");c=getch();if(c=='b'||c=='B')mysearchbase(); /* 查询基本信息*/ if(c=='r'||c=='R')mysearchscore(); /* 查询成绩*/ if(c!='b'&&c!='B'&&c!='r'&&c!='R')printf("\n 非法字符!\n");fclose(fp);}/* 定义查询信息管理系统的函数(基本情况)*/void mysearchbase(){char c;FILE *fp;fp=fopen("e:\\源程序2\\a.txt","r");if(fp==NULL){printf("\n 打开文件失败!\n");return;printf("\n 按学号查询(h),按姓名查询(m),还是按宿舍查询(d)?");c=getch();if(c=='h'||c=='H')sch_num(fp); /* 按学号查询*/else if(c=='m'||c=='M')sch_name(fp); /* 按姓名查询*/else{if(c=='d'||c=='D')sch_dom(fp); /* 按宿舍查询*/elseprintf("\n 非法字符!\n");}fclose(fp);}/* 定义按学号查询信息管理系统的函数(基本情况)*/void sch_num(FILE *fp){int flag=0,n=0;char tempnum[10];struct student temp;FILE *fp1;fp1=fopen("e:\\源程序2\\a.txt","r");printf("\n 请输入要查询的学号:");gets(tempnum);while(feof(fp)==0){fscanf(fp,"%10s%25s%5s%8d%15s\n",&temp.num,&,&temp.sex,&temp.dom,&temp.tel);if(strcmp(tempnum,temp.num)==0){if(flag==0)printf(" 学号姓名性别宿舍电话号码\n");printf("%10s,%18s,%8s,%12d,%13s\n",temp.num,,temp.sex,temp.dom,temp.tel);flag=1;n++;}if(n==0)printf("\n 文件中无记录!\n");else{if(flag==0)printf("\n 文件中无此人!\n");}fclose(fp1);}/* 定义按姓名查询信息管理系统的函数(基本情况)*/void sch_name(FILE *fp){int flag=0,n=0;char tempname[10];struct student temp;FILE *fp1;fp1=fopen("e:\\源程序2\\a.txt","r");printf("\n 请输入要查询记录的姓名:");gets(tempname);while(feof(fp)==0){fscanf(fp,"%10s%25s%5s%8d%15s\n",&temp.num,&,&temp.sex,&temp.dom,&temp.tel);if(strcmp(tempname,)==0){if(flag==0)printf(" 学号姓名性别宿舍电话号码\n");printf("%10s,%18s,%8s,%12d,%13s\n",temp.num,,temp.sex,temp.dom,temp.tel);flag=1;}n++;}if(n==0)printf("\n 文件中无记录!\n");else{if(flag==0)printf("\n 文件中无此人!\n");}fclose(fp1);}/* 定义按宿舍查询信息管理系统的函数(基本情况)*/void sch_dom(FILE *fp){int flag=0,n=0;int i;int tempdom;FILE *fp1;fp1=fopen("e:\\源程序2\\a.txt","r");printf("\n 请输入要查询记录的宿舍:");scanf("%d",&tempdom);printf("\n");for(i=0;i<4;i++){ while(feof(fp)==0){ fscanf(fp,"%10s%25s%5s%8d%15s\n",stu[i].num,stu[i].name,stu[i].sex,&stu[i].dom,stu[i].tel);if(tempdom==stu[i].dom){if(flag==0)printf(" 学号姓名性别宿舍电话号码\n");printf("%10s,%18s,%8s,%12d,%13s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dom,stu[i].tel);flag=1;n++;}}}if(n==0)printf("\n 文件中无记录!\n");elseprintf("\n 此宿舍有%d人!\n",n);fclose(fp1);}/*定义查询信息管理系统的函数(成绩查询)*/void mysearchscore()FILE *fp,*f;f=fopen("e:\\源程序2\\a.txt","r");fp=fopen("e:\\源程序2\\b.txt","r");if(fp==NULL){printf("\n 打开文件失败!\n");return;}schscore_num(fp,f);/* printf("\n 请输入要查询的学号");c=getch();*/fclose(f);fclose(fp);}/* 定义按学号查询信息管理系统的函数(成绩查询)*/void schscore_num(FILE *fp,FILE *f){int n=0;float flag=0;char tempnum[10];struct student temp;printf("\n 请输入要查询的学号:");gets(tempnum);while(feof(f)==0){fscanf(f,"%10s%25s%5s%8d%15s\n",&temp.num,&,&temp.sex,&temp.dom,&temp.tel);if(strcmp(tempnum,temp.num)==0){printf(" 学号姓名\n");printf(" %10s %25s\n",temp.num,);}}printf("课程编号课程名称综合成绩实得学分\n");while(feof(fp)==0){fscanf(fp,"%s%s%s%f%f%d%f%f%f\n",&temp.num,&temp.cousenum,&temp.cousename,&temp.cousec ount,&score,&temp.expscore,&temp.paperscore,&temp.sumscore,&temp.count);if(strcmp(tempnum,temp.num)==0){printf("%s%30s%20.2f%17.2f\n",temp.cousenum,temp.cousename,temp.sumscore,temp.count);flag+=temp.count;n++;}}if(n==0)printf("\n 文件中无记录!\n");else{if(flag==0)printf("\n 文件中无此人!\n");else{printf("共修学科:");printf("%d",n);printf("\n实得总学分为:");printf("%7.2f",flag);printf("\n");}}}/* 定义删除信息管理系统的函数*/void mydelete(){FILE *fp,*f;f=fopen("e:\\源程序2\\b.txt","r");fp=fopen("e:\\源程序2\\a.txt","r+");if(fp==NULL||f==NULL){printf("\n 打开文件失败!\n");return;}del_num(fp,f);}/* 定义按学号删除信息管理系统的函数*/void del_num(FILE *fp,FILE *f){ int t;FILE *fp1;char tempnum[10];struct student temp;printf("\n 请输入要删除记录的学号:");gets(tempnum);fp1=fopen("e:\\源程序2\\c.txt","w+");//保存a.TXT删除后的数据while(feof(fp)==0){fscanf(fp,"%s%25s%5s%8d%15s\n",&temp.num,&,&temp.sex,&temp.dom,&temp.tel);if(strcmp(tempnum,temp.num)==0) continue;fprintf(fp1,"%5s %20s %5s %8d%15s\n",&temp.num,&,&temp.sex,&temp.dom,&temp.tel);}//重新删除后的数据写回a.TXTremove("e:\\源程序2\\a.txt");fp=fopen("e:\\源程序2\\a.txt","w+");rewind(fp1);t=getc(fp1);while(!feof(fp1)){putc(t,fp);t=getc(fp1);}fclose(fp);//保存b.TXT删除后的数据fp1=fopen("e:\\源程序2\\c.txt","w+");while(feof(f)==0){fscanf(f,"%s%s%s%f%f%d%f%f%f\n",&temp.num,&temp.cousenum,&temp.cousename,&temp.cousecount, &score,&temp.expscore,&temp.paperscore,&temp.sumscore,&temp.count);if(strcmp(tempnum,temp.num)==0) continue;fprintf(fp1,"%-10s%-7s%-15s%-5.0f%-8.2f%-5d%-8.2f%-8.2f%-8.2f\n",temp.num ,temp.cousenum,temp.cou sename,temp.cousecount,score,temp.expscore,temp.paperscore,temp.sumscore,temp.count);}//重新删除后的数据写回b.TXTf=fopen("e:\\源程序2\\b.txt","w+");rewind(fp1);t=getc(fp1);while(!feof(fp1)){putc(t,f);t=getc(fp1);}fclose(f);fclose(fp1);remove("e:\\源程序2\\c.txt");}/* 定义排序信息管理系统的函数*/void mysort(){char c;FILE *fp;fp=fopen("e:\\源程序2\\b.txt","a+");if(fp==NULL){printf("\n 打开文件失败!\n");return;}fclose(fp);printf("\n 按实得学分排序(c),还是按综合成绩排序(s)?");c=getch();if(c=='s'||c=='S')sort_sumscore(); /* 按综合成绩排序*/ else if(c=='c'||c=='C')sort_count(); /* 按实得学分排序*/elseprintf("\n 非法字符!\n");}/* 定义按综合成绩排序学生管理系统的函数*/void sort_sumscore(){ char c;int n=0;int j,k;FILE *fp;float a[12];fp=fopen("e:\\源程序2\\b.txt","r");if(fp==NULL){printf("\n 打开文件失败!\n");return;}while(feof(fp)==0){ fscanf(fp,"%s%s%s%f%f%d%f%f%f\n",&stu[i].num ,&stu[i].cousenum,&stu[i].cousename,&stu[i ].cousecount,&stu[i].comscore,&stu[i].expscore,&stu[i].paperscore,&stu[i].sumscore,&stu[i].count);a[i]=stu[i].sumscore;i++;}//插入排序for( k=1;k<12;k++)for( j=k;(j>0)&&(a[j]<a[j-1]);j--){float d=a[j];a[j]=a[j-1];a[j-1]=d;}printf("\n 按升序(u),还是按降序(d)?\n\n");c=getch();if(c=='u'||c=='U') /* 按综合成绩的升序排列*/for(j=0;j<12;j++){for(k=0;k<12;k++)if(a[j]==stu[k].sumscore){printf("%-10s%-7s%-15s%-5.0f%-8.2f%-5d%-8.2f%-8.2f%-8.2f\n",stu[k].num ,stu[k].cousenum,stu[k].couse name,stu[k].cousecount,stu[k].comscore,stu[k].expscore,stu[k].paperscore,stu[k].sumscore,stu[k].count);break;}}else if(c=='d'||c=='d')for( j=11;j>=0;j--){for(k=0;k<12;k++)if(a[j]==stu[k].sumscore)printf("%-10s%-7s%-15s%-5.0f%-8.2f%-5d%-8.2f%-8.2f%-8.2f\n",stu[k].num ,stu[k].cousenum,stu[k].c ousename,stu[k].cousecount,stu[k].comscore,stu[k].expscore,stu[k].paperscore,stu[k].sumscore,stu[k].count);break;}}elseprintf("\n 错误字符!\n");fclose(fp);}/* 定义按实得学分排序学生管理系统的函数*/void sort_count(){char c;int i=0;int n=0;int j,k;FILE *fp;float a[12];float b[12];fp=fopen("e:\\源程序2\\b.txt","r");if(fp==NULL){printf("\n 打开文件失败!\n");return;}while(feof(fp)==0){ fscanf(fp,"%s%s%s%f%f%d%f%f%f\n",&stu[i].num ,&stu[i].cousenum,&stu[i].cousename,&stu[i ].cousecount,&stu[i].comscore,&stu[i].expscore,&stu[i].paperscore,&stu[i].sumscore,&stu[i].count);a[i]=stu[i].count;i++;}//插入排序for( k=1;k<12;k++)for( j=k;(j>0)&&(a[j]<a[j-1]);j--){float d=a[j];a[j]=a[j-1];a[j-1]=d;}for(k=0;k<12;k++)b[k]=stu[k].count;printf("\n 按升序(u),还是按降序(d)?\n\n");c=getch();if(c=='u'||c=='U') /* 按综合成绩的升序排列*/{for(j=0;j<12;j++){for(k=0;k<12;k++)if(a[j]==stu[k].count){printf("%-10s%-7s%-15s%-5.0f%-8.2f%-5d%-8.2f%-8.2f%-8.2f\n",stu[k].num ,stu[k].cousenum,stu[k].couse name,stu[k].cousecount,stu[k].comscore,stu[k].expscore,stu[k].paperscore,stu[k].sumscore,stu[k].count);stu[k].count=0;break;}}for(k=0;k<12;k++)stu[k].count=b[k];}else if(c=='d'||c=='d'){for( j=11;j>=0;j--){for(k=0;k<12;k++)if(a[j]==stu[k].count){printf("%-10s%-7s%-15s%-5.0f%-8.2f%-5d%-8.2f%-8.2f%-8.2f\n",stu[k].num ,stu[k].cousenum,stu[k].c ousename,stu[k].cousecount,stu[k].comscore,stu[k].expscore,stu[k].paperscore,stu[k].sumscore,stu[k].count);stu[k].count=0;break;}}for(k=0;k<12;k++)stu[k].count=b[k];}else{printf("\n 错误字符!\n");}fclose(fp);}五、测试数据及其结果分析测试截图请自行完成结果分析如下。

相关文档
最新文档