学生考勤系统C语言课程设计_第1页
学生考勤系统C语言课程设计_第2页
学生考勤系统C语言课程设计_第3页
学生考勤系统C语言课程设计_第4页
学生考勤系统C语言课程设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计课程设计说明书课程名称 程序设计 设计题目 C语言课程设计学生考勤系统 专业班级 学生姓名 指导教师 起止日期2013年6月8日至2013年6月14日福建林业职业技术学院自动化工系目录第1章 设计目的 .第2章 总体设计第3章 详细设计第4章 调试与测试第5章 总结与体会附:源程序清单和执行结果.第1章 设计目的 本次C语言课程设计是对本学期程序设计基础课程的实际应用,也算是对所学知识的一次检验,通过本次课程设计能达到的目的如下:1.巩固和加深对C课程基本内容和理论知识的理解和掌握。2.掌握C语言编译和程序调试的基本技能。3.利用C语言进行基本的程序设计从而逐步了解文件的一些相关操作和

2、掌握函数的使用技巧,包括函数类型的选择,含参数的传递方式。4.掌握使用数组,指针,引用,文件等编译的方法,提高运用C语言解决实际问题的能力。5.通过对学生考勤系统的设计、编写源代码,以及对C语言中各个语法和函数的使用,使得对比较复杂的结构体、链接、文件的操作更加熟悉。6.通过课程设计,将本学期所学知识与实际应用联系和结合起来,培养自己的动手能力,以及加强各学科之间的联系,从而提高个人的团队意识,增强团队之间协调和配合第2章 总体设计2.1学生考勤信息记录系统的要求通过该系统实现对学生考勤信息进行创建、录入、修改、查询、保存等操作的管理。实验考勤信息包括学生姓名,学号,学科种类,各科的考勤信息。

3、主要功能:1)、能够完成对考勤的录入和修改2)、创建一个班级的信息3)、设备的查询4)、将考勤信息保存到文件中2.2流程图根据设计要求,画出如下流程图:开 始 菜 单2 4修改6.退出5查询23创建2查询11录入结 束2.3设置的主要函数void creat(void);void save(struct Student *,char );struct Student *load(char );void enter(void); /*录入函数*/void search_1(void); /*查询函数_1*/void search_2(void); /*查询函数_2*/void add(void)

4、;void modify(void); /*修改函数*/void back(void); /*退出函数*/void mune_1(); /*界面-1*/void mune_2(); /*界面-2*/mune_1();mune_2();第3章 详细设计3.1函数以及调用关系void mune_1(); /*菜单函数1*/void mune_2() /*菜单函数2*/开始录入记录查询个人创建信息修改信息查询整班结束Menu_2退出系统 1 2 3 4 5 6 Break Break Break Break Break break void enter(void); /*录入函数*/开始 输入班级和

5、学生学号 p->num=a 大学体育大学口语C语言大学物理马克思大学英语高等数学 输入学生本节课息y/n 返回菜单2 n 退出开始void search_1(void); /*查询个人信息*/输入此人所在班级和学号ap->num=a 真 假输出此人的考勤信息 返回菜单2开始void search_2(void); /*查询班级信息*/输入要查询的班别输出此班的考勤信息返回菜单2void modify(void); /*修改函数*/开始 输入你要修改的班级和座位号ap->num=a 真 假重新输入这位学生的考勤信息返回菜单2void save(struct Student *,

6、char );退出关闭文件开始打开文件数据写入文件struct Student *load(char filename)开始关闭文件读出数据打开文件退 出3.2结构的应用Ifelse结构和 while 结构嵌套结构:while(p1->num!=0)n=n+1;if(n=1)head=p1;else p2->next=p1;p2=p1;p1=(struct Student *)malloc(LEN); scanf("%s%d%s",p1->name,&p1->num,p1->sex);p1->math=p1->English

7、=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("ttt创建成功,按任意键返回主菜单n");getch(); system("cls");mune_2();2 switch结构switch(sub) case 1: p->math+=num;break;case 2: p->English+=num

8、;break;case 3: p->physics+=num;break;case 4: p->Mks+=num;break;case 5: p->C+=num;break;case 6: p->teal+=num;break;case 7: p->PE+=num;break;3while结构 while(p!=NULL) if(p->num=a)printf("ntt请重新输入高等数学缺勤节数:"); scanf("%d",&p->math); printf("ntt请重新输入大学英语缺勤节数

9、:"); scanf("%d",&p->English); printf("ntt请输入大学物理缺勤节数:"); scanf("%d",&p->physics); printf("ntt请重新输入马克思主义基本原理与概论缺勤节数:"); scanf("%d",&p->Mks); printf("ntt请重新输入C语言缺勤节数:"); scanf("%d",&p->C); printf(&qu

10、ot;ntt请重新输入英语口语缺勤节数:"); scanf("%d",&p->teal); printf("ntt请重新输入体育缺勤节数目:"); scanf("%d",&p->PE); flag=1;save(head,cla); printf("ntt修改成功!ntt");break;p=p->next;第4章 调试与测试4.1调试执行程序时,显示如下信息选择不同的选项,执行相应的功能。(选择3),创建一个班级的基本信息。(选择1),录入本次课考勤情况。选择要修改的科

11、目的界面:输入缺勤同学和缺勤节数:结束输入则输入n后返回菜单2:(选择2),查询学生个人考勤信息。(选择4),修改学生个人考勤信息。(选择5),查看一个班级的考勤信息。(选择6),退出学生考勤信息系统。第5章 总结与体会三周的课程设计已经结束了。回想学习C语言 的过程中,既有快乐又有烦恼。从领到书的那一刻,我就很郁闷,C 语言程序设计到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时

12、觉得很好奇,想真正的学好这门课程。通过半个学期的学习,我掌握了基本知识。下学期开始时,被通知要进行课程设计。当时有点懵,感觉学的东西很少,很零散,不知该怎么连到一起,就要课程设计,是不是太难为我们了。第一天基本上都是在看书,把基本知识再熟悉一遍。到了下午的时候,看了很多练习题,从这些练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,接下来,我们又不得不再次陷入困境。在整个程序的编写过程中,最难的就是修改和删除这两个模块,这也是我们要解决的重点问题。开

13、始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,我们组的其他人,帮助了我,完成了修改和删除,这让我认识到团队的力量。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最后,两个程序相互组合,互补,大功告成虽然设计时完成了,但是我觉得其中还是有一些不足之处:1. 警告句。程序中缺少一些警告句,例如:“是否真的删除(y/n)?”。2. 重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。3. 选择单一。我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名

14、的情况。整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。短短的几周课程设计结束了,但是这段时间里,我又学到了更多C 知识,如:对象数组,string类,文件流,链表以及文件对链表的操作等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全,也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。通过这次课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这几周过的挺充实!*附:源程序清单和执行结果#include<stdio.h>#include<stdlib.h>#include <conio.h>#include&l

15、t;string.h>#define LEN sizeof(struct Student)struct Studentint num;char name15;char sex4;int math, English,physics,Mks,C,teal,PE;struct Student *next;int n;void main()void creat(void);void save(struct Student *,char );struct Student *load(char );void enter(void); /*录入函数*/void search_1(void); /*查询

16、函数_1*/void search_2(void); /*查询函数_2*/void modify(void); /*修改函数*/void back(void); /*退出函数*/void mune_1(); /*界面-1*/void mune_2(); /*界面-2*/mune_1();mune_2();printf("n");void mune_1() printf("nnnnnn"); printf("t*"); printf("ttt * * "); printf("ttt* 欢 迎 使 用 班 级

17、 考 勤 系 统 *"); printf("ttt * * "); printf("nt*nnn"); printf("="); printf("nnntttt<按任意键进入>nttttt"); getch(); system("cls");void mune_2()int option,ch; /*定义一个选项的数据类型*/ printf("nnn"); /*制作的一个漂亮的选择界面*/printf("t*n");printf(&q

18、uot;t*ttttttt *n");printf("t*ttttttt *n");printf("t* 1、录入本次课考勤情况t 2、查询学生考勤信息t *n");printf("t*ttttttt *n");printf("t* 3、创建学生信息tt 4、修改学生信息t *n");printf("t*ttttttt *n"); printf("t* 5、查看班级考勤情况 t 6、退出考勤系统t *n");printf("t*ttttttt *n&quo

19、t;);printf("t*ttttttt *n");printf("t*n");printf("n");printf("ttt请输入您所需的操作(16):ntttt");while(1)scanf("%d",&option);switch(option)case 1: ch=getchar();system("cls");enter();break;case 2: ch=getchar();system("cls");search_1();bre

20、ak;case 3: ch=getchar();system("cls");creat();break;case 4: ch=getchar();system("cls");modify();break;case 5: ch=getchar();system("cls");search_2();break;case 6: ch=getchar();system("cls");back();break;default: printf("ttt输入错误,请重新输入!");printf("n

21、tttt");ch=getchar();void save(struct Student *head,char filename) FILE *fp;struct Student *p=head;if(fp=fopen(filename,"wb")=NULL)printf("can not open filen");exit(0);while(p!=NULL)fwrite(p,LEN,1,fp);p=p->next;fclose(fp);struct Student *load(char filename)FILE *fp;struct

22、Student *head,*p1,*p2;head=NULL;p1=NULL;if(fp=fopen(filename,"rb")=NULL)printf("can not open filen");exit(0);while(!feof(fp)p2=(struct Student *)malloc(LEN);if(fread(p2,LEN,1,fp)=1)if(head=NULL)head=p2;if(p1)p1->next=p2;p1=p2;p1->next=NULL;return (head);void enter() /*录入函数*

23、/struct Student *head,*p;char select='y',cla10;int sub,stu,num,flag=0;printf("请输入上课班级:");scanf("%s",cla);strcat(cla,".dat");p=head=load(cla);system("cls");while(select='y'|select='Y')printf("nnn"); printf("t* * * * * * *

24、* * * * * * * * * * * * * * * * * * * * * * * * *n"); printf("t*ttttttt *n"); printf("t*ttttttt *n"); printf("t* 1、高等数学tt 2、大学英语tt *n"); printf("t*ttttttt *n"); printf("t* 3、大学物理tt 4、马克思基本原理概论 *n"); printf("t*ttttttt *n"); printf("

25、;t* 5、C程序设计基础 t 6、教师口语tt *n"); printf("t*ttttttt *n"); printf("t* 7、体育tttttt *n"); printf("t*ttttttt *n"); printf("t*ttttttt *n"); printf("t* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n"); printf("n");printf("tt

26、t请输入科目选项(17):ntttt");scanf("%d",&sub);while(1)if(sub>0&&sub<8)break;elseprintf("ttt输入错误,请重新输入ntttt");scanf("%d",&sub);system("cls"); printf("请输入本次课缺席同学的座号:"); scanf("%d",&stu); printf("n"); printf(&q

27、uot;请输入该同学的缺课节数:"); scanf("%d",&num);while(p!=NULL)if(p->num=stu)switch(sub) case 1: p->math+=num;break;case 2: p->English+=num;break;case 3: p->physics+=num;break;case 4: p->Mks+=num;break;case 5: p->C+=num;break;case 6: p->teal+=num;break;case 7: p->PE+=n

28、um;break;p=p->next; printf("nntt*输入成功*!n");printf("是否继续输入(yn):");scanf("%c",&select);save(head,cla);getch(); system("cls");mune_2();void search_1(void) /*查询个人信息*/struct Student *head,*p;char select='y',cla10;int num,flag=0;printf("请输入上课班级:&

29、quot;);scanf("%s",cla);strcat(cla,".dat");p=head=load(cla);printf("请输入要查询同学的座号:");scanf("%d",&num);system("cls");while(p!=NULL)if(p->num=num)printf("nn");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

30、* * * * * * *n");printf(" 座号 姓名 性别 数学 英语 物理 马克思 C语言 教师口语 体育n");printf(" %3d %8s %4s%5d %5d %5d %5d %3d %7d %8dn",p->num,p->name,p->sex,p->math,p->English,p->physics,p->Mks,p->C,p->teal,p->PE);printf("* * * * * * * * * * * * * * * * * * * *

31、* * * * * * * * * * * * * * * * * * * *n");flag=1;p=p->next;if(flag=0)printf("tt!没有这个学生信息,请核对后再输入!nn");getch(); system("cls");mune_2();void search_2(void) /*查询某班级信息*/char cla10;struct Student *head,*p;printf("请输入您要查询的班级名:");gets(cla);system("cls");prin

32、tf("n ttt%s班的考勤情况nn",cla);strcat(cla,".dat");p=head=load(cla);printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf(" 座号 姓名 性别 数学 英语 物理 马克思 C语言 教师口语 体育n");while(p!=NULL)printf(" %3d %8s %4s%5d %5d %5d %5d %3d %7

33、d %8dn",p->num,p->name,p->sex,p->math,p->English,p->physics,p->Mks,p->C,p->teal,p->PE);p=p->next;printf("n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");getch(); system("cls");mune_2();void modify(void) /*修

34、改函数*/ int a,flag=0;char cla10; struct Student *head,*p;printf("ntt请输入要修改的班级:");scanf("%s",cla);strcat(cla,".dat");p=head=load(cla); printf("ntt请输入要修改的学生的座号:"); scanf("%d",&a);while(p!=NULL) if(p->num=a)printf("ntt请重新输入高等数学缺勤节数:"); sc

35、anf("%d",&p->math); printf("ntt请重新输入大学英语缺勤节数:"); scanf("%d",&p->English); printf("ntt请输入大学物理缺勤节数:"); scanf("%d",&p->physics); printf("ntt请重新输入马克思主义基本原理与概论缺勤节数:"); scanf("%d",&p->Mks); printf("ntt请重新输入C语言缺勤节数:"); scanf("%d",&p->C); printf("ntt请重新输入英语口语缺勤节数:"); scanf("%d",&p->teal); printf("ntt请重新输入体育缺勤节数目:"); scanf("%d",&p->PE); f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论