设计考场的编排,生成准考证号
河北工业大学计算机软件技术基础(VC)课程设计报告
学院 信息工程学院 班级 通信C083班 姓名 张龙灿 学号 _087924___ 成绩 __ ____
一、题目:
设计考场的编排,生成准考证号(6)
二、设计思路
1、总体设计
1)用C++,注意当考场号和座位号小与10时,前面加0。
显示全部考生的考试信息,如输出考生的学号、姓名、准考证号、考场号和座位号。
按考场号分别显示考生信息。
解决方案: 。
1)采用结构体类型存储学生信息。
2) 使用字符型数组存储准考证号,因此要将考场号、学校代码、考生学号、座位号分别转换为字符型数据进行存储。
3) 考场号和座位号的编排与总人数和每个考场的人数有关。
4、你所设计的程序最终完成的功能
1)本程序要求根据考生人数、考场个数和每个考场的人数,为考生生成准考证号,并显示生成的考生信息。
2)三、程序清单
#include
const int CODE=18;
struct student //定义结构体变量
{
char name[20];
int num;
char testID[9];
int Test;
int Place;
};
char Can(int a); //将整型转换成字符型的函数
int shu1(int a,int b); //提取学号的第一位数的函数
int shu2(int a,int b); //提取学号的第二位数的函数
void main()
{
int n,Pa,Pb,w; //定义考生人数,考场容纳人数,考场数,学号位数
cout<
cin>>n; // 为考生人数赋值
cout<
cin>>Pa;
Pb=n/Pa+1; //计算考场数的表达式
cout<
cin>>w;
//录入考生信息
student stu[1000]; //定义student类型的结构数组
for(int i=0;i
{
cout<
cin>>stu[i].name>>stu[i].num;
}
//考场编排
int k=0;
for( i=1;i
for(int j=1;j<=Pa;j++,k++)
{
stu[k].Test=i;
stu[k].Place=j;
}
for(int j=1;j<=n%Pa;j++,k++)
{
stu[k].Test=i;
stu[k].Place=j;
}
for(k=0;k
{
stu[k].testID[0]=Can(stu[k].Test/10);
stu[k].testID[1]=Can(stu[k].Test%10);
stu[k].testID[2]=Can(CODE/10);
stu[k].testID[3]=Can(CODE%10);
stu[k].testID[4]=Can(shu1(stu[k].num,w)); //调用函数shu1
stu[k].testID[5]=Can(shu2(stu[k].num,w)); //调用函数shu2
stu[k].testID[6]=Can(stu[k].Place/10);
stu[k].testID[7]=Can(stu[k].Place%10);
stu[k].testID[8]='\0';
}