下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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学生考勤信息记录系统的要求通过该系统实现对学生考勤信息进行创建、录入、修改、查询、保存等操作的管理。实验考勤信息包括学生姓名,学号,学科种类,各科的考勤信息。主要功能:1)、
3、能够完成对考勤的录入和修改2)、创建一个班级的信息3)、设备的查询4)、将考勤信息保存到文件中2.2流程图根据设计要求,画出如下流程图:(、开始void creat(void);void save(struct Student *,char );struct Student *load(char );void enter(void);void search_1(void);void search_2(void);void add(void);void modify(void);void back(void);/*录入函数*/*查询函数_1*/*查询函数_2*/*修改函数*/void mune_
4、1();/*退岀函数*/*界面-1*/void mune_2();mune_1();mune_2();/*界面-2*/第3章详细设计3.1函数以及调用关系void mune_1(); void mune_2()/*菜单函数1*/*菜单函数2*/审创建信息修 改 信 息查 询 整 班退 出 系 统BreakBreakBreakBreak BTeak 'eak结束I.void enter(void);/*录入函数*/n退出void search_1(void); /* 查询个人信息 */开始void search_2(void); /* 查询班级信息 */void modify(void)
5、; /* 修改函数 */假void save(struct Student *,char );' 开始数据写入文件1r关闭文件精选范本1f退出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->
6、;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("ttt 创建成功,按任意键返回主菜单 n"); getch();system("cls");mune_2();2 switch 结构switch(sub)case 1: p-&
7、gt;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+=num;break;3while 结构while(p!=NULL)if(p->num=a)printf("ntt 请重新输入高等数学缺勤节数 :"); scanf("%d",&
8、amp;p->math);printf("ntt 请重新输入大学英语缺勤节数 :"); scanf("%d",&p->English);printf("ntt请输入大学物理缺勤节数:");scanf("%d",&p->physics);printf("ntt请重新输入马克思主义基本原理与概论缺勤节数:");scanf("%d",&p->Mks);printf("ntt 请重新输入C语言缺勤节数:");scan
9、f("%d",&p->C);printf("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调试执行程序时,显示如下信息談迎使用班级考勒炙统o选择不同的选项,执行相
10、应的功能一录人本次谭吾勤情况3、创建学生信息查看班级考勒1况氛查询学生:吾動信息4修改学生信息X退出苦勤索统谴辅入飾需的操作<1> =(诜择1),录入本次课考勤情况高等数学3、犬学沏理£、G程序设计基础%体育狙大学萸语4.马克思基本豆理概论S教师口语输入缺勤同学和缺勤节数:请输人本枚课魏幣同学的理号:§请输人该同学的诀课节数:2M M M-M M .'; 戍功 *«I*M4* 是否继续输入35、结束输入则输入n后返回采单2:一云人本次课考勤情况氛创建学土伐息n.査右刑干级考勤情況緘査询学生考勤仁息挣改学土信息退出考勤齐统*呉座曲男-M弭呉 貝萇
11、 呉負 餐呉具舅 挥”君呉呉呉呉 接長呉强呉 物理马克思碼書教师口语体育0 0 0 0 0禅按兴光驻軽餐舅餐强 臺科材聲兴共韓舅餐呉興*(选择4),修改学生个人考勤信息谙输入墓修改的班级:1102请输入要修改的学生的座号汐请重新输入高翱学缺勒节数呻请重新输入大学英语缺勒节数灯请输入大学物理缺勤节数汉请重新输入马克思主义基本原理与概论缺勤节数:1 谙重新输入(:语言缺勤节数请重新输入英语口语缺勤节数=-吉皆卜:*戸沪琴亠精选范修改成功¥(选择5),查看一个班级的考勤信息。数学e10020Q ea »6Ide w e n0屈协6H H M物理 01e0a马克思0180 H 0H
12、0oAoQttIjMM教师口语01Id08Q00QW00fl 0BId0M0八肓M 本阳 loslasoSJ 載U0U盟0efl0G4dsMSJ(选择6),退出学生考勤信息系统。感谢您的使用第5章总结与体会三周的课程设计已经结束了。回想学习c语言 的过程中,既有快乐又有烦恼。从领到书的那一刻,我就很郁闷,c语言程序设计到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接 触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经 过编译,调试和运行后,出现界面,当时觉得很好奇,
13、想真正的学好这门课程。通过半个学期的学习,我 掌握了基本知识。下学期开始时,被通知要进行课程设计。当时有点懵,感觉学的东西很少,很零散,不知该怎么连到一起, 就要课程设计,是不是太难为我们了。第一天基本上都是在看书,把基本知识再熟悉一遍。到了下午的时候,看了很多练习题,从这些练习题上 我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编 写出来,心里挺开心的。但是,接下来,我们又不得不再次陷入困境。在整个程序的编写过程中,最难的 就是修改和删除这两个模块,这也是我们要解决的重点问题。开始
14、编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但 编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,我们组的其他人,帮助了我,完成 了修改和删除,这让我认识到团队的力量。这样的话,整个程序基本上全部完成了,就剩下完善工作了。 我们组写了两个程序,最后,两个程序相互组合,互补,大功告成虽然设计时完成了,但是我觉得其中还是有一些不足之处:1. 警告句。程序中缺少一些警告句,例如 :“是否真的删除( y/n ) ?”。2. 重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。3. 选择单一。我们设计的程序中,只设计了按名字选择,进行操作
15、,忽略了重名的情况。 整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。 短短的几周课程设计结束了,但是这段时间里,我又学到了更多C 知识,如 :对象数组, string 类,文件流,链表以及文件对链表的操作等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全,也看到了团队 精神和互帮互助的重要性。这一点会让我终生受益。通过这次课程设计,我觉得自己肚子里的墨水多了, 收获也挺大的,这几周过的挺充实!*附:源程序清单和执行结果 #include<stdio.h> #include<stdlib.h> #include <conio
16、.h> #include<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_
17、1(void); void search_2(void); void modify(void); void back(void); void mune_1();void mune_2(); mune_1(); mune_2(); printf("n");/* 录入函数 */* 查询函数 _1*/* 查询函数 _2*/* 修改函数 */* 退出函数 */* 界面 -1*/* 界面 -2*/void mune_1()printf("nnnnnn");printf("t*11);printf("ttt* II);prin tf("
18、ttt * 欢迎使用班级考勤系统 * ");printf("ttt* II);printf("nt*nnn");printf("=");printf("nnntttt< 按任意键进入 >nttttt");getch();system("cls");void mune_2()int option,ch;/* 定义一个选项的数据类型 */printf("nnn");/* 制作的一个漂亮的选择界面 */printf("t*n");printf(&qu
19、ot;t*ttttttt*n");printf("t*ttttttt*n");printf("t*1、录入本次课考勤情况t2、查询学生考勤信息t*n");printf("t*ttttttt*n");printf("t*3、创建学生信息 tt4、修改学生信息 t*n");printf("t*ttttttt*n");printf("t*5、查看班级考勤情况t6、退出考勤系统 t*n");printf("t*ttttttt*n");*n");
20、printf("t*tttttttprintf("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();break; case 3:
21、 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("ntttt&
22、quot;);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 Stu
23、dent *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
24、 enter()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("
25、t*n");printf("t*ttttttt *n");printf("t*ttttttt printf("t* printf("t*ttttttt printf("t*n");1、高等数学 tt*n");3、大学物理 tt2、大学英语 tt*n");printf("t*ttttttt*n");printf("t*5、C 程序设计基础 t 6、教师口语 tt *n");4、马克思基本原理概论*n");printf("t*ttttttt
26、 *n");printf("t*7、体育 tttttt*n");printf("t*ttttttt*n");printf("t*ttttttt*n");printf("t*n");printf("n");printf("ttt 请输入科目选项 (17):ntttt");scanf("%d",&sub);while(1)if(sub>0&&sub<8)break;elseprintf("ttt 输入错误
27、,请重新输入 ntttt"); scanf("%d",&sub);system("cls");printf(" 请输入本次课缺席同学的座号: ");scanf("%d",&stu);printf("n");printf(" 请输入该同学的缺课节数: ");scanf("%d",&num);while(p!=NULL)if(p->num=stu)switch(sub)case 1: p->math+=num;br
28、eak;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+=num;break;p=p->next;printf("nntt* 输入成功 *!n");printf(" 是否继续输入 (yn):");scanf("%c",&select);
29、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(" 请输入上课班级: "); scanf("%s",cla); strcat(cla,".dat"); p=head=load(cla); printf(" 请输入要查询同学的座号: "
30、);scanf("%d",&num); system("cls"); while(p!=NULL)if(p->num=num)printf("nn");printf("*n");printf(" 座号 姓名 性别 数学 英语 物理 马克思 C 语言 教师口语育 n");printf(" %3d %8s %4s%5d %5d %5d %5d%3d %7d %8dn",p->num,p->name,p->sex,p->math,p->E
31、nglish,p->physics,p->Mks,p->C,p->teal,p->PE);printf("*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(" 请输入您要查询的班级名: "
32、;); gets(cla);system("cls");printf("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 %7d %8dn",p->num,p->name,p->sex,p-
33、>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)int a,flag=0;char cla10;struct Student *head,*p;printf("ntt 请输入要修改的班级: ");scanf("%s",cla);strcat(cl
34、a,".dat");p=head=load(cla);printf("ntt 请输入要修改的学生的座号 :");scanf("%d",&a);while(p!=NULL)if(p->num=a)printf("ntt 请重新输入高等数学缺勤节数 :");scanf("%d",&p->math);printf("ntt 请重新输入大学英语缺勤节数 :");scanf("%d",&p->English);printf(
35、"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);flag=1; save(head,cla)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业管理-报账管理制度
- 江苏省常熟市第三中学2025-2026学年初三第二学期期末检测试题含解析
- 福建省漳州市云霄县达标名校2026届初三3月学生学业能力调研考试物理试题含解析
- 四川省广安市邻水县2026年初三下学期期末学业水平调研物理试题试卷含解析
- 2026年长春市二道区达标名校中考模拟最后十套:物理试题(四)考前提分仿真卷含解析
- 广州市番禺区重点名校2025-2026学年初三2月命制数学试题含解析
- 江西省莲花县2025-2026学年初三第二学期期中练习(一模)物理试题试卷含解析
- 2026年天津市大港油田重点达标名校初三4月模拟训练物理试题含解析
- 肾结石的非手术治疗护理
- 2026年及未来5年市场数据中国基金管理公司行业市场发展现状及投资战略咨询报告
- 2025年院感试题及参考答案
- 药厂卫生管理知识培训课件
- 2025国家义务教育质量监测小学德育测评估考试试题库及答案
- 2026届江苏省南京市鼓楼区重点达标名校中考联考语文试题含解析
- 肠梗阻护理个案病例汇报
- 高血压糖尿病的护理问题和措施
- 施工项目管理制度
- 公路处安全培训课件
- BIM技术在城市绿化项目中的应用
- 隧道突水突泥风险评估与防控技术
- 建筑设计策略分享
评论
0/150
提交评论