您的位置:首页 > 编程语言 > C语言/C++

C语言课程设计之招生管理系统

2015-08-27 11:06 295 查看
大一下学期刚开学要做C语言课程设计,结果我被坑了,选了招生管理系统,百度一下,相关资料基本没有,还是自己写了一份

在招生管理系统中,对应增删查改都是网上一搜一大堆的,这些就不讲了,主要是是对录取学生的专业排序问题,代码及其分析如下

void Admission()                                                 //学生录取处理 
{
	int i,j,n;
	int Num[4];
	char temp[30]={""}; 
	Empty(); 
	read_file(FileName,STU);
	for(i=0;i<4;i++) {Num[i]=0;}                  //这里共设置了四个班级,Num中的数组就分别对应这四个班级的数目
	for(i=0;i<4;i++)                                //先对第一志愿进行排序  <strong><span style="color:#33ccff;">在进行该函数前学生的信息已经按高考分数从高到低排好</span></strong>
	{
		for(j=0;j<N;j++)
		{
			if(strcmp(voluteer[i],STU[j].NO_1)==0 && strcmp(STU[j].professional,temp)==0)//如何第一志愿是这个以及尚未被录取
            {
				strcpy(STU[j].professional,voluteer[i]);//<span style="font-family: Arial, Helvetica, sans-serif;">则将该志愿写入该生专业中</span>


Num[i]++; //并且该专业已有人数自增1
			}
			if(Num[i]>11) break;//表示录满12人之后终止第一专业的录取
		} 
	}
	for(i=0;i<4;i++)               //<span style="font-family: Arial, Helvetica, sans-serif;">第二志愿的录取,同上</span>
	{
		n=0;
		for(j=0;j<N;j++)
		{
			if(strcmp(voluteer[i],STU[j].NO_2)==0 && strcmp(STU[j].professional,temp)==0 && Num[i]<=11)
            {
				strcpy(STU[j].professional,voluteer[i]);
				Num[i]++; 
			}
			if(Num[i]>11) break;
		} 
	}
	for(i=0;i<4;i++)          //<span style="font-family: Arial, Helvetica, sans-serif;">第三志愿的录取,同上</span>
	{
		n=0;
		for(j=0;j<N;j++)
		{
			if(strcmp(voluteer[i],STU[j].NO_3)==0 && strcmp(STU[j].professional,temp)==0 && Num[i]<=11)
            {
				strcpy(STU[j].professional,voluteer[i]);
				Num[i]++; 
			}
			if(Num[i]>11) break;
		} 
	}
	write_file(FileName,STU,N);		
}

这时候有人可能就有疑惑了,第一次调用该函数录取没问题,可是第二次调用了?第二次调用学生的专业已存在了,这时候就需要在再次录取前调用一个可以把所学生的专业清空的函数,这样再次调用录取操作就没问题了,当然这样做事不好的,要是数据庞大就出问题了。。。。。。。。。。~~~但是应付课程设计还是可以的。。。如果有更好的想法可以提出来~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

源码下载 访问密码 9cfb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: