学生成绩管理except
『壹』 帮忙用汇编编个学生成绩管理程序
不是一般人做得出来的.....谁汇编达到这程度还会花时间来给你做这个?
『贰』 except的用法
except
先回答楼主的问题~不可以直接加动词~`一定要跟上介词才可以哦~
prep.
1. 除...之外
We go there every day except Sunday.
除了星期天,我们每天都去那儿。
They all went to sleep except the young Frenchman.
除了那位年轻的法国人以外,他们全都去睡觉了。
I like her except when she is angry.
除了她发怒的时候,我挺喜欢她。
He has no special fault except that he smokes too much.
他除了抽烟太多之外,没有什么特别的毛病。
conj.
1. 除了
She did nothing except complain while she was here.
她在这里时除了抱怨还是抱怨。
2. 要不是;但是
I would go except it's too far.
我想去的,只是路太远。
vt.
1. 把...除外;不计
The minors are excepted from the regulation.
未成年者不在此限。
You will all be punished; I can except no one.
你们全得受罚,我一个也不饶。
vi.
1. 反对;表示异议[(+to/against)]
The defendant excepted to the witness.
被告对这个见证人提出异议。
『叁』 大学生体测替考除了被取消学位获得资格还有什么惩罚
大学生体测替考除了被取消学位获得资格,课程成绩被记零分。
学校教务处发出《关于对2020/2021学年第一学期体质健康达标测试违规学生处理的通告2》称,在2020年12月5日进行的体质健康达标测试中,王某豪由杨某茂冒名代替参加测试,违反考试管理规定第十五条,按作弊处理。
为严肃考风、考纪,根据《太原工业学院考试工作管理办法》,对以上两名同学处理如下:1.本门课程成绩记“零分”;2.取消学士学位获得资格。
(3)学生成绩管理except扩展阅读
大学生体测替考事件
太原工业学院网站于9月29日发布《关于对2020/2021学年第一学期体质健康达标测试违规学生处理的通告》称,在2020年9月26、27日进行的体质健康达标测试中,郭某缘由陈某余冒名代替参加测试;穆某元由王某优冒名代替参加测试;杨某堃由李某潮冒名代替参加测试,违反考试管理规定第十五条,按作弊处理。
『肆』 access建一个关于学生的数据库,除了成绩管理还有图书管理之外还可以建什么样的小型数据库呢
Access数据库是根据你的需要创建的,涉及各个领域,名称五花八门太多太多。创建数据库你必须首先确定是什么管理系统,根据你的意图才能创建数据表、数据表、字段,确定数据类型,数据库名称、数据表名称、字段名称需要自己命名。既然你自己能够创建,首先是确定方向,根据确定的方向创建就可以了。
『伍』 关于except的用法
except用于表示同类事物之间的关系,其意为"除……以外"、"除去".
1. except后面可接名词、代词、动词、副词、介词短语和从句等.如: We have an English lesson every day except Sunday. 除星期天外,我们每天有一堂英语课.(接名词)
They all went to the park last Sunday except him. 除了他以外,上星期天他们都去公园了.(接代词)
Every day Mary does nothing except watch TV. 每天玛丽除了看电视以外什么都不干.(except后接动词时,一般为带to的动词不定式.但如果except前面有谓语动词do或其相应形式时,后面通常接省略to的动词不定式.如此句.) He always goes to work by bike except recently. 除最近外,他一般都骑自行车上班.(接副词)
After breakfast the students went nowhere except to school. 吃完早餐,学生们除了上学就不到别处去了.(接介词短语)
My father usually goes to work by bike except when it rains. 除下雨天外,我爸爸通常骑自行车上班.(接从句)
2. except常用在all, whole, any, every, no等词,及anything, anybody, anyone, everything, everybody, everyone等不定代词之后.如:
She ate everything on the plate except the carrots.除胡萝卜外她把盘子里的东西都吃了.
I've cleaned all the rooms except the toilet. 除了厕所,我清扫了所有房间.
『陆』 除了刷身份证来确认考籍信息还有别的办法吗
学籍号与身份证号不一致将会影响到中考、高考、乃至升学录取等方面问题,学籍号与身份证号不一致,可以申请学校出具“学生证明”,后持“学生证明”和身份证到辖区派出所户籍管理处开具正确的的“身份信息证明”,再持两份“证明和身份证”到当地教育部门,进行学籍号码信息更正即可。 1、从2013年9月1日起(各省市实行时间不统一,实行时间差异很大),全国中小学生新学籍绑定身份证号,实行“一人一籍,籍随人走,终身不变”原则。 2、按照教育部要求,在新学期中学生将实行“一生一号”,学生转学、升学都将被动态跟踪,无序择校等现象将得到遏制。 3、于2013年9月1日实行的《中小学生学籍管理办法》历时三年制成,是第一部全国性的中小学生学籍管理办法,避免了原学籍管理方法产生的数据分散、各省衔接不畅等问题。学校将通过电子学籍系统统一申请学籍号,杜绝“虚假学籍”、“重复学籍”等问题。 4、办法规定了新生入学一个月之内建立学籍,通过电子学籍系统申请学籍号,确定“籍随人走”原则。学生学籍号是学籍信息的核心要素,以学生居民身份证号为基础,在全国范围具有唯一性,并且终身不变。从幼儿园入园或小学入学初次采集学籍信息后开始使用,学生进入更高年级或更高教育阶段时,其学籍档案基本信息均采用第一次采集的数据信息,学籍号生成规则由教育行政部门制订。
『柒』 寻求解答 C语言做学生成绩管理系统
/******头文件(.h)***********/
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
#define N 3 /*定义常数*/
typedef struct z1 /*定义数据结构*/
{ char no[11];
char name[15];
int score[N];
float sum;
float average;
int order;
struct z1 *next;
}STUDENT;
/*菜单函数,返回值为整数*/
menu_select()
{
char *menu[]={" ***************MENU***************", /*定义菜单字符串数组*/
" 0. Init list", /*初始化*/
" 1. Enter list", /*输入记录*/
" 2. Print list ", /*显示单链表中所有记录*/
" 3. Sort to make new file", /*排序*/
" 4. Search record by name or NO.", /*按照姓名查找记录*/
" 5. Insert record to list ", /*插入记录到表中*/
" 6. Delete a record from list", /*从表中删除记录*/
" 7. Save the file", /*将单链表中记录保存到文件中*/
" 8. Load the file", /*从文件中读入记录*/
" 9. Statistics", /*统计*/
" 10. Quit", /*退出*/
" ",
" ", /*屏幕调节,没有实际意义*/
" ",
" ***********************************",
" ",
" ",};
char s[3]; /*以字符形式保存选择号*/
int c,i; /*定义整形变量*/
textbackground(GREEN|BLUE); /*设置背景颜色为蓝绿色*/
gotoxy(1,25); /*移动光标*/
printf("Press any key enter menu......\n"); /*压任一键进入主菜单*/
getch(); /*输入任一键*/
clrscr(); /*清屏*/
for(i=0;i<16;i++) /*输出主菜单数组*/
{ gotoxy(10,i+1);
cprintf("%s",menu[i]);
}
window(1,1,80,25); /*恢复原窗口大小*/
gotoxy(10,21); /*移动光标*/
do{printf("\n Enter you choice(0~10):"); /*在菜单窗口外显示提示信息*/
scanf("%s",s); /*输入选择项*/
c=atoi(s); /*将输入的字符串转化为整形数*/
}while(c<0||c>10); /*选择项不在0~10之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/
}
/*初始化链表,可以实现对另一组数据的处理*/
STUDENT *init() /*初始化链表*/
{ return NULL;}
/*创建链表,完成数据录入功能*/
STUDENT *create()
{ int i; int s;
STUDENT *h=NULL,*info; /* STUDENT指向结构体的指针*/
for(;;)
{ info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/
if(!info) /*如果指针info为空*/
{
printf("\nOut of memory"); /*输出内存溢出*/
return NULL; /*返回空指针*/
}
printf("Input imformation as follow.\n");
printf("Press '#'after'Enter NO'to end the input.\n");
inputs("Enter NO.:",info->no,11); /*输入学号并校验*/
if(info->no[0]=='#') break; /*如果学号首字符为#则结束输入*/
inputs("Enter name:",info->name,15); /*输入姓名,并进行校验*/
printf("Please input %d scores \n",N); /*提示开始输入成绩*/
s=0; /*计算每个学生的总分,初值为0*/
for(i=0;i<N;i++) /*N门课程循环N次*/
{
do{
printf("score%d:",i+1); /*提示输入第几门课程*/
scanf("%d",&info->score[i]); /*输入成绩*/
if(info->score[i]>100||info->score[i]<0)/*确保成绩在0~100之间*/
printf("Bad data,repeat input\n"); /*出错提示信息*/
}while(info->score[i]>100||info->score[i]<0);
s=s+info->score[i]; /*累加各门课程成绩*/
}
info->sum=s; /*将总分保存*/
info->average=(float)s/N; /*求出平均值*/
info->order=0; /*未排序前此值为0*/
info->next=h; /*将头结点做为新输入结点的后继结点*/
h=info; /*新输入结点为新的头结点*//*没排序前,后输入的数据将排在最上*/
}
return(h); /*返回头指针*/
}
/*自定义输入控制函数inputs*/
inputs(char *prompt, char *s, int count)
{
char p[255];
do{printf(prompt); /*显示提示信息*/
scanf("%s",p); /*输入字符串*/
if(strlen(p)>count)printf("\n Too long! \n"); /*进行长度校验,超过count值重输入*/
}while(strlen(p)>count);
strcpy(s,p); /*将输入的字符串拷贝到字符串s中*/
}
/*显示模块*/
void print(STUDENT *h)
{ int i=0; /* 统计记录条数*/
STUDENT *p; /*移动指针*/
clrscr(); /*清屏*/
p=h; /*初值为头指针*/
printf("\n\n\n****************************STUDENT**********************************\n");
printf("|rec|NO. | name | sc1| sc2| sc3| sum | ave |order|\n");
while(p!=NULL)
{ i++;
if(i%10==0){getch();clrscr();
printf("\n\n\n\n");} /*否则什么也不做*/
else;
printf("|---|----------|---------------|----|----|----|--------|-------|-----|\n");
printf("|%2d |%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |\n", i, p->no,p->name,p->score[0],p->score[1],
p->score[2],p->sum,p->average,p->order);
p=p->next;
}
printf("**********************************end*********************************\n");
}
/*排序模块*/
STUDENT *sort(STUDENT *h)
{
int i=0; /*用来保存名次*/
STUDENT *p,*q,*t,*h1; /*定义临时指针*/
h1=h->next; /*将原表的头指针所指的下一个结点作头指针*/
h->next=NULL; /*断开原来链表头结点与其它结点的连接*/
while(h1!=NULL) /*当原表不为空时,进行排序*/
{ t=h1; /*取原表的头结点*/
h1=h1->next; /*原表头结点指针后移*/
p=h; /*设定移动指针p,从头指针开始*/
q=h; /*设定移动指针q做为p的前驱,初值为头指针*/
while(t->sum<p->sum&&p!=NULL) /*作总分比较*/
{ q=p; /*待插入点值小,则新表指针后移*/
p=p->next;
}
if(p==q) /*p==q,上面的while没有执行,也即插入点大于头指针,此点应排在首位*/
{ t->next=p; /*待排序点的后继为p*/
h=t; /*新头结点为待排序点*/
}
else /*待排序点应插入在q和p之间,如p为空则是尾部*/
{ t->next=p; /*t的后继是p*/
q->next=t; /*q的后继是t*/
}
}
p=h; /*已排好序的头指针赋给p*/
while(p!=NULL) /*赋予各组数据排序号*/
{
i++; /*结点序号*/
p->order=i; /*将名次赋值*/
p=p->next; /*指针后移*/
}
printf("Sort sucess!!!\n"); /*排序成功*/
return (h); /*返回头指针*/
}
/*查找记录模块*/
void search(STUDENT *h)
{ STUDENT *p,*q; /*移动指针*/
char s[15]; /*存放姓名的字符数组*/
char t[11];
int x;
printf("***********************************************************\n");
printf("1.search by name\n"); /*按姓名查找*/
printf("2.search by No \n"); /*按学号查找*/
scanf("%d",&x);
clrscr(); /*清屏幕*/
while(x<1||x>2)
{printf("\nplease enter 1 or 2 :");
scanf("%d",&x); }
if(x==1)
{
printf("Input the name that you want to search:\n");
scanf("%s",s); /*输入姓名*/
p=h; /*将头指针赋给p*/
while(strcmp(p->name,s)&&p!=NULL)/*当记录的姓名不是要找的,并且指针不为空时*/
p=p->next; /*移动指针,指向下一结点,继续查找*/
}
else
{printf("Input the No. that you want to search:\n");
scanf("%s",t); /*输入学号*/
q=h;
while(strcmp(p->no,t)&&q!=NULL)
q=q->next;}
if(p==NULL) /*指针为空,说明未能找到所要的结点*/
printf("\nCan't find the student \n");
else if(q==NULL) /*指针为空,说明未能找到所要的结点*/
printf("\nCan't find the student \n");
else /*显示找到的记录信息*/
{ printf("\n\n*****************************havefound***************************\n");
printf("|NO. | name | sc1| sc2| sc3| sum | ave |order|\n");
printf("|----------|---------------|----|----|----|--------|-------|-----|\n");
printf("|%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |\n",
p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("********************************end*******************************\n");
}
}
/*插入记录模块*/
STUDENT *insert(STUDENT *h)
{ STUDENT *p,*q,*info,*k; /*p指向插入位置,q是其前驱,info指新插入记录*/
int s1,i,n=0;
printf("\nplease new record\n");
info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/
if(!info)
{ printf("\Out of memory"); /*如没有申请到,内存溢出*/
return NULL; /*返回空指针*/
}
inputs("Enter NO.:",info->no,11); /*以下是待插入数据的录入和处理,具体同创建模块同*/
inputs("Enter name:",info->name,15);
printf("Please input %d score \n",N);
s1=0;
for(i=0;i<N;i++)
{ do{
printf("score%d:",i+1);
scanf("%d",&info->score[i]);
if(info->score[i]>100||info->score[i]<0)
printf("bad data,repeat input\n");
}while(info->score[i]>100||info->score[i]<0);
s1=s1+info->score[i];
}
info->sum=s1;
info->average=(float)s1/N;
info->next=NULL; /*设后继指针为空*/
p=h; /*将指针赋值给p*/
q=h; /*将指针赋值给q*/
if(h==NULL) /*链表为空*/
{h=info;info->next=NULL;}
else
{while((info->sum<p->sum)&&(p->next!=NULL))
{q=p; /*使q指向p刚才的结点*/
p=p->next;} /*使p后移一个结点*/
if(info->sum>=p->sum)
{if(h==p){h=info; info->next=p;} /*info作为头指针,p作为info的后继指针*/
else q->next=info; /*q的后继指针是info*/
info->next=p;} /*info的后继指针是p*/
else
{p->next=info;info->next=NULL;}} /*p的后继指针是info,info的后继指针是空*/
k=h;
while(k!=NULL) /*重新赋予排序号(排序号因为被插入新数据而改变)*/
{ n++;
k->order=n;
k=k->next;
}
printf("\n ----have inserted %s student----\n",info->name);
return(h); /*返回头指针*/
}
/*删除记录模块*/
STUDENT *delete(STUDENT *h)
{ char k[5]; /*定义字符串数组,用来确认删除信息*/
STUDENT *p,*q; /*p为查找到要删除的结点指针,q为其前驱指针*/
char s[11]; /*存放学号*/
clrscr(); /*清屏*/
printf("Please deleted no\n"); /*显示提示信息*/
scanf("%s",s); /*输入要删除记录的学号*/
q=p=h; /*给q和p赋初值头指针*/
while(strcmp(p->no,s)&&p!=NULL) /*当记录的学号不是要找的,或指针不为空时*/
{ q=p; /*将p指针值赋给q作为p的前驱指针*/
p=p->next; /*将p指针指向下一条记录*/
}
if(p==NULL) /*如果p为空,说明链表中没有该结点*/
printf("\nlist no %s student\n",s);
else /*p不为空,显示找到的记录信息*/
{ printf("*****************************have found***************************\n");
printf("|no | name | sc1| sc2| sc3| sum | ave |order|\n");
printf("|----------|---------------|----|----|----|--------|-------|-----|\n");
printf("|%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |\n", p->no,
p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("********************************end*******************************\n");
do{inputs("Do you really want to deleted?(y/n)",k,5);
}while(k[0]!='y'&&k[0]!='n');
if(k[0]!='n') /*删除确认判断*/
{if(p==h) /*如果p==h,说明被删结点是头结点*/
h=p->next; /*修改头指针指向下一条记录*/
else
q->next=p->next; /*不是头指针,将p的后继结点作为q的后继结点*/
free(p); /*释放p所指结点空间*/
printf("\n have deleted No %s student\n",s);
}}
return(h); /*返回头指针*/
}
/*统计模块*/
void statistics(STUDENT *h)
{
STUDENT *p;
int p1,p2,p3,p4;
int m,n,j,k,l,q;
float a1,a2,a3,a4,a5;
m=0;
n=0;
j=0;
k=0,
l=0;
p=h;
printf("Input the score paragraph\n "); /*输入分数段*/
do
{
printf("the not pass score : 0~ ");
scanf("%d",&p1);
if(p1<0||p1>100)
{
printf("wrong data\n");
}
}while(p1<0||p1>100);
do
{
printf(" the pass score : %d~",p1);
scanf("%d",&p2);
if(p2<p1||p2>100)
{
printf("wrong data\n");
}
}while(p2<p1||p2>100);
do
{
printf("the general score : %d~",p2);
scanf("%d",&p3);
if(p3<p2||p3>100)
{
printf("wrong data\n");
}
}while(p3<p2||p3>100);
do
{
printf("the well done score :%d~",p3);
scanf("%d",&p4);
if(p4<p3||p4>100)
{
printf("wrong data\n");
}
}while(p4<p3||p4>100);
printf("the excellent score :%d~100\n",p4);
clrscr();
while(p!=NULL)
{
if(p->average<p1)m++;
else if(p->average<p2)n++;
else if(p->average<p3)j++;
else if(p->average<p4)k++;
else l++;
p=p->next;
}
q=m+n+j+k+l;
if(q!=0)
{
a1=(m+0.0)/q*100;
a2=(n+0.0)/q*100;
a3=(j+0.0)/q*100;
a4=(k+0.0)/q*100;
a5=(l+0.0)/q*100;
}
printf("****************************** Stastics table*********************************\n");
printf("----------------------------------------------------------------------------- \n");
printf("|grade| not pass | just pass | general | well done | excellent |\n");
printf("|-----|-------------|---------------|------------|---------------|------------|\n");
printf("|score| 0 ~ %d |",p1);
printf(" %d~ %d |",p1,p2);
printf(" %d~ %d |",p2,p3);
printf(" %d~ %d |",p3,p4);
printf(" %d~100 |\n",p4);
printf("| |(except %d) | (except %d) | (except %d)| (except %d) | |\n",p1,p2,p3,p4);
printf("|-----|-------------|---------------|------------|---------------|------------|\n");
printf("|num | %d | %d | %d | %d | %d |\n",m,n,j,k,l);
printf("|-----|-------------|---------------|----------- |-------------- |------------|\n");
if(q!=0)
printf("|rate | %3.1f%% |%3.1f%% | %3.1f%% | %3.1f%% | %3.1f%% |\n",a1,a2,a3,a4,a5);
printf("|-----|-------------|---------------|------------|---------------|------------|\n");
printf("************************************END***************************************\n");
}
/*保存数据到文件模块*/
void save(STUDENT *h)
{
FILE *fp; /*定义指向文件的指针*/
STUDENT *p; /* 定义移动指针*/
char outfile[20]; /*保存输出文件名*/
printf("Enter outfile name,for example G:\\f1\\score.txt:\n");
scanf("%s",outfile);
if((fp=fopen(outfile,"wb"))==NULL) /*为输出打开一个二进制文件,如没有则建立*/
{
printf("Can not open file\n");
exit(1);
}
printf("\nSaving file......\n"); /*打开文件,提示正在保存*/
p=h; /*移动指针从头指针开始*/
while(p!=NULL) /*如p不为空*/
{
fwrite(p,sizeof(STUDENT),1,fp); /*写入一条记录*/
p=p->next; /*指针后移*/
}
fclose(fp); /*关闭文件*/
printf("-----Save success!!-----\n"); /*显示保存成功*/
}
/*导入信息模块*/
STUDENT *load()
{ STUDENT *p,*q,*h=NULL; /*定义记录指针变量*/
FILE *fp; /* 定义指向文件的指针*/
char infile[20]; /*保存文件名*/
printf("Enter infile name,for example G:\\f1\\score.txt:\n");
scanf("%s",infile); /*输入文件名*/
if((fp=fopen(infile,"rb"))==NULL) /*打开一个二进制文件,为读方式*/
{ printf("Can not open file\n"); /*如不能打开,返回头指针*/
return h;
}
printf("\n -----Loading file!-----\n");
p=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/
if(!p)
{ printf("Out of memory!\n"); /*如没有申请到,则内存溢出*/
return h; /*返回空头指针*/
}
h=p; /*申请到空间,将其作为头指针*/
while(!feof(fp)) /*循环读数据直到文件尾结束*/
{ if(1!=fread(p,sizeof(STUDENT),1,fp))
break; /*如果没读到数据,跳出循环*/
p->next=(STUDENT *)malloc(sizeof(STUDENT)); /*为下一个结点申请空间*/
if(!p->next)
{
printf("Out of memory!\n"); /*如没有申请到,则内存溢出*/
return h;
}
q=p; /*保存当前结点的指针,作为下一结点的前驱*/
p=p->next; /*指针后移,新读入数据链到当前表尾*/
}
q->next=NULL; /*最后一个结点的后继指针为空*/
fclose(fp); /*关闭文件*/
printf("Load success!!!\n");
return h; /*返回头指针*/
}
/******主函数开始*******/
main()
{int i;
STUDENT *head; /*链表定义头指针*/
head=init(); /*初始化链表*/
clrscr(); /*清屏*/
for(;;) /*无限循环*/
{switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/
{
case 0:head=init();break; /*执行初始化*/
case 1:head=create();break; /*创建链表*/
case 2:print(head);break; /*显示全部记录*/
case 3:head=sort(head);break; /*排序*/
case 4:search(head);break; /*查找记录*/
case 5:head=insert(head); break; /*插入记录*/
case 6:head=delete(head);break; /*删除记录*/
case 7:save(head);break; /*保存文件*/
case 8:head=load(); break; /*读文件*/
case 9:statistics(head); break; /*统计*/
case 10:exit(0); /*如菜单返回值为10程序结束*/
}
}
}
『捌』 1、参考某城市交通图(设该图中有6个城市),以邻接矩阵或邻接表存储该图,要求图中每一个城市的结点除了
二题懒得做,一题以前做过:
我用的是vc++工程
//************head.h*************
#define MaxVertexnum 25
#define MaxVerNum 25
typedef struct{
int p[25];
int d;
}path;
typedef struct{
int vexs[MaxVertexnum];
int edges_file[MaxVertexnum][MaxVertexnum];
int edges_cost[MaxVertexnum][MaxVertexnum];
int edges_time[MaxVertexnum][MaxVertexnum];
int Vnum,Enum;
}Mgraph, *PtrMgraph;
void create(PtrMgraph &M);
void Shortestpath_2(Mgraph *G,path pp[25]);
void shortestpath_1(Mgraph *G,int v0,path pp[25]);
void Bubble_sort(path R[],int n);
void print(int v0,path pp[25]);
void display();
//***********soure.cpp************
#include"header.h"
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
string stu[25]={"北京", "长春 " ,"成都" , "大连 ", "福州" ,"广州" ,"贵阳", "哈尔滨","呼和浩特",
"昆明","兰州","柳州", "南昌","南宁", "上海" ,"沈阳" ,"深圳"
,"天津", "武汉","乌鲁木齐","西安","西宁","徐州","郑州","株州"};
void create(PtrMgraph &M){
M=new Mgraph;
int i,j,a,b,k,m,t;
ifstream infile("城市.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
infile>>M->Vnum>>M->Enum;
for(i=0;i<M->Vnum;i++)
infile>>M->vexs[i];
for(i=0;i<M->Vnum;i++)
for(j=0;j<M->Vnum;j++){
M->edges_file[i][j]=50000;
M->edges_cost[i][j]=50000;
M->edges_time[i][j]=50000;
}
for(i=0;i<M->Enum;i++)
{
infile>>a>>b;
infile>>k>>m>>t;
M->edges_file[a-1][b-1]=k;
M->edges_file[b-1][a-1]=k;
M->edges_cost[a-1][b-1]=m;
M->edges_cost[b-1][a-1]=m;
M->edges_time[a-1][b-1]=t;
M->edges_time[b-1][a-1]=t;
}
infile.close();
//return M;
}
void Shortestpath_2(Mgraph *G,path pp[25]){
int v,w,u,i,j,k;
int p[25][25], D[25][25];
for(v=0;v<G->Vnum;++v)
for(w=0;w<G->Vnum;++w){
D[v][w]=G->edges_file[v][w];
if(D[v][w]<50000){
p[w][v]=v;
}
else
if(v!=w){
p[v][w]=-2;
}
else{
p[v][w]=-1;
}
}
for(u=0;u<G->Vnum;++u)
for(v=0;v<G->Vnum;++v)
for(w=0;w<G->Vnum;++w)
if(D[v][u]+D[u][w]<D[v][w]){
D[v][w]=D[v][u]+D[u][w];
p[v][w]=u;
}
/*for(i=0;i<7;i++)
for(j=0;j<9;j++)
cout<<p[i][j]<<" ";*/
cout<<"请输入 俩城市序号"<<endl;
cin>>i>>j;
cout<<D[i-1][j-1]<<":";
Mgraph *M;
create(M);
shortestpath_1(M,i-1,pp);
for(k=0;k<25;k++)
if(pp[k].d==D[i-1][j-1])
break;
int r=0;
while(pp[k].p[r]>0){
cout<<stu[pp[k].p[r]]<<"<--";
r++;
}
cout<<stu[i-1]<<endl;
/*cout<<j;
k=p[i][j];
while(k>0&&k!=i){
cout<<"<-"<<k;
k=p[i][k];
}
cout<<"<-"<<i<<endl;
/*for(i=0;i<G->Vnum;i++)
for(j=0;j<G->Vnum;j++)
if(p[i][j]>0&&i!=j){
cout<<i<<"->";
k=p[i][j];
cout<<k<<"->";
while(p[k][j]!=j)
{cout<<k<<"->";
k=p[k][j];
}
cout<<j<<endl;
cout<<"值为:"<<D[i][j]<<endl;*/
}
void shortestpath_1(Mgraph *G,int v0,path pp[25]){
int P[25]={0},D[25]={50000};
int i,j,v,pre,w;
int min;
int final1[MaxVerNum];
for(v=0;v<G->Vnum;v++){
final1[v]=0;
D[v]=G->edges_file[v0][v];
P[v0]=-1;
if(D[v]<50000&&v!=v0)
P[v]=v0;
if(D[v]==50000)
P[v]=-2;
}
D[v0]=0;
final1[v0]=1;
for(i=1;i<G->Vnum;i++){
min=50000;
for(w=0;w<G->Vnum;w++)
if(!final1[w])
if(D[w]<min){
v=w;
min=D[w];
}
final1[v]=1;
for(w=0;w<G->Vnum;++w)
if(!final1[w]&&(min+G->edges_file[v][w]<D[w])){
D[w]=min+G->edges_file[v][w];
P[w]=v;
}
}
for(i=1;i<G->Vnum;i++){
if(P[i]==-2){
pp[i].d=50000;
pp[i].p[0]=i;
// cout<<"max"<<i<<endl;
}
else{
j=0;
pp[i].d=D[i];
pp[i].p[0]=i;
//cout<<D[i]<<i;
pre=P[i];
pp[i].p[++j]=pre;
while(pre>0){
//cout<<"<--"<<pre;
pre=P[pre];
pp[i].p[++j]=pre;
}
//cout<<"<--0"<<endl;
}
}
}
void Bubble_sort(path R[],int n){
int i,j,swap;
for(i=1;i<n;i++){
swap=0;
for(j=1;j<=n-i;j++ )
if(R[j].d>R[j+1].d){
R[0]=R[j];
R[j]=R[j+1];
R[j+1]=R[0];
swap=1;
}
if(swap==0)
break;
}
}
void print(int v0,path pp[25]){
Bubble_sort(pp,25);
int i,j;
cout<<"按里程升序排列:"<<endl;
for(i=1;i<25;i++){
cout<<pp[i].d<<":";
j=0;
while(pp[i].p[j]>0){
cout<<stu[pp[i].p[j]]<<"<--";
j++;
}
cout<<stu[v0]<<endl;
}
}
void display(){
int i;
for(i=0;i<25;i++)
cout<<i+1<<" "<<stu[i]<<" ";
}
//***************mytest.cpp
#include<iostream>
#include<fstream>
#include"header.h"
using namespace std;
void main()
{ int a[25][25],b[25][25],n;
path pp[25];
for(int i=0;i<25;i++)
for(int j=0;j<25;j++)
pp[i].p[j]=0;
Mgraph *M;
create(M);
cout<<"********交通咨询系统**********"<<endl;
int ch;
cout<<"查询该城市到其余城市的交通信息 1"<<endl;
cout<<"查询俩城市之间的交通信息 2"<<endl;
cout<<"请选择!"<<endl;
cin>>ch;
while(ch!=0)
{
switch(ch){
case 1:cout<<"输入查询的城市"<<endl;display();cin>>n;shortestpath_1(M,n-1,pp); print(n-1,pp);
break;
case 2: Shortestpath_2(M,pp);break;
//case 0:cout<<"------exit!";break;
default:break;
}
cout<<"查询该城市到其余城市的交通信息 1"<<endl;
cout<<"查询俩城市之间的交通信息 2"<<endl;
cout<<"请选择!"<<endl;cin>>ch;
}
}
『玖』 求类似于初学者编写的类似于学生信息管理系统的题目!!除了学生还有啥比较好编写的吗功能只有查询,增
毕业设计一般除了学生管理之外。一般还有图书馆的,也是做图书的增删改查,库存多少。
『拾』 一个学生成绩录入系统有哪些功能,除了成绩录入,显示,查询,分数高低等还有什么啊求指导 啊
还有平均分计算、分值比例(各个分数段的人数及百分比,可用图表表示)、用户管理(教师、教务人员等,看是做给谁看谁用)、用户登录等