刚学了一学期VC++,可是一点思路都没有,快崩溃~~求大神帮助,课设:考场编排~~~
课程设计任务书一、 题目:考场编排
二、 目的与要求:
1. 目的:
培养学生综合利用C++语言进行程序设计的能力,通过学生独立思考,提高学生将所学知识转化为分析和设计简单实际问题的能力,建立程序文档、归纳总结的能力,从而增强创新和实践能力。
2. 基本要求:
要求用C++语言编程,Win32 Console Application,在Visual C++环境下调试完成。
程序能够对一批考生进行考场编排,生成准考证号,然后再主程序中根据用户输入的学号查询并输出准考证号。
3. 创新要求:
程序可以对考生进行混排,即考号相邻考生并不一定是同一场相邻座位。
将考点、考场、场次等信息文字化,即不再输出具体的数字,而是对应的文本,比如某考生为HG考点02考场03场28号座位,则输出为:河北工业大学考点北辰机房三楼B区第三场28号机器。(具体的对应关系由设计者自己规定)
三、 设计方法和基本原理:
1. 问题功能描述:
现有一批报名考生需要安排考试,考生的学号为110001到X(X为你的学号),请为其安排考场及座位,生成准考证号。
规则如下:
1)HG考点每个考场共有M个座位,但每场需要预留出N个机动座位以备调换,整个考点共有T个考场可供使用。假设以上常量均不超过两位数。
2) 准考证号格式为:HGXXYYZZ,其中HG为考点代码(已固定),XX为考场代码,YY为场次代码,ZZ为座位号。
程序功能要求:
1)为所有考生编排考场,生成准考证号
2)输入学号,能查询该生的准考证号,输出所在的考场,场次,座位号。
2. 问题的解决方案:
处理过程比较简单,按照学号对考生进行座位指定,如果座位超出安排,则安排到下一考场,如果所有考场安排完毕,则进行下一场次的安排即可。
四、 主要技术问题的描述:
1) 数据的定义和存储
将其中的A,M,N,T等定义为常量,学号和准考证号的存储一种方案是使用多个数组,另外一种方案是使用struct 结构,学号为了处理起来方便,可以用 int 数据类型来代表,准考证号由于包含字母和前导0,必须使用字符数组,参考代码如下。
const int X=111111; //最后一个考生的准考证号
const int M=30; //每个考场30个座位
const int N=2; //预留两个位置
const int T=12; //12个考场
struct STU
{
int num; //学号
char ksnum[9]; //准考证号
};
2) 前导0的处理
由于程序在组合准考证号的过程中需要频繁处理前导0,所以可以编写函数来根据输入的整形数输出对应的双字符,主程序用strcpy,strcat等函数组合准考证号即可。参考代码如下:
void inttostr(int in,char* out)
{
int shi=in/10;
int ge=in%10;
out[0]=shi+0x30;
out[1]=ge+0x30;
out[2]='\0';
}