c语言程序设计课程设计。
专业。班级。
姓名。学号。
指导教师。兰州交通大学自动化与电气工程学院。
年月日。1 基础题。
1.1 题目。
用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如‘a’变成‘b’……z’变成‘a’其它字符不变)。用命令来控制是否要译成密码。
例如: #define change 1则输出密码。若:
#define change 0则不译为密码,按原码输出。
1.2 解题思路。
这个题目要求当字母不为“z”和“z”时,将字母变为下一个字母,就是将字母的ascii码值加一即可实现;当字母为“z”和“z”时,令该字母为“a”和“a”。即字母的ascii码值减25。条件编译方法可以用#ifdef命令来实现。
1.3 流程图。
基础题流程图如图1所示。
图1 基础题流程图。
1.4 源程序。
#include<>
#define change 1
void main()
char str[80];
int i=0;
gets(str);
while(str[i]!=0')
#if change
if(str[i]==90||str[i]==122)
str[i]=str[i]-25;
else if(str[i]>=65&&str[i]<90||str[i]>=97&&str[i]<122)
str[i]=str[i]+1;
#endif i++;
puts(str);
1.5 调试报告
调试报告运行错误如图2所示。
图2 调试运行截图。
本次调试中由于中英文转换错误,有个符号用的是中文标点,调试时出现上图结果,使得程序运行出错,经改正调试正确。
1.6 运行结果。
基础题运行结果如图3所示。
图3 基础题运行结果
2 改错题。
2.1 题目。
函数str1的功能是输入一个英文句子(字符串),将其中每个单词的最后一个字母改写成大写,然后输出此句子。(这里的“单词”是指由空格隔开的字符串)。例如:
若输入:“this is a book”,则应输出:“this is a book”请改正函数str1的两个错误,使程序能输出正确的结果。
注意:不要改动main( )函数,不得增行或删行,也不得更改程序的结构。程序如下:
#include""
#include""
#include""
void str1(char *p)
int k=0;
for(;*p;p++)
if(k)if(p=='
k=0;p=toupper(*(p-1));
elsek=1;
void main()
char str[100];
int d;
clrscr();
printf(" please input a string:")
gets(str);
str1(str);
printf("after changing: %s",str);
2.2 错误分析。
本题的语句if(p=='中p为指针变量即地址,指向的对象是空字符,应该为if(*p=='指针变量指向的对象为空格,另外,这句中,*p指向的是空格,应该是空格前一个字符作小写变大写的转换,所以应该为*(p-1)=toupper(*(p-1))。
2.3 程序流程图。
主函数的流程图如图4所示,子函数的流程图如图5所示。
图4 主函数流程图图5 调用函数流程图。
2.4 改正后的源程序。
#include ""
#include ""
#include ""
void str1(char *p)
int k=0;
for(;*p;p++)
if(k)
if(*p=='
k=0;(p-1)=toupper(*(p-1));
else k=1;
void main()
char str[100];
int d;
int clrscr();
printf(" please input a string:")
gets(str);
str1(str);
printf(" after changing: %s",str);
2.5 调试报告。
调试运行截图如图6所示。
图6 调试运行截图。
本次调试中,出现以上错误,主要是clrscr函数没有被定义,改为int clrscr后就可以执行出结果。
2.6 运行结果。
改错图运行结果如图7所示。
图7 改错题运行结果截图。
3 综合题目。
3.1 题目。
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、**等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:
1)系统以菜单方式工作;
2)职工信息录入功能(职工信息用文件保存)——输入;
3)职工信息浏览功能——输出;
4)职工信息查询功能——算法,查询方式按学历、职工号查询等;
5)职工信息删除、修改功能。
3.2 解题思路。
我做的是前三个功能,根据标题要求,由于职工信息是存放在文件中,所以应该提供文件的输入、输出菜单;即应提供录入、浏览菜单;别的还应提供键盘式选择菜单实现作用选择。其中录入完成后需要将职工信息用文件保存,所以需要保存函数。根据上面的需求分析,可以将这个系统分为以下模块:
菜单函数、录入函数、保存函数、浏览函数。
3.3 源程序。
菜单函数源程序。
void menu() 菜单函数*/
printf("");
printf职工信息管理n");
printf(" t 1.录入职工信息 \t\t\t\t");
printf(" t 2.浏览职工信息 \t\t\t\t");
printf(" t 3.查询职工信息 \t\t\t\t");
printf(" t 4.删除职工信息 \t\t\t\t");
printf(" t 5.修改职工信息 \t\t\t\t");
printf(" t 6.退出t\t\t\t");
printf谢谢使用n");
printf("");
printf("");
录入函数源程序。
void input() 录入函数*/
int i,m;
printf(“请输入需要创建信息的职工人数(1—100):”);
scanf(“%d”,&m);
for (i=0;i{
printf(“职工号: “
scanf(“%d”,&em[i].num);
printf(“请输入姓名: “
scanf(“%s”,&em[i].name);
printf(“请输入年龄: “
scanf(“%d”,&em[i].age);
printf(“请输入性别(f—女 m—男):”
scanf(“%s”,&em[i].sex);
printf(“请输入学历: “
scanf(“%s”,&em[i].xueli);
printf(“请输入工资: “
scanf(“%d”,&em[i].wage);
printf(“请输入住址: “
scanf(“%s”,&em[i].addr);
printf(“请输入**: “
scanf(“%d”,&em[i].tel);
printf(“”);
printf(“创建完毕!”);
s**e(m);
保存函数源程序。
void s**e(int m) /保存文件函数*/
int i;
file*fp;
if ((fp=fopen("employee_list","wb"))null) /创建文件并判断是否能打开*/
printf ("cannot open file");
exit(0);
for (i=0;iif (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)
printf("file write error");
fclose(fp);
浏览函数源程序。
void display() 浏览函数*/
int i;
int m=load();
printf(" 职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t** ");
for(i=0;i 课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc... 目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学... 目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...C语言课程课程设计
C语言课程设计
C语言课程设计