ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:161.03KB ,
资源ID:15549878      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15549878.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(会议签到系统课程设计.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

会议签到系统课程设计.docx

1、会议签到系统课程设计./沈 阳 航 空 工 业 学 院 课程设计学 号 200604021035班 级 6402101 姓 名 赵晨指导教师 王晓岩2007年 9 月 20 日沈阳航空工业学院课程设计任务书院系:电子 专业:电子信息工程 班级:6402101学号:200604021035 题目:会议签到系统一、课程设计时刻2007年9月10日至2007年9月14日,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:(1)数据信息(参加会议人员代号,姓名,性不,工作单位,职务,联系方式,是否签到等)保存在meeting.dat文件中。(2)签到。(3)按工作单位将数据信息排序。(

2、4)统计实际参加会议的人数和缺席的人数。三、课程设计要求1. 程序质量:贯彻结构化的程序设计思想。用户界面友好,功能明确,操作方便。用户界面中的菜单至少应包括“名单录入”、“人员签到”、“数据排序”、“统计参加和缺席人数”、“退出”5项,所有数据的改变都应该在相关文件中有所体现。代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计讲明书:课程结束后,上交课程设计讲明书和源程序。课程设计讲明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、讲明书成绩六、教师评语一、需求分析 1二、程序流程图 2三、核心技术的实现讲明及相应程序段 9四、个人总结 1

3、5五、参考文献 15六、源程序 16一、需求分析通过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分不是:录入参加会议人员信息数据函数(add),人员签到数据函数(signin),排序函数(compositor)。在这些函数当中,录入信息和排序函数的实现严格按照题目的要求,而签到和统计参加人数和缺席人数都放到了函数(signin)里。1、录入参加会议人员信息数据函数 要紧实现程序最初运行时参加会议人员信息数据的录入以及其后的运行中人员数据的追加功能;2、人员签到数据函数 实现的功能是按照参加会议人员的代号对人员进行签到,并对签到人员进行标记

4、,最后统计并输出参加人数和缺席人数。3、排序函数 实现的功能是按照人员代号的增序显示。 除上面介绍的功能之外,程序还具有退出功能,能够在程序运行完毕后选择退出。每一个参加会议人员信息都包含参加会议人员代号,姓名,性不,工作单位,职务,联系方式,是否签到,在程序当中,将人员信息类型定义为结构体类型,添加以及追加的人员信息直接写入D盘的meeting.dat文件中,其他函数每次对人员记录的访问,其数据来源差不多上meeting.dat文件,如此做不但能够保证人员数据的一致性,而且能够对人员数据进行永久保存,保证每次运行程序都能够采纳原来的数据。二、程序流程图1、程序总体结构图2、具体功能框图(1)

5、录入人员数据函数add图2 录入人员数据函数(2)人员签到函数signin图3人员签到函数3)按代号排序函数compositor否图4按代号排序函数三、核心技术的实现讲明及相应程序段本程序要紧由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,录入数据函数、签到函数和排序函数是程序中较为核心的部分,下面分不进行讲明。1、录入数据函数录入数据分为两种情况,其一是在会议文件(meeting.dat)不存在的情况下,首先由程序创建一个新文件,并将录入的人员信息写入该文件当中;其二是在会议文件(meeting.dat)差不多存在的情况下,现在文件要

6、以读写方式或追加的方式打开,如此才能够保证往常差不多存在的数据不丢失。具体的程序段如下:void add() /*录入职员信息子函数*/ FILE *f1; finger top=NULL,p=NULL,t=NULL; p=(finger)malloc(sizeof(message); top=p; while(1) printf(n请输入职员信息,输入0时结束录入); scanf(%d%s%s%s%s%d,&p-number,p-name,p-sex,p-workplace,p-job,&p-tel); /*分部分输入*/ p-flag=0; if(p-number=0) free(p);

7、t-next=NULL; break; t=p; p=(finger)malloc(sizeof(message); t-next=p; p=NULL; if(f1=fopen(D:meeting.dat,w)=NULL) /*把链表中信息存入文件*/ printf(不能创建文件!); exit(0); p=top; while(p!=NULL) fprintf(f1,%d %s %s %s %s %dn,p-number,p-name,p-sex,p-workplace,p-job,p-tel); p=p-next; 2、人员签到函数该函数的核心内容是人员签到和统计参加人数和缺席人数。该函数

8、执行时,首先把meeting.dat文件中信息读入链表,并由用户输入人员代号,而后按0结束签到。假如文件中存在该人员的数据,则进行标记,否则不标记。这时被标记的为1,未被标记的为0,最后统计出参加人数和缺席人数,具体程序段如下:void signin() /*签到,标记*/ int a=1,i=0,j=0; FILE *f1; finger m=NULL,p=NULL,t=NULL,top=NULL; if(f1=fopen(D:meeting.dat,r)=NULL) /*把文件中信息读入链表*/ printf(不能打开文件meeting.dat!); exit(0); p=(finger)

9、malloc(sizeof(message); top=p; while(!feof(f1) fscanf(f1,%d%s%s%s%s%dn,&p-number,p-name,p-sex,p-workplace,p-job,&p-tel); p-flag=0; t=p; p=(finger)malloc(sizeof(message); t-next=p; free(p); t-next=NULL; fclose(f1); m=top; while(a!=0) /*签到*/ printf(请职员输入序号签到,输入0时结束签到); scanf(%d,&a); while(m!=NULL) if(

10、m-number=a) m-flag=1;i+; m=m-next; j+; printf(结束签到,人员出勤结果如下:n); printf(应到%d人,实到%d人,缺勤%d人n,j,i,j-i);3、按代号排序函数关于代号的排序采纳的排序算法是链表插入法,首先读取文件meeting.dat信息,在创建meeting2.dat文件,以便保存排序后的信息,该程序的实现要紧是把指针变量插入到各个结点,进行比较,最终实现按代号的升序排列。具体的程序段如下:void compositor() /*排序*/ FILE *f1; FILE *f2; finger m=NULL,n=NULL,t=NULL,

11、top=NULL,p,p0,r,r0,q; if(f1=fopen(D:meeting.dat,r)=NULL) /*读取文件meeting.dat信息*/ printf(不能打开文件meeting.dat!); exit(0); if(f2=fopen(D:meeting2.dat,w)=NULL) /*创建meeting2.dat文件*/ printf(不能创建文件meeting2.dat!); exit(0); n=(finger)malloc(sizeof(message); top=n; while(!feof(f1) /*排序*/ fscanf(f1,%d%s%s%s%s%dn,&

12、n-number,n-name,n-sex,n-workplace,n-job,&n-tel); n-flag=0; t=n; n=(finger)malloc(sizeof(message); t-next=n; free(n); /*/ t-next=NULL; p0=NULL; p=top; while(p!=NULL) r=top; while(r-numbernumber)&(r!=p) r0=r; r=r-next; if(r!=p) q=p; p0-next=p-next; p=p0; if(r=top) q-next=top; top=q; else q-next=r; r0-

13、next=q; p0=p; p=p-next; p=NULL; p=top; while(p!=NULL) /*将排序后信息写入文件meeting2.dat*/ fprintf(f2,%d %s %s %s %s %dn,p-number,p-name,p-sex,p-workplace,p-job,p-tel); printf(%d %s %s %s %s %dn,p-number,p-name,p-sex,p-workplace,p-job,p-tel); p=p-next; fclose(f1); fclose(f2);四、个人总结一周的课程设计使我更一深层次地学习了C语言,了解了C语言

14、,曾经课本没有认真地阅读,现在通过这门课程,使我不仅认真地看,反复地看,而且还认真地研究了一翻,补上了往常学习的漏洞,刚开始时认为这门课程专门难,然而通过了一翻研究和与老师和其他同学的沟通,一些问题依旧解决了,但能够讲这门课程依旧有难度的,因此以后还要加强对这方面知识的学习,掌握好这门课程对我以后的专业也有专门大的好处。程序大体上完成了课程的要求,但依旧有些毛病不能解决,主函数不是总是循环的结构,假如改成这种结构,签到和排序都出问题,也许问题出现在我程序的各个部分差不多上我在书上找的,然后拼接在一起的,各个部分的连贯性不行,导致改后出错。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,2

15、0052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include #include #include #include #include typedef struct message /*定义数据结构*/ long int number; char name10; char sex3; char workplace20; char job5; long int tel; int flag; struct message *next;*finger; /*指向结构体的指针*/void menu() /*屏幕输出菜单*/ printf(*n); printf(

16、*1.录入职员信息 *n); printf(*2.在此签到,并输出人员签到结果 *n); printf(*3.排序 *n); printf(*4.退出 *n); printf(*n);void add() /*录入职员信息子函数*/ FILE *f1; finger top=NULL,p=NULL,t=NULL; p=(finger)malloc(sizeof(message); top=p; while(1) printf(n请输入职员信息,输入0时结束录入); scanf(%d%s%s%s%s%d,&p-number,p-name,p-sex,p-workplace,p-job,&p-te

17、l); /*分部分输入*/ p-flag=0; if(p-number=0) free(p); t-next=NULL; break; t=p; p=(finger)malloc(sizeof(message); t-next=p; p=NULL; if(f1=fopen(D:meeting.dat,w)=NULL) /*把链表中信息存入文件*/ printf(不能创建文件!); exit(0); p=top; while(p!=NULL) fprintf(f1,%d %s %s %s %s %dn,p-number,p-name,p-sex,p-workplace,p-job,p-tel);

18、 p=p-next; void signin() /*签到,标记*/ int a=1,i=0,j=0; FILE *f1; finger m=NULL,p=NULL,t=NULL,top=NULL; if(f1=fopen(D:meeting.dat,r)=NULL) /*把文件中信息读入链表*/ printf(不能打开文件meeting.dat!); exit(0); p=(finger)malloc(sizeof(message); top=p; while(!feof(f1) fscanf(f1,%d%s%s%s%s%dn,&p-number,p-name,p-sex,p-workpla

19、ce,p-job,&p-tel); p-flag=0; t=p; p=(finger)malloc(sizeof(message); t-next=p; free(p); t-next=NULL; fclose(f1); m=top; while(a!=0) /*签到*/ printf(请职员输入序号签到,输入0时结束签到); scanf(%d,&a); while(m!=NULL) if(m-number=a) m-flag=1;i+; m=m-next; j+; printf(结束签到,人员出勤结果如下:n); printf(应到%d人,实到%d人,缺勤%d人n,j,i,j-i);void

20、 compositor() /*排序*/ FILE *f1; FILE *f2; finger m=NULL,n=NULL,t=NULL,top=NULL,p,p0,r,r0,q; if(f1=fopen(D:meeting.dat,r)=NULL) /*读取文件meeting.dat信息*/ printf(不能打开文件meeting.dat!); exit(0); if(f2=fopen(D:meeting2.dat,w)=NULL) /*创建meeting2.dat文件*/ printf(不能创建文件meeting2.dat!); exit(0); n=(finger)malloc(siz

21、eof(message); top=n; while(!feof(f1) /*排序*/ fscanf(f1,%d%s%s%s%s%dn,&n-number,n-name,n-sex,n-workplace,n-job,&n-tel); n-flag=0; t=n; n=(finger)malloc(sizeof(message); t-next=n; free(n); /*/ t-next=NULL; p0=NULL; p=top; while(p!=NULL) r=top; while(r-numbernumber)&(r!=p) r0=r; r=r-next; if(r!=p) q=p;

22、p0-next=p-next; p=p0; if(r=top) q-next=top; top=q; else q-next=r; r0-next=q; p0=p; p=p-next; p=NULL; p=top; while(p!=NULL) /*将排序后信息写入文件meeting2.dat*/ fprintf(f2,%d %s %s %s %s %dn,p-number,p-name,p-sex,p-workplace,p-job,p-tel); printf(%d %s %s %s %s %dn,p-number,p-name,p-sex,p-workplace,p-job,p-tel); p=p-next; fclose(f1); fclose(f2);void main() /*主函数*/ int x= 0; while(x!=4) menu(); printf(请选择要进行的操作,用数字键选择:); scanf(%d,&x); switch(x) case 1:add(); break; case 2:signin(); break; case 3:compositor(); break; exit(0);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2