ImageVerifierCode 换一换
格式:DOC , 页数:81 ,大小:170.50KB ,
资源ID:5125959      下载积分:18 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5125959.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C语言课程设计任务学生考勤系统.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言课程设计任务学生考勤系统.doc

1、 C语言课程设计任务学生考勤系统 81 2020年4月19日 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 C语言程序设计 课程设计报告 设计题目: 学生考勤管理系统设计 院系: 生命科技学院 班级: 农学122 姓名: 刘玉柱 学号: 201 4203 河南科技学院 年 冬季 学期 设计任务: C语言课程设计任务书10 题目: 学生考勤系统设计 功能: 学生考勤系统应包含各班学生的全部信息。每个学生是一条记录, 包括姓名、 性别、 学号、 日期

2、 节次、 出勤情况等信息。本系统能够模拟考勤过程、 记录考勤结果, 并能在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。 要求: 1、 用C语言实现程序设计; 2、 利用结构体进行相关信息处理; 3、 系统的各个功能模块要求用函数的形式实现; 4、 界面友好( 良好的人机交互) , 程序加必要的注释。 平时成绩: 验收答辩成绩: 设计报告成绩: 总评成绩: 指导教师: 一、 总体设计 1.程序的总体设计 ◎确定界面, 使用户可选择操作项目( 录入, 修改, 查询, 评分,界面美化) 。 ◎录入功能:

3、 使用结构体, 要求用户输入姓名、 性别、 学号、 日期、 节次、 当前出勤情况等信息, 并写入文件。 ◎修改功能: 使用户输入学号, 姓名其中一项能够修改考勤其信息。对于修改功能的实现, 是先将所有文件内容读入到内存中, 然后修改考勤值, 最后再重新覆盖写入文件。 ◎查询模块: 使用字符串比较函数, 利用循环找到对应结构体数组元素, 然后输出需要信息。对于查询功能的实现, 同修改, 是先将所有文件内容读入到内存中, 然后查找到其中某项, 最后输出到屏幕。 ◎评分模块: 系统根据总的应道考勤数按照百分制, 求出每个学生的分数, 并输出到屏幕。 ◎界面设置模块: 系统

4、提供背景及前景颜色选项, 用户经过选择能够自由调节界面颜色。 2. 数据结构 学生信息用结构体记录, 包括姓名( 字符数组) 、 性别( 字符型) 、 日期( 年月日三个字符数组) 、 节次( 整型) 、 出情况( 整型) 。 3. 函数原型声明 void main() //主函数 void record(); //录入数据函数 void amend(); //修改数据函数 void search(); //查询数据函数 void goal(); //计算总评函数 void look();

5、 //界面设置函数 二、 详细设计 1.main( )函数 void main() { void record(); //录入数据函数 void amend(); //修改数据函数 void search(); //查询数据函数 void goal(); //计算总评函数 viod kook(); //界面设置函数 char item; printf(" ※※※※※※※※※※※※※※※※※※※※※\n"); print

6、f(" ※ ※\n"); printf(" ※ 学 生 考 勤 管 理 系 统 ※\n"); printf(" ※ ※\n"); printf(" ※ 刘玉柱 河南科技学院 农学122 ※\n"); printf("

7、 ※ ※\n"); printf(" ※※※※※※※※※※※※※※※※※※※※\n"); printf(" ※ ※\n"); printf(" ※ 1.学生信息及考勤情况录入 ※\n"); printf(" ※

8、 ※\n"); printf(" ※ 2.学生信息及考勤情况修改 ※\n"); printf(" ※ ※\n"); printf(" ※ 3.学生信息及考勤情况查询 ※\n"); printf(" ※

9、 ※\n"); printf(" ※ 4.学生考勤总评分数查询 ※\n"); printf(" ※ ※\n"); printf(" ※※※※※※※※※※※※※※※※※※※※※\n"); //用户界面设置 printf("\n"); printf(" 请选择您需要的操作\n");

10、scanf("%c",&item); switch(item) { case '1': record();break; case '2': amend();break; case '3': search();break; case '4': goal();break; case ‘5’;look();break; } //实现功能选择 } 流程图: 开 始 4 5 Look() 1 break goal() sear

11、ch() amend() record() 3 2 switch(item) switch(item)switch(item) 输出界面 结束 2. record() 函数 void record() { int i,j=0,jx=1; printf(" ************************学 生 基 本 信 息 录 入*****************************\n"); if((fp=fopen("date.txt","w"))==NULL) { printf("文件打开失败\n"); ex

12、it(0); } for(i=0;jx==1;i++) //输入信息循环 { for(;j==0;) //输入确认循环 { getchar(); printf("请输入第%d个学生的姓名 ",i+1); gets(stu[i].name); printf("请输入第%d个学生的学号 ",i+1); gets(stu[i].number); printf("请输入第%d个学生的性别(男:m 女:f) ",i+1); stu[i].sex=getchar(); print

13、f("请输入第%d个学生的生日(格式:年 月 日) ",i+1); scanf("%d%d%d",&stu[i].year,&stu[i].month,&stu[i].day); printf("请输入第%d个学生的当前考勤次数 ",i+1); scanf("%d",&stu[i].kq); printf("您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %d年%d月%d日\n 0 重输 1 确认",stu[i].name,stu[i].number,stu[i].sex,stu[i].year,stu[i].month,stu[i].day);

14、 scanf("%d",&j); //输入确认 } j=0; if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf("文件写入错误\n"); //写入文件 printf(" 是否继续输入下一个学生信息 0 终止 1 继续\n"); scanf("%d",&jx); //继续输入选择 } fclose(fp); printf("0 返回主菜单\n"); getch

15、ar(); a=getchar(); getchar(); if(a=='0') main(); //返回主菜单 } 流程图: 开始 0=>j 打开文件 1=>jx 0=>i jx=1? Y j=0? Y 输入i+1个学生信息生信息 N 输入j值选择是否确认 写入文件 i+1=>i 输入jx值选择是否继续 结束 3. amend()函数 void amend() { int i=0,j=0,sway,t,x

16、 char name[10],number[10]; printf(" **********************学 生 考 勤 修 改**************************\n"); if((fp=fopen("date.txt","r"))==NULL) //将文件内容读入内存 { printf("文件打开失败\n"); exit(0); } for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp)

17、 //读取文件内容 fclose(fp); //关闭文件 printf("选择查找方式 1 按照姓名查找 2 按照学号查找"); scanf("%d",&sway); /**********************按照姓名查找开始*************************/// if(sway==1) { printf("请输入需要修改学生的姓名 "); // printf("i=%d",i); scanf("%s",name); for(j=0;t!=0;j++)

18、{ t=strcmp(stu[j].name,name); if(j==i) { t=0; printf("未找到您所查询的数据,请重新输入\n"); } } if(j

19、th,stu[j-1].day,stu[j-1].kq); printf("是否修改该生考勤信息 0 否 1 是"); //选择是否修改考勤 scanf("%d",&x); //输入选择变量值 if(x==1) { printf("请输入新的考勤值 "); scanf("%d",&stu[j-1].kq); //输入新的考勤值 if((fp=fopen("date.txt","w"))==NULL) //以只写方式打开文件 {

20、 printf("文件打开失败\n"); exit(0); } for(j=0;j

21、d(); } /**********************按照姓名查找结束*************************/// /**********************按照学号查找开始*************************/// if(sway==2) { printf("请输入需要修改学生的学号 "); // printf("i=%d",i); scanf("%s",number); for(j=0;t!=0;j++) { t=strcmp(stu[j].number,number

22、); if(j==i) { t=0; printf("未找到您所查询的数据,请重新输入\n"); } } if(j

23、 printf("是否修改该生考勤信息 0 否 1 是"); //选择是否修改考勤 scanf("%d",&x); //输入选择变量值 if(x==1) { printf("请输入新的考勤值 "); scanf("%d",&stu[j-1].kq); //输入新的考勤值 if((fp=fopen("date.txt","w"))==NULL) //以只写方式打开文件 { printf("文件打开失败\n");

24、 exit(0); } for(j=0;j

25、查找结束*************************/// printf("0 返回主菜单\n"); getchar(); a=getchar(); getchar(); if(a=='0') main(); } 开始 打开文件 将文件内容全部读入结构体数组 输入sway值选择查找方式 Sway=1? N Sway=2? Y 输入要查找的学号 输入要查找的姓名 N 查找学号 查找姓名 输入X值选择是否修改考勤 X=1? Y 输入新的考勤值

26、 写入文件 结束 4. search()函数 void search() { int i=0,j=0,sway,t,x; char name[10],number[10]; printf(" ***********************学 生 信 息 查 询***************************\n"); if((fp=fopen("date.txt","r"))==NULL) //将文件内容读入内存 { printf("文件打开失败\n"); exit(0);

27、 } for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp); //读取文件内容 fclose(fp); //关闭文件 printf("选择查找方式 1 按照姓名查找 2 按照学号查找"); scanf("%d",&sway); /**********************按照姓名查找开始*************************/// if(sway==1) { printf("请输入需要修改学生的姓

28、名 "); // printf("i=%d",i); scanf("%s",name); for(j=0;t!=0;j++) { t=strcmp(stu[j].name,name); if(j==i) { t=0; printf("未找到您所查询的数据,请重新输入\n"); } } if(j

29、d\n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq); } printf("是否继续查询其它学生信息 0 否 1 是"); scanf("%d",&x); if(x==1) search(); } /**********************按照姓名查找结束*************************/// /**********************按照学号查找开始**

30、/// if(sway==2) { printf("请输入需要修改学生的学号 "); // printf("i=%d",i); scanf("%s",number); for(j=0;t!=0;j++) { t=strcmp(stu[j].number,number); if(j==i) { t=0; printf("未找到您所查询的数据,请重新输入\n"); } } if(j

31、询成功 { printf("您查找的学生信息如下\n 姓名 %s 学号 %s 性别 %c 生日 %d年%d月%d日 当前考勤次数 %d\n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq); } printf("是否继续查询其它学生信息 0 否 1 是"); scanf("%d",&x); if(x==1) search(); } /**********************按照学号查找结束**

32、/// printf("0 返回主菜单\n"); getchar(); a=getchar(); getchar(); if(a=='0') main(); } 流程图: 开始 打开文件 将文件内容全部读入结构体数组 输入sway值选择查找方式 Sway=1? N Sway=2? Y 输入要查找的学号 输入要查找的姓名 查找学号 查找姓名 输出该生信息 5. goal()函数 void goal() {

33、 int i=0,j=0,sway,t,x; float score; char name[10],number[10]; printf(" ***********************学 生 考 勤 分 数 计 算**************************\n"); if(kqcs==0) { printf("请输入应到考勤总数 "); //请输入应到考勤总数 scanf("%f",&kqcs); } if((fp=fopen("date.txt","r"))==NULL) //将文件内容读入内存

34、{ printf("文件打开失败\n"); exit(0); } for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp); //读取文件内容 fclose(fp); //关闭文件 printf("选择查找方式 1 按照姓名查找 2 按照学号查找"); scanf("%d",&sway); /**********************按照姓名查找开始*************************///

35、 if(sway==1) { printf("请输入需要修改学生的姓名 "); // printf("i=%d",i); scanf("%s",name); for(j=0;t!=0;j++) { t=strcmp(stu[j].name,name); if(j==i) { t=0; printf("未找到您所查询的数据,请重新输入\n"); } } if(j

36、姓名 %s 学号 %s 性别 %c 生日 %d年%d月%d日 当前考勤次数 %d\n",stu[j-1].name,stu[j-1].number,stu[j-1].sex,stu[j-1].year,stu[j-1].month,stu[j-1].day,stu[j-1].kq); score=(stu[j-1].kq)/kqcs*100; printf("该生当前考勤分数为 %5.2f",score); } printf("是否继续计算其它学生考勤分数 0 否 1 是"); scanf("%d",&x); if(x==1

37、) goal(); } /**********************按照姓名查找结束*************************/// /**********************按照学号查找开始*************************/// if(sway==2) { printf("请输入需要修改学生的学号 "); // printf("i=%d",i); scanf("%s",number); for(j=0;t!=0;j++) { t=strcmp(stu[j].number,num

38、ber); if(j==i) { t=0; printf("未找到您所查询的数据,请重新输入\n"); } } if(j

39、re=(stu[j-1].kq)/kqcs*100; printf("该生当前考勤分数为 %5.2f",score); } printf("是否继续计算其它学生考勤分数 0 否 1 是"); scanf("%d",&x); if(x==1) goal(); } /**********************按照学号查找结束*************************/// printf("0 返回主菜单\n"); getchar(); a=getchar(); getchar(); if(a=='0') main

40、); } 流程图: 开始 输入应到考勤次数kqcs值 打开文件 将文件内容全部读入结构体数组 输入sway值选择查找方式 Sway=1? Y N Sway=2? 输入要查找的学号 输入要查找的姓名 查找学号 查找姓名 输出该生信息 计算考勤分数 输出考勤分数 结束 Look()函数: void look() { int i,j; printf("背景颜色: 0: 黑、 1: 蓝、 2: 绿、 3: 湖蓝色、 4: 红、 5

41、 紫、 6: 黄、 7: 白"); scanf("%d",&i); switch(i) { case 0: { printf("前景颜色: 0: 黑、 1: 蓝、 2: 绿、 3: 湖蓝色、 4: 红、 5: 紫、 6: 黄、 7: 白"); scanf("%d",&j); switch(j) { case 0: printf("输入无效! 背景和前景颜色相同! \n"); break; case 1: system("color 01"); break; ca

42、se 2: system("color 02"); break; case 3: system("color 03"); break; case 4: system("color 04"); break; case 5: system("color 05"); break; case 6: system("color 06"); break; case 7: system("color 07"); break; } br

43、eak; } case 1: { printf("前景颜色: 0: 黑、 1: 蓝、 2: 绿、 3: 湖蓝色、 4: 红、 5: 紫、 6: 黄、 7: 白"); scanf("%d",&j); switch(j) { case 0: system("color 10"); break; case 1: printf("输入无效! 背景和前景颜色相同! \n"); break; case 2: system("color 12"); break;

44、 case 3: system("color 13"); break; case 4: system("color 14"); break; case 5: system("color 15"); break; case 6: system("color 16"); break; case 7: system("color 17"); break; } break; } case 2: { printf("前景颜色: 0:

45、黑、 1: 蓝、 2: 绿、 3: 湖蓝色、 4: 红、 5: 紫、 6: 黄、 7: 白"); scanf("%d",&j); switch(j) { case 0: system("color 20"); break; case 1: system("color 21"); break; case 2: printf("输入无效! 背景和前景颜色相同! \n"); break; case 3: system("color 23"); break;

46、 case 4: system("color 24"); break; case 5: system("color 25"); break; case 6: system("color 26"); break; case 7: system("color 27"); break; } break; } case 3: { printf("前景颜色: 0: 黑、 1: 蓝、 2: 绿、 3: 湖蓝色、 4: 红、 5: 紫、 6: 黄、 7: 白"

47、); scanf("%d",&j); switch(j) { case 0: system("color 30"); break; case 1: system("color 31"); break; case 2: system("color 32"); break; case 3: printf("输入无效! 背景和前景颜色相同! \n"); break; case 4: system("color 34"); brea

48、k; case 5: system("color 35"); break; case 6: system("color 36"); break; case 7: system("color 37"); break; } break; } case 4: { printf("前景颜色: 0: 黑、 1: 蓝、 2: 绿、 3: 湖蓝色、 4: 红、 5: 紫、 6: 黄、 7: 白"); scanf("%d",&j); switch(j) {

49、 case 0: system("color 40"); break; case 1: system("color 41"); break; case 2: system("color 42"); break; case 3: system("color 43"); break; case 4: printf("输入无效! 背景和前景颜色相同! \n"); break; case 5: system("color 45"); b

50、reak; case 6: system("color 46"); break; case 7: system("color 47"); break; } break; } case 5: { printf("前景颜色: 0: 黑、 1: 蓝、 2: 绿、 3: 湖蓝色、 4: 红、 5: 紫、 6: 黄、 7: 白"); scanf("%d",&j); switch(j) { case 0: system("color 50"); break

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服