免费预览已结束,剩余23页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆科技学院C语言课程设计程序设计报告重庆科技学院C语言程序设计课程设计报告 学 院:_ 专业班级:学生姓名: 学 号: 设计地点(单位)_I515 _ _设计题目:_ _ 完成日期: 2012 年12月28日 指导教师评语: _ _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 课程设计任务书设计题目:学生考勤系统设计学生姓名课程名称C语言程序设计课程设计专业班级地 点I515起止时间2012年12月17日-12月28日设计内容及要求请你为电气与信息工程学院电自专2011班设计一个学生考勤系统,该系统应该包括4个班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、对应于某天某门课程的出勤情况等。该系统可模拟考勤过程,纪录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。【题目要求】(1)学生的基本信息(学号、姓名、性别、宿舍号、个人电话等)要单独保存;(2)学生的选课信息(具体哪个学生选了哪门课程);(3)学生的实际考勤信息(哪天,哪门课程,考勤结果);要求用C语言的文件操作语句将以上所有结果分别保存在文件stuinfo.out,selec_kecheng.out和kaoqininfo.out中。【输入/输出要求】(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息;(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:撰写报告,进行答辩参考资料1何钦铭 颜晖.语言程序设计.高等教育出版社.2008年2谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年其它难点提示:1、首先分析题目的数据结构,看看要操作那些值;然后根据题意设计操作对象的结构。可以使用结构体来描述其中较为复杂的对象例如往来帐目;确定结构体的定义;可以使用数组来保存数据,使用结构体数组来保存各类数据。2、为了统一期间假定没门课程考勤成绩指定的标准都是一致的,可由你自己来设定这个标准。说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师: 2012年12月10日目录第一章 软件需求分析说明书51.1 用户要求51.2 软件的界面要求51.3 数据结构要求5第二章系统分析与设计62.1 软件的数据(结构)设计62.2软件算法设计7第三章软件的实现83.1 函数以及调用关系83.2结构的应用111 Ifelse结构和 while 结构嵌套结构:112 switch结构123 while结构13第四章 软件测试144.1 进入程序144.2 加载界面144.3 创建学生信息154.4 录入本课考勤情况154.4 修改学生信息164.5 查询学生考勤信息164.6 查看班级考勤情况174.7 退出考勤系统17总结18致谢19源程序清单和执行结果:20第一章 软件需求分析说明书1.1 用户要求 学生用户:学生对本系统的主要需求是在线请假以及查看学期内的上课出勤信息。在线请假中,学生可以随时查看到请假的详细进展情况。同时,学生可以查看本期内上课出勤的详细信息,如:查看某个课程在整个学期内的出勤情况请假、旷课、迟到、早退了多少次,以及具体的时间、任课老师姓名、第几节可等详细信息。学生还可以查看本人的基本信息,如:所在院系、年级、专业、班级、学号、姓名、性别等,以及修改个人用户密码,查看本班的课表。任课老师用户:任课老师使用本系统时,管理所教班级学生的上课出勤信息以及查看所教学生的上课出勤信息。老师自动列出还没有在网上公布的学生上课出勤信息,系统依据学生请假系统,决定学生上课出勤的最终结果。并且查看自己所教课程、所教班级学生整个上课出勤统计信息以及详细信息。管理员用户:系统管理员拥有本系统的最高权限,负责系统数据的动态同步更新以及维护。管理学校各院系、年级、专业、班级的添加、删除、修改等。管理系统所有用户(学生、任课老师、年级辅导员、院系领导、学校领导、系统管理员),管理系统的请假、考勤信息等等。1.2 软件的界面要求要求界面能够清晰一目了然,能清楚的反映出学生考勤系统的优点。能很快的查出学生的学生的基本信息(学号、姓名、性别、宿舍号、个人电话等);学生的选课信息(具体哪个学生选了哪门课程); 学生的实际考勤信息(哪天,哪门课程,考勤结果);1.3 数据结构要求此程序是过程性语言设计。运用多种个条件语句,主题采用链表指针,系统的设计采用了数组语句、选择语句、循环语句。选择语句多采用if多分支选择结构于switch语句。首先计算switch表达式,然后在case语句中寻找值相等的常量表达式,并以此为入口符号,由此开始顺序执行。循环语句采用了for语句,do_while语句。语句用于已知次数的循环结构,括号中的三个量分别用来表示循环变量初值,循环终值和循环增量。do-while语句先循环后判断,break语句在switch语句中,包装内容多分支情况的正确执行,在循环语句中强制中止本次循环。保存和读取是典型的函数功能,一个程序是有若干个函数组成,保存和读取函数是和其他函数相互调用的。 第二章 系统分析与设计2.1 软件的数据(结构)设计设置的主要函数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); void modify(void); /*修改函数*/void back(void); /*退出函数*/void mune_1(); /*界面-1*/void mune_2(); /*界面-2*/mune_1();mune_2();2.2软件算法设计根据设计要求,画出如下流程图:开 始 菜 单2 4修改6.退出5查询23创建2查询11录入结 束第三章 软件的实现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); /*录入函数*/开始 输入班级和学生学号 p-num=a 大学体育模电C语言电机拖动马克思大学英语复变函数 输入学生本节课息y/n 返回菜单2 n 退出开始void search_1(void); /*查询个人信息*/输入此人所在班级和学号ap-num=a 真 假输出此人的考勤信息 返回菜单2void search_2(void); /*查询班级信息*/开始输入要查询的班别输出此班的考勤信息返回菜单2void modify(void); /*修改函数*/开始 输入你要修改的班级和学号ap-num=a 真 假重新输入这位学生的考勤信息返回菜单2void save(struct Student *,char );退出关闭文件开始打开文件数据写入文件struct Student *load(char filename)开始关闭文件读出数据打开文件退 出3.2结构的应用1 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=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;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;3 while结构 while(p!=NULL) if(p-num=a)printf(ntt请重新输入复变函数缺勤节数:); scanf(%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); flag=1;save(head,cla); printf(ntt修改成功!ntt);break;p=p-next;第四章 软件测试4.1 进入程序4.2 加载界面4.3 创建学生信息4.4 录入本课考勤情况 4.4 修改学生信息 4.5 查询学生考勤信息 4.6 查看班级考勤情况 4.7 退出考勤系统 参考文献 1何钦铭 颜晖.语言程序设计.高等教育出版社.2008年2谭浩强 张基温.语言程序设计教程.高等教育出版社.2010年 总结我的题目是学生考勤系统的设计,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠近专业?怎样让自己的计划更具有序性,而不会忙无一用?机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了C语言课程设计的真正用意培养自学能力,养成程序编辑的好习惯。我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。我们要掌握利用C语言编写程序的基本方法,提高C语言编程技巧,还要掌握常用C语言经典算法,培养具体分析问题、解决问题的能力。回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在郭老师的辛勤指导下,终于游逆而解。同时,在郭老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢 在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。谢谢给我指点迷津的老师。致谢 感谢那些在C语言程序设计中给于我帮助的人,让我能在最困惑的时候给我以正确的解答。在这两周的时间里,自己和同学一同设计出了一个学生考勤管理系统。感谢给我们讲解的老师,他能在我们最需要的时候给我们以帮助。最后谢谢俩个队友。. 签名: 日期:2012年12月28日源程序清单和执行结果:#include /*头文件*/#include #include #include#define LEN sizeof(struct Student) /*宏定义*/struct Student /*定义一个结构体数组,包含学生信息*/int 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); /*查询函数_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() /*主函数的辅助函数mune_1函数。*/ printf(nnnnnn); printf(t*); printf(ttt * * ); printf(ttt* 欢 迎 使 用 班 级 考 勤 系 统 *); printf(ttt * * ); printf(nt*nnn); printf(=); printf(nnnttttnttttt); getch(); system(cls);void mune_2()int option,ch; /*定义一个选项的数据类型*/ printf(nnn); /*制作的一个漂亮的选择界面*/printf(t*n);printf(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);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();break;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(ntttt);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 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() /*录入函数*/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* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *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(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(ttt请输入科目选项(17):ntttt);scanf(%d,&sub);while(1)if(sub0&subnum=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+=num;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(请输入上课班级:);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(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *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(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *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);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-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(cla,.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(ntt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年遇险预案合同
- 2025年贵州省社区工作者公开招聘考试行政职业能力专项题库及答案
- 安全施工方案及应急预案
- 数学北师大版面积单位教案
- 2025年度烟草职业技能鉴定题库检测试题及答案
- 施工现场应急预案方案和措施
- 高空作业专项应急救援预案
- 2025年计量员高级职业技能鉴定试题库及答案
- 2025年华夏银行社会招聘考试模拟试题及答案
- 2025年设备维护与操作知识考试试题及解析
- GB/T 18287-2013移动电话用锂离子蓄电池及蓄电池组总规范
- 江苏省工程咨询中心公开招聘相关专业工程咨询业务人员考前预测冲刺卷一含答案带详解(3套合壹)
- 劳动者个人信息卡
- 光盘m3352工控核心板-n128li用户手册-v1
- Q∕SY 02004-2016 油气井氮气排液技术规程
- 工艺学异丁烯合成MTBE
- 门诊慢性病病种及鉴定标准
- 初中语文古诗词理解性背诵默写习题
- 安全生产目标完成情况自查报告
- 高速公路路基沉降与稳定沉降观测总报告
- HSS膝关节评分标准
评论
0/150
提交评论