永发信息网

您能不能把研究生初试录取的源代码给我呀,谢谢!

答案:2  悬赏:10  手机版
解决时间 2021-01-31 17:53
您能不能把研究生初试录取的源代码给我呀,谢谢!
最佳答案
#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的,你要的是什么?
全部回答
你好! 我不大明白你的意思啊? 我的回答你还满意吗~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大众polo水箱在哪,是什么材质
会稽山酒店(上海闵行区)地址好找么,我有些事
佳木斯华为电力建筑工程有限公司地址在哪,我
云时代酒店式公寓地址在哪,我要去那里办事
我想买泰康人生 的康估人生和优享人生 请问一
我是给私人老板做事的,在工作中摔伤应该怎么
关于木材的强度指标的大小比较,下列正确的是
男朋友想回他老家安心发展,可是我不想去,我
易栖公寓地址在哪,我要去那里办事
蜀山战纪之剑侠传奇配音演员都有谁
七宝镇车工坊上海驿栈地址在什么地方,想过去
precious opportunity是什么意思
扶苏的后代有姓扶的不
男朋友因为自己一无所有要分手我怎么劝他才不
三代i5-3427U 1.8G双核四线程+独显2G(GT650M
推荐资讯
河北传媒学院分数线
为什么总是感觉自己还缺一样东西
患儿,7岁。平素挤眉眨眼,摇头耸肩,噘嘴,
龙达汽车租赁车行地址好找么,我有些事要过去
高数洛必达法则为什么不直接用洛必达法则求n
北京回龙观城北交易市场和锦绣大地哪家更好更
求问铁三角这几款耳机哪款最不夹耳最舒服?
木景读什么
停车场(海阳市房产交易管理所东南)地址好找么
以前的工具在现在有哪些改变如:原来:点蜡烛
他们总骂人怎么办 我有点受不了 我从来不骂人
媛媛婚庆地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?