最新学生考勤系统C语言课程设计Word格式.docx
- 文档编号:8131731
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:33
- 大小:277.30KB
最新学生考勤系统C语言课程设计Word格式.docx
《最新学生考勤系统C语言课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《最新学生考勤系统C语言课程设计Word格式.docx(33页珍藏版)》请在冰点文库上搜索。
结束
2.3设置的主要函数
voidcreat(void);
voidsave(structStudent*,char[]);
structStudent*load(char[]);
voidenter(void);
/*录入函数*/
voidsearch_1(void);
/*查询函数_1*/
voidsearch_2(void);
/*查询函数_2*/
voidadd(void);
voidmodify(void);
/*修改函数*/
voidback(void);
/*退出函数*/
voidmune_1();
/*界面-1*/
voidmune_2();
/*界面-2*/
mune_1();
mune_2();
第3章详细设计
3.1函数以及调用关系
voidmune_1();
/*菜单函数1*/
voidmune_2()/*菜单函数2*/
123456
BreakBreakBreakBreakBreakbreak
voidenter(void);
②
n
voidsearch_1(void);
/*查询个人信息*/
真假
voidsearch_2(void);
/*查询班级信息*/
voidmodify(void);
真假
voidsave(structStudent*,char[]);
structStudent*load(charfilename[])
退出
3.2结构的应用
If…else结构和while结构嵌套结构:
while(p1->
num!
=0)
{
n=n+1;
if(n==1)
head=p1;
elsep2->
next=p1;
p2=p1;
p1=(structStudent*)malloc(LEN);
scanf("
%s%d%s"
p1->
name,&
p1->
num,p1->
sex);
p1->
math=p1->
English=p1->
physics=p1->
Mks=p1->
C=p1->
teal=p1->
PE=0;
}
p2->
next=NULL;
p=head;
while(p!
=NULL)
fwrite(p,LEN,1,fp);
p=p->
next;
fclose(fp);
printf("
\t\t\t创建成功,按任意键返回主菜单\n"
);
getch();
system("
cls"
2switch结构
switch(sub)
{
case1:
{p->
math+=num;
}break;
case2:
English+=num;
case3:
physics+=num;
case4:
Mks+=num;
case5:
C+=num;
case6:
teal+=num;
case7:
PE+=num;
}
3while结构
if(p->
num==a)
{
printf("
\n\t\t请重新输入高等数学缺勤节数:
"
%d"
&
p->
math);
\n\t\t请重新输入大学英语缺勤节数:
English);
\n\t\t请输入大学物理缺勤节数:
physics);
\n\t\t请重新输入马克思主义基本原理与概论缺勤节数:
Mks);
\n\t\t请重新输入C语言缺勤节数:
C);
\n\t\t请重新输入英语口语缺勤节数:
teal);
\n\t\t请重新输入体育缺勤节数目:
PE);
flag=1;
save(head,cla);
\n\t\t修改成功!
\n\t\t"
break;
}
第4章调试与测试
4.1调试
执行程序时,显示如下信息
选择不同的选项,执行相应的功能。
(选择3),创建一个班级的基本信息。
(选择1),录入本次课考勤情况。
选择要修改的科目的界面:
输入缺勤同学和缺勤节数:
结束输入则输入n后返回菜单2:
(选择2),查询学生个人考勤信息。
(选择4),修改学生个人考勤信息。
(选择5),查看一个班级的考勤信息。
(选择6),退出学生考勤信息系统。
第5章总结与体会
三周的课程设计已经结束了。
回想学习C语言的过程中,既有快乐又有烦恼。
从领到书的那一刻,我就很郁闷,《C语言程序设计》到底事学什么的,有什么用。
刚开始上课时,还在迷茫这门课程是用来做什么的。
不过,这些感受都是在对这门课程不了解的情况下产生的。
后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。
尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。
通过半个学期的学习,我掌握了基本知识。
下学期开始时,被通知要进行课程设计。
当时有点懵,感觉学的东西很少,很零散,不知该怎么连到一起,就要课程设计,是不是太难为我们了。
第一天基本上都是在看书,把基本知识再熟悉一遍。
到了下午的时候,看了很多练习题,从这些练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。
第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。
但是,接下来,我们又不得不再次陷入困境。
在整个程序的编写过程中,最难的就是修改和删除这两个模块,这也是我们要解决的重点问题。
开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。
困难之时,我们组的其他人,帮助了我,完成了修改和删除,这让我认识到团队的力量。
这样的话,整个程序基本上全部完成了,就剩下完善工作了。
我们组写了两个程序,最后,两个程序相互组合,互补,大功告成
虽然设计时完成了,但是我觉得其中还是有一些不足之处:
1.警告句。
程序中缺少一些警告句,例如:
“是否真的删除(y/n)?
”。
2.重名的情况。
由于考虑的不周全,没有设计遇到重名的情况该怎么处理。
3.选择单一。
我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。
整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。
短短的几周课程设计结束了,但是这段时间里,我又学到了更多C知识,如:
对象数组,string类,文件流,链表以及文件对链表的操作等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全,也看到了团队精神和互帮互助的重要性。
这一点会让我终生受益。
通过这次课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这几周过的挺充实!
*附:
源程序清单和执行结果
#include<
stdio.h>
stdlib.h>
#include<
conio.h>
string.h>
#defineLENsizeof(structStudent)
structStudent
{
intnum;
charname[15];
charsex[4];
intmath,English,physics,Mks,C,teal,PE;
structStudent*next;
};
intn;
voidmain()
voidback(void);
\n"
}
voidmune_1()
\n\n\n\n\n\n"
\t************************************************************"
\t\t\t********************"
\t\t\t◇********欢迎使用班级考勤系统********◇"
\n\t************************************************************\n\n\n"
================================================================================"
\n\n\n\t\t\t\t<
按任意键进入>
\n\t\t\t\t\t"
voidmune_2()
intoption,ch;
/*定义一个选项的数据类型*/
\n\n\n"
/*制作的一个漂亮的选择界面*/
\t***************************************************************\n"
\t*\t\t\t\t\t\t\t*\n"
\t*1、录入本次课考勤情况\t2、查询学生考勤信息\t*\n"
\t*3、创建学生信息\t\t4、修改学生信息\t*\n"
\t*5、查看班级考勤情况\t6、退出考勤系统\t*\n"
\t\t\t请输入您所需的操作(1~6):
\n\t\t\t\t"
while
(1)
scanf("
option);
switch(option)
{ch=getchar();
system("
enter();
case2:
search_1();
case3:
creat();
case4:
modify();
case5:
search_2();
case6:
back();
default:
\t\t\t输入错误,请重新输入!
!
printf("
ch=getchar();
voidsave(structStudent*head,charfilename[])
FILE*fp;
structStudent*p=head;
if((fp=fopen(filename,"
wb"
))==NULL)
cannotopenfile\n"
exit(0);
structStudent*head,*p1,*p2;
head=NULL;
p1=NULL;
rb"
while(!
feof(fp))
{
p2=(structStudent*)malloc(LEN);
if(fread(p2,LEN,1,fp)==1)
if(head==NULL)
head=p2;
if(p1)
p1->
next=p2;
p1=p2;
p1->
return(head);
voidenter()/*录入函数*/
structStudent*head,*p;
charselect='
y'
cla[10];
intsub,stu,num,flag=0;
请输入上课班级:
%s"
cla);
strcat(cla,"
.dat"
p=head=load(cla);
while(select=='
||select=='
Y'
)
\t********************************\n"
\t*1、高等数学\t\t2、大学英语\t\t*\n"
\t*3、大学物理\t\t4、马克思基本原理概论*\n"
\t*5、C程序设计基础\t6、教师口语\t\t*\n"
\t*7、体育\t\t\t\t\t\t*\n"
\t\t\t请输入科目选项(1~7):
sub);
while
(1)
if(sub>
0&
&
sub<
8)
break;
else
printf("
\t\t\t输入错误,请重新输入\n\t\t\t\t"
scanf("
system("
请输入本次课缺席同学的座号:
stu);
请输入该同学的缺课节数:
num);
while(p!
if(p->
num==stu)
switch(sub)
p=p->
\n\n\t\t******输入成功******!
是否继续输入(y\\n):
%c"
select);
save(head,cla);
voidsearch_1(void)/*查询个人信息*/
intnum,flag=0;
请输入要查询同学的座号:
num==num)
\n\n"
****************************************\n"
座号姓名性别数学英语物理马克思C语言教师口语体育\n"
%3d%8s%4s%5d%5d%5d%5d%3d%7d%8d\n"
p->
num,p->
name,p->
sex,
p->
math,p->
English,p->
physics,p->
Mks,p->
C,p->
teal,p->
flag=1;
if(flag==0)
\t\t!
没有这个学生信息,请核对后再输入!
voidsearch_2(void)/*查询某班级信息*/
charcla[10];
请输入您要查询的班级名:
gets(cla);
\n\t\t\t%s班的考勤情况\n\n"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 学生 考勤 系统 语言 课程设计