您能不能把研究生初试录取的源代码给我呀,谢谢!
答案:2 悬赏:10 手机版
解决时间 2021-01-31 17:53
- 提问者网友:抽煙菂渘情少年
- 2021-01-31 09:28
您能不能把研究生初试录取的源代码给我呀,谢谢!
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-01-31 09:35
#include<stdio.h>
#include<stdlib.h>
#include<alloc.h>
#include<windows.h>
struct student
{
char name[10];//学生姓名
char zkz[20];//准考证号
char bkzy[20];//报考专业
int zhengzhi; //政治分数
int shuxue; //数学分数
int waiyu;//外语分数
int zhuanye; //专业分数
int zongfei;//学生总分
char hege;
};
typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;
Link head,tail;//考生信息头结点和尾结点
int c=1;//记录已输入多少学生
typedef struct heges//用于保存合格学生名次
{
Link point;
struct heges* Next;
}hgNode,*hglink;
hglink hghead;//保存合格学生地址链表的头指针
struct requre
{
int zhengzhir;
int shuxuer;
int waiyur;
int zhuanyer;
int zongfeir;
} r;
void studentinfor(void)//输入学生成绩
{
int firstshow(void);
void Save(Link);
int i;
Link q=NULL,p=NULL;
system("CLS");
head=p=(Link)malloc(sizeof(Node));
if(p==NULL)
{
printf("溢出错误!!程序2秒后将自动关闭!!");
Sleep(2000);
exit(0);
}
do
{
system("CLS");
printf("\t\t\t\t按提示输入第 %d 个考生信息\n",c);
printf("输入考生姓名\n");
scanf("%s",p->data.name);
printf("输入考生准考证号\n");
scanf("%s",p->data.zkz);
printf("输入考生报考专业\n");
scanf("%s",p->data.bkzy);
printf("输入考生 政治 成绩\n");
scanf("%d",&p->data.zhengzhi);
printf("输入考生 数学 成绩\n");
scanf("%d",&p->data.shuxue);
printf("输入考生 外语 成绩\n");
scanf("%d",&p->data.waiyu);
printf("输入考生 专业 成绩\n");
scanf("%d",&p->data.zhuanye);
p->data.hege='n';
p->data.zongfei=p->data.zhuanye+p->data.shuxue+p->data.waiyu+p->data.zhengzhi;
printf("是否结束考生信息输入?输入1继续,输入0退出\n");
scanf("%d",&i);
if(i==0)
break;
q=p;
p=(Link) malloc(sizeof(Node));
if(p==NULL)
{
printf("溢出错误!!程序2秒后将自动关闭!!");
Sleep(2000);
exit(0);
}
q->next=p;
c++;
}while(1);
p->next=NULL;
tail=p;//给尾结点赋值
system("CLS");
Save(head);
}
void Save(Link l) //保存考生信息数据
{
FILE* fp;
Link p;
fp=fopen("D:\\ksxx.dat","ab");
if(fp==NULL)
{
printf("文件不存在,是否新建?\n输入 1 新建,输入 0 退出系统\n注意,退出不保存当前输入数据\n");
if(getchar()=='0')
exit(0);
else
fp=fopen("D:\\ksxx.dat","wb");
}
p=l;
while(p!=NULL)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
p=p->next;
else
printf("保存出错!!");
}
fclose(fp);
printf("考生信息已成功保存为文件3秒后返回主界面!!\n");
Sleep(3000);
}
void requ(void)//输入录取要求分数
{
system("CLS");
printf("\t请依次输入政治,数学,外语,专业及总分要求,并以“空格”分开!\n");
scanf("%d%d%d%d%d",&r.zhengzhir,&r.shuxuer,&r.waiyur,&r.zhuanyer,&r.zongfeir);
printf("录取要求为:政治 数学 外语 专业 总分\n");
printf("%16d%5d%5d%5d%5d\n",r.zhengzhir,r.shuxuer,r.waiyur,r.zhuanyer,r.zongfeir);
printf("5秒钟后进入主界面\n注意,如果要修改,请先进入主界面,选择2,再次输入此数据!\n");
Sleep(5000);
}
void choose(void)//对于合格学生进行标记
{
Link p=head;
while(p!=NULL)
{
if((p->data.zhengzhi)>=(r.zhengzhir)&&(p->data.shuxue)>=(r.shuxuer)&&(p->data.waiyu)>=(r.waiyur)&&(p->data.zhuanye)>=(r.zhuanyer)&&(p->data.zongfei)>=(r.zongfeir))
p->data.hege='y';
p=p->next;
}
}
void sortAndOut(void)//对合格学生排序并输出
{
int i,j,time=0;//用来记录有多少合格学生
Link p=head,q;
hglink q1=hghead,q2,q3;
while(q1!=NULL)//释放原存贮空间,因为当需要再排时原来存的顺序已经没有必要了
{
q2=q1->Next;
free(q1);
q1=q2;
}
q2=hghead=(hglink)malloc(sizeof(hgNode));
while(p!=NULL)//将合格学生,全部保存到新建链表hghead
{
if(p->data.hege=='y')
{
q1=(hglink)malloc(sizeof(hgNode));
q2->Next=q1;
q1->point=p;
q2=q1;
time++;
}
p=p->next;
}
q1->Next=NULL;//结束保存指向合格学生的链表
//接下来对保存好的考生成绩进行排序
q3=q1=hghead->Next;
for(i=0;i<time-1;i++)//排序因为有time个考生,所以要进行如下次循环
{
for(j=0;j<time-1-i;j++)
{ p=q1->point;
q2=q1->Next;
q=q2->point;
if((p->data.zongfei)<=(q->data.zongfei))
{
q1->point=q;
q2->point=p;
}
q1=q1->Next;
}
q1=q3;
}
q1=hghead->Next;
system("CLS");
q1=hghead->Next;
printf("\t\t\t\t合格考生如下\n\n");
while(q1!=NULL)
{
printf("考生姓名 准考证号 报考专业\n");
printf("%8s%9s%9s\n",(q1->point)->data.name,(q1->point)->data.zkz,(q1->point)->data.bkzy);
printf("政治 数学 外语 专业 总分\n");
printf("%4d%6d%6d%6d%6d\n\n\n",(q1->point)->data.zhengzhi,(q1->point)->data.shuxue,(q1->point)->data.waiyu,(q1->point)->data.zhuanye,(q1->point)->data.zongfei);
q1=q1->Next;
}
printf("5秒后进入主界面\n");
Sleep(5000);
}
int firstshow(void)
{
void add(void);
char i;
system("CLS");
printf("\t\t\t\t研究生初试录取\n");
printf("\t\t\t *************************\n");
printf("\t\t\t\t按 1 输入考生信息\n");
printf("\t\t\t\t按 2 输入录取要求\n");
printf("\t\t\t\t按 3 输出合格考生\n");
printf("\t\t\t\t按 4 增加考生信息\n");
printf("\t\t\t\t按 0 退出系统\n");
printf("\t\t\t *************************\n");
scanf("%c",&i);
if(i=='0')
exit(0);
else if(i=='1')
studentinfor();
else if(i=='2')
requ();
else if(i=='3')
{
choose();
sortAndOut();
}
else if(i=='4')
add();
else
return 0;
}
void add(void)
{
int i;
Link q=tail,p;
p=(Link)malloc(sizeof(Node));
tail->next=p;
do
{
system("CLS");
printf("\t\t\t\t按提示输入第 %d 个考生信息\n",c);
printf("输入考生姓名\n");
scanf("%s",p->data.name);
printf("输入考生准考证号\n");
scanf("%s",p->data.zkz);
printf("输入考生报考专业\n");
scanf("%s",p->data.bkzy);
printf("输入考生 政治 成绩\n");
scanf("%d",&p->data.zhengzhi);
printf("输入考生 数学 成绩\n");
scanf("%d",&p->data.shuxue);
printf("输入考生 外语 成绩\n");
scanf("%d",&p->data.waiyu);
printf("输入考生 专业 成绩\n");
scanf("%d",&p->data.zhuanye);
p->data.hege='n';
p->data.zongfei=p->data.zhuanye+p->data.shuxue+p->data.waiyu+p->data.zhengzhi;
printf("是否结束考生信息输入?输入1继续,输入0退出\n");
scanf("%d",&i);
if(i==0)
break;
q=p;
p=(Link) malloc(sizeof(Node));
if(p==NULL)
{
printf("溢出错误!!程序2秒后将自动关闭!!");
Sleep(2000);
exit(0);
}
q->next=p;
c++;
}while(1);
p->next=NULL;
q=tail;
tail=p;//给尾结点赋值
system("CLS");
Save(q);
}
int main()
{
int i;
void studentinfor(void);
int firstshow(void);
do{
firstshow();
}while(1);
return 0;
}
这是C的,你要的是什么?
#include<stdlib.h>
#include<alloc.h>
#include<windows.h>
struct student
{
char name[10];//学生姓名
char zkz[20];//准考证号
char bkzy[20];//报考专业
int zhengzhi; //政治分数
int shuxue; //数学分数
int waiyu;//外语分数
int zhuanye; //专业分数
int zongfei;//学生总分
char hege;
};
typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;
Link head,tail;//考生信息头结点和尾结点
int c=1;//记录已输入多少学生
typedef struct heges//用于保存合格学生名次
{
Link point;
struct heges* Next;
}hgNode,*hglink;
hglink hghead;//保存合格学生地址链表的头指针
struct requre
{
int zhengzhir;
int shuxuer;
int waiyur;
int zhuanyer;
int zongfeir;
} r;
void studentinfor(void)//输入学生成绩
{
int firstshow(void);
void Save(Link);
int i;
Link q=NULL,p=NULL;
system("CLS");
head=p=(Link)malloc(sizeof(Node));
if(p==NULL)
{
printf("溢出错误!!程序2秒后将自动关闭!!");
Sleep(2000);
exit(0);
}
do
{
system("CLS");
printf("\t\t\t\t按提示输入第 %d 个考生信息\n",c);
printf("输入考生姓名\n");
scanf("%s",p->data.name);
printf("输入考生准考证号\n");
scanf("%s",p->data.zkz);
printf("输入考生报考专业\n");
scanf("%s",p->data.bkzy);
printf("输入考生 政治 成绩\n");
scanf("%d",&p->data.zhengzhi);
printf("输入考生 数学 成绩\n");
scanf("%d",&p->data.shuxue);
printf("输入考生 外语 成绩\n");
scanf("%d",&p->data.waiyu);
printf("输入考生 专业 成绩\n");
scanf("%d",&p->data.zhuanye);
p->data.hege='n';
p->data.zongfei=p->data.zhuanye+p->data.shuxue+p->data.waiyu+p->data.zhengzhi;
printf("是否结束考生信息输入?输入1继续,输入0退出\n");
scanf("%d",&i);
if(i==0)
break;
q=p;
p=(Link) malloc(sizeof(Node));
if(p==NULL)
{
printf("溢出错误!!程序2秒后将自动关闭!!");
Sleep(2000);
exit(0);
}
q->next=p;
c++;
}while(1);
p->next=NULL;
tail=p;//给尾结点赋值
system("CLS");
Save(head);
}
void Save(Link l) //保存考生信息数据
{
FILE* fp;
Link p;
fp=fopen("D:\\ksxx.dat","ab");
if(fp==NULL)
{
printf("文件不存在,是否新建?\n输入 1 新建,输入 0 退出系统\n注意,退出不保存当前输入数据\n");
if(getchar()=='0')
exit(0);
else
fp=fopen("D:\\ksxx.dat","wb");
}
p=l;
while(p!=NULL)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
p=p->next;
else
printf("保存出错!!");
}
fclose(fp);
printf("考生信息已成功保存为文件3秒后返回主界面!!\n");
Sleep(3000);
}
void requ(void)//输入录取要求分数
{
system("CLS");
printf("\t请依次输入政治,数学,外语,专业及总分要求,并以“空格”分开!\n");
scanf("%d%d%d%d%d",&r.zhengzhir,&r.shuxuer,&r.waiyur,&r.zhuanyer,&r.zongfeir);
printf("录取要求为:政治 数学 外语 专业 总分\n");
printf("%16d%5d%5d%5d%5d\n",r.zhengzhir,r.shuxuer,r.waiyur,r.zhuanyer,r.zongfeir);
printf("5秒钟后进入主界面\n注意,如果要修改,请先进入主界面,选择2,再次输入此数据!\n");
Sleep(5000);
}
void choose(void)//对于合格学生进行标记
{
Link p=head;
while(p!=NULL)
{
if((p->data.zhengzhi)>=(r.zhengzhir)&&(p->data.shuxue)>=(r.shuxuer)&&(p->data.waiyu)>=(r.waiyur)&&(p->data.zhuanye)>=(r.zhuanyer)&&(p->data.zongfei)>=(r.zongfeir))
p->data.hege='y';
p=p->next;
}
}
void sortAndOut(void)//对合格学生排序并输出
{
int i,j,time=0;//用来记录有多少合格学生
Link p=head,q;
hglink q1=hghead,q2,q3;
while(q1!=NULL)//释放原存贮空间,因为当需要再排时原来存的顺序已经没有必要了
{
q2=q1->Next;
free(q1);
q1=q2;
}
q2=hghead=(hglink)malloc(sizeof(hgNode));
while(p!=NULL)//将合格学生,全部保存到新建链表hghead
{
if(p->data.hege=='y')
{
q1=(hglink)malloc(sizeof(hgNode));
q2->Next=q1;
q1->point=p;
q2=q1;
time++;
}
p=p->next;
}
q1->Next=NULL;//结束保存指向合格学生的链表
//接下来对保存好的考生成绩进行排序
q3=q1=hghead->Next;
for(i=0;i<time-1;i++)//排序因为有time个考生,所以要进行如下次循环
{
for(j=0;j<time-1-i;j++)
{ p=q1->point;
q2=q1->Next;
q=q2->point;
if((p->data.zongfei)<=(q->data.zongfei))
{
q1->point=q;
q2->point=p;
}
q1=q1->Next;
}
q1=q3;
}
q1=hghead->Next;
system("CLS");
q1=hghead->Next;
printf("\t\t\t\t合格考生如下\n\n");
while(q1!=NULL)
{
printf("考生姓名 准考证号 报考专业\n");
printf("%8s%9s%9s\n",(q1->point)->data.name,(q1->point)->data.zkz,(q1->point)->data.bkzy);
printf("政治 数学 外语 专业 总分\n");
printf("%4d%6d%6d%6d%6d\n\n\n",(q1->point)->data.zhengzhi,(q1->point)->data.shuxue,(q1->point)->data.waiyu,(q1->point)->data.zhuanye,(q1->point)->data.zongfei);
q1=q1->Next;
}
printf("5秒后进入主界面\n");
Sleep(5000);
}
int firstshow(void)
{
void add(void);
char i;
system("CLS");
printf("\t\t\t\t研究生初试录取\n");
printf("\t\t\t *************************\n");
printf("\t\t\t\t按 1 输入考生信息\n");
printf("\t\t\t\t按 2 输入录取要求\n");
printf("\t\t\t\t按 3 输出合格考生\n");
printf("\t\t\t\t按 4 增加考生信息\n");
printf("\t\t\t\t按 0 退出系统\n");
printf("\t\t\t *************************\n");
scanf("%c",&i);
if(i=='0')
exit(0);
else if(i=='1')
studentinfor();
else if(i=='2')
requ();
else if(i=='3')
{
choose();
sortAndOut();
}
else if(i=='4')
add();
else
return 0;
}
void add(void)
{
int i;
Link q=tail,p;
p=(Link)malloc(sizeof(Node));
tail->next=p;
do
{
system("CLS");
printf("\t\t\t\t按提示输入第 %d 个考生信息\n",c);
printf("输入考生姓名\n");
scanf("%s",p->data.name);
printf("输入考生准考证号\n");
scanf("%s",p->data.zkz);
printf("输入考生报考专业\n");
scanf("%s",p->data.bkzy);
printf("输入考生 政治 成绩\n");
scanf("%d",&p->data.zhengzhi);
printf("输入考生 数学 成绩\n");
scanf("%d",&p->data.shuxue);
printf("输入考生 外语 成绩\n");
scanf("%d",&p->data.waiyu);
printf("输入考生 专业 成绩\n");
scanf("%d",&p->data.zhuanye);
p->data.hege='n';
p->data.zongfei=p->data.zhuanye+p->data.shuxue+p->data.waiyu+p->data.zhengzhi;
printf("是否结束考生信息输入?输入1继续,输入0退出\n");
scanf("%d",&i);
if(i==0)
break;
q=p;
p=(Link) malloc(sizeof(Node));
if(p==NULL)
{
printf("溢出错误!!程序2秒后将自动关闭!!");
Sleep(2000);
exit(0);
}
q->next=p;
c++;
}while(1);
p->next=NULL;
q=tail;
tail=p;//给尾结点赋值
system("CLS");
Save(q);
}
int main()
{
int i;
void studentinfor(void);
int firstshow(void);
do{
firstshow();
}while(1);
return 0;
}
这是C的,你要的是什么?
全部回答
- 1楼网友:鱼芗
- 2021-01-31 11:02
你好!
我不大明白你的意思啊?
我的回答你还满意吗~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯