设计务:C语言课程设计务书
题目:学生考勤系统设计
功:学生考勤系统应包含班学生全部信息学生条记录包括姓名性学号出勤情况等系统模拟考勤程记录考勤结果够课程结束设定考勤评分标准动出学生考勤分数
分步实施:
1 初步完成总体设计搭框架确定机话界面确定函数数
2 建立文件条记录信息写入文件中显示屏幕
3完成述添加(出勤情况)查找(学号姓名性等)修改等功
4进步求:动出学生考勤分数
求:1C语言实现程序设计
2利结构体数组实现信息数结构设计
3系统功模块求函数形式实现
4界面友(良机交互)程序加必注释
总评成绩:
指导教师:
附件:学生考勤系统源程序代码
#include
#include
int SIZE *宏定义*
int CLASS
struct student *定义结构体数组包含学生信息*
{
char name[9]
char sex[4]
int number
int count
int score
}stu[300]
void main() *函数选择界面*
{
void start()
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(######################################\n)
printf(# 学生考勤系统 #\n)
printf(# 欢 迎 您 #\n)
printf(######################################\n)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(######################################\n)
printf(\t请输入班级数:\n)
printf(######################################\n)
scanf(d&SIZE)
printf(\n)
printf(######################################\n)
printf(\t请输入课程节数:\n)
printf(######################################\n)
scanf(d&CLASS)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
start()
}
void start() *函数辅助函数——start函数*
{
char x
void found()
void search()
void add()
void mark()
printf(######################################\n)
printf(# 请选择需功输入应数字: #\n)
printf(# 1建立学生列表 #\n)
printf(# 2查找学生信息 #\n)
printf(# 3模拟考勤程 #\n)
printf(# 4计算考勤分数 #\n)
printf(# 5退出 #\n)
printf(# #\n)
printf(######################################\n)
scanf(S&x)
switch(x) *利switch函数实现子函数选择功*
{
case'1'found()break
case'2'search()break
case'3'add()break
case'4'mark()break
case'5'break
default printf(****输入误请重输\n)start()
}
}
void found() *第子函数——found函数建立学生列表*
{
int a
printf(####################\n)
printf( 开始建表\n)
printf(####################\n)
FILE *fp
for(a0a
printf(请输入第d学生信息:\na+1)
printf(姓名:)
scanf(sstu[a]name)
printf(性:)
scanf(sstu[a]sex)
printf(学号:)
scanf(d&stu[a]number)
stu[a]count0
stu[a]score0
}
fpfopen(studw) *新建文件运for函数学生信息写入文件*
for(a0a
if(fwrite(&stu[a]sizeof(struct student)1fp)1)
printf(文件输入错误\n)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(建表:\n)
fpfopen(studr) *读取新建文件输出*
printf(姓名 \t性 \t学号 \t缺课数 \t考勤分数 \n)
printf(\n)
for(a0a
fread(&stu[a]sizeof(struct student)1fp)
printf(s \ts \td \td \td\nstu[a]namestu[a]sexstu[a]numberstu[a]countstu[a]score)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(#######################################\n)
printf(# 记录完毕 #\n)
printf(# 欢迎次 #\n)
printf(#######################################\n)
start() *返回函数辅助函数菜单*
}
void search() *第二子函数——search函数查询学生信息*
{
char b
void search1()
void search2()
printf(****************************************\n)
printf( 请选择\n)
printf( 1姓名查找\n)
printf( 2学号查找\n)
printf(****************************************\n)
scanf(s&b)
switch(b) *运switch函数构成选择结构供选择查询类型*
{
case'1'search1()break *进入第1种查询类型函数*
case'2'search2()break *进入第2种查询类型函数*
default printf(****输入误请重输:)search()
}
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(#######################################\n)
printf(# 查找完毕 #\n)
printf(# 欢迎次 #\n)
printf(#######################################\n)
start() *返回函数辅助函数菜单*
}
void search1() *第1种查询类型函数*
{
int c
char student_name[9]
FILE *fp *开已建立文件输出屏幕*
fpfopen(studr)
printf(姓名 \t性 \t学号 \t缺课数 \t考勤分数 \n)
printf(\n)
for(c0c
fread(&stu[c]sizeof(struct student)1fp)
printf(s \ts \td \td \td\nstu[c]namestu[c]sexstu[c]numberstu[c]countstu[c]score)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(请输入查询学生姓名:)
scanf(sstudent_name)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
for(c0c
if(strcmp(student_namestu[c]name)0)
{
printf(已查*******************************************\n)
printf(姓名:s 性:s 学号:d 缺课数:d\nstu[c]namestu[c]sexstu[c]numberstu[c]count)
}
}
}
void search2() *第2种查询类型函数*
{
int c
int d
FILE *fp
fpfopen(studr)
printf(姓名 \t性 \t学号 \t缺课数 \t考勤分数 \n)
printf(\n)
for(c0c
fread(&stu[c]sizeof(struct student)1fp)
printf(s \ts \td \td \td\nstu[c]namestu[c]sexstu[c]numberstu[c]countstu[c]score)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(请输入查询学生学号:)
scanf(d&d)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
for(c0c
if(dstu[c]number)
{
printf(已查*********************************************\n)
printf(姓名:s 性:s 学号:d 缺课数:d\nstu[c]namestu[c]sexstu[c]numberstu[c]count)
}
}
}
void add() *第三子函数——add函数模拟考勤程*
{
int efy
struct name *建立name结构体数组*
{
char nam[9]
}na[300]
FILE *fp
fpfopen(studr) *开已建立文件输出屏幕*
for(e0e
fread(&stu[e]sizeof(struct student)1fp)
printf(s \ts \td \td \td\nstu[e]namestu[e]sexstu[e]numberstu[e]countstu[e]score)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(***************************\n)
printf( 模拟考勤开始\n)
printf(***************************\n)
for(e0e
printf(请输入第d节课未学生姓名over结束:e+1)
for(y0y
scanf(sna[y]nam)
for(f0f
if(strcmp(na[y]namstu[f]name)0) *果输入姓名某学生姓名相count信息中加1*
stu[f]count++
}
if(strcmp(na[y]namover)0) *循环结束遇
over退出循环*
break
}
}
fpfopen(studw) *新列表数写入原文件中*
for(e0e
if(fwrite(&stu[e]sizeof(struct student)1fp)1)
printf(文件输入错误\n)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(模拟考勤完毕结果:\n)
fpfopen(studr) *开更新文件输出屏幕*
printf(姓名 \t性 \t学号 \t缺课数 \n)
printf(\n)
for(f0f
fread(&stu[f]sizeof(struct student)1fp)
printf(s \ts \td \td\nstu[f]namestu[f]sexstu[f]numberstu[f]count)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(#######################################\n)
printf(# 考勤完毕 #\n)
printf(# 欢迎次 #\n)
printf(#######################################\n)
start() *返回函数辅助函数*
}
void mark() *第四子函数——mark函数计算考勤分数*
{
int g
FILE *fp *开更新文件输出屏幕*
fpfopen(studr+)
printf(姓名 \t性 \t学号 \t缺课数\n)
printf(\n)
for(g0g
fread(&stu[g]sizeof(struct student)1fp)
printf(s \ts \td \td\nstu[g]namestu[g]sexstu[g]numberstu[g]count)
}
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(********************************\n)
printf( 评分开始\n)
printf(********************************\n)
for(g0g
stu[g]score(100stu[g]count*5) *缺节课扣五分*
if(stu[g]score<0)
stu[g]score0
}
fclose(fp)
fpfopen(studw) *更新学生列表信息写入原文件中*
for(g0g
if(fwrite(&stu[g]sizeof(struct student)1fp)1)
printf(文件输入错误\n)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(结果:\n)
fpfopen(studr) *开更新文件输出屏幕*
printf(姓名 \t性 \t学号 \t缺课数 \t考勤分数 \n)
printf(\n)
for(g0g
fread(&stu[g]sizeof(struct student)1fp)
printf(s \ts \td \td \td\nstu[g]namestu[g]sexstu[g]numberstu[g]countstu[g]score)
}
fclose(fp)
printf(\n)
printf(\n)
printf(\n)
printf(\n)
printf(#######################################\n)
printf(# 评分完毕 #\n)
printf(# 欢迎次 #\n)
printf(#######################################\n)
start() *返回函数辅助函数菜单*
}
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档