资源描述
长江大学机械学院2011级
《计算机上机实习》指导书
一.完成内容
每个学生须完成两大题内容。第一大题为必作内容,第二、第三大题为选作内容,可从其中任选择一题。
二.实习要求
学生按规定的上机时间安排表上机,不得无故迟到、早退、旷课,上机时间内不做与实习无关的内容。
三.实习报告要求
程序上机通过后,应编写实习报告。实习报告应包括对题目的分析设计与说明、程序框图、源程序清单、原始数据及结果、程序有待改进的意见,对本次实习的意见与建仪、收获等。要求实习报告为机算机打印稿。报告封面采用统一格式,见附一。
四.答辩
完成编程和实习报告后,每个学生还须通过答辩。答辩时由学生自己先讲述4-5分钟左右,内容包括:程序设计思路、程序结构介绍、程序运行演示等。然后问答指导教师提出的若干问题。指导教师根据学生实习阶段的出勤、上机、程序及答辩的情况确定学生的实习成绩。
《计算机上机实习》题目一 学生成绩管理
一. 建立原始数据文件
1. 用文字处理软件(用记事本\写字板\word\tc,不能用excel)新建一个文本文件, 将本班M名学生在本学期的N门课程成绩录入到这个文件中,按如下形式存放。要求:学生人数M不少于30人,课程门数N不小于5, 姓名为本班的真实姓名。
学号 姓名 英语 数学 大学物理 机械制图 C程序设计 注:表头可以不录入
1 张国庆 76 80 85 82 83
2 王艳 91 90 88 92 75
3 李小华 56 65 70 69 66
4 王红 78 88 90 85 76
5 胡小明 78 88 90 85 76
......
2.将学生的基本信息按如下形式存入第二个文件中
学号 姓名 性别 年龄 职务 注:表头可以不录入
1 张国庆 男 19 无
2 王艳 女 20 文体委员
3 李小华 男 20 生活委员
4 王红 女 21 团支书
5 胡小明 男 19 无
......
3. 将本学期的N门课程及学分输入到第三个文件中。形式如下:
编号 课程名称 课程学分 注:表头可以不录入
1 英语 5.0
2 数学 5.0
3 大学物理 4.0
4 机械制图 4.5
5 C程序设计 4.0
6 上机实习 2.0
二.编写一个学生成绩管理程序,要求完成以下功能
1.读取原始数据文件的内容,计算每个学生的加权平均分 (保留一位小数,4舍5入) ,按平均分排名次,平均分相同则名次相同。创建一个数据文件(建议为:文本文件) ,存放班级的成绩表,按下列式形存放。
学号 姓名 性别 职务 英语 数学 大学物理 机械制图 C程序设计 平均分 名次
1 张国庆 男 无 76 80 85 82 83
2 王艳 女 文体委员 91 90 88 92 75
3 李小华 男 班长 56 65 70 69 66
4 王红 女 团支部书记 78 88 90 85 76
5 胡小明 男 无 78 88 90 85 76
......
注:计算加权平均分的公式如下
2.分别统计全班每门课的平均分。计算各分数段(<60;60~69;70~79;80~89;90以上)的学生人数。创建一个数据文件(建议为:文本文件) ,存放上述计算结果。如下所示:
范围 英语 数学 大学物理......
>=90(优秀) 3 6 5 ......
80~89(良好) 10 11 12 ......
......
3. 分别统计男生和女生每门课的平均分。结果存放在一个数据文件中
4. 输出所有存在不及格课程学生的名单,包括:学号、姓名、性别、不及格课程名称、课程学分及成绩。结果存放在一个数据文件中。
5. 输出优秀学生名单,包括:学号、姓名、性别、名门课成绩、平均分和名次。结果存放在一个数据文件中。优秀学生的条件为:
1.平均分≥90 2. 名次在本班前3名
3. 平均分≥85,并且至少有一门课的成绩为95分
4.平均分≥85,并且至少有二门课的成绩为≥90分
6.输出优秀学生干部名单,包括:学号、姓名、性别、职务、名门课成绩、平均分和名次。结果存放在一个数据文件中。优秀学生的条件为:
1.平均分≥85 2. 名次在本班前20%名
3.平均分≥80,并且至少有一门课的成绩为≥95分
4.平均分≥80,并且至少有二门课的成绩为≥90分
三.题目一的要求
1.学生及课程数据的表示及文件读写
定义结构体数组表示全班学生的数据及课程的数据, 结构体成员中包括学号、姓名、性别、职务成绩等内容。 为便于结果的显示、检查,建议文件读写时均采用“文本文件”方式。分别由fscanf()和fprintf()函数实现原始数据的读入和计算结果的输出。凡需输出的内容,除按要求写入文件外,均应同时在屏幕上显示,以便观察计算结果。
2.程序结构要求
为使程序结构清晰,要求将各大题中的所有小问题编成相应的函数,由主函数通过“菜单”方式调用相应的函数。下面列举一个简易的两级“菜单”的例子供参考。
# include"stdio.h"
# include"conio.h"
void main() /*主菜单*/
{ char ch1;
do{ clrscr(); /*清屏*/
printf("\n\n\n\n\n\n\n\n\n");
printf(" ************** C语言程序设计上机实习 ****************\n");
printf(" ---------------------------------------------------\n\n");
printf(" 1 学生成绩管理\n\n");
printf(" 2 破译密码\n\n");
printf(" 3 显示心形\n\n");
printf(" 4 退 出\n\n");
printf(" 输入选择序号\n");
while( (ch1=getchar(), ch1!='1'&& ch1!='2' &&ch1!='3'&&ch1!='4' )) ;
switch(ch1)
{case '1' : section1(); break;
case '2' : section2(); break;
case '3' : section3(); break;
case '4' : exit(0); }
}while(1);
}
section1() /*第1个2级菜单*/
{ char ch21;
do{ clrscr(); printf("\n\n\n\n\n\n\n\n\n\n");
printf(" ********************学 生 成 绩 管 理 系 统**********************\n");
printf(" ------------------------------------------------------------------------------------------------\n\n");
printf(" 1. 读入原始数据并显示 2. 计算平均分及名次\n\n");
printf(" 3. 输出课程平均分和各分数段人数 4 输出男生和女生课程平均成绩\n\n");
printf(" 5. 统计不及格情况 6. 输出优秀学生\n\n");
printf(" 7. 输出优秀学生干部 8. 返回上级菜单\n\n");
printf(" 输入选择序号\n");
while((ch21=getchar(),ch21!='1'&&ch21!='2'&&ch21!='3'&&ch21!='4'&&ch21!='5'&&ch21!='6'
&&ch21!='7'&&ch21!='8')) ;
switch(ch21)
{case '1' : function1_1(); break;
case '2' : function1_2(); break;
case '3' : function1_3(); break;
case '4' : function1_4(); break;
case '5' : function1_5(); break;
case '6' : function1_6(); break;
case '7' : function1_7(); break;
case '8' : return(0);}
}while(1);
}
section2() /*第2个2级菜单*/
{ char ch22;
do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n");
printf(" *****************破译密码****************\n");
printf(" ----------------------------------------------------------------\n");
printf(" 1. 运行\n\n");
printf(" 2. 返回上级菜单\n\n");
printf(" 输入选择序号\n");
while( (ch22=getchar(), ch22!='1'&& ch22!='2'')) ;
switch(ch22)
{case '1' : function2_1(); break;
ase '2' : return(0);}
}while(1);
}
section3() /*第3个2级菜单*/
{ char ch23;
do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n");
printf(" *****************显示心形****************\n");
printf(" -------------------------------------------------\n");
printf(" 1. 运行\n\n");
printf(" 2. 返回上级菜单\n\n");
printf(" 输入选择序号\n");
while( (ch23=getchar(), ch23!='1'&& ch23!='2') ;
switch(ch23)
{case '1' : function3_1(); break;
case '2' : return(0);}
}while(1);
}
function1_1()
{printf("加入读入原始数据并显示的程序内容\n");
printf(" *********按Enter键继续**********\n");
getchar();getchar(); }
function1_2()
{printf("加入计算平均分及名次的程序内容\n");
printf(" *********按Enter键继续**********\n");
getchar(); getchar();}
function1_3()
{printf("加入计算课程平均分和分数段人数程序内容\n");
printf(" *********按Enter键继续**********\n");
getchar();getchar();}
function1_4()
{printf("加入计算男生和女生课程平均成绩程序内容\n ");
printf(" *********按Enter键继续**********\n");
getchar();getchar();}
function1_5()
{printf("加入统计不及格情况程序内容\n");
printf(" *********按Enter键继续**********\n");
getchar();getchar();}
function1_6()
{printf("加入输出优秀学生程序内容\n");
printf(" *********按Enter键继续**********\n");
getchar();getchar();}
function1_7()
{printf("加入输出优秀学生干部程序内容\n");
printf(" *********按Enter键继续**********\n");
getchar();getchar();}
function2_1()
{printf("加入破译密码的程序内容\n");
printf(" *********按Enter键继续**********\n");
getchar();getchar();}
function3_1()
{printf("加入显示心形的程序内容\n");
printf(" *********按Enter键继续**********\n");
getchar();getchar();}
题目二. 破译密码
1.题目
有一个加密文件,它的密钥是从100至200中的一个素数,加密方法是每三个字母加上密钥中对应的数字,超出26个大写和小写的字母范围的减去26,空格和标点符号不加密。例如,假设密钥为139,要加密的字符串为“We are students”,第一个字母“W”加密为’W’+1=’X’,第二个字母加密后为’e’+3=’h’,第三个字母加密后为’a’+9=’j’,第四个字母加密后为’r’+1=’s’, 第五个字母加密后为’e’+3=’h’,第六个字母加密后’s’+9超过了字母范围,所以减去26得,’s’+9-26=’b’,….。
读入已加密的文件,进行破译,将可能的密钥和相应的解密结果输出到另一个文件。
2.编程要点:
1)用fgets函数读入字符串
2)编一个函数处理所有可能的密钥,即计算从100到200的所有素数
3)将密钥化成三个元素的整型数组,分别对应百位、十位和个位
4)将所有英文字符按序轮换减去对应的数组元素,原来是大(小)写英文字符超出大(小)写英文字符范围加上26。
3.密码文件内容
Jk fpz nfy aij jpwyfha bszxjy, ztb bwl bs lyhlmqloy zuzkfsa.
题目三. 显示心形
在屏幕上用字符输出一个心形,心形的极坐标方程为r=20(1-sinq),x=r*cosq+26,y=5-r*sinq。
提示:定义字符数组char cs[52][50],先均赋空格,计算出坐标x和y后取整作为字符数组的下标,使该字符取’H’,再输出该数组。
答辩记录
运行情况
原始数据
成绩排名
平均分和分数段统计
男女生成绩统计
不及格统计
优秀生统计
优秀学生干部统计
破译密码
显示心形
回答问题
1.
2.
3.
4.
5.
附一
计算机上机实习
实 习 报 告
班 级
学 号
姓 名
指导教师
完成日期
合同管理制度
1 范围
本标准规定了龙腾公司合同管理工作的管理机构、职责、合同的授权委托、洽谈、承办、会签、订阅、履行和变更、终止及争议处理和合同管理的处罚、奖励;
本标准适用于龙腾公司项目建设期间的各类合同管理工作,厂内各类合同的管理,厂内所属各具法人资格的部门,参照本标准执行。
2 规范性引用
《中华人民共和国合同法》
《龙腾公司合同管理办法》
3 定义、符号、缩略语
无
4 职责
4.1 总经理:龙腾公司经营管理的法定代表人。负责对厂内各类合同管理工作实行统一领导。以法人代表名义或授权委托他人签订各类合法合同,并对电厂负责。
4.2 工程部:是发电厂建设施工安装等工程合同签订管理部门;负责签订管理基建、安装、人工技术的工程合同。
4.3 经营部:是合同签订管理部门,负责管理设备、材料、物资的订购合同。
4.5 合同管理部门履行以下职责:
4.5.1 建立健全合同管理办法并逐步完善规范;
4.5.2 参与合同的洽谈、起草、审查、签约、变更、解除以及合同的签证、公证、调解、诉讼等活动,全程跟踪和检查合同的履行质量;
4.5.3 审查、登记合同对方单位代表资格及单位资质,包括营业执照、经营范围、技术装备、信誉、越区域经营许可等证件及履约能力(必要时要求对方提供担保),检查合同的履行情况;
4.5.4 保管法人代表授权委托书、合同专用章,并按编号归口使用;
4.5.5 建立合同管理台帐,对合同文本资料进行编号统计管理;
4.5.6 组织对法规、制度的学习和贯彻执行,定期向有关领导和部门报告工作;
4.5.7 在总经理领导下,做好合同管理的其他工作,
4.6 工程技术部:专职合同管理员及材料、燃料供应部兼职合同管理员履行以下职责:
4.6.1 在主任领导下,做好本部门负责的各项合同的管理工作,负责保管“法人授权委托书”;
4.6.2 签订合同时,检查对方的有关证件,对合同文本内容依照法规进行检查,检查合同标的数量、金额、日期、地点、质量要求、安全责任、违约责任是否明确,并提出补充及修改意见。重大问题应及时向有关领导报告,提出解决方案;
4.6.3 对专业对口的合同统一编号、登记、建立台帐,分类整理归档。对合同承办部门提供相关法规咨询和日常协作服务工作;
4.6.4 工程技术部专职合同管理员负责收集整理各类合同,建立合同统计台帐,并负责
8
展开阅读全文