【www.shanpow.com--网络散文】
南阳理工教务网络系统【一】:南阳理工学院学生成绩管理系统
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"conio.h"
#define N 10
caidan();
int x;
//定义结构体数组(确定学生人数)
struct students
{
char num[50];
char name[50];
char sex[5];
int age;
char class[50];
float sco1;
float sco2;
float sco3;
float sum;
float ave;
}stu[N],del;
//录入学生成绩
void lr()
{
int caidan();
int i=0,m=0;
char a;
system("cls");
for(i=0;i<N;i++)
{
printf("请输入需要添加的学生资料:\n");
printf("\n");
printf("学号:");
scanf("%s",&stu[i].num);
printf("姓名:");
scanf("%s",&stu[i].name);
printf("性别:");
scanf("%S",&stu[i].sex);
printf("年龄:");
scanf("%d",&stu[i].age);
printf("班级:");
scanf("%s",&stu[i].class);
printf("\n");
printf("请输入学生的三门成绩:\n"); printf("\n"); printf("高数:"); scanf("%f",&stu[i].sco1); printf("英语:"); scanf("%f",&stu[i].sco2); printf("计算机:"); scanf("%f",&stu[i].sco3); stu[i].sum=stu[i].sco1+stu[i].sco2+stu[i].sco3;
stu[i].ave=stu[i].sum/3;//求平均成绩
printf("\n*****************************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 班级 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n*****************************************************************************\n");
printf("%s\t%s\t%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].class,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
printf("是否继续添加:y或n\n");
scanf("%c",&a);
scanf("%c",&a);
m++;
if (a=='n'||a=='N')
{
system("cls");break;
}
}
x=m;
caidan();
}
//查询学生信息
void cx()
{
int i;
char num[100];
printf("请输入要查找的学生学号:\n");
scanf("%s",num);
for(i=0;i<N;i++)
if(strcmp(stu[i].num,num)==0)//strcmp比较字符串S1和S2,S1<S2返回负数;S1=S2返回0;S1>S2返回正数
{
printf("\n*****************************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 班级 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n*****************************************************************************\n");
printf("%s\t%s\t%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].class,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
break;
}
if(i==N)
printf("查找不到!请重新输入!\n");
getch();
system("cls");
caidan();
}
//修改学生信息
void xg()
{
char a,i=0;
printf("请输入要修改的学生学号:\n");
scanf("%s",stu[i].num);
printf("\n*****************************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 班级 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n*****************************************************************************\n");
printf("%s\t%s\t%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].class,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
printf("\n");
printf("姓名:");
scanf("%s",&stu[i].name);
printf("性别:");
scanf("%S",&stu[i].sex);
printf("年龄:");
scanf("%d",&stu[i].age);
printf("班级:");
scanf("%s",&stu[i].class);
printf("\n");
printf("请输入学生的三门成绩:\n");
printf("\n");
printf("高数:"); scanf("%f",&stu[i].sco1); printf("英语:"); scanf("%f",&stu[i].sco2); printf("计算机:"); scanf("%f",&stu[i].sco3); stu[i].sum=stu[i].sco1+stu[i].sco2+stu[i].sco3;
stu[i].ave=stu[i].sum/3;//求平均成绩
printf("\n*****************************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 班级 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n*****************************************************************************\n");
printf("%s\t%s\t%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].class,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
printf("是否确认修改:y或n\n");
scanf("%c",&a);
scanf("%c",&a);
if (a=='Y'||a=='y')
{
system("cls");
caidan();
}
}
//删除学生信息
void sc()
{
int i,a;
char num[100];
printf("请输入需删除的学生学号:\n");
scanf("%s",num);
for(i=0;i<N;i++)
if(strcmp(stu[i].num,num)==0)//strcmp比较字符串S1和S2,S1<S2返回负数;S1=S2返回0;S1>S2返回正数
{
printf("\n*****************************************************************************\n");
printf("\n | 学号 | 姓名 | 性别 | 年龄 | 班级 | 高数 | 英语 | 计算机 | 总 分 | 平均分 |\n");
printf("\n*****************************************************************************\n");
printf("%s\t%s\t%s\t%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].class,stu[i].sco1,stu[i].sco2,stu[i].sco3,stu[i].sum,stu[i].ave);
printf("确认是否删除该学生数据(1是、2否)\n");
scanf("%d",&a);
if(a==1)
{
stu[i]=del;
} printf("信息已删除,按任意键返回...\n"); break; } else break; } if(i==N) printf("您输入的信息不存在!\n"); getch(); system("cls"); caidan();
//按照高数成绩排序
void gs()
{
int i,j;
int caidan();
struct students del;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(stu[j].sco1>stu[i].sco1)
{
del=stu[j];
stu[j]=stu[i];
stu[i]=del;
}
for(i=0;i<x;i++)
{
南阳理工教务网络系统【二】:南阳理工学院操作系统复习重点
复习重点 第一章
1.什么是操作系统?操作系统(OS)是直接配置在计算机硬件上的最基本的系统软件,负责管理计算机的软硬件资源,实现对计算机资源的抽象,为用户提供方便易用的借口。
2.操作系统的四个目标:1)有效性(提高系统资源利用率,提高系统的吞吐量)2)方便些3)可扩充性4)开放性
3.操作系统的三大作用:1)OS作为用户与计算机硬件系统之间的借口2)OS作为计算机系统资源的管理者3)OS实现了对计算机资源的抽象
4.历史上的三种基本类型的操作系统:多道批处理系统,分时系统,实时系统
5.实时系统,分时系统的比较:1)多路性2)独立性3)及时性:实时信息处理系统对实时性的要求与分实行系统类似,都是以人所能接受的等待时间来确定,而实时系统的及时性,是以控制对象所要求得的开始截止时间或完成截止时间来确定,一般为秒级到毫级,甚至有的要求低于100微妙。4)交互性:实时信息处理系统虽然也具有交互性,但这是人与系统的交互仅限于访问系统中某些特定的专用服务程序。它不像时分系统那样能像终端用户提供数据处理和资源共享服务5)可靠性:分时系统虽然也要求系统可靠,但相比之下,实时系统则要求洗头具有高度的可靠性,因为任何差错都有可能到来巨大的经济损失,甚至是无法预料的灾难性后果,所以在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性。
6.操作系统的四大基本特征:并发性,共享性,虚拟性,异步性 其中并发和共享是最基本的特征,有事互为存在的条件,并发性是最重的特征
7.为什么要引入进程?为了是程序能可靠的并发,于是把程序包装成进程,程序以进程实体的方式驻留在内存,轮流占用CPU执行。
8.进程的特征:1)结构特征。程序段、相关数据段和进程控制块(Process Control Block, PCB)三部分构成了进程实体;2)动态性。进程由创建而产生,由调度而执行,由撤销而消亡,此即进程的生命期;3)并发性。引入进程的目的就是为了能够并发执行;4)独立性。进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。5)异步性。进程实体按照异步方式,各自独立地以不可预知的速度向前推进。 9.进程的三种基本状态极其转换关系:
间片
完
10.进程控制块(PCB)是进程实体的一部分,是操作系统中最重要的记录性数据结构,记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的所有信息。OS是根据PCB
来对并发执行的进程进行控制和管理www.shanpow.com_南阳理工教务网络系统。
11.进程控制块(PCB)是进程存在的唯一标志。为什么呢?当系统创建一个新进程时,就为它建立了一个PCB;进程结束时又回收其PCB,进程于是也随之消亡。PCB经常被系统访问,尤其是被运行频率很高的进程及分派程序访问,故PCB应常驻内存。
12.进程并发执行时的相互制约关系1)间接相互制约关系,源于互斥资源的共享2)直接相互制约关系,源于进程间的合作
13.临界资源和临界区的概念:许多硬件资源如打印机,磁带机等,都属于临界资源。对于临界资源(Critical Resource),无论是硬件临界资源(打印机等),还是软件临界资源(例如前面讨论生产者-消费者问题的变量counter),多个进程必须互斥地对它进行访问。人们把每个进程中访问临界资源的那段代码称为临界区(Critical Section)。 14.同步机制四准则:空闲让进,忙则等待,有限等待 – 避免“死等”,让权等待 – 避免“忙等
15.信号量机制:整型信号量:会出现“忙等”,未遵循让权等待准则。 wait(S): while S<=0 do no-op; S:=S-1; signal(S): S:=S+1;
wait(S)和signal(S)均为原子操作(Atomic Operation)。很长时间以来,它们被 称为P、V操作,P操作请求资源,V操作释放资源,它们应成对出现。 记录型信号量:不存在“忙等”现象,遵循让权等待准则。 1)记录型信号量是整型信号量的改进。 2)S.value的初值表示系统中某类资源的数目,因而又称为资源信号量。 若初值为1则称之为互斥信号量。
3)wait操作意味着进程请求一个单位的该类资源,signal操作意味着进程释放一个单位的该资源。
(大题) type semaphore=record value: integer; L: list of process; End
procedure wait(S) var S: semaphore; begin S.value:=S.value-1; if S.value<0 then block(S.L); End
procedure signal(S) var S: semaphore; begin S.value:=S.value+1; if S.value≤0 then wakeup(S.L); end
信号量可用于实现进程间互斥及同步
16.用信号量解决生产者-消费者问题:利用记录型信号量解决生产者-消费者问题
var mutex, empty, full: semaphore:=1, n, 0;
buffer: array[0,?,n-1] of item; in, out: integer:=0, 0; parbegin
producer: begin repeat
produce an item nextp; wait(empty); wait(mutex);
buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); signal(full); until false; end
consumer: begin repeat wait(full); wait(mutex);
nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty);
consume the item in nextc; until false; end parend end
17.三种高级进程通信工具:1)共享存储器(Shared Memory)系统(基于共享数据结构的通信方式(低效)基于共享存储区的通信方式(高级通信))2)消息传递(Message Passing)系统(是应用最为广泛的一种进程间的通信机制。在该机制中,进程间的数据交换是以格式化的消息(message)为单位的。程序员直接利用操作系统提供的一组通信命令(原语),不仅能实现大量数据的传递,而且还隐藏了通信的实现细节,使通信过程对用户是透明的,从而大大简化了通信程序编写的复杂性。消息传递机制还是微内核操作系统、分布式系统、计算机网络等的最主要的通信工具。以其实现方式的不同,可进一步分成直接通信方式和间接通信方式两种。 )3)管道(Pipe)通信(UNIX操作系统首创了这种通信机制。管道通信以文件系统为基础,所谓管道(pipe),就是连接两个进程之间的一个打开的共享文件,它专门用于进程之间的通信。发送进程可以执行write操作,以字符流的形式源源不断地向管道(共享文件)的一端写入数据流,而接收进程可以执行read操作,从管道的另一端按先进先出的顺序读出数据。 管道机制具有互斥、同步、确定对方是否存在三方面的协调能力。)www.shanpow.com_南阳理工教务网络系统。
18.为什么要引入线程?是为了减少程序在并发执行时所付出的时空开销,是OS具有更好的得并发性。
19.从调度,并发性,拥有资源,系统开销方面比较线程和进程:
1)调度:传统操作系统中,进程是拥有资源的基本单位,又是独立调度、分派的基本单位;而在引入线程的操作系统中,线程是调度和分派的基本单位,而进程是资源拥有的基本单位。 2)并发性:不仅进程之间可以并发执行,而且一个进程中的多个线程之间亦可并发执行。例如,文件服务进程的多个服务线程。
3)拥有资源:进程是拥有资源的基本单位,线程不拥有系统资源(只有一点必不可少的资源),一个进程的代码段、数据段、系统资源等,可供该进程中的所有线程共享。
4)系统开销:进程的创建、撤销、切换,操作系统所付出的开销远高于对线程的类似操作的开销。在一些操作系统中,线程的切换、同步和通信都
20.高级调度:又称作业调度或长程调度,其主要功能是根据某些算法,吧外存上处于后备队列中的那些作业调入内存。
21.低度调度:又称进程调度,是从内存的就绪队列中选择某个进程使它优先获得CPU进入执行态。进程调度有抢占方式和非抢占方式两种方式。抢占方式主要基于优先权原则,短进程优先原则,时间片原则
22.比较先来先服务(FCFS)和短作业(进程)(SJ(P)F)优先两种调度算法的平均周转时间和平均带权周转时间。(大题10分)
优点:短进程优先调度算法能有效地降低作业的平均等待时间,提高系统吞吐量。
缺点:1)对长作业不利,会导致长作业(进程)长期不被调度(Starvation);2)完全未考虑作业的紧迫程度;3)作业(进程)的长短是预估的,不一定准确。
1?i?T???Ti?
n?i?1?
公式:平均周转时间:
从每个进程的完成时间减去到达时间,即为周转时间
n?1T?W????
n?i?1TSi?
平均带权周转时间:
每个进程的周转时间与其服务时间之比,即为带权时间
23.产生死锁的原因;1)竞争资源(当系统中供多个进程共享的资源如打印机,公用队列,其数目不足以满足进程的需要时,会引起诸进程对资源的竞争而产生死锁) 2)进程间推进顺序非法(进程在运行过程中,请求和释放资源的顺序不当,也会同样导致产生进程死锁) 24.产生死锁的四大必要条件:1)互斥条件,2)请求和保持条件,3)不剥夺条件,4)环路等待条件
25.处理死锁的四种方法:1)预防死锁,2)避免死锁,3)检测死锁,4)解除死锁(剥夺资源,撤销进程)
26.避免死锁:系统的安全状态与不安全状态 (安全状态,是指系统能按某种进程顺序,即安全序列〈P1,P2,? ,Pn〉,来为每个进程Pi分配所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。当系统进入不安全状态后,便有可能进而进入死锁状态。避免死锁的实质在于:系统在进行资源分配时,如何使系统不进入不安全状态)
假定系统中有三个进程P1、P2、P3,共有12台磁带机。假设在T0时刻,P1、P2、P3已分别获得5台、2台、2台磁带机,尚有3台空闲未分配,如左表所示。经分析发现,存在一个安全序列〈P2,P1,P3〉,能使每个进程最终都顺利完成,所以说T0时刻系统处于安全状态。
假设T0时刻之后,P3又请求1台磁带机,系统(在T1时刻)满足了它的请求,于是系统进入了不安全状态,如右表所示,此时再也无法找到一个安全序列。
南阳理工教务网络系统【三】:南阳理工学院选报公共选修课的通知
关于选报2011~2012学年第二学期全院公共选修课的的通知 2011~2012学年第二学期全院公共选修课课程表已经编排完毕,根据学校教学工作安排,2011-2012学年第二学期开设《美术鉴赏》等公共选修课程,从第三周周一(2月27日)开始上课,上课时间(含随堂考核时间)为12周。各位公选课任课教师尽快上网查看开课安排,做好上课准备。各教学单位在接到通知后,及时通知学生,做好公共选修课开课及网上选报工作。
一、选课网址
登录教务处网站(
二、公选课课表
请各学院及时通知任课教师到“教务网络管理系统网站-教学安排-教学安排表”查询上课时间及地点,学生选课开始后,教务处编制的课程表就不能再变更(否则将造成学生课表冲突)。任课教师在“教务网络管理系统-成绩录入”自行打印班级学生名单。www.shanpow.com_南阳理工教务网络系统。
三、组织选报
1、本次选课时间共计3天,即第二周周二至周四(2月21至2月23日)。请各学院及时组织学生进行选报,过期不候。选课结束后,系统将不接受任何形式、任何原因的补选要求。
2、同一门课程修完合格后,不得重复选修,不能重复计算学分,选课时要注意避开已修课程。
3、即将毕业的学生请登录系统查看公选课成绩合格课程是否达到毕业要求,未达到毕业要求的学生要及时选课,以免影响毕业成绩审核。
4、根据《关于制订“2011本科专业人才培养方案”的指导意见》(南理工字[2011]47号)要求,我校选修课程共分为六类:哲学;历史与心理学;文化、语言与文学经济、管理及法律;理科(自然科学);工科(自然科学);艺术与体育。自2011级新生开始,学生毕业时选修课学分分布布应不少于上述类别中的五类,普通本科生不低于10学分,专升本不低于5学分,专科生不低于3学分,往届生按老办法进行。
四、上课时间
本学期公选课自第三周周一(2月27日)开始上课,请各任课教师和学生做好上课准备,按课表排定时间、地点按时上课。
五、学生每学期最多选修两门公共选修课,成绩以网上选课结果进行录入。
六、遵照河南省有关文件规定,要求学生在校期间必须选修《音乐鉴赏》、《美术鉴赏》中的任一门课程,其中音乐系各专业学生不得选报《音乐鉴赏》、艺术系、建筑系各专业学生不得选报《美术鉴赏》。
教务处
2012年2月17日
南阳理工教务网络系统【四】:南阳理工新闻发布系统
南 阳 理 工 学 院
本科生毕业设计(论文)
学院(系): 软件学院
专 业: 网络工程
学 生:
指导教师:
完成日期 2012 年 05 月
南阳理工学院本科生毕业设计(论文)
南阳理工学院新闻发布系统的设计与实现
The Design and Implementation The News
Publishing System Of Nanyang College
总 计:毕业设计(论文) 25页
表 格: 4个
图 片: 22个
南 阳 理 工 学 院 本 科 毕 业 设 计(论文)
南阳理工学院新闻发布系统的设计与实现
The Design and Implementation The News
Publishing System Of Nanyang College
学 院(系): 软件学院
专 业:
学 生 姓 名: 学 号: 网络工程
指导教师(职称): 讲师
评 阅 教 师: 完 成 日 期:
南阳理工学院
Nanyang Institute of Technology 2012年05月01日
南阳理工学院新闻发布系统的设计与实现
网络工程
[摘 要] 随着网络技术与计算机技术的飞跃发展,校园网站的建设也得到了快速的发展。校园网网站的建设逐渐由静态过渡到动态形式,网站功能也由单一形式向多功能形式转化,学校的各种办公信息、新闻、通知公告等需在线更新,采用动态新闻发布管理系统已经越来越显示出它的优越性和便捷性。该新闻发布系统,能够让学生注册,还可以登录,并浏览新闻,添加新闻,评论新闻。并有系统管理员,系统管理员可以添加新闻,删除新闻,审核新闻,修改新闻,并对评论进行删除操作,还可以对用户进行添加、修改、删除操作。只有经过管理员审核的新闻才能够在主页上显示出来。该系统为同学和老师创造了一个很好的交流和学习平台。
[关键词] PHP+MYSQL;新闻;评论
The Design and Implementation The News
Publishing System Of Nanyang College
Net Engineering Major
Abstract: Along with the network technology and the rapid development of computer technology, the campus website construction also obtained the fast development.Campus
network construction is gradually transition from quiescent to dynamic form, website function from single form to multi function transformation, the school office information, news, notice to be updated online, using the dynamic news management system has become increasingly demonstrated its superiority and convenience.The news release system, can let the student registration, you can log in, and browse news, add news, comment on the news.And
administrator, the system administrator can add news, delete news, review press, modify news, and reviews the delete operation, but also for the users to add, modify, delete operation.Only after the administrator review news will show on the homepage.The system for students and teachers to create a good communication and learning platform.
Key words: PHP+MYSQL; News;Review
目 录
1. 背景与意义 ........................................................................................................................... 1
1.1 选题背景 ...................................................................................................................... 1
1.2 课题的意义 .................................................................................................................. 1
1.3 系统实现的目标 .......................................................................................................... 1
2. 可行性研究 ........................................................................................................................... 2
2.1 技术可行性 .................................................................................................................. 2
2.2 运行可行性 .................................................................................................................. 2
3. 系统的开发技术和开发模式 ............................................................................................... 2
3.1 开发技术的选择 .......................................................................................................... 2
3.1.1 PHP+MYSQL编程技术 .................................................................................... 2
3.2 系统的开发模式 .......................................................................................................... 2






