c语言课程设计上.docx

上传人:b****1 文档编号:10705936 上传时间:2023-05-27 格式:DOCX 页数:36 大小:22.64KB
下载 相关 举报
c语言课程设计上.docx_第1页
第1页 / 共36页
c语言课程设计上.docx_第2页
第2页 / 共36页
c语言课程设计上.docx_第3页
第3页 / 共36页
c语言课程设计上.docx_第4页
第4页 / 共36页
c语言课程设计上.docx_第5页
第5页 / 共36页
c语言课程设计上.docx_第6页
第6页 / 共36页
c语言课程设计上.docx_第7页
第7页 / 共36页
c语言课程设计上.docx_第8页
第8页 / 共36页
c语言课程设计上.docx_第9页
第9页 / 共36页
c语言课程设计上.docx_第10页
第10页 / 共36页
c语言课程设计上.docx_第11页
第11页 / 共36页
c语言课程设计上.docx_第12页
第12页 / 共36页
c语言课程设计上.docx_第13页
第13页 / 共36页
c语言课程设计上.docx_第14页
第14页 / 共36页
c语言课程设计上.docx_第15页
第15页 / 共36页
c语言课程设计上.docx_第16页
第16页 / 共36页
c语言课程设计上.docx_第17页
第17页 / 共36页
c语言课程设计上.docx_第18页
第18页 / 共36页
c语言课程设计上.docx_第19页
第19页 / 共36页
c语言课程设计上.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计上.docx

《c语言课程设计上.docx》由会员分享,可在线阅读,更多相关《c语言课程设计上.docx(36页珍藏版)》请在冰点文库上搜索。

c语言课程设计上.docx

c语言课程设计上

东华大学信息科学与技术学院

课程设计报告

2012—2013学年第一学期

 

课程名称:

C语言课程设计上机

设计题目:

学生成绩排名,用指针

优化学生成绩排名,

银行存取款管理设计

学号:

__120910115_____

姓名:

——刘强—————

专业班级:

——电子信息工程—

——卓越电子1201—

指导老师:

——曾献辉————

 

《C语言程序设计上机》指导书

一、课程设计目的

灵活使用C语言进行程序编写,巩固有关语句,指针,结构体,文件操作等概念和方法。

提高调试程序的技能,提高软件编写的能力。

二、设计内容和要求

本课程设计的内容分为两部分:

基础任务和可选课题。

1.基础任务

1.1任务要求:

学生成绩排名

1)定义一个数组a[11],用以存放学生的成绩。

2)从键盘输入10个学生成绩

3)采用冒泡法,将学生成绩按照从高到低进行排序

4)再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组

5)将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。

6)将以上每一步骤的结果均打印输出,验证程序是否正确实现题目要求

1.2算法流程图:

开始

inta[11];inti,j,t,c;

输入学生成绩:

scanf("%d",&a[i])

i=0

Y

i<9?

N

j=0

j<10?

N

Y

j+1=>j

i+1=>i

i=0

i<9-j

N

t=a[i];a[i]=a[i+1];a[i+1]=t

a[i]

Y

N

c=>a[10]

scanf("%d",&c)

请输入第十一个学生的成绩

学生成绩从高到低为:

Y

 

j=0

j<11?

N

Y

j+1=>j

i+1=>i

i=0

i<10-j

N

t=a[i];a[i]=a[i+1];a[i+1]=t

a[i]

Y

N

学生成绩从低到高为:

现在的排序结果为:

Y

 

结束

 

1.3主要代码:

#include

intmain()

{

inta[11];

inti,j,t,c;

printf("输入10个学生的成绩:

\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf("\n");

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i]

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("学生成绩从高到低为:

\n");

for(i=0;i<10;i++)

printf("%d",a[i]);

printf("\n");

printf("\n请输入第十一个学生的成绩\n");

scanf("%d",&c);

a[10]=c;

for(j=0;j<11;j++)

for(i=0;i<10-j;i++)

if(a[i]

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("现在排序结果为:

\n");

for(i=0;i<11;i++)

printf("%d\t",a[i]);

printf("\n");

printf("学生成绩从低到高为:

\n");

for(i=10;i>=0;i--)

printf("%d",a[i]);

return0;

}

2.1程序要求:

用指针优化学生成绩排名

1)定义数组stu[10]存放10个学生的成绩,从键盘输入数据,用指针实现

2)将数组stu[10]的内容输出到屏幕上,要求用指针实现

3)将成绩数组按照从高到低进行排序,要求用指针实现

4)将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单

5)采用指针方法,输入字符串“studentscore”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)

2.2算法流程图

voidcopy_string(charfrom[],charto[]);

i++

i<10

i=0

printf("\n");

i++

i<10

mainvoidinv(intx[],intn)

inti,j,k,t;

i=0

i++

YES

k!

=i

j++

k=j;

j

i=0

j=i+1

i

k=i;

YN

 

 

YN

printf("\n");

Multiplex

to[i]='\0';

 

Inti=0;

copy_string

from[i]!

='\0'

N

Y

to[i]=from[i];i++;

 

to[i]='\0';

 

2.3主要代码:

#include

intmain()

{voidcopy_string(charfrom[],charto[]);

chara[30];

charb[30];

voidinv(intx[],intn);

inti,stu[10],*p;

p=stu;

printf("请输入10个学生的成绩:

\n");

for(i=0;i<10;i++)

scanf("%d",p++);

printf("\n");

printf("10个学生成绩分别是:

\n");

for(i=0;i<10;i++)

printf("%d",stu[i]);

printf("\n");

p=stu;

inv(p,10);

printf("学生成绩从高到底为:

\n");

for(p=stu,i=0;i<10;i++)

{printf("%d",*p);

p++;

}

printf("\n");

copy_string(a,b);

printf("请输入字符串:

\n");

scanf("%s%s",a,b);

printf("\stringa=%s%s\nstringb=%s%s\n",a,b,a,b);

return0;

}

 

voidinv(intx[],intn)

{inti,j,k,t;

for(i=0;i

{k=i;

for(j=i+1;j

if(x[j]>x[k])k=j;

if(k!

=i)

{t=x[i];x[i]=x[k];x[k]=t;}

}

}

voidcopy_string(charfrom[],charto[])

{inti=0;

while(from[i]!

='\0')

{to[i]=from[i];i++;}

to[i]='\0';

}

 

3.1程序要求:

课题5:

银行存取款管理设计

功能:

能够输入和查询客户存款取款记录。

在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。

类别分为取款和存款两种。

本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;

2、建立一个文件,输入客户的必要信息,能对文件进行显示、输入、修订、删除等。

3、进一步要求:

完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。

要求:

1、用C语言实现系统;

2、利用结构体数组实现信息的保存;

 

3.2设计说明:

功能介绍:

1、能录入用户存取款的基本信息,包括客户姓名、性别、年龄、住址以及存取款日期、数目等基本信息,保存到结构体数组中。

2、能根据输入客户姓名进行存取款信息的查询以及修改、删除等操作。

3、能根据客户姓名进行查找后,以列表的方式将客户存取款信息显示在屏幕上。

3.3程序组成框图与流程图:

(1)组成图:

银行存取款管理系统

修改客户信息

删除客户信息

输出客户信息

系统退出

录入客户信息

查询客户信息

要求根据客户姓名查找

 

(2)流程图:

IF

YES

m=1

getchar();

1

Intm;

main

N

printf("\n▂▃▂▃▂▃▂▃▂▃▃银行存取款管理系统▂▃▂▃▃▂▃▂▃▂▃▂\n");

 

N

Y

 

voidkehu()

IF

intm;

m=1

N

m=2

M

(1)┏━━━━━━━━━━━┓\n");

Y

N

break;

M

(2)

Y

m=3

break;

N

Y

m=4

M(3)

M

N

break;

Y

M(4)

M(5)

 

注示:

M

(1)=printf("┏━━━━━━━━━━━┓\n");

printf("▍1:

客户资料查询▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("┭┮┯┬┭请输入您要查询的客户的姓名:

\n");

M

(2)=printf("┏━━━━━━━━━━━┓\n");

printf("▍2:

客户资料添加▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("▄▄▄▄▄请输入新客户的姓名和卡号(1-245):

▄▄▄▄▄\n");

printf("┅┄┅┄请输入姓名:

\n");

scanf("%s",r);

printf("┅┄┅┄请输入卡号:

\n");

M(3)=printf("┏━━━━━━━━━━━┓\n");

printf("▍3:

客户资料修改▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("\n▄▄▄▄▄请输入您要修改的客户的姓名和卡号▄▄▄▄▄:

\n");

printf("┅┄┅┄请输入姓名:

\n");

scanf("%s",c);

printf("┅┄┅┄请输入卡号:

\n");

M(4)=printf("┏━━━━━━━━━━━┓\n");

printf("▍4:

客户资料删除▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("\n▄▄▄▄▄请输入您要删除的客户姓名和卡号▄▄▄▄▄:

\n");

printf("┅┄┅┄请输入姓名:

\n");

scanf("%s",c);

printf("┅┄┅┄请输入卡号:

\n");

M(5)=fprintf(stderr,"输入有误!

");

 

voidkehu1(structcoup[],char*re,long*h)

FILE*fp;

 

voidkehup(structcou*p,char*re,long*h)

printf("客户【%s】详细资料\n",re);

 

voidkehu2(structcou*p,char*re,longh)

FILE*fp;

 

voidkehu3(structcou*p,char*re,longh)

FILE*fp;

 

voidkehu4(structcou*p,char*re,longh)

FILE*fp;

 

IF

 

voidcunq1()

IF

IF

Intm;

m=1

N

m=2

N

(1)┏━━━━━━━━━━━┓\n");

Y

N

break;

N

(2)

Y

m=3

break;

N

Y

N(3)

break;

 

注示:

N

(1)=printf("┏━━━━━━━━━━━┓\n");

printf("▍1.存款办理▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("┭┮┯请输入办理存款业务的客户的姓名和卡号(1-245)┭┮┯\n\n");

printf("┄┅┄┅输入客户姓名:

\n");

scanf("%s",g);

printf("┄┅┄┅输入客户卡号:

\n");

scanf("%ld",&m1);

 

N

(2)=printf("┏━━━━━━━━━━━┓\n");

printf("▍2:

取款办理▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("┭┮┯请输入办理取款业务的客户的姓名和卡号(1-245)┭┮┯\n\n");

printf("┄┅┄┅输入客户姓名:

\n");

scanf("%s",g);

printf("┄┅┄┅输入客户卡号:

\n");scanf("%ld",&m1);

cunq12(w,g,m1);

 

N(3)=printf(stderr,"输入有误!

");

 

voidcunq11(structcou*p,char*re,longh)

FILE*fp;

 

voidcunq12(structcou*p,char*re,longh)

FILE*fp;

 

voidcunq2()

IF

Intm;

m=1

N

m=2

Z

(1)┏━━━━━━━━━━━┓\n");

Y

N

break;

Z

(2)

Y

m=3

break;

N

Y

Z(3)

break;

 

注示:

Z

(1)=printf("┏━━━━━━━━━━━┓\n");

printf("▍1:

存款查询▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("┭┮┯┰┱请输入您要查询的客户的姓名:

\n");

scanf("%s",v);

cunq211(w,v,&t);

cunq212(w,v,&t);

Z

(2)=printf("┏━━━━━━━━━━━┓\n");

printf("▍2:

取款查询▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("┭┮┯┰┱请输入您要查询的客户的姓名:

\n");

scanf("%s",v);

cunq221(w,v,&t);

cunq222(w,v,&t);

Z(3)=fprintf(stderr,"输入有误!

");

 

voidcunq211(structcoup[],char*re,long*h)

FILE*fp;

 

voidcunq212(structcou*p,char*re,long*h)

printf("客户【%s】存款明细\n",re);

 

voidcunq221(structcoup[],char*re,long*h)

FILE*fp;

 

voidcunq222(structcou*p,char*re,long*h)

printf("客户【%s】存款明细\n",re);

 

voidhelp()

printf("\n");

 

3.4程序代码:

#include

#include

voidkehu();

voidkehu1(structcoup[],char*re,long*h);/*(把顾客资料)从文件读到缓冲区*/

voidkehu2(structcou*p,char*re,longh);/*客户资料输入*/

voidkehu3(structcou*p,char*re,longh);/*新客户资料输入*/

voidkehu4(structcou*p,char*re,longh);/*资料清除*/

voidkehup(structcou*p,char*re,long*h);/*打印顾客资料*/

voidcunq1();

voidcunq11(structcou*p,char*re,longh);/*客户存款资料的键入*/

voidcunq12(structcou*p,char*re,longh);/*客户取款资料的键入*/

voidcunq2();

voidcunq211(structcoup[],char*re,long*h);/*(把顾客存款资料)从文件读到缓冲区*/

voidcunq212(structcou*p,char*re,long*h);

voidcunq221(structcoup[],char*re,long*h);/*(把顾客取款资料)从文件读到缓冲区*/

voidcunq222(structcou*p,char*re,long*h);

voidhelp();

longt;

externstructcou

{

longb;

charx[20];

longm;

chara[50];

longd;

floatj;

longbc;

charjin[20];

charjin2[20];

chart[20];

floatj1;

floatj2;

floatj3;

floatj4;

}w[200];

structcouw[200];

voidmain()

{

intm;

while

(1)

{

printf("\n▂▃▂▃▂▃▂▃▂▃▃银行存取款管理系统▂▃▂▃▃▂▃▂▃▂▃▂\n");

printf("…………………………………【功能选择】……………………………………\n");

printf("1:

客户添加与操作2:

存取款办理3:

存取款查询4:

关于\n");

printf("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");

printf("请按相应的数字选择您的需要------------------------------------------------------\n");

scanf("%d",&m);

switch(m)

{

case1:

kehu();break;

case2:

cunq1();break;

case3:

cunq2();break;

case4:

help();break;

}

getchar();

printf("\n\n\n\n\n┄┅┄┄┄┅┄┅按回车键返回主界面...");

getchar();

}

}

voidkehu()

{

intm;

charr[20],b[20],c[20];

longh,k;

printf("\n▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄");

printf("\n客户文件:

1:

客户资料查询");

printf("\n2:

客户资料添加");

printf("\n3:

客户资料修改");

printf("\n4:

客户资料删除");

printf("\n5:

后退\n\n");

printf("▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n");

printf("-------------------------------------------------按相应的数字以选择您的需要-----\n");

scanf("%d",&m);

switch(m)

{

case1:

printf("┏━━━━━━━━━━━┓\n");

printf("▍1:

客户资料查询▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("┭┮┯┬┭请输入您要查询的客户的姓名:

\n");

scanf("%s",b);

kehu1(w,b,&t);/*从文件读到缓冲区*/

kehup(w,b,&t);/*打印*/

break;

case2:

printf("┏━━━━━━━━━━━┓\n");

printf("▍2:

客户资料添加▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("▄▄▄▄▄请输入新客户的姓名和卡号(1-245):

▄▄▄▄▄\n");

printf("┅┄┅┄请输入姓名:

\n");

scanf("%s",r);

printf("┅┄┅┄请输入卡号:

\n");

scanf("%ld",&h);

kehu2(w,r,h);/*把数据从缓冲区输入到文件*/

break;

case3:

printf("┏━━━━━━━━━━━┓\n");

printf("▍3:

客户资料修改▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("\n▄▄▄▄▄请输入您要修改的客户的姓名和卡号▄▄▄▄▄:

\n");

printf("┅┄┅┄请输入姓名:

\n");

scanf("%s",c);

printf("┅┄┅┄请输入卡号:

\n");

scanf("%ld",&k);

kehu3(w,c,k);/*把新数据从缓冲区输入到文件*/

break;

case4:

printf("┏━━━━━━━━━━━┓\n");

printf("▍4:

客户资料删除▍\n");

printf("┗━━━━━━━━━━━┛\n");

printf("\n▄▄▄▄▄请输入您要删除的客户姓名和卡号▄▄▄▄▄:

\n");

printf("┅┄┅┄请输入姓名:

\n");

scanf("%s",c);

printf("┅┄┅┄请输入卡号:

\n");

scanf("%ld",&k);

kehu4(w,c,k);/*把0数据从缓冲区输入到文件*/

break;

case5:

break;

default:

fprintf(stderr,"输入有误!

");

}

}

voidkehu1(structcoup[],char*re,long*h)

{FILE*fp;

fp=fopen(re,"rb");

fread(h,4,1,fp);

fread(&p[*h],sizeof(structcou),1,fp);

fclose

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2