C++学生考勤系统含源代码Word格式.docx

上传人:b****5 文档编号:20652045 上传时间:2023-01-24 格式:DOCX 页数:17 大小:59.68KB
下载 相关 举报
C++学生考勤系统含源代码Word格式.docx_第1页
第1页 / 共17页
C++学生考勤系统含源代码Word格式.docx_第2页
第2页 / 共17页
C++学生考勤系统含源代码Word格式.docx_第3页
第3页 / 共17页
C++学生考勤系统含源代码Word格式.docx_第4页
第4页 / 共17页
C++学生考勤系统含源代码Word格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C++学生考勤系统含源代码Word格式.docx

《C++学生考勤系统含源代码Word格式.docx》由会员分享,可在线阅读,更多相关《C++学生考勤系统含源代码Word格式.docx(17页珍藏版)》请在冰豆网上搜索。

C++学生考勤系统含源代码Word格式.docx

学生姓名、缺课日期、第几节课、课程名称、缺课类型。

例如:

张三2008-04-293-4C++程序设计实验迟到

李四2008-04-283-4C++程序设计旷课

(2).修改某个学生的缺课记录:

可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。

(3).查询某个学生的缺课情况

(4).统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序

(5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序(6).系统以菜单方式工作。

2、功能详细描述及框图

这是一个小型的学生考勤系统,它使用类来实现,充分体现面向对象的程序设计特点。

它可以实现的主要功能有:

录入学生的缺课记录;

修改某个学生的缺课记录;

查询某个学生的缺课情况;

统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;

统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;

框图:

3、主要功能逻辑过程和实现算法

此程序用到了大模块,分别是:

主菜单模块;

录入模块;

修改模块;

查询模块;

查找人数模块;

查找次数,每个模块可以实现不同的功能;

(1)、主菜单模块:

对本程序的功能进行说明,然后出现同学通迅录的主界面;

(2)、录入模块:

录入学生的缺课记录:

(3)、查询模块:

查询某个学生的缺课情况

in>

>

name;

m.read((char*)&

x,sizeof(x));

while(!

m.eof())//原文件到头结束

{

if(!

strcmp(name,x.getn()))

{

cout<

<

"

x.getn()<

endl;

日期:

x.getd()<

课时:

x.getk()<

课程名称:

x.getm()<

缺课类型:

x.getl()<

flag=1

;

}

(5)、查找次数模块:

统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序

(6)、查找人数模块:

统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序。

5、界面设计

(1)主菜单界面

6、系统测试

(1)输入记录界面

(2)修改记录界面

(3)旷课人名

(4)旷课课程名称

(5)退出界面

三、小组成员分工说明

独立完成

四、课程设计总结或结论

1课程设计过程中出现的技术难点和解决方法:

技术难点:

对文件的使用不熟悉,不会使用。

解决方法:

通过到图书馆查阅资料,以及课本上的讲解和老师的帮助让我会应用文件进行数据的输出与写入,从而完善了我的程序。

2课程设计期间的主要收获:

这是上大学以来第一次作课程设计,刚开始有点不知所措,很茫然,但后来,开始有了思路,作起来也容易多了,虽然会在这呆一整天,但感觉时间过得很快。

本次作课程设计让我更好的理解C++语言的精髓,也更加体会到了,只有理论与实践相结合才是真正的学会,而不是只有打高分才是真的学好,这次课程设计让我掌握了C++的语言流程,初步了解编程的思路,并且类、对象等模块更加深了了解的,特别是使用文件这块,我认为文件很难,刚开始,不会使用,但后来查了很多资料,也明白了应该怎么使用,作起来就顺手多了。

作课程设计的目的就是要提高我们的实践能力;

所以,我会以自己所掌握的知识高水准的完成此次设计任务。

源代码:

#include"

fstream.h"

iostream.h"

string.h"

classstudent//声明一个类为people

{

private:

charday[20];

charname[20];

intn;

charkname[20];

charlx[20];

public:

//公有数据成员

voidsetn()

{

cin>

//输入姓名

}

voidsetd()

day;

//输入日期

voidsetk()

n;

//输入课时

voidsetm()

kname;

//输入课程名称

voidsetl()

lx;

//输入缺课类型

char*getn()

returnname;

char*getd()

returnday;

intgetk()

returnn;

char*getm()

returnkname;

char*getl()

returnlx;

};

voidluru()

intj,i;

studentp[100];

fstreamfile;

file.open("

D:

\\学生考勤.txt"

ios:

:

in|ios:

out);

//文件存盘

cout<

〓请输入要录入几名同学信息:

cin>

j;

\t\t\t请输入"

j<

名同学信息:

for(i=0;

i<

i++)

cout<

p[i].setn();

p[i].setd();

p[i].setk();

名称:

p[i].setm();

类型:

p[i].setl();

file.write((char*)&

p[i],sizeof(p[i]));

//写文件

^_^成功输入同学信息!

请返回!

file.close();

//关闭文件

//查询信息

voidchaxun()//查询函数的调用

studentx;

charname[20],z;

fstreamm;

a1:

inta=0,flag=0;

//goto语句

m.open("

in);

请输入您要查询的同学姓名:

flag=1;

break;

}

m.close();

if(flag==0)

 ̄_ ̄对不起,您查询的同学无缺课现象,请返回!

如继续查询请输入Y,否则按任意键返回"

z;

if(z=='

Y'

||z=='

y'

gotoa1;

}

//修改函数的调用

voidxiugai()/*修改成员函数*/

studentl;

charxname[20],w;

fstreamxfile;

xfile.open("

xfile.read((char*)&

l,sizeof(l));

//读文件到L里

请输入您要修改的同学姓名:

xname;

while(!

xfile.eof())//调用EOF判断函数

if(!

strcmp(xname,l.getn()))

姓名:

l.getn()<

日期:

l.getd()<

课时:

l.getk()<

课程名称:

l.getm()<

缺课类型:

l.getl()<

确认修改请按Y,否则按任意键"

cin>

w;

if(w=='

||w=='

{

l.setn();

cout<

l.setd();

l.setk();

l.setm();

l.setl();

xfile.write((char*)&

else

{

break;

xfile.read((char*)&

xfile.close();

voidrenci()

inti=0,j=1,x=0,y=0;

students;

fstreamd;

d.open("

d.read((char*)&

s,sizeof(s));

i=1;

早退人数为:

x<

请假人数为:

y<

旷课人数为:

迟到人数为:

在"

s.getd()<

有:

{

s.getm()<

d.close();

voidcishu()

studentm;

fstreamb;

b.open("

b.read((char*)&

m,sizeof(m));

早退次数为:

请假次数为:

旷课次数为:

迟到次数为:

m.getd()<

m.getn()<

b.close();

main()

{

inti;

while

(1)

cout<

\t\t★★★★★★★★★★★★★★★★★★★★★★★★"

\t\t\t☆☆欢迎进入学生考勤系统☆☆"

\t\t★★"

\t\t★※1、录入学生的缺课记录;

★"

\t\t★※2、修改某个学生的缺课记录;

\t\t★※3、查询某个学生的缺课情况★"

\t\t★※4、旷课学生姓名及旷课次数★"

\t\t★※5、有学生旷课人次★"

\t\t★※6.退出★"

<

endl<

\t\t"

\t※******请选择您所需要的信息******※"

cin>

i;

switch(i)

case1:

luru();

break;

case2:

xiugai();

case3:

chaxun();

case4:

cishu();

case5:

renci();

case6:

break;

if(i==6)

endl<

\t\t\t退出考勤系统,欢迎下次使用!

cout<

endl;

return0;

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

当前位置:首页 > 高等教育 > 理学

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

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