C语言课程设计学生考勤系统Word格式.docx

上传人:b****5 文档编号:21556101 上传时间:2023-01-31 格式:DOCX 页数:14 大小:17.34KB
下载 相关 举报
C语言课程设计学生考勤系统Word格式.docx_第1页
第1页 / 共14页
C语言课程设计学生考勤系统Word格式.docx_第2页
第2页 / 共14页
C语言课程设计学生考勤系统Word格式.docx_第3页
第3页 / 共14页
C语言课程设计学生考勤系统Word格式.docx_第4页
第4页 / 共14页
C语言课程设计学生考勤系统Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言课程设计学生考勤系统Word格式.docx

《C语言课程设计学生考勤系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生考勤系统Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

C语言课程设计学生考勤系统Word格式.docx

《学生考勤系统》主要源程序代码

#include<

>

"

/*头文件。

*/

intSIZE;

/*宏定义。

intCLASS;

structstudent/*定义一个结构体数组,包含学生信息。

{

charname[9];

charsex[4];

}

intnumber;

intcount;

intscore;

}stu[300];

voidmain()/*主函数,选择界面。

voidstart();

printf("

\n"

);

^

######################################\n"

#学生考勤系统#\n"

#欢迎您#\n"

~

\t请输入班级人数:

scanf("

%d"

&

SIZE);

\t请输入课程节数:

CLASS);

start();

voidstart()/*主函数的辅助函数——start函数。

{

charx;

voidfound();

voidsearch();

voidadd();

voidmark();

#请选择所需功能,输入对应数字:

#\n"

#1.建立学生列表#\n"

#2.查找学生信息#\n"

#3.模拟考勤过程#\n"

#4.计算考勤分数#\n"

#5.退出#\n"

##\n"

%S"

x);

switch(x)/*利用switch函数实现子函数的选择功能。

case'

1'

:

found();

break;

2'

search();

3'

add();

4'

mark();

5'

default:

printf("

****输入有误,请重输:

start();

}

voidfound()/*第一个子函数——found函数,用于建立学生列表。

inta;

####################\n"

开始建表。

FILE*fp;

for(a=0;

a<

SIZE;

a++)/*运用for循环,逐次输入学生信息。

请输入第%d个学生的个人信息:

a+1);

姓名:

%s"

stu[a].name);

性别:

stu[a].sex);

学号:

stu[a].number);

stu[a].count=0;

stu[a].score=0;

|

fp=fopen("

stud"

"

w"

/*新建一个文件,运用for函数将学生信息写入文件。

a++)

if(fwrite(&

stu[a],sizeof(structstudent),1,fp)!

=1)

文件输入错误。

fclose(fp);

建表如下:

r"

/*读取新建的文件,并输出。

姓名\t性别\t学号\t缺课数\t考勤分数\n"

----------------------------------------------\n"

fread(&

stu[a],sizeof(structstudent),1,fp);

%s\t%s\t%d\t%d\t%d\n"

stu[a].name,stu[a].sex,stu[a].number,stu[a].count,stu[a].score);

]

#######################################\n"

#记录完毕#\n"

#欢迎下次再来。

/*返回主函数的辅助函数,即主菜单。

voidsearch()/*第二个子函数——search函数,用于查询学生信息。

charb;

voidsearch1();

voidsearch2();

****************************************\n"

请选择:

1.按姓名查找。

2.按学号查找。

b);

switch(b)/*运用switch函数,构成选择结构,可供选择查询类型。

search1();

/*进入第1种查询类型的函数。

search2();

/*进入第2种查询类型的函数。

****输入有误,请重输:

#

#查找完毕#\n"

voidsearch1()/*第1种查询类型的函数。

intc;

charstudent_name[9];

/*打开已建立的文件并将其输出到屏幕上。

for(c=0;

c<

c++)

stu[c],sizeof(structstudent),1,fp);

stu[c].name,stu[c].sex,stu[c].number,stu[c].count,stu[c].score);

*

请输入要查询学生姓名:

student_name);

·

c++)/*运用for循环和strcmp函数逐个比较输入的姓名与列表中学生的姓名,找到相同的后输出该学生的信息。

if(strcmp(student_name,stu[c].name)==0)

printf("

已查到*******************************************\n"

%s性别:

%s学号:

%d缺课数:

%d\n"

stu[c].name,stu[c].sex,stu[c].number,stu[c].count);

voidsearch2()/*第2种查询类型的函数。

intd;

请输入要查询学生学号:

d);

%

c++)/*同第1种查询类型的函数,用for循环逐个比较输入的学号与列表中学生的学号,找到相同的后输出该学生的信息。

if(d==stu[c].number)

已查到*********************************************\n"

voidadd()/*第三个子函数——add函数,用于模拟考勤过程。

inte,f,y;

structname/*再建立一个叫name的结构体数组。

charnam[9];

}na[300];

for(e=0;

e<

e++)

stu[e],sizeof(structstudent),1,fp);

stu[e].name,stu[e].sex,stu[e].number,stu[e].count,stu[e].score);

***************************\n"

模拟考勤开始。

CLASS;

e++)/*运用for循环的嵌套,向name结构体中输入姓名,再依次与列表中的学生姓名逐个比较。

请输入第%d节课未到的学生姓名并以“over”结束:

e+1);

for(y=0;

y<

=SIZE;

y++)

na[y].nam);

for(f=0;

f<

f++)

{

if(strcmp(na[y].nam,stu[f].name)==0)/*如果输入的姓名与某个学生姓名相同,在其count的信息中加1。

stu[f].count++;

if(strcmp(na[y].nam,"

over"

)==0)/*循环结束,遇到

"

,退出循环。

break;

/*将新的列表数据写入原文件中。

stu[e],sizeof(structstudent),1,fp)!

'

模拟考勤完毕,结果如下:

/*打开更新的文件并将其输出到屏幕上。

姓名\t性别\t学号\t缺课数\n"

-------------------------\n"

stu[f],sizeof(structstudent),1,fp);

%s\t%s\t%d\t%d\n"

stu[f].name,stu[f].sex,stu[f].number,stu[f].count);

#考勤完毕#\n"

/*返回主函数的辅助函数。

[

voidmark()/*第四个子函数——mark函数,用于计算考勤分数。

intg;

r+"

姓名\t性别\t学号\t缺课数\n"

for(g=0;

g<

g++)

stu[g],sizeof(structstudent),1,fp);

stu[g].name,stu[g].sex,stu[g].number,stu[g].count);

********************************\n"

评分开始。

g++)/*用for循环实现评分过程。

stu[g].score=(100-stu[g].count*5);

/*缺一节课扣五分。

if(stu[g].score<

0)

stu[g].score=0;

/*将更新的学生列表信息写入原文件中。

stu[g],sizeof(structstudent),1,fp)!

结果如下:

stu[g].name,stu[g].sex,stu[g].number,stu[g].count,stu[g].score);

#评分完毕#\n"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1