欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言课程设计学生考勤系统(共10页).doc

    • 资源ID:13856577       资源大小:41KB        全文页数:10页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课程设计学生考勤系统(共10页).doc

    精选优质文档-倾情为你奉上设计任务:C语言课程设计任务书题目:学生考勤系统设计功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。分步实施:1、 初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、 建立一个文件,将每条记录信息写入文件中并能显示于屏幕上3、完成上述添加(出勤情况)、查找(学号,姓名,性别等)、修改等功能。4、进一步要求:自动给出每个学生的考勤分数要求:1、用C语言实现程序设计;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。总评成绩:指导教师:附件:学生考勤系统主要源程序代码#include<stdio.h>#include<string.h> /*头文件。*/int SIZE; /*宏定义。*/int CLASS;struct student /*定义一个结构体数组,包含学生信息。*/ char name9; char sex4; int number; int count; int score; stu300;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(a=0;a<SIZE;a+) /*运用for循环,逐次输入学生信息。*/ printf("请输入第%d个学生的个人信息:n",a+1); printf("姓名:"); scanf("%s",stua.name); printf("性别:"); scanf("%s",stua.sex); printf("学号:"); scanf("%d",&stua.number); stua.count=0; stua.score=0; fp=fopen("stud","w"); /*新建一个文件,运用for函数将学生信息写入文件。*/ for(a=0;a<SIZE;a+) if(fwrite(&stua,sizeof(struct student),1,fp)!=1) printf("文件输入错误。n"); fclose(fp); printf("n"); printf("n"); printf("n"); printf("n"); printf("建表如下:n"); fp=fopen("stud","r"); /*读取新建的文件,并输出。*/ printf("姓名 t性别 t学号 t缺课数 t考勤分数 n"); printf("-n"); for(a=0;a<SIZE;a+) fread(&stua,sizeof(struct student),1,fp); printf("%s t%s t%d t%d t%dn",stua.name,stua.sex,stua.number,stua.count,stua.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_name9; FILE *fp; /*打开已建立的文件并将其输出到屏幕上。*/ fp=fopen("stud","r"); printf("姓名 t性别 t学号 t缺课数 t考勤分数 n"); printf("-n"); for(c=0;c<SIZE;c+) fread(&stuc,sizeof(struct student),1,fp); printf("%s t%s t%d t%d t%dn",stuc.name,stuc.sex,stuc.number,stuc.count,stuc.score); fclose(fp); printf("n"); printf("n"); printf("n"); printf("n"); printf("请输入要查询学生姓名:"); scanf("%s",student_name); printf("n"); printf("n"); printf("n"); printf("n"); for(c=0;c<SIZE;c+) /*运用for循环和strcmp函数逐个比较输入的姓名与列表中学生的姓名,找到相同的后输出该学生的信息。*/ if(strcmp(student_name,stuc.name)=0) printf("已查到*n"); printf("姓名:%s 性别:%s 学号:%d 缺课数:%dn",stuc.name,stuc.sex,stuc.number,stuc.count); void search2() /*第2种查询类型的函数。*/ int c; int d; FILE *fp; fp=fopen("stud","r"); printf("姓名 t性别 t学号 t缺课数 t考勤分数 n"); printf("-n"); for(c=0;c<SIZE;c+) fread(&stuc,sizeof(struct student),1,fp); printf("%s t%s t%d t%d t%dn",stuc.name,stuc.sex,stuc.number,stuc.count,stuc.score); fclose(fp); printf("n"); printf("n"); printf("n"); printf("n"); printf("请输入要查询学生学号:"); scanf("%d",&d); printf("n"); printf("n"); printf("n"); printf("n"); for(c=0;c<SIZE;c+) /*同第1种查询类型的函数,用for循环逐个比较输入的学号与列表中学生的学号,找到相同的后输出该学生的信息。*/ if(d=stuc.number) printf("已查到*n"); printf("姓名:%s 性别:%s 学号:%d 缺课数:%dn",stuc.name,stuc.sex,stuc.number,stuc.count); void add() /*第三个子函数add函数,用于模拟考勤过程。*/ int e,f,y; struct name /*再建立一个叫name的结构体数组。*/ char nam9; na300; FILE *fp; fp=fopen("stud","r"); /*打开已建立的文件并将其输出到屏幕上。*/ for(e=0;e<SIZE;e+) fread(&stue,sizeof(struct student),1,fp); printf("%s t%s t%d t%d t%dn",stue.name,stue.sex,stue.number,stue.count,stue.score); fclose(fp); printf("n"); printf("n"); printf("n"); printf("n"); printf("*n"); printf(" 模拟考勤开始。n"); printf("*n"); for(e=0;e<CLASS;e+) /*运用for循环的嵌套,向name结构体中输入姓名,再依次与列表中的学生姓名逐个比较。*/ printf("请输入第%d节课未到的学生姓名并以“over”结束:",e+1); for(y=0;y<=SIZE;y+) scanf("%s",nay.nam); for(f=0;f<SIZE;f+) if(strcmp(nay.nam,stuf.name)=0) /*如果输入的姓名与某个学生姓名相同,在其count的信息中加1。*/ stuf.count+; if(strcmp(nay.nam,"over")=0) /*循环结束,遇到 "over",退出循环。*/ break; fp=fopen("stud","w"); /*将新的列表数据写入原文件中。*/ for(e=0;e<SIZE;e+) if(fwrite(&stue,sizeof(struct student),1,fp)!=1) printf("文件输入错误。n"); fclose(fp); printf("n"); printf("n"); printf("n"); printf("n"); printf("模拟考勤完毕,结果如下:n"); fp=fopen("stud","r"); /*打开更新的文件并将其输出到屏幕上。*/ printf("姓名 t性别 t学号 t缺课数 n"); printf("-n"); for(f=0;f<SIZE;f+) fread(&stuf,sizeof(struct student),1,fp); printf("%s t%s t%d t%dn",stuf.name,stuf.sex,stuf.number,stuf.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; /*打开更新的文件并将其输出到屏幕上。*/ fp=fopen("stud","r+"); printf("姓名 t性别 t学号 t缺课数n"); printf("-n"); for(g=0;g<SIZE;g+) fread(&stug,sizeof(struct student),1,fp); printf("%s t%s t%d t%dn",stug.name,stug.sex,stug.number,stug.count); printf("n"); printf("n"); printf("n"); printf("n"); printf("*n"); printf(" 评分开始。n"); printf("*n"); for(g=0;g<SIZE;g+) /*用for循环实现评分过程。*/ stug.score=(100-stug.count*5); /*缺一节课扣五分。*/ if(stug.score<0) stug.score=0; fclose(fp); fp=fopen("stud","w"); /*将更新的学生列表信息写入原文件中。*/ for(g=0;g<SIZE;g+) if(fwrite(&stug,sizeof(struct student),1,fp)!=1) printf("文件输入错误。n"); fclose(fp); printf("n"); printf("n"); printf("n"); printf("n"); printf("结果如下:n"); fp=fopen("stud","r"); /*打开更新的文件并将其输出到屏幕上。*/ printf("姓名 t性别 t学号 t缺课数 t考勤分数 n"); printf("-n"); for(g=0;g<SIZE;g+) fread(&stug,sizeof(struct student),1,fp); printf("%s t%s t%d t%d t%dn",stug.name,stug.sex,stug.number,stug.count,stug.score); fclose(fp); printf("n"); printf("n"); printf("n"); printf("n"); printf("#n"); printf("# 评分完毕 #n"); printf("# 欢迎下次再来。 #n"); printf("#n"); start(); /*返回主函数的辅助函数,即主菜单。*/ 专心-专注-专业

    注意事项

    本文(C语言课程设计学生考勤系统(共10页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开