1选课前了解自己需要哪些类的选修课:需要选课的课程一般有专业选修课,限定选修课程,通识类选修课等。在选课前需要看学生培养计划,了解自己在哪卜厅些类型的课程需要修多少学分,以闭弊枝免出现多修学分的情况,超出的学分在毕业前需交相应的钱给学校。
2选修课的学分数量控制:每学期会有规定的学分上限,并且由于学生的精力有限,要控制好选修课的数量。选修课分为长学段和短学段,长学段和短学段选课时间不同,在选长学段的课时要预留一部分学分给短学段。
3提前了解课程情况:选课前还需向周边同学和学姐学长们了解课程和老师的情况,以免选到一些难度较大、不适合自己的课程。
4选课一般流程:选课一般分为三轮,其中第一轮系统筛选,第二轮后先选先得,之后会有退课时间,在第三轮可以捡漏,需要关注退课情况。
5选课感受与建议:每当选课时,系轿敏统常常会出现崩溃,登不上等情况。可以用多个设备登录网站,如手机,电脑,iPad等,多多刷新。如果能抢到课,且课程都是需要修的,老师也不错的话,尽量不要退课,因为抢课比较艰难,能尽早修的课就尽早修完,为之后大三大四预留更多时间。
好好学习,提升能力
#include <conio.h>#include <stdio.h>
#include <销谨耐stdlib.h>
#include <string.h>
#include <time.h>
#define szSTR 256
#define szNAME 10
#define szGROUP 5 /*每个小组最多允许5名组员,包括组长*/
#define fileAssignments "c:\\0.txt"
#define fileProjects "c:\\1.txt"
#define cntTYPE 4
/*课程晌笑*/
char Types[cntTYPE][11] = {"数据结构类", "趣亏春味类", "管理类", "自选类"}
struct TAssignment {
int number/*课程编号*/
int level/*难度系数*/
int type/*类别*/
char title[szSTR]
char requirements[szSTR]/*技术要求*/
char features[szSTR]/*技术特点*/
}
time_t Date_Input(char * msg)
{
struct tm tmemset(&t, 0, sizeof(t))
printf("请输入%s日期,格式为年/月/日:", msg)
scanf("%d/%d/%d", &(t.tm_year), &(t.tm_mon), &(t.tm_mday))
t.tm_year -= 1900
t.tm_mon --
return mktime(&t)
}
void Date_Print(time_t t)
{
struct tm * ft = localtime(&t)
printf("%04d/%02d/%02d", ft->tm_year + 1900, ft->tm_mon + 1, ft->tm_mday)
}
void Number_Input(char * msg, int * x)
{
for() {
printf("请输入%s,以回车结束:", msg)
scanf("%d", x)
if(*x <0) *x = -*x
if(*x) break
printf("错误的输入,请重新输入。\n")
}
}
void String_Input(char * msg, char * str)
{
printf("请输入%s,以回车结束:", msg)
fflush(stdin)
fgets(str, szSTR, stdin)
}
int Type_Input(void)
{
int t = 0, i = 0
for() {
printf("请输入课程类别:")
for(i = 0i <cntTYPEi++) printf("%d - %s\t", i, Types[i])
printf("\b\n")
t = getch() - '0'
if(t >= 0 &&t <= cntTYPE) break
printf("错误的输入\n")
}
return t
}
fpos_t ASSG_Query(int number)
{
FILE * f = 0fpos_t p = 0
struct TAssignment a
if(number <1) return 0
f = fopen(fileAssignments, "rb")
if(!f) {
fprintf(stderr, "课程文件无法打开\n")
return 0
}
while(!feof(f)) {
fgetpos(f, &p)
fread(&a, sizeof(a), 1, f)
if(a.number == number) {
fclose(f)
return p + 1
}
}
fclose(f)
return 0
}
void ASSG_Append(void)
{
FILE * f = 0fpos_t p = 0
struct TAssignment a
memset(&a, 0, sizeof(a))
Number_Input("课程编号", &(a.number ))
p = ASSG_Query(a.number )
if(p) {
fprintf(stderr, "该课程已存在。\n")
return
}
Number_Input("难度系数", &(a.level))
String_Input("课程名称", a.title )
a.type = Type_Input()
String_Input("技术要求", a.requirements)
String_Input("技术特点", a.features)
f = fopen(fileAssignments, "ab")
if(!f) {
fprintf(stderr, "课程文件无法打开\n")
return
}
fwrite(&a, sizeof(a), 1, f)
fclose(f)
}
void ASSG_Delete(void)
{
fpos_t p = 0FILE * f = 0
struct TAssignment a
Number_Input("课程编号", &(a.number ))
p = ASSG_Query(a.number )
if(p == 0) {
fprintf(stderr, "该课程不存在。\n")
return
}
p--
f = fopen(fileAssignments, "rb+")
if(!f) {
fprintf(stderr, "课程文件无法打开!\n")
return
}
fsetpos(f, &p)
memset(&a, 0, sizeof(a))
fwrite(&a, sizeof(a), 1, f)
fclose(f)
printf("删除成功!\n")
}
void PrintLine(void)
{
int i = 0for(i=0i<79i++) putchar('-')
putchar('\n')
}
void ASSG_Report(void)
{
FILE * f = 0struct TAssignment aint r = 0
f = fopen(fileAssignments, "rb")
if(!f) {
fprintf(stderr, "目前数据库中没有课程。\n")
return
}
printf("\n课程数据库\n")
while(!feof(f)) {
r = fread(&a, sizeof(a), 1, f)
if(r <1) break
if(a.number == 0) continue
PrintLine()
printf("【编号】%d\t【类别】%s\t【难度系数】%d\t【课程】%s【技术要求】%s【技术特点】%s",
a.number , Types[a.type ], a.level ,
a.title , a.requirements , a.features )
}
fclose(f)
printf("\n\n")
}
void ASSG_Brief(int number)
{
struct TAssignment aFILE * f = 0
fpos_t p = ASSG_Query(number)
if(!p) {
printf("【尚未选题】\n")
return
}
p--
f = fopen(fileAssignments, "rb")
fsetpos(f, &p)
fread(&a, sizeof(a), 1, f)
fclose(f)
printf("【课程编号】%d【类别】%s【难度系数】%d\t【课程】%s",
a.number , Types[a.type ], a.level ,a.title )
}
int ASSG_Choose(void)
{
int number = 0fpos_t p = 0
Number_Input("课程编号", &number)
p = ASSG_Query(number)
return p?number:0
}
void ASSG_Menu(void)
{
int cmd = 0
for() {
printf("*****课程管理*****\n0-查看\t1-新增\t2-删除课程\t任意键返回\n")
cmd = getch() - '0'
switch(cmd) {
case 0: ASSG_Report()break
case 1: ASSG_Append()break
case 2: ASSG_Delete()break
default: return
}
}
}
/*课程信息*/
struct TProject {
int group_number /*组号*/
char members[szGROUP][szNAME]/*小组成员,编号0为组长*/
int assignment/*选题*/
time_t date_open/*开题日期*/
time_t date_close/*结题日期*/
char teacher[szNAME]/*指导教师*/
int process/*进度0~100%*/
char jobs[szSTR]/*分工*/
int score/*评分*/
}
void PROJ_Report(void)
{
struct TProject pint r = 0
FILE * f = fopen(fileProjects, "rb")
if(!f) {
fprintf(stderr, "目前没有开放课程信息。\n")
return
}
printf("*****课程及小组信息*****\n")
while(!feof(f)) {
r = fread(&p, sizeof(p), 1, f)
if(r <1) break
if(p.group_number ==0) continue
PrintLine()
printf("【组号】%d\t【指导教师】%s【组长】%s\n",
p.group_number , p.teacher , p.members[0])
printf("【组员】%s %s %s %s\n", p.members[1], p.members[2], p.members[3], p.members[4])
printf("【分工】%s", p.jobs )
ASSG_Brief(p.assignment )
if(p.assignment ) {
printf("【开题日期】")Date_Print(p.date_open)
printf("【结题日期】")Date_Print(p.date_close)
printf("【进度】%d%%【评分】%d\n", p.process, p.score )
}
}
fclose(f)
PrintLine()
}
fpos_t PROJ_Query(int number)
{
struct TProject pfpos_t q = 0int r = 0
FILE * f = fopen(fileProjects, "rb")
if(!f) return 0
while(!feof(f)) {
fgetpos(f, &q)
r = fread(&p, sizeof(p), 1, f)
if(r <1) break
if(p.group_number == number) {
fclose(f)
return q+1
}
}
fclose(f)
return 0
}
void PROJ_Append(void)
{
struct TProject pfpos_t q = 0FILE * f = 0int i = 0
memset(&p, 0, sizeof(p))
Number_Input("课程小组编号", &(p.group_number))
q = PROJ_Query(p.group_number )
if(q) {
fprintf(stderr, "该小组已经存在。\n")
return
}
printf("请录入组员信息,第一个组员是组长:")
for(i = 0i<5i++) scanf("%s", p.members [i])
printf("请输入指导教师姓名:")scanf("%s", p.teacher )
String_Input("分工信息", p.jobs )
f = fopen(fileProjects, "ab")
fwrite(&p, sizeof(p), 1, f)
fclose(f)
printf("课程小组已创建,可以从菜单进行选题。\n")
}
void PROJ_Delete(void)
{
struct TProject pfpos_t q = 0FILE * f = 0
memset(&p, 0, sizeof(p))
Number_Input("课程小组编号", &(p.group_number))
q = PROJ_Query(p.group_number )
if(q == 0) {
fprintf(stderr, "没有关于该小组的信息。\n")
return
}
q--
f = fopen(fileProjects, "rb+")
fsetpos(f, &q)
memset(&p, 0, sizeof(p))
fwrite(&p, sizeof(p), 1, f)
fclose(f)
printf("该小组信息已删除!\n")
}
int PROJ_Invalid(int assignment)
{
struct TProject pint sum = 0int r = 0
FILE * f = fopen(fileProjects, "rb")
if(!f) return 1
while(!feof(f)) {
r = fread(&p, sizeof(p), 1, f)
if(r <1) break
if(p.group_number == 0) continue
if(p.assignment == assignment) sum++
}
fclose(f)
return sum<5?0:1
}
void PROJ_Select(void)
{
struct TProject pfpos_t q = 0FILE * f = 0time_t t = 0
memset(&p, 0, sizeof(p))
Number_Input("课程小组编号", &(p.group_number))
q = PROJ_Query(p.group_number )
if(q == 0) {
fprintf(stderr, "没有关于该小组的信息。\n")
return
}
q--
f = fopen(fileProjects, "rb")
fsetpos(f, &q)
memset(&p, 0, sizeof(p))
fread(&p, sizeof(p), 1, f)
fclose(f)
p.assignment = ASSG_Choose()
if(p.assignment==0) {
fprintf(stderr, "错误的课程编号。请在题库中查证后重新选题\n")
return
}
if(PROJ_Invalid(p.assignment)) {
fprintf(stderr, "已经有5个小组选择了该课程,请重新选题\n")
return
}
p.date_open = Date_Input("开题")
p.date_close= Date_Input("结题")
if(p.date_open >p.date_close) {
t = p.date_close
p.date_close = p.date_open
p.date_open = t
}
p.process = 0
f = fopen(fileProjects, "rb+")
fsetpos(f, &q)
fwrite(&p, sizeof(p), 1, f)
fclose(f)
}
void PROJ_Progress(void)
{
struct TProject pfpos_t q = 0FILE * f = 0
memset(&p, 0, sizeof(p))
Number_Input("课程小组编号", &(p.group_number))
q = PROJ_Query(p.group_number )
if(q == 0) {
fprintf(stderr, "没有关于该小组的信息。\n")
return
}
q--
f = fopen(fileProjects, "rb")
if(!f) {
fprintf(stderr, "数据库无记录!\n")
return
}
fsetpos(f, &q)
memset(&p, 0, sizeof(p))
fread(&p, sizeof(p), 1, f)
fclose(f)
if(p.assignment <1) {
fprintf(stderr, "尚未选题,请选题后再补登进度\n")
return
}
Number_Input("进度(0~100)", &(p.process ))
if(p.process <0 || p.process >100) {
fprintf(stderr, "错误的进度\n")
return
}
f = fopen(fileProjects, "rb+")
fsetpos(f, &q)
fwrite(&p, sizeof(p), 1, f)
fclose(f)
printf("进度已经登记完成!\n")
}
void PROJ_Evaluate(void)
{
struct TProject pfpos_t q = 0FILE * f = 0
memset(&p, 0, sizeof(p))
Number_Input("课程小组编号", &(p.group_number))
q = PROJ_Query(p.group_number )
if(q == 0) {
fprintf(stderr, "没有关于该小组的信息。\n")
return
}
q--
f = fopen(fileProjects, "rb")
fsetpos(f, &q)
memset(&p, 0, sizeof(p))
fread(&p, sizeof(p), 1, f)
fclose(f)
if(p.assignment <1) {
fprintf(stderr, "尚未选题,请选题后再进行评分\n")
return
}
Number_Input("评分(0~100)", &(p.score ))
if(p.score <0 || p.score >100) {
fprintf(stderr, "错误的评分\n")
return
}
f = fopen(fileProjects, "rb+")
fsetpos(f, &q)
fwrite(&p, sizeof(p), 1, f)
fclose(f)
printf("成绩已经评定完成!\n")
}
void PROJ_Menu(void)
{
int cmd = 0
for() {
printf("*****课程管理*****\n0-查看\t1-新增\t2-删除\t3-选题\t4-登记进度\t5-打分\t任意键返回\n")
cmd = getch() - '0'
switch(cmd) {
case 0: PROJ_Report()break
case 1: PROJ_Append()break
case 2: PROJ_Delete()break
case 3: PROJ_Select()break
case 4: PROJ_Progress()break
case 5: PROJ_Evaluate()break
default: return
}
}
}
int main(void)
{
int cmd = 0
for() {
printf("*****欢迎使用学生选课管理软件*****\n0-课程信息\n1-学生选课\n其他任意键退出\n")
cmd = getch() - '0'
switch(cmd) {
case 0: ASSG_Menu()break
case 1: PROJ_Menu()break
default: return 0
}
}
return 0
}
大一入学前并没有选课这一程序,大一上学期的课程是学校定好的。
大一上学期接近末(12月份)有一个选课期,这是大学第一次选课,主要选择的有通识选修(就是与专业无关的课程),还有体育课程,必修课是不用选的。这些课程是在大一下学期才会开的。
大学生可以自由选择课程,有机会学习更多广泛的知识,学习自己感兴趣的内容。一般大一第二学期才开始选兄毕课,大一新生暂时不用着急,可以跟学长学姐“取经”。一般选课需要去学校的教务系统,分为预选课阶段和选课阶段。
学校会提前发出通知,几号几点开始预选,学生都会在那个时间点选择自己喜欢羡敬芹的课程,热门课程可能很快就被选完。预选成功就变成自己的课程,正稿谨式选课阶段还可以继续选课。
选课注意:
1.首先按照学分要求来选课,首选学分较高的课程,这些课程比较具有挑战性,而且能保证修够学分。
2.选课要考虑到文理的平衡性,最好是文理都有涉及,虽然文的更容易通过,但理的更能学到实际性的知识。
3.如果挑选的课程比较热门,一定要在选课的第一时间就开始选课,不然很可能选不上,而只能去选那些被别人挑剩下的课程。
4.挑选自己感兴趣的课程非常重要,因为这将是你努力学习的动力源泉。所以,尽量挑选自己真正喜欢的。
5.关于体育课要根据自己的特长来选择,可以选择自己高中就擅长的,例如乒乓球,可以在大学里更加系统的学习。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)