




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈 阳 航 空 工 业 学 院 课程设计 学 号 2008040301050班 级 84030102 班 姓 名 指导教师 2010年 3月 20日沈阳航空工业学院 课程设计任务书 院系:航空宇航工程学院 专业:飞行器制造工程 班级:84030102 学号:2008040301050 题目:机房上机管理系统(2)一.课程设计时间 2009至2010第2学期第1周,共1周,20学时。二.课程设计内容: 用C语言编写软件完成以下任务:1 数据信息(学生的学号,姓名,系别,上机种类存的机时数等)保存在comp.dat文件中2 上机签到3 下机4 存机时票和查询某同学信息等三.课程设计要求1.程序质量:l 贯彻结构化程序设计思想。l 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l 用户界面中的菜单至少应包括“运算选项”、“数据输入”、“保存结果”、“退出”4项。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四指导教师和学生签字指导教师:_ 学生签名:_五说明书成绩六教师评语目录一、需求分析1二、程序流程图3三、核心技术的实现说明及相应程序段6四、个人总结10五、参考文献11六、源程序11一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:查找函数(search),写文件的函数(xiewj)以及主函数(main)。在这些函数当中,前两个是两个子函数,而后面的一个函数属于对前两个的调用。1、查找函数 主要是通过你输入的学生的一个信息来查找学生的相关信息;2、写入学生数据函数 实现的功能是把已经编成结构化的信息放入comp.dat文件中;3、主函数 按照题目的具体要求实现的是把学生的相关的要用到的信息显示在页面上,实现调用子函数的过程,和其他查找的过程;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个学生记录都包含学号、姓名,以及系别、上机种类和上机数,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入E盘的student.dat文件中,其他函数每次对学生记录的访问,其数据来源都是student.dat文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1、程序总体结构图当(1)输入真 n=1? 假上机 输入 真 n=3? 假下机 输入真 n=3? 假有机时 输入 真 n=4? 假查信息n=0退出图1程序总体结构图2、各子程序结构图(1)查找函数结构化程序int i=0;while (bi.number!=x&in) i+; if(in)? 是 否bi,isshu=bi,jsshu-yis 退出 j=i; 输出学生信息图2查找函数(2)写入学生数据函数定义打开文件 是否能够以写入式打开指定路径下的文件? 是 否f or(x=0;xn;x+) 退出 是否能将信息写入指定文件?是 否 输出学生各项信息写入错误图3写入学生数据函数三、核心技术的实现说明及相应程序段本程序主要由两个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,查找函数和写入学生数据函数是程序中较为核心的部分,下面分别进行说明。1、 查找函数 主要是通过你输入的学生的一个信息来查找学生的相关信息;运用while语句和time函数。程序如下:void search(struct student b,int x,int n) /*在数据系统中查找学生信息*/ int i=0; while( bi.number!=x&in) i+; if(in) bi.jsshu=bi.jsshu-yjs; j=i; printf(nnnnnn); printf( |*n); printf( | your name is :%sn,); printf( | number is :%dn,bi.number); printf( | department is:%sn,bi.department); printf( | sjzhonglei is:%sn,bi.sjzhonglei); printf( | jsshu is :%dn,bi.jsshu); printf( |*|n); printf(nnnnnn); time_t start,end; int js=0; int servenumber;2、写入学生数据函数该函数的核心内容主要是通过你输入的学生的一个信息来查找学生的相关信息;运用fopen打开指定路径下的文件,运用fwrite写入学生信息。程序如下:void xiewj(struct student b,int x,int n) FILE *fp; if(fp=fopen(c:comp.dat,w+)=NULL) /*打开文件判断*/ printf(cantt set up file comp.datn); exit(1); for(x=0;xn;x+) if(fwrite(&stux,sizeof(struct student),1,fp)!=1) printf(writing file is wrongn); / fprintf(,bx.number,bx.department,bx.sjzhonglei,bx.jsshu,fp);四、个人总结看到题目才知道自己其实对C语言一点也不了解,题目和我自己想的简直就是十万八千里的,还要从新温习书上的东西前几天大约在周三左右吧,就是一直在看书在找一些有关我的题目所需要的函数然后查库函数到周四开始我的程序,没有多少成果还是有很多的错误有的问同学有的是在老师的帮助下解决的,唯一让我庆幸的就是我的课设还不是很难就在很多应用的地方都有找到的,就是在程序中应用的时间问题上还不是很清楚就是找了一些资料,由于并不是以前学过的,还是有些生疏的。还是请了一个朋友帮我改了许多,这已经到周五了,早上还改了几个地方才有了眉目的,就是想要是再完美一点就更好了。有几个地方还是要改的,可是好像不是很对就不行了,就把那些用删掉了,是同学给我加的,不太理解应该是用VC写的时候用的吧把它删掉就好了。终于在努力下有了结果。虽然很累的但是我还是收获很多的。我想对我以后的考试和自学都会有一定的收获的,而且我还在四月考级,这也帮我学习它提高了很多信心的。 五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,20063 廖湖声 叶乃文 .C六、源程序#include#include #include#define MAX 5int j=0,yjs=0;int num=0;struct student int number; /*学号*/char name10; /*姓名*/char department50; /*系别*/char sjzhonglei10; /*上机种类*/int jsshu; /*存的机时数*/stuMAX= 001,xiaozhang,zhizao,ziyou,10, 002,xiaoliu,dongli,ziyou,8, 003,xiaoli,dianzi,ziyou,20, 004,xiaohuang,jisuanji,ziyou,25, 005,xiaozhao,guojing,ziyou,5; void search(struct student b,int x,int n) /*在数据系统中查找学生信息*/ int i=0; while( bi.number!=x&in) i+; if(in) bi.jsshu=bi.jsshu-yjs; j=i; printf(nnnnnn); printf( |*n); printf( | your name is :%sn,); printf( | number is :%dn,bi.number); printf( | department is:%sn,bi.department); printf( | sjzhonglei is:%sn,bi.sjzhonglei); printf( | jsshu is :%dn,bi.jsshu); printf( |*|n); printf(nnnnnn); time_t start,end; int js=0; int servenumber;void xiewj(struct student b,int x,int n) FILE *fp; if(fp=fopen(c:comp.dat,w+)=NULL) /*打开文件判断*/ printf(cantt set up file comp.datn); exit(1); for(x=0;xn;x+) if(fwrite(&stux,sizeof(struct student),1,fp)!=1) printf(writing file is wrongn); / fprintf(,bx.number,bx.department,bx.sjzhonglei,bx.jsshu,fp);main() /clrscr(); /textbackground(GREEN); / textcolor(RED); xiewj(stu,0,5); printf(nnnnnn); printf( |*welcome to computer*|n); printf( | please choose one of serves as follow: |n); printf( | 1:register |n); printf( | 2:leave |n); printf( | 3:save the jspiao |n); printf( | 4:inquire the information |n); printf( | 0:EXIT |n); printf( |*|n); printf(nnnnnn);a: scanf(%d,&servenumber); switch(servenumber) case 1: printf( =REGISTER=nnn); start=time(NULL);printf( welcome to studynn please enter your number:nnn); scanf(%d,&num); search(stu,num,MAX); break; case 2: printf( =LEAVE=nnn); end=time(NULL); yjs=difftime(end,start);printf( Before you leave,please enter your numbernnn); scanf(%d,&num); search(stu,num,MAX);printf(nnn you can leave!nnn); break; case 3: printf( =SAVE=nnn);printf( save tickets,please enter your numbernnn); scanf(%d,&num); search(stu,num,MAX); printf( please enter how many js which you want to save:nnn); scanf(%d,&js); stuj.jsshu=stuj.jsshu+js; printf( you have saved %d jsn,js); printf( To sum up,you h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年静脉输液外渗应急演练方案、脚本及总结(2篇)
- 2025年电子商务师职业技能知识考试题与答案
- 摩托车复工安全知识培训课件
- 摩托摔车安全知识培训内容课件
- 摔跤力量训练课件
- 摄影博主基础知识培训课件
- 烹饪技术考试试题及答案
- 2025新款购房合同
- 2025混凝土班组合同范文
- 搭船的鸟课件
- 2025年天津市中考英语试卷(含标准答案及解析)
- 2025年陕西省中考英语试卷真题及答案详解(精校打印版)
- 2025-2030年建筑材料行业市场现状供需分析及投资评估规划分析研究报告
- 啦啦操说课课件
- 公司收发货管理制度
- ASTM G154-23译本 中文版【后附英文官方原版 可复制可检索】
- 2025年护士执业资格考试老年护理学专项护理措施试题集
- 法人风险转移协议书
- 煤矿技能提升培训课件
- 强军兴军思想试题及答案
- 仪器维护与保养试题及答案
评论
0/150
提交评论