0911090104杨文博《学生上课签到系统》.docx

上传人:b****3 文档编号:26598455 上传时间:2023-06-20 格式:DOCX 页数:9 大小:72.96KB
下载 相关 举报
0911090104杨文博《学生上课签到系统》.docx_第1页
第1页 / 共9页
0911090104杨文博《学生上课签到系统》.docx_第2页
第2页 / 共9页
0911090104杨文博《学生上课签到系统》.docx_第3页
第3页 / 共9页
0911090104杨文博《学生上课签到系统》.docx_第4页
第4页 / 共9页
0911090104杨文博《学生上课签到系统》.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

0911090104杨文博《学生上课签到系统》.docx

《0911090104杨文博《学生上课签到系统》.docx》由会员分享,可在线阅读,更多相关《0911090104杨文博《学生上课签到系统》.docx(9页珍藏版)》请在冰豆网上搜索。

0911090104杨文博《学生上课签到系统》.docx

0911090104杨文博《学生上课签到系统》

一、题目描述

1、当前学生信息:

通过结构体structEmpk来保存学生学号,姓名,性别,班级职务,寝室地址,电话,出生年月和缺课次数等相关信息。

2、学生信息查询:

输入一个学生学号,在文件中查找此学生,若找到则输出此学生的全部信息;若找不到则输出查找失败的信息.

3、输出全部学生信息。

 

二、功能分析

1、输入初始的学生信息:

其中包括学生的学号、姓名和性别,班级职务,寝室地址,电话,出生年月以及缺课次数等相关信息;可用函数inputEmpInfo()来实现此操作。

2、查询模块:

可用open()来实现。

找到就输出此学生的全部信息。

3、输出学生的信息:

通过学生的学号来查看学生姓名、性别、班级职务、寝室地址、电话、出生年月及缺课次数。

 

三、系统设计

1、程序总体设计

2、界面设计

此系统界面采用图形和数字化菜单设计。

主界面设计如下:

学生上课签到系统

请选择相应的数字执行相应的功能:

1:

输入数据

2:

插入数据

3:

删除数据

4:

显示数据

5:

查询数据

6:

统计数据

0:

退出系统

3、数据结构设计:

 程序设计中用到的结构体类型:

 学生信息结构体类型:

typedefstructEmpk

{intEmpNum;

  charEmpName[8];

  charSex;

  charPosition[12];

  structTell;

  charDay;

  charYear;

}

 

 

四、附件源程序       

#include

#include

#include

#include

typedefstructEmpk

{ int EmpNum;       // 学生学号

  charEmpName[8];   //学生姓名

  char Sex;         // 性别 女 男

 charPosition[12];   // 班级职务

 charAddress[12];   //寝室地住址

 structTell;         //电话

 charDay;          //出生年月

 charYear;         //缺课次数 1-02-1-5 3->5

}Emp;

Empemp[100];

Emps[1];

 

voidopen()

{inti;

 FILE*fp;

if((fp=fopen("d:

\\bkdat","rb+"))==NULL)

{printf("cannotdoit!

\n");

exit(0); 

}

for(i=0;i<100;i++)

 {if(fread(&emp[i],sizeof(Emp),1,fp)==EOF)

{printf("输出失败\n");

 exit(0);

 }

 }

fclose(fp);

}

 voidclose()

{inti;

 FILE*fp;

if((fp=fopen("d:

\\bkdat","wb+"))==NULL)

{printf("cannotdoit!

\n");

exit(0);

}

for(i=0;i<100;i++)

fwrite(&emp[i],sizeof(Emp),1,fp);

fclose(fp);

}

 voidinputEmpInfo()

{inti,k;

voidopen();

for(i=0;i<100;i++)

{printf("请输入学生学号:

");

scanf("%d",&emp[i].EmpNum);

printf("\n请输入学生姓名:

");

scanf("%s",emp[i].EmpName);

printf("\n请输入性别女 男:

");

scanf("%d",&emp[i].Sex);

printf("\n请输入班级职务:

");

scanf("%s",emp[i].Position);

printf("\n请输入寝室地址:

");

scanf("%s",emp[i].Address);

printf("\n请输入电话:

");

scanf("%d",&emp[i].Tell);

printf("\n请输入出生年月:

");

scanf("%d",&emp[i].Day);

printf("\n请输入缺课次数 1-0 2-1-5 3->5");

scanf("%d",&emp[i].Year);

printf("继续?

(1.y2.n)");

scanf("%d",&k);

if(k==2)break;

}

close();

}

 voidadd()

{inti=0;

voidopen();

while(emp[i].EmpNum!

=0)i++;

printf("请输入学生学号:

");

scanf("%d",&emp[i].EmpNum);

printf("\n请输入学生姓名:

");

scanf("%s",emp[i].EmpName);

printf("\n请输入性别女  男:

");

scanf("%d",&emp[i].Sex);

printf("\n请输入班级职务:

");

scanf("%s",emp[i].Position);

printf("\n请输入寝室地址:

");

scanf("%s",emp[i].Address);

printf("\n请输入电话:

");

scanf("%d",&emp[i].Tell);

printf("\n请输入出生年月:

");

scanf("%d",&emp[i].Day);

printf("\n请输入缺课次数1-02-1-5 3->5:

");

scanf("%d",&emp[i].Year);

close();

}

 voidshow()

{intj;

for(j=0;emp[j].EmpNum!

=0;j++)

{

printf("\n----------学生信息------------\n");

printf("学生学号:

%d\n",emp[j].EmpNum);

printf("学生姓名:

%s",  emp[j].EmpName);

printf("\n性别 女  男:

%d", emp[j].Sex);

printf("\n班级职务:

%s", emp[j].Position);

printf("\n寝室地址:

%s", emp[j].Address);

printf("\n电话:

%d", emp[j].Tell);

printf("\n出生年月:

%d", emp[j].Day);

printf("\n缺课次数1-0 2-1-5 3->5 :

%d",emp[j].Year);

}

}

 voiddeleteEmp()

{intj,k,m=1,d,i=0;

open();

printf("请输入要删除的学生学号:

\n");

scanf("%d",&d);

for(j=0;emp[j].EmpNum!

=0;j++)

{if(emp[j].EmpNum==d)

{s[0]=emp[j];

for(k=j;emp[j].EmpNum!

=0;k++)

emp[k]=emp[k+1];

i++;

}

}

printf("%d",i);

/*if(i==0)

{printf("签到系统中没有该学生记录!

!

!

\n");

return;

}*/

close();

printf("删除成功\n");

}

 voidfindByEmpName()

{intj,i,k=0;

 FILE*fp;

voidopen();

printf("请输入所要的学生学号:

\n");

scanf("%d",&i);

for(j=0;emp[j].EmpNum!

=0;j++)

{if(emp[j].EmpNum==i)

{printf("\n---------学生信息-----------\n");

printf("学生学号:

%d\n",emp[j].EmpNum);

printf("学生姓名:

%s",  emp[j].EmpName);

printf("\n性别 女  男:

%d", emp[j].Sex);

printf("\n班级职务:

%s", emp[j].Position);

printf("\n寝室地址:

%s", emp[j].Address);

printf("\n电话:

%d", emp[j].Tell);

printf("\n出生年月:

%d", emp[j].Day);

printf("\n缺课次数1-0 2-1-53->5:

%d",emp[j].Year);

k++;

}

}

if(k==0)

printf("没有此学生记录!

!

!

");

close();

}

 voidtong()

{intt1=0,t2=0,t3=0,j;

FILE*fp;

Emp*p;

p=(Emp*)malloc(sizeof(Emp));

if((fp=fopen("d:

\\bkdat","rb+"))==NULL)

{printf("cannotdoit!

\n");

exit(0);

}

for(j=0;j<100;j++)

{fread(p,sizeof(Emp),1,fp);

if(p->EmpNum==0)break;

if(1==p->Year) t1++;

if(2==p->Year) t2++;

if(3==p->Year) t3++;

}

printf("1-0,1-5,>5学生的人数分别是%4d,%4d,%4d",t1,t2,t3);

fclose(fp);

free(p);

}

 voidfile()

{inti;

open();

for(i=0;i<100;i++)

{emp[i].EmpNum=0;

}

close();

}

 voidmenu()

{

 printf("\n\n--------------------------------\n");

 printf("请选择操作的种类:

\n");

 printf("1----输入:

完成学生信息的输入\n");

 printf("2----插入:

完成学生信息的插入;\n");

 printf("3----删除:

完成学生信息的删除;\n");

 printf("4----显示:

显示所有学生的信息; \n");

 printf("5----查询:

查询缺课学生人数 \n");

 printf("6----统计:

 统计缺课学生人数\n");

 printf("0----退出程序。

  \n");

}

 intmain()

{

intop,choice=1;

while(choice==1)

 { menu();

  scanf("%d",&op);

  switch(op)

{case1:

inputEmpInfo();break;

case2:

 add();    break;

case3:

deleteEmp();  break;

case4:

show();    break;

case5:

findByEmpName();break;

case6:

 tong();     break;

case0:

printf("欢迎使用学生上课签到系统,再见!

!

!

");return0;

}

}

}

 

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

当前位置:首页 > PPT模板 > 商务科技

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

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