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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

14级程序设计实习内容.docx

1、14级程序设计实习内容浙江树人大学信息科技学院程序设计基础(课程设计指导书)浙江树人大学信息科技学院生产实习(课程设计)任务书课题或任务C语言程序设计基础周次1周专业计算机科学与技术(本)班级计算机141/142/143/144/数媒141、142指导教师朱斌、华冠萍、徐萍、胡锋俊、张华音、陈超祥、虞飞华、陈华锋实习任务与目的通过本次实训,掌握C语言的主要知识点:控制语句、数组、函数、结构体、文件等,掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。实习时间、地点实习具体内容(题目一)学生学籍管理系统(题目二)学生成绩管理系统实习任务安排基本任务1、 选题,每人选择一个题目完成:

2、学号后两位为奇数的选题目一,为偶数的选题目二。2、 理解题意,明确设计目标与任务。3、 用C语言实现课题设计、编码、调试、运行、验收。4、 指导老师检查、验收设计结果,并提问。扩展任务1、 软件开发:了解软件开发思想和基本方法,规范设计过程和文档2、 菜单显示:能利用C语言的图形知识,设计得更漂亮、便捷3、 表格显示:为所显示的记录内容加上表格,表格线条利用画线等功能实现实习要求1. 明确设计任务,能口述并文字描述清楚自己的题目要求、期望结果;2. 清楚设计过程中的主要知识运用,不清楚的及时与指导老师沟通;3. 能进行总体设计,即清楚课题中的数据与文件设计、功能设计、函数模块设计;4. 能对每

3、个模块即函数进行详细设计编码;5. 能对所有的函数模块进行联调;6. 编码仔细,风格统一,尽量减少代码中的语法错误;7. 调试数据多样,注意特殊情况和边界数据处理,尽量减少代码的逻辑错误;实习(设计)报告编写要求请参考后面的“C语言课题设计实习报告模板”1. 设计任务书2. 总体设计(数据、文件设计,功能设计,函数模块设计)3. 详细设计(每个模块功能说明,主要流程图,函数构成)4. 调试与测试(描述几个典型模块的调试数据与测试方案及结果)5. 部分主要代码(主要功能模块代码、注释、运行结果)6. 设计体会与建议7. 参考文献成绩评定1 完成以上任务2 考勤记录3 现场检查与问答情况4 实习报

4、告的内容第一天 明确设计任务(一) 目的1. 熟悉系统的组成及各个功能模块的作用2. 掌握C程序的组成3. 掌握主函数的功能4. 掌握菜单的显示方法5. 掌握菜单的处理方法6. 掌握函数的调试方法(二) 内容1. 由指导老师分配题目、分析题义2. 指导老师讲解文件函数的用法;3. 与指导老师讨论,进一步明确题意,分析选题的主要知识点和算法4. 学生根据分析,复习知识点:switch语句、循环语句、结构体、函数、结构体数组5. 编写主界面(三) 指导1. 实验环境可用C-Free或VC+或VS.net2. 复习知识点:(1)Switch语句、循环、函数、结构体、结构体数组、文件(2)熟练掌握数组

5、元素:增、删、改、查、排序、统计;第二天 总体设计(一) 目的1. 基本完成总体设计:数据文件设计、功能设计、模块设计;2. 编程设计主界面,若程序无法实现,需用草图画出;(二) 内容1. 分析选题,描述功能模块、设计主界面;2. 定义主要数据、设计函数模块及函数间的调用关系。(三) 指导1. “学籍管理系统”的功能模块图参考;2. “成绩管理系统”的功能模块图参考;3. 定义结构体、结构体数组;typedef struct /日期结构体int year;int month;int day; Date;typedef struct /学籍结构体char xh20;/学号 char xm10;/

6、姓名 char lxdh12; /联系电话 char jtdz30; /家庭地址 Date birthday; /生日char zy15; /专业 XJ;XJ xsxj100; /用XJ定义一个数组存放成绩;typedef struct /成绩结构体 char xh20; /学号 char xm10; /姓名Date birthday; /出生日期 char kcmc15; /课程名称int cj; /成绩 CJ;CJ xscj100; /用结构体CJ定义一个数组存放成绩第三天 详细设计(一)目的1. 分解功能模块,分析函数间的调用流程;2. 编写各个函数代码,逐个实现功能模块;(二)内容 编

7、写各个处理函数模块的代码;(三)指导1. “学籍管理系统”完成模块:添加学籍信息、删除学籍信息、修改学籍信息;2. “成绩管理系统”完成模块:添加成绩信息、删除成绩信息、修改成绩信息;第四天 详细设计(一)目的 1、分解功能模块,分析函数间的调用流程; 2、编写各个函数代码,逐个实现功能模块;(二)内容1. 结构体定义,结构体数组定义;2. 完成各个处理函数模块的代码实现;(三)指导3. “学籍管理系统”完成模块:查询学籍信息、统计学籍信息、排序学籍信息;4. “成绩管理系统”完成模块:查询成绩信息、统计成绩信息、排序成绩信息;第五天 测试联调,检验评分(一) 目的1. 为程序增加文件存储功能

8、;2. 将所有程序模块进行联合调试3. 消除程序中存在的测试错误及改进程序的不足4. 学生演示并答疑,老师检查结果并评分(二) 内容1. 使用单步和断点调试方法发现函数中存在的错误。2. 使程序符合设计要求,达到对应的设计效果。(三) 指导1. 常用结构体数据的文件读写函数:fread( )、fwrite( )。2. 实现系统中的文件操作接口。部分代码参考“学籍管理系统”和“成绩管理系统”可以由以下函数模块组成,分别介绍如下:函数名(功能模块)或其他功能main()主函数menu_select()菜单选择handle_menu()菜单处理s_read()读取记录s_save()保存记录xhex

9、ist()判断某学号是否存在s_add()添加记录modi_xh()按学号修改记录modi_xm()按姓名修改记录del_xh()按学号删除记录del_xm()按姓名删除记录sear_all()查询所有记录sear_xm()按姓名查询记录sear_xh()按学号查询记录sear_sr()按生日查询记录sear_jtdz()按家庭地址查询记录sort_xh()按学号排序sort_cj()按成绩排序count1()统计?其它函数总体设计思想:为了简化程序,对所有记录操作通过结构体数组完成,当程序开始执行时把数据文件一次性读入到结构体数组中,以后对数据的操作都通过结构体数组来完成。“添加、修改、删除

10、”时进行写文件操作,“查找、排序”操作进行读文件。(一)主控模块typedef struct /日期结构体int year;int month;int day; Date;typedef struct /学籍结构体char xh20;/学号 char xm10;/姓名 char lxdh12; /联系电话 char jtdz30; /家庭地址 Date birthday; /生日char zy15; /专业 XJ;#include stdio.h#include stdlib.h#include conio.h#include ctype.h#include string.h#define L

11、EN sizeof(struct XJ)XJ stud100; /用XJ定义一个数组存放成绩int reccount=0;/*定义全局变量存放当前记录、记录数*/void s_read( );/*函数声明:读记录*/void s_save( );/*函数声明:保存记录*/int xhexist(char num,int w);/*函数声明:判断学号是否存在*/void s_add( ); /*函数声明:追加记录*/void sear_xh( );/*函数声明:按学号查询*/void sear_xm( );/*函数声明:按姓名查询*/void sear_all( );/*函数声明:查询所有记录*

12、/void sear_sr( ); /*函数声明:按输入的出生年、月或日期查询记录*/void sear_jtdz( ); /*函数声明:按输入的地址查询记录*/void modi_xh( );/*函数声明:按学号修改*/void modi_xm( );/*函数声明:按姓名修改*/void del_xh( );/*函数声明:按学号删除*/void del_xm( ); /*函数声明:按姓名删除*/void sort_xh( );/*函数声明:按学号排序*/void sort_cj( );/*函数声明:按成绩排序*/int menu_select();/*函数声明:菜单选择*/void hand

13、le_menu();/*函数声明:菜单处理*/void main() /*程序入口s_read( );/*调用读记录函数*/handle_menu();/*调用菜单处理函数*/*以下定义菜单处理函数*/void handle_menu()intsel,flag;for(; ;) switch (menu_select()/*用来调用菜单选择函数*/ case 1 : s_add( );/*调用追加记录函数*/ break; case 2: flag=1; while (flag) /*以下显示修改记录子菜单*/ printf(n 修改记录子菜单nn); printf( +-+n); print

14、f( | 1. 按学号修改 |n); printf( | 2. 按姓名修改 |n); printf( | 0. 返回 |n); printf( +-+n); printf( 请选择( 02:); scanf(%d,&sel); switch(sel) case 0: flag=0; break; case 1:modi_xh( ); break; case 2:modi_xm( ); break; break;case 3:flag=1; while (flag) /*以下显示删除记录子菜单*/ printf(n 删除记录子菜单nn); printf( +-+n); printf( | 1.

15、按学号删除 |n); printf( | 2. 按姓名删除 |n); printf( | 0. 返回 |n); printf( +-+n); printf( 请选择 02:); scanf(%d,&sel); switch(sel) case 0: flag=0; break; case 1:del_xh( ); break; case 2:del_xm( ); break; break;case 4:flag=1; while (flag) /*以下显示查询子菜单*/ printf(n 查询记录子菜单nn); printf( +-+n); printf( | 1. 按学号查询 |n); pr

16、intf( | 2. 按姓名查询 |n);printf( | 3. 查询全部 |n); printf( | 0. 返回 |n); printf( +-+n); printf( 请选择( 03:); scanf(%d,&sel); switch(sel) case 0: flag=0; break; case 1: sear_xh( ); break; case 2: sear_xm( ); break; case 3: sear_all( ); break; break;case 5:flag=1; while (flag) /*以下显示排序记录子菜单*/ printf(n 排序记录子菜单nn

17、); printf( +-+n); printf( | 1. 按学号排序 |n); printf( | 2. 按成绩排序 |n); printf( | 0. 返回 |n); printf( +-+n); printf( 请选择 02:); scanf(%d,&sel); switch(sel) case 0: flag=0; break; case 1:sort_xh( ); break; case 2:sort_cj( ); break; break;case 0:printf(exit,bye!n);s_save( ); /退出前,调用一次函数将数组中的数组保存至文件exit(0); /*

18、以下定义选择菜单函数*/int menu_select()char s2;int cn; /*以下显示主菜单*/printf(nn 主菜单n);printf(n);printf( +-+n);printf( | 1追加记录 |n);printf( | 2修改记录 |n);printf( | 3删除记录 |n);printf( | 4查询记录 |n);printf( | 5排序记录 |n);printf( | 0退出 |n);printf( +-+n);for (; ;) printf(n 请选择 (05):);scanf(%d,&cn);printf(n);if (cn5)printf(n i

19、nput error!);elsebreak; returncn;(二)主要功能模块1、s_read()函数:当第一次使用本系统时,应自动建立数据文件“st_table”,以后则能从“st_table”文件中读取记录并存入结构体数组中。void s_read( ) FILE *fp;inti;if(fp=fopen(st_table,rb)=NULL) if(fp=fopen(st_table,wb)=NULL) printf(不能打开文件!n);exit(1); fclose(fp); fclose(fp);if(fp=fopen(st_table,rb)=NULL) printf(不能打开

20、文件!n);exit(1); i=0;reccount=0;while (!feof(fp) if(1!=fread(&studi,LEN,1,fp) break; +reccount;i+; fclose(fp);printf(记录总数=%d n,reccount);2、s_save()函数:当结构体数组中的数据发生变化时,如添加记录、修改记录、删除记录等,将通过该函数把最新数据重新写回到磁盘文件“st_table”中。/*以下定义写记录到文件函数*/void s_save( ) FILE *fp;int i;if (fp=fopen(st_table,wb)=NULL) printf(不能

21、打开文件!n);exit(1); for (i=0;ireccount;i+)if(fwrite(&studi,LEN,1,fp)!=1) printf(文件写错误!n);fclose(fp); 3、xhexist()函数:用来判断某学号是否存在,若存在则返回函数值1,否则返回0,因为本系统要求学号作为唯一的关键字,即不允许出现重复的学号,当执行添加、修改操作时通过调用本函数则保证学号的唯一性。 /*以下定义判断学号是否存在函数*/int xhexist( char num)int i;int flag=0;for (i=0;ireccount; i+)if (strcmp(num,studi

22、.xh)=0) flag=1; break; return (flag);4、s_add()函数: 用来实现向结构体数组中添加一条新记录,在输入时对学号的重复进行判断。void s_add( )char s2;int count = recount;while (1) printf(学号:);scanf(%s,studcount.xh);if (xhexist(studcount.xh)=1) printf(学号已存在!n);else break; printf(姓名:);scanf(%s,studreccount.xm);printf(联系电话:);scanf(%s,studreccount

23、.lxdh);printf(家庭地址:);scanf(%s,studreccount.jtdz);printf(邮政编码:);/依次输入需添加的每一项内容reccount+;printf(总记录数=%dn, reccount); 5、void modi_xh( )函数:用来实现按学号修改记录,首先输入要修改的学号,若存在则显示原数据,然后提示输入新数据,输入时对学号的重复进行判断,若已存在则不允许输入;否则提示学号不存在。6、void modi_xm( )函数:用来实现按姓名修改记录,首先输入要修改的姓名,若存在则显示原数据,然后提示输入新数据,输入时对学号的重复进行判断,若已存在则不允许输入

24、,并能修改多个相同姓名的记录;否则提示姓名不存在。7、void del_xh( )函数:用来实现按学号删除记录,首先输入要删除的学号,若存在则显示原数据,然后提示是否真的删除,若输入Y则进行删除操作,删除通过记录上移的方法实现;否则提示学号不存在。8、void del_xm( )函数:用来实现按姓名删除记录,首先输入要删除的姓名,若存在则显示原数据,然后提示是否真的删除,若输入Y则进行删除操作,删除通过记录上移的方法实现,并可以删除多个相同姓名的记录;否则提示姓名不存在。8、 void sear_xh( )函数:用来实现按学号查询记录,首先输入要查询的学号,若存在则显示原数据;否则提示学号不存

25、在。9、void sear_xm( )函数:用来实现按姓名查询记录,首先输入要查询的姓名,若存在则显示原数据,并可以查询多个相同姓名的记录;否则提示姓名不存在。10、void sear_all( )函数: 用来实现显示全部记录。11、void sear_sr( )函数:用来完成按生日查询,首先输入要查询的生日,可以输入四种数据,并分别得出相应查询结果:输入年(格式4位:19*),查询显示此年度出生的所有学生记录;输入月(格式1至2位:1-12间的整数),查询显示这个月份出生的所有学生记录;输入年月(格式6位:198708)查询显示本年和本月出生的所有学生记录;输入月/日期(格式4位: 0621),查询显示同月同日生的所有学生记录。12、void sear_jtdz( )函数:用来完成按家庭地址查询,首先输入地址,格式可以是任意一个字符串,通过匹配字符串中的子串的方法,找出与家庭地址与输入地址相符的所有学生记录。13、void sort_xh( )函数:用来实现按学号排序记录,要求采用起泡法进行排序。14、void sort_cj ( )函数:用来实现按成绩进行排序,可以采用选择排序或冒泡排序算法。15、其它,自己设计;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1