您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 绩效管理 > 学生考勤系统C语言课程设计
1/23《程序设计》课程设计说明书课程名称《程序设计》设计题目C语言课程设计学生考勤系统专业班级学生姓名指导教师起止日期2013年6月8日至2013年6月14日福建林业职业技术学院自动化工系2/23目录第1章设计目的……………………….第2章总体设计…………………………第3章详细设计…………………………第4章调试与测试………………………第5章总结与体会………………………附:源程序清单和执行结果……………………………..3/23第1章设计目的本次C语言课程设计是对本学期程序设计基础课程的实际应用,也算是对所学知识的一次检验,通过本次课程设计能达到的目的如下:1.巩固和加深对C课程基本内容和理论知识的理解和掌握。2.掌握C语言编译和程序调试的基本技能。3.利用C语言进行基本的程序设计从而逐步了解文件的一些相关操作和掌握函数的使用技巧,包括函数类型的选择,含参数的传递方式。4.掌握使用数组,指针,引用,文件等编译的方法,提高运用C语言解决实际问题的能力。5.通过对学生考勤系统的设计、编写源代码,以及对C语言中各个语法和函数的使用,使得对比较复杂的结构体、链接、文件的操作更加熟悉。6.通过课程设计,将本学期所学知识与实际应用联系和结合起来,培养自己的动手能力,以及加强各学科之间的联系,从而提高个人的团队意识,增强团队之间协调和配合第2章总体设计2.1学生考勤信息记录系统的要求通过该系统实现对学生考勤信息进行创建、录入、修改、查询、保存等操作的管理。实验考勤信息包括学生姓名,学号,学科种类,各科的考勤信息。主要功能:1)、能够完成对考勤的录入和修改2)、创建一个班级的信息3)、设备的查询4)、将考勤信息保存到文件中2.2流程图根据设计要求,画出如下流程图:开始菜单24/232.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();1.录入2.查询13.创建4.修改5.查询26.退出结束5/23第3章详细设计3.1函数以及调用关系voidmune_1();/*菜单函数1*/voidmune_2()/*菜单函数2*/123456BreakBreakBreakBreakBreakbreakvoidenter(void);/*录入函数*/退出系统Menu_2开始录入记录查询个人创建信息修改信息查询整班结束输入班级和学生学号p-num==a开始6/23②nvoidsearch_1(void);/*查询个人信息*/真假输入学生本节课息返回菜单2高等数学大学英语大学物理马克思C语言大学口语大学体育开始p-num==a输出此人的考勤信息输入此人所在班级和学号ay/n退出7/23voidsearch_2(void);/*查询班级信息*/voidmodify(void);/*修改函数*/真假输入你要修改的班级和座位号ap-num==a重新输入这位学生的考勤信息开始返回菜单2开始输入要查询的班别输出此班的考勤信息返回菜单28/23voidsave(structStudent*,char[]);structStudent*load(charfilename[])开始数据写入文件关闭文件退出打开文件开始打开文件读出数据返回菜单29/233.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);退出10/23mune_2();2switch结构switch(sub){case1:{p-math+=num;}break;case2:{p-English+=num;}break;case3:{p-physics+=num;}break;case4:{p-Mks+=num;}break;case5:{p-C+=num;}break;case6:{p-teal+=num;}break;case7:{p-PE+=num;}break;}3while结构while(p!=NULL){if(p-num==a){printf(\n\t\t请重新输入高等数学缺勤节数:);scanf(%d,&p-math);printf(\n\t\t请重新输入大学英语缺勤节数:);scanf(%d,&p-English);printf(\n\t\t请输入大学物理缺勤节数:);scanf(%d,&p-physics);printf(\n\t\t请重新输入马克思主义基本原理与概论缺勤节数:);scanf(%d,&p-Mks);printf(\n\t\t请重新输入C语言缺勤节数:);scanf(%d,&p-C);printf(\n\t\t请重新输入英语口语缺勤节数:);scanf(%d,&p-teal);printf(\n\t\t请重新输入体育缺勤节数目:);scanf(%d,&p-PE);11/23flag=1;save(head,cla);printf(\n\t\t修改成功!\n\t\t);break;}p=p-next;}第4章调试与测试4.1调试执行程序时,显示如下信息选择不同的选项,执行相应的功能。12/23(选择3),创建一个班级的基本信息。(选择1),录入本次课考勤情况。选择要修改的科目的界面:输入缺勤同学和缺勤节数:13/23结束输入则输入n后返回菜单2:(选择2),查询学生个人考勤信息。(选择4),修改学生个人考勤信息。(选择5),查看一个班级的考勤信息。14/23(选择6),退出学生考勤信息系统。第5章总结与体会三周的课程设计已经结束了。回想学习C语言的过程中,既有快乐又有烦恼。从领到书的那一刻,我就很郁闷,《C语言程序设计》到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。通过半个学期的学习,我掌握了基本知识。下学期开始时,被通知要进行课程设计。当时有点懵,感觉学的东西很少,很零散,不知该怎么连到一起,就要课程设计,是不是太难为我们了。第一天基本上都是在看书,把基本知识再熟悉一遍。到了下午的时候,看了很多练习题,从这些练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,接下来,我们又不得不再次陷入困境。在整个程序的编写过程中,最难的就是修改和删除这两个模块,这也是我们要解决的重点问题。开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,我们组的其他人,帮助了我,完成了修改和删除,这让我认识到团队的力量。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最后,两个程序相互组合,互补,大功告成虽然设计时完成了,但是我觉得其中还是有一些不足之处:15/231.警告句。程序中缺少一些警告句,例如:“是否真的删除(y/n)?”。2.重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。3.选择单一。我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。短短的几周课程设计结束了,但是这段时间里,我又学到了更多C知识,如:对象数组,string类,文件流,链表以及文件对链表的操作等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全,也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。通过这次课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这几周过的挺充实!*附:源程序清单和执行结果#includestdio.h#includestdlib.h#includeconio.h#includestring.h#defineLENsizeof(structStudent)structStudent{intnum;charname[15];charsex[4];intmath,English,physics,Mks,C,teal,PE;structStudent*next;};intn;voidmain(){voidcreat(void);voidsave(structStudent*,char[]);structStudent*load(char[]);voidenter(void);/*录入函数*/voidsearch_1(void);/*查询函数_1*/voidsearch_2(void);/*查询函数_2*/voidmodify(void);/*修改函数*/voidback(void);/*退出函数*/voidmune_1();/*界面-1*/voidmune_2();/*界面-2*/mune_1();mune_2();printf(\n);}16/23voidmune_1(){printf(\n\n\n\n\n\n);printf(\t************************************************************);printf(\t\t\t********************);printf(\t\t\t◇********欢迎使用班级考勤系统********◇);printf(\t\t\t********************);printf(\n\t************************************************************\n\n\n);printf(================================================================================);printf(\n\n\n\t\t\t\t按任意键进入\n\t\t\t\t\t);getch();system(cls);}voidmune_2(){intoption,ch;/*定义一个选项的数据类型*/printf(\n\n\n);/*制作的一个漂亮的选择界面*/printf(\t***************************************************************\n);printf(\t*\t\t\t\t\t\t\t*\n);printf(\t*\t\t\t\t\t\t\t*\n);printf
本文标题:学生考勤系统C语言课程设计
链接地址:https://www.777doc.com/doc-4248371 .html