栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言课设学生考勤系统(大作业)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言课设学生考勤系统(大作业)

一、设计功能(文章仅供参考)

(1)确定界面,使用户可选择操作项目
(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];
int main()                                   
  {
   void start();
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   printf("ttt######################################n");
   printf("ttt#             学生考勤系统           #n");
   printf("ttt#               欢 迎 您             #n");
   printf("ttt######################################n");
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   printf("tt######################################n");
   printf("ttt请输入班级人数:n");
   printf("tt######################################n");
   scanf("%d",&SIZE);
   printf("n");
   printf("tt######################################n");
   printf("ttt请输入课程节数:n");
   printf("tt######################################n");
   scanf("%d",&CLASS);
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   start();
 }
void 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)           
       {
        case'1':found();break;
        case'2':search();break;
        case'3':add1();break;
        case'4':mark();break;
	    case'5':break;
     	default :printf("****输入有误,请重输:n");start();
       }
 }
void found()       
  {
   int a;
   printf("####################n");
   printf("      开始建表。n");
   printf("####################n");
   FILE *fp;
   for(a=0;a
       printf("请输入第%d个学生的个人信息:n",a+1);
       printf("姓名:");
       scanf("%s",stu[a].name);
       printf("性别:");
       scanf("%s",stu[a].sex);
       printf("学号:");
       scanf("%d",&stu[a].number);
       stu[a].count=0;
       stu[a].score=0;
      }
   fp=fopen("stud","w");          
   for(a=0;a
       if(fwrite(&stu[a],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
       fread(&stu[a],sizeof(struct student),1,fp);
       printf("%s t%s t%d t%d t%dn",stu[a].name,stu[a].sex,stu[a].number,stu[a].count,stu[a].score);
      }
   fclose(fp);
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   printf("#######################################n");
   printf("#               记录完毕              #n");
   printf("#             欢迎下次再来。          #n");
   printf("#######################################n");
   start();                     
  }
void search()                           
  {
   char b;
   void search1();
   void search2();
   printf("****************************************n");
   printf("  请选择:n");
   printf("             1.按姓名查找。n");
   printf("             2.按学号查找。n");
   printf("****************************************n");
   scanf("%s",&b);
   switch(b)                         
       {
        case'1':search1();break;     
        case'2':search2();break;     
		default :printf("****输入有误,请重输:");search();
       }
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   printf("#######################################n");
   printf("#               查找完毕              #n");
   printf("#             欢迎下次再来。          #n");
   printf("#######################################n");
   start();                      
  }
void search1()                   
  {
   int c;
   char student_name[9];
   FILE *fp;                
   fp=fopen("stud","r");
   printf("姓名 t性别 t学号 t缺课数 t考勤分数 n");
   printf("----------------------------------------------n");
   for(c=0;c
       fread(&stu[c],sizeof(struct student),1,fp);
       printf("%s t%s t%d t%d t%dn",stu[c].name,stu[c].sex,stu[c].number,stu[c].count,stu[c].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
       if(strcmp(student_name,stu[c].name)==0)
	   {
		   printf("已查到*******************************************n");
         printf("姓名:%s 性别:%s 学号:%d 缺课数:%dn",stu[c].name,stu[c].sex,stu[c].number,stu[c].count);
	   }
      }
  }
void search2()                            
  {
   int c;
   int d;
   FILE *fp;
   fp=fopen("stud","r");
   printf("姓名 t性别 t学号 t缺课数 t考勤分数 n");
   printf("----------------------------------------------n");
   for(c=0;c
       fread(&stu[c],sizeof(struct student),1,fp);
       printf("%s t%s t%d t%d t%dn",stu[c].name,stu[c].sex,stu[c].number,stu[c].count,stu[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(c=0;c
       if(d==stu[c].number)
	   {
		   printf("已查到*********************************************n");
         printf("姓名:%s 性别:%s 学号:%d 缺课数:%dn",stu[c].name,stu[c].sex,stu[c].number,stu[c].count);
	   }
      }
  }
int add1()           
  {
   int e,f,y;
   struct name                  
   {
	   char nam[9];
   }na[300];
   FILE *fp;
   fp=fopen("stud","r");    
   for(e=0;e
       fread(&stu[e],sizeof(struct student),1,fp);
       printf("%s t%s t%d t%d t%dn",stu[e].name,stu[e].sex,stu[e].number,stu[e].count,stu[e].score);
      }
   fclose(fp);
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   printf("***************************n");
   printf("       模拟考勤开始。n");
   printf("***************************n");
   for(e=0;e
       printf("请输入第%d节课未到的学生姓名并以'over'结束:",e+1);
	   for(y=0;y<=SIZE;y++)
	   {
         scanf("%s",na[y].nam);
         for(f=0;f
           if(strcmp(na[y].nam,stu[f].name)==0) 
             stu[f].count++;
          }
		 if(strcmp(na[y].nam,"over")==0)    
			 break;
	   }
      }
   fp=fopen("stud","w");           
   for(e=0;e
       if(fwrite(&stu[e],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
       fread(&stu[f],sizeof(struct student),1,fp);
       printf("%s t%s t%d t%dn",stu[f].name,stu[f].sex,stu[f].number,stu[f].count);
      }
   fclose(fp);
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   printf("#######################################n");
   printf("#               考勤完毕              #n");
   printf("#             欢迎下次再来。          #n");
   printf("#######################################n");
   start();                              
  }
void mark()         
  {
   int g;
   FILE *fp;                  
   fp=fopen("stud","r+");
   printf("姓名 t性别 t学号 t缺课数n");
   printf("----------------------------------------------n");
   for(g=0;g
       fread(&stu[g],sizeof(struct student),1,fp);
       printf("%s t%s t%d t%dn",stu[g].name,stu[g].sex,stu[g].number,stu[g].count);
      }
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   printf("********************************n");
   printf("           评分开始。n");
   printf("********************************n");
   for(g=0;g
	   stu[g].score=(100-stu[g].count*5);        
	   if(stu[g].score<0)
		   stu[g].score=0;
       }
   fclose(fp);
   fp=fopen("stud","w");      
   for(g=0;g
       if(fwrite(&stu[g],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
       fread(&stu[g],sizeof(struct student),1,fp);
       printf("%s t%s t%d t%d t%dn",stu[g].name,stu[g].sex,stu[g].number,stu[g].count,stu[g].score);
      }
   fclose(fp);
   printf("n");
   printf("n");
   printf("n");
   printf("n");
   printf("#######################################n");
   printf("#               评分完毕              #n");
   printf("#             欢迎下次再来。          #n");
   printf("#######################################n");
   start();                     
  }

大家可以点个关注后续会持续更新0.0(在此先谢过各位了)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/960433.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号