c语言课程设计

发布 2022-09-30 18:57:28 阅读 3515

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语言课程课程设计

课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...

C语言课程设计

目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...

C语言课程设计

目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...