当前位置:文档之家› 张志航等编著C语言key 清华大学出版社

张志航等编著C语言key 清华大学出版社

张志航等编著C语言key 清华大学出版社
张志航等编著C语言key 清华大学出版社

习题1答案

1.答案:

三代。第一代为机器语言,用二进制代码表示机器指令,机器语言程序可直接运行。第二代为汇编语言,用助记符表示一条指令,汇编语言程序必须经过汇编才能执行。第三代为高级语言,用预先规定好的类似于数学语言的语句编写程序,高级语言程序必须经过编译连接才能执行。

2.答案:

所谓移植,是指将在一种计算机系统下编写的程序,经过改动放在另一种计算机系统中运行,要求运行结果一样。改动越少,可移植性越好;反之,可移植性越差。

3.答案:见1.2节。

4.答案:C语言程序是由若干函数构成,其中必须有一个主函数。每个函数由函数名和函数体构成。在函数体中有若干语句构成。

注释语句的形式,在“/*”和“*/”之间加文字说明,注释可以跨多行书写。

5.答案:四个步骤。编辑:输入修改源程序。编译:将源程序翻译成目标代码。连接:将目标代码和库程序连接生成可执行代码。运行:执行可执行代码。若后三步出错,可以回退到源代码编辑阶段。

6.答案:略

7.答案:main( )

{ printf("************************************\n");

printf("* Turbo C Version 2.0 *\n");

printf("************************************\n"); }

8.答案:int average(int x, int y, int z)

{ return ((x+y+z)/3); }

main( )

{ int a, b, c, d;

a=3; b=5; c=7;

d = average(a, b, c);

printf("average = %d\n", d); }

习题2答案

1.答案:以下合法常量已做标注,其余为非法常量

65535(合法) 3.5U 66L(合法)1.24e-2(合法)

6e1.2 '@'(合法)'abc' "abc"(合法)

"?"(合法)892.(合法) .123(合法)-0xAB (合法)

2.答案:以下合法的用户标识符已做标注,其余为不合法的

Max(合法) _301(合法)4_5 M-1

Char(合法)i nt my name M.D.Jhon

3.答案:x: 00000000 00001100

y: 00000000 01001101

z: 11111111 10001100

4.答案:运算结果:3.5 结果表达式类型:double 型

5.答案:运算结果:2.5 结果表达式类型:double 型

6.答案:

表达式序号a的值n的值表达式的值

(1)16 5 16

(2) 6 5 6

(3)40 5 40

(4)0 5 0

(5)0 1 0

(6)0 5 0

(7)15 5 60

(8) 3 18 18

(9) 3 3 18

(10) 1 5 1

7.答案:00010101,ch的值是21。

8.答案:11111111 11111001,i的值为-7。

9.答案:00000000 11111001,i的值为249。

10.答案:

表达式序号(1)(2)(3)(4)(5)(6)(7)(8)

表达式运算结果0 1 1 0 1 1 0 1

11.答案:a和b的值分别为8和5。结论是,此三个运算实现a和b两个变量值的交换。如果a和b的值发生了变化,结论依然成立。即无论a和b的初值是什么,连续做a=a+b; b=a-b; a=a-b; 后,结果a和b的值做了交换。

12.答案:a和b的值分别为8和5。结论是,此三个运算实现a和b两个变量值的交换。如果a和b的值发生了变化,结论依然成立。(与11题答案相同)

13.答案:(x*x+y*y)>1 && -2

习题3答案

1.答案:

#include

main()

{

printf("The size of fundamental types is computed.\n\n");

printf(" char:%3u byte \n", sizeof(char));

printf(" short:%3u bytes\n", sizeof(short));

printf(" int:%3u bytes\n", sizeof(int));

printf(" long:%3u bytes\n", sizeof(long));

printf(" unsigned:%3u bytes\n", sizeof(unsigned));

printf(" float:%3u bytes\n", sizeof(float));

printf(" double:%3u bytes\n", sizeof(double));

}

运行状况:

The size of fundamental types is computed.

char: 1 byte

short: 2 bytes

int: 2 bytes

long: 4 bytes

unsigned: 2 bytes

float: 4 bytes

double: 8 bytes

2.答案:在Turbo C2.0环境中,用printf函数输出时,做四舍五入处理;赋给整型变量时,做截断处理。

#include

main()

{

double d=23.176;

int i=2.999;

printf("%.2f, %d\n", d, i);

}

运行结果:

23.18, 2

3.答案:

#include

main()

{

char c1, c2;

c1 = getchar(); c2 = getchar();

putchar(c1); putchar(c2); putchar('\n');

printf("%c%c\n", c1, c2);

}

问题回答:

(1)两种都可以;定义成char型较好,因为用char型量意义明确,且占用字节数少。(2)只能使用printf函数,具体语句是printf("%d%d\n", c1, c2);

(3)不是在任何情况下都可以互相代替,两种变量的值域不一样。char型量的值域为-128~+127,int型量的值域为-32768~+32767。一般地,可用int型量代替char型量,反之不然。本质上,int型量是两个字节长度的整数,char型量是一个字节长度的整数。

8.答案:

c,b,a

9.答案:

#include

main( )

{

long m, n;

int b3;

double q;

printf("Please input m & n: ");

scanf("%ld%ld", &m, &n);

q = (double)m/n;

b3 = (int) (q*1000) %10;

printf("quotient=%.4f, b3=%d\n", q, b3);

}

运行状况:

Please input m & n: 188639 100000

quotient=1.8864, b3=6

10.答案:

#include

#define M_TO_K 1.6093

#define M_TO_Y 1760

main( )

{

double kilo;

int mile, yard;

printf("Please input kilometers: ");

scanf("%lf", &kilo);

mile = kilo/M_TO_K;

yard = (kilo/M_TO_K - mile)*M_TO_Y + 0.5;

printf("miles=%d, yards=%d\n", mile, yard);

}

运行状况:

Please input kilometers: 10

miles=6, yards=376

11.答案:

#include

main( )

{

int real1,image1,real2,image2;

printf("Please input complex 1: ");

scanf("%d+%di", &real1, &image1);

printf("Please input complex 2: ");

scanf("%d+%di", &real2, &image2);

printf("The Sum is = %d+%di\n", real1+real2, image1+image2); }

运行状况:

Please input complex 1: 3+5i

Please input complex 2: 8+9i

The Sum is = 11+14i

12.答案:

#include

main( )

{

int hour, minute, second, year, month, day;

printf("Please input time(hh:mm:ss): ");

scanf("%d:%d:%d", &hour, &minute, &second);

printf("Time is = %02d:%02d:%02d\n", hour, minute, second);

printf("Please input date(yyyy-mm-dd): ");

scanf("%d-%d-%d", &year, &month, &day);

printf("Date is = %04d-%02d-%02d\n", year, month, day);

}

运行状况:

Please input time(hh:mm:ss): 5:3:8

Time is = 05:03:08

Please input date(yyyy-mm-dd): 2006-12-8

Date is = 2006-12-08

13.答案:

#include

main( )

{

int hours, minutes, seconds;

long totseconds;

printf("Please input total seconds: ");

scanf("%ld",&totseconds);

hours = totseconds/3600;

minutes = (totseconds-hours*3600)/60;

seconds = totseconds-hours*3600-minutes*60;

printf("equal to %d hours, %d minutes, %d seconds\n", hours, minutes, seconds); }

运行状况:

Please input total seconds: 3753

equal to 1 hours, 2 minutes, 33 seconds

14.答案:

#include

main( )

{

unsigned int num, low, high;

printf("Please input a hex number: ");

scanf("%X",&num);

low = num & 0x00ff;

high = num>>8;

printf("%2X,%2X\n", low, high);

}

运行状况:

Please input a hex number: A8BD

BD,A8

习题4答案

1.#include

main()

{

double a,b,c,max;

printf("Please input three numbers: \n");

scanf("%lf%lf%lf", &a, &b, &c);

if(a>b) max=a;

else max=b;

if(max

printf("The max number is: %f \n",max);

}

2.#include

main()

{

int year;

printf("Please input a year: ");

scanf("%d", &year);

if((year%4==0 && year%100!=0) || year%400==0)

printf("%d is a leap year. \n", year);

else

printf("%d is not a leap year. \n", year);

}

4.#include

main()

{

int i,count=0;

for(i=1;i<=1000;i++)

if(i%9==0 && i%11==0)

{

printf("%d \t ",i);

count++;

if(count%5==0) printf("\n");

}

}

5.If-else语句答案:

#include

main()

{

int score;

printf("Please input score(0~100): ");

scanf("%d", &score);

if(score>100 || score<0)

printf("The score error!\n");

else

{

printf("\nThe grade is(A~E): ");

if(score>=90) printf("A \n");

else if(score>=80) printf("B \n");

else if(score>=70) printf("C \n");

else if(score>=60) printf("D \n");

else printf("E \n");

}

}

Switch语句答案:

#include

main()

{

int score;

printf("Please input score(0~100): ");

scanf("%d",&score);

if(score>100 || score<0)

printf("The score error!\n");

else

{

printf("\nThe grade is(A~E): ");

switch(score/10) {

case 10:

case 9: printf("A \n"); break;

case 8: printf("B \n"); break;

case 7: printf("C \n"); break;

case 6: printf("D \n"); break;

default: printf("E \n");

}

}

}

6.#include

main()

{

int base1,base2,base3,base4,base5,base6,base7,base8;

float money,tax;

base1=0.05*500;

base2=base1+0.1*1500;

base3=base2+0.15*3000;

base4=base3+0.2*15000;

base5=base4+0.25*20000;

base6=base5+0.3*20000;

base7=base6+0.35*20000;

base8=base7+0.4*20000;

printf("Please input the income: ");

scanf("%f",&money);

if(money<0)

printf("Input is negative, error! \n");

else

{

money=money-800;

if(money<=0) tax=0;

else if(money<=500) tax=money*0.05;

else if(money<=2000) tax=base1+(money-500)*0.1;

else if(money<=5000) tax=base2+(money-2000)*0.15;

else if(money<=20000) tax=base3+(money-5000)*0.2;

else if(money<=40000) tax=base4+(money-20000)*0.25;

else if(money<=60000) tax=base5+(money-40000)*0.3;

else if(money<=80000) tax=base6+(money-60000)*0.35;

else if(money<=100000) tax=base7+(money-80000)*0.4;

else tax=base8+(money-100000)*0.45;

printf("\nThe tax is: %f \n",tax);

}

}

7.#include

main()

{

int i,a,b,c,d;

for(i=1000;i<10000;i++)

{

a=i/1000; /* 千位*/

b=i%1000/100; /* 百位*/

c=i%100/10; /* 十位*/

d=i%10; /* 个位*/

if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==i)

printf("%d \t",i);

}

printf("\n");

}

8.#include

#include

main()

{

int i,j,m;

for(i=2;i<1000;i++)

{

m=sqrt(i);

for(j=2;j<=m;j++)

if(i%j==0) break;

if(j>=m+1)

printf("%d \t",i);

}

printf("\n");

}

9.#include

main()

{

int beginCol=5,i,j,m;

for(i=7,j=4;j>0;j--,i-=2)

{

for(m=0;m

printf(" ");

for(m=0;m

printf("*");

printf("\n");

}

for(i=3,j=2;j<=4;j++,i+=2)

{

for(m=0;m

printf(" ");

for(m=0;m

printf("*");

printf("\n");

}

printf("\n");

}

10.#include

main( )

{

int i, x, y, z;

for(x=1;x<=9;x++)

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

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

if(x!=y && y!=z && z!=x && (x*100+y*10+z)%11==0)

printf("%d \t",x*100+y*10+z);

printf("\n");

}

11.#include

main( )

{

int i;

float m,n,sum=0;

for(i=0,m=1,n=2; i<30; i++)

{

sum += n/m;

n=n+m;

m=n-m;

}

printf("%f \n",sum);

}

12.#include

main( )

{

int m,i,j,k,total;

printf("Please input N(1<=N<=1000): ");

scanf("%d",&m);

total=0; /* 初始化*/

for(i=1;i<=100;i++) /* 5块钱组合*/

for(j=1;j<=500;j++) /* 2块钱组合*/

for(k=1;k<=1000;k++) /* 1块钱组合*/

if(i*5+j*2+k==m)

{

printf("%d=%d*5+%d*2+%d*1 \n",m,i,j,k);

total++;

}

printf("total= %d \n",total); /* 组合次数*/

}

13.#include

main()

{

long total;

int i;

total=1; /* 初始化*/

for(i=1;i<=50;i++)

if(i%3==0)

total *= i;

printf("total= %ld \n",total);

}

14.#include

main()

{

char c;

int i;

c=0; i=0;

while(c!=10 && c!=13)

{

scanf("%c",&c);

if(c=='c')

i++;

}

printf("result=%d",i);

}

15.#include

main()

{

long num=0,sum=0;

int a,n,i;

printf("Please input a: ");

scanf("%d", &a);

printf("Please input n: ");

scanf("%d", &n);

for(i=0; i

{

num = num * 10 + a;

sum = sum + num;

}

printf("sum= %ld\n",sum);

}

16.#include

main()

{

char c;

int Cnum,cnum,digit,space,other;

Cnum=cnum=digit=space=other=0;

printf("Please input a string: ");

while((c=getchar())!='\n')

{

if(c>='A' && c<='Z') Cnum++;

else if(c>='a' && c<='z') cnum++;

else if(c>='0' && c<='9') digit++;

else if(c==' ') space++;

else other++;

}

printf("Uppercase: %d\n",Cnum);

printf("Lowercase: %d\n",cnum);

printf("Digit: %d\n",digit);

printf("Space: %d\n",space);

printf("Other: %d\n",other);

}

17.#include

#include

main()

{

double x,x1,y,a;

x=x1=1; /* 初始化迭代因子*/ printf("Please input a: ");

scanf("%lf", &a);

do

{

x=x1;

x1=(x+a/x)/2;

}while(fabs(x1-x)>=1e-6);

printf("result: %lf\n",x1);

}

习题5答案

1.答案

#include

float average(float a,float b,float c,float d)

{ return (a+b+c+d)/4; }

main( )

{ float a,b,c,d;

printf("Please input four real numbers:\n");

scanf("%f%f%f%f", &a, &b, &c,&d);

printf("the average of four real numbers:\n");

printf("%f\n",average(a,b,c,d));

}

2.答案

#include

int odd(int a)

{ if(a%2) return 1;

else return 0;

}

main( )

{ int a,oddsum=0,evensum=0;

printf("Please input positive number, end by £-1:\n");

scanf("%d", &a);

while(a!=-1)

{

if(odd(a)) oddsum++;

else evensum++;

scanf("%d", &a);

}

printf("the number of odd %d\n", oddsum);

printf("the number of even %d\n", evensum);

}

3.答案

#include

int palin(int a)

{ int s=0,t;

t=a;

while(t)

{

s=s*10+t%10;

t/=10;

}

if(s==a) return 1;

else return 0;

}

main( )

{ int a;

printf("Please input positive number:\n");

scanf("%d", &a);

if(palin(a))

printf("the number %d is palindrome.\n", a);

else

printf("the number %d is not palindrome.\n", a); }

4.答案

#include

#include

#define PI 3.1415926

float r, d, c;

float distance(float x1, float x2, float y1, float y2)

{

float dist=0;

return sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

}

float fun(float x1, float x2, float y1,float y2)

{ float area;

r=distance(x1, x2, y1, y2);

d=2*r;

c=2*PI*r;

area=PI*r*r;

return area;

}

main( )

{

float x1,x2,y1,y2,area;

printf("Please input the coordinates of the centre of a circle and a dot\n");

scanf("%f%f%f%f", &x1, &y1, &x2, &y2);

area=fun(x1, x2, y1, y2);

printf("the radius of the circle is:%f\n", r);

printf("the diameter of the circle is:%f\n", d);

printf("the perimeter of the circle is:%f\n", c);

printf("the area of the circle is:%f\n", area);

}

5.答案

#include

double fact(int n)

{

int i;

double f=1;

for(i=1;i<=n;i++)

f*=i;

return(f);

}

double com(int n, int k)

{

return(fact(n)/(fact(k)*fact(n-k)));

}

main( )

{

printf("Please input n and k(n>k):\n");

scanf("%d%d", &n, &k);

printf("C(%d, %d)=%lf\n", n, k, com(n,k)); }

6.答案

#include

#include

double ex(double x,double eps)

{

int i=1;

double e=1,t=1;

while(fabs(t)>eps)

{

t=t*x/i;

e=e+t;

i++;

}

return(e);

}

main( )

{

double x,eps;

printf("Please inout x and eps:\n");

scanf("%lf%lf", &x, &eps);

printf("e**x:%lf\n", ex(x,eps));

}

7.答案

#include

#include

int isprime(int x)

{

int k, i;

k=sqrt(x);

for( i=2; i<=k; i++)

if( x%i==0) break;

if(i>=k+1) return(1);

else return(0);

}

main( )

{

int n,k=0;

for( n=2; n<=1000; n++)

if( isprime(n))

printf("%d\t", n);

k++;

if(k%5==0) printf("\n");

}

printf("\n");

}

8.答案

#include

void print(int n)

{ int i;

for(i=1;i<=n/2;i++)

if(n%i==0) printf("%d ", i);

printf("\n");

}

void wanshu(int n)

{ int i;

int a,s=0;

a=n/2;

for(i=1;i<=a;i++)

{

if(n%i==0) s+=i;

}

if(s==n)

{ printf("%d its factors are ", n);

print(n);

}

}

main( )

{ int i;

for(i=1;i<=1000;i++)

wanshu(i);

}

9.答案

int gcd(int x,int y)

{

int r;

r=x%y;

while (r!=0)

{ x=y; y=r; r=x%y; }

return(y);

}

int gbs(int x,int y)

{

int bs,ys;

ys=gcd(x,y);

bs=x*y/ys;

return bs;

}

main()

{

int x,y,g,bs;

printf("Enter two number: \n ");

scanf("%d%d",&x,&y);

g=gcd(x,y);

bs=gbs(x,y);

printf("%4d%4d\n",g,bs);

}

10.答案

#include

void prdrev(int x) /*反向输出*/

{

if(x>0)

{

printf("%d", x%10);

prdrev(x/10);

}

}

main( )

{

int x;

printf("Please input an integer:\n");

scanf("%d", &x);

printf("reverse:");

if(x<0)

{

printf("-");

x=-x;

}

prdrev(x);

printf("\n");

}

11.答案

#include

int fib(int n)

int f;

if(n==1||n==2)

f=1;

else

f=fib(n-1)+fib(n-2);

return f;

}

main( )

{

int i, n;

printf("Please input n:\n");

scanf("%d", &n);

printf("Fibonacci %d item:\n", n);

for(i=1;i<=n;i++)

printf("%d ", fib(i));

printf("\n");

}

12.答案

#include

main( )

{

int x,n;

float p(int,int);

printf("Please input n & x:\n");

scanf("%d%d", &n, &x);

printf("n=%d x=%d\n", n, x);

printf("P(%d,%d)=%f\n", n, x, p(n,x));

}

float p(int n,int x)

{

float f;

if(n==0)

f=1;

else if(n==1)

f=x;

else

f=((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n;

return f;

}

13.答案

#include

#include

void dec_to_bin(int num,int base);

{

int decnum,base=2;

printf("Please input decimal:\n");

scanf("%d", &decnum);

printf("\n");

printf("decimal %d = ", decnum);

dec_to_bin(decnum,base);

printf(" binary \n");

}

void dec_to_bin(int num,int base)

{

if(num>0)

{

dec_to_bin(num/base, base);

printf("%d", num%base);

}

}

14.答案

#include

void PrintTriangle_1(int n)

{ int i, j;

for(i=1;i<=n;i++)

{ for(j=1;j<=i;j++)

printf("* ");

printf("\n");

}

}

void PrintTriangle_2(int n)

{ int i, j, k;

for(i=1;i<=n;i++)

{ for(j=1;j<=(n-i);j++)

printf(" ");/*两个空格*/

for(k=1;k<=(2*i-1);k++)

printf(" *");/* *前有一个空格*/ printf("\n");

}

}

main( )

{

int n;

printf("Please input the numbers of line\n");

scanf("%d", &n);

PrintTriangle_1(n);

PrintTriangle_2(n);

}

15.答案

#include

double f(double x)

{

return(x*(x+1));

}

double integral(double a,double b,double n)

{

double h=(b-a)/n,sum=0,i;

for(i=a;i

sum+=f(i);

return (sum*h);

}

main( )

{

double n,sum,a,b;

printf("Please input upper limit 、lower limit and piece :\n");

scanf("%lf%lf%lf", &a, &b, &n);

sum=integral(a,b,n);

printf("integral:%lf\n", sum);

}

习题6答案

1.答案

#include

#include "Xt0601.h"

main( )

{

float a,b,c;

printf("Please input three real numbers:\n");

scanf("%f%f%f", &a, &b, &c);

printf("min: %f\n", min(min(a,b),c));

}

Xt0601.h

float min(float a,float b)

{

float t= a

return t;

}

停车场管理系统—C语言课程设计.doc

停车场管理系统 1题目要求 设有一个可以停放n 辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n 辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 【基本要求】要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场是的停车时间及它应该交的费用。 2需求分析 根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化。 3总体设计 这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。 4详细设计 main()函数体内包含了界面选则部分menu(),并单独 抽出来作为一个独立函数,目的在于系统执行每部分 模块后能够方便返回到系统界面。即main()函数写为 如下: void main()/*主函数*/ { menu();/*菜单函数*/ } 菜单函数: void menu() { int n,w; do { puts("\t\t**************MENU**************\n\n"); puts("\t\t\t 1.初始化"); puts("\t\t\t 2.有车进入"); puts("\t\t\t 3.有车离开"); puts("\t\t\t 4.退出"); puts("\n\n\t\t*********************************\n"); printf("Please choice your number(1-4): [ ]\b\b"); scanf("%d",&n); if(n<1||n>4) /*对选择的数字作判断*/ { w=1; getchar(); } else w=0; }while(w==1); switch(n) { case 1:chushi();break; /*初始化函数*/ case 2:jinru();break; /*车辆进入函数*/

《C语言课程设计》实验报告

《C语言课程设计》报告 学院:信息工程学院 专业:信息管理与信息系统设计题目:通讯录程序设计班级:2016级一班 学号:201601510138 姓名:张进步 指导教师:杨菲菲 时间:12.24

学生通讯管理系统 1.1 设计目的 学习如何实现一个复杂的信息管理系统——学生通讯管理系统,能够实现老师对学生基本信息的记录、查询、修改。 通过本次学习,读者能够掌握: (1)如何设计主菜单和子菜单,以及各级菜单的响应与返回操作; (2)如何合理设计不同的结构体对系统中多个实体进行封装; (3)如何合理设计多个结构体数组管理不同实体对应的数据; (4)如何对复杂的函数过程进行拆分,用多个子函数进行封装; (5)进一步熟悉文件读取的相关操作。 1.2需求分析 本章的学生信息管理系统的主要功能面向老师,能够实现对学生信息进行录入、修改、查询。 学生信息方面的功能需求如下。 (1)新增学生信息,包括姓名、籍贯、电话号码(2)、电子邮箱。 (2)修改学生信息,可以选择对某个学生的某个属性值进行修改。 (3)查找学生信息,即输入要查找的学生学号,实现学生信息查询。 (4)显示所有学生信息,并以列表的形式清晰呈现。 1.3总体设计 系统功能结构图如图所示;学生信息管理系统 学生信息管理模块:包括4个子模块,分别是学生信息的录入,学生信息的修改,学生信息的查询,学生信息的浏览。

1.4详细设计与实现 1.4.1 预处理及数据结构 1.头文件 本项目涉及4个头文件,其中#include使用字符串的函数的时候需要添加此头文件,#include #include /*system使用的函数*/ #include /*getchar、getch函数使用的头文件*/ #include /*strcmp比较2个字符串是否一样*/ 2.宏定义 LEN sizeof(struct student)表示struct student的长度。DATA是按格式输出结构体的各项数据,能够方便输出操作,减少代码量。 #define_CRT_SECURE_NO_W ARNINGS #include #include #include #include #define LEN sizeof(struct student) #define FORMAT "%-8d%-15s%-15s%-15d%-15d%-15s\n" #define DATA stu[i].numb,stu[i].name,stu[i].nat,stu[i].num1,stu[i].num2,stu[i].mail 3.结构体 利用一个结构体struct student struct student/*定义学生信息结构体*/ { int numb;/*学号*/ char name[15];/*姓名*/ char nat[16];/*籍贯*/ int num1;/*电话号码1*/ int num2;/*电话号码2*/ char mail[40];/*邮箱*/ }; 4.全局变量 分别利用全局变量结构体数组struct student stu[50];来记录所有学生的基本信息,避免程序运行过程中多次初始化,方便各个式子函数调用。 struct student stu[50];

C语言图书管理系统课程设计报告[1]

第三章图书管理系统的设计与实现 3.1系统的需求分析 图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界面的提示信息对图书馆信息进行查询、初始化等操作 系统功能需求分析描述如下: (1)系统主菜单:进入系统和退出系统 (2)功能菜单:显示可以进行的操作 (3)查询主菜单:根据图书编号、书名、作者进行查询,并可显示所有图书信息 (4)借还书主菜单:可以进行借书和还书等操作 3.2系统的设计 3.2.1 系统的总统设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。 (2)系统模块结构图 根据需求分析结果,图书管理系统可以分为三大模块:查询

图书模块、借书功能模块、还书功能模块。 系统模块结构如图: 3.2.2 系统的概要设计 ㈠系统主菜单。 显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。功能主要包括:退出系统、查询图书、借书、还书。 ㈡查询图书信息 进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。 图书查询模块流程如图:

3.3 测试结果系统主界面

功能菜单 查询系统菜单

借还系统菜单 3.4 源代码 # include # include # include typedef struct link { char number[100]; char bookname[100]; char author[100]; char publish[100]; char time[100]; float price; char status[100]; struct link *next;

停车场管理系统 c语言

2015-2016学年第二学期《高级语言程序设计》 课程设计报告 题目:停车场管理系统 专业:计算机科学与技术 班级:15级计科<1>班 姓名:胡玉玉 指导教师:陈广宏 成绩: 计算机学院 2016 年 4月 25 日

目录 1. 设计内容及要求 (1) 1.1 课程设计内容 (1) 1.2 课程设计的要求 (2) 2概要设计 (3) 2.1 设计思路 (3) 2.2 程序基本框架结构图 (4) 3设计过程或程序代码 (5) 3.1 主要程序代码及解释 (5) 4设计结果与分析 (13) 4.1 程序运行结果截图与分析 (13) 5参考文献 (16)

1.设计内容及要求 1.1 课程设计内容 ①通过本次课程设计,强化上级动手能力,在理论和实践的基础 上巩固《C语言程序设计》课程的学习内容。掌握软件设计的基本方法。 ②熟悉C语言的基本内容从而掌握C语言的基本知识以及了解C 语言的基本编写及运行。 ③了解程序的分模块编写并对程序的每个模块进行详细的设计并 且能理解一般C语言编写的程序。 ④掌握书写程序设计说明文档的能力。 ⑤熟悉C程序设计的开发环境及C程序的调试过程 1.2 课程设计的要求 ①分析课程设计题目的要求。 ②写出详细设计说明。 ③编写程序代码,调试程序使其能正确运行。 ④设计完成的软件要便于操作和使用。 ⑤设计完成后提交课程设计报告。

2.概要设计 2.1设计思路 停车场是一个可停放n辆汽车的狭长通道,并只有一个大门可供汽车进出,汽车在停车场内按车辆到达的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),如车长内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理.每一组输入数据包括三个数据项:汽车”到达” 或”离去”信息,汽车牌照号码以及到达或离去的时刻(到达或离去的时刻也可用计算机控制).对每一组输入数据进行操作后的输入信息为:如是车辆到达,则输入汽车在停车场。 2.2程序基本框架结构图

华中科技大学计算机学院C语言课设实验报告

华中科技大学计算机科学与技术学院 《C语言程序设计》课程设计 实验报告 题目:科研项目信息管理系统 专业:计算机 班级: 学号: 姓名: 成绩: 指导教师:李开 完成日期:2009年10 月20 日

科研项目信息管理系统一、系统功能结构模块图 二、数据结构设计及其用法说明 typedef struct lakey{ char name[30];/*团队名称*/ int total;/*自然科学基金的科研项目数*/ float dudu;/*经费数*/ struct lakey *next; }*plakey;/*统计3中用到的数据结构*/ typedef struct emmey{ char name[30];/*团队名称*/ int teacher;/*老师人数*/ int harden;/*项目数*/ float bizhi;/*比值*/ struct emmey *next; }*pemmey;/*统计4中用到的数据结构*/ typedef struct kPro{ char code[15];/*项目编号*/ char sort;/*项目种类*/ int aking1; char time[8];/*项目时间*/ float dudu;/*项目经费*/ int aking2;

char beiler[15];/*负责人*/ int aking3; char keynoName[30];/*所在团队名称*/ struct kPro *next; }harden,*pHarden; typedef struct Komo{ int teacher;/*老师人数*/ char name[20];/*院系名称*/ int student;/*学生人数*/ float bizhi;/*二者比值*/ struct Komo *next; }*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/ typedef struct kTea{ char name[30];/*团队名称*/ char beiler[15];/*负责人*/ int stuNum;/*学生人数*/ int aking2; int coco;/*老师人数*/ char colName[20];/*所在院系的名称*/ int aking1; struct kTea *next; pHarden child; }keyno,*pKeyno; typedef struct edward{ char name[20];/*院系名称*/ int totalnum;/*项目总数*/ int num973;/*973项目数*/ int num863;/*863项目数*/ float amount;/*经费数*/ struct edward *next; }*pedward;/*统计2中用到的数据结构*/ typedef struct kCol{ char name[20];/*院系名称*/ int aking; char beiler[15];/*院系负责人*/ struct kCol *next; char call[15];/*负责人电话号码*/ pKeyno child; }kekey,*pKekey;

图书管理系统的设计(C语言)

图书管理系统设计 图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等 功能描述: 1.新进熟土基本信息的输入 2.图书基本信息的查询 3.对撤消图书信息的删除 4.为借书人办理注册 5.办理借书手续 6.办理换书手续 要求:以文件方式存储数据,系统以菜单方式工作。 这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中竟然在QQ网络硬盘中找到了当初的teta版,发布于此,以作纪念。

C源代码如下: #include #include #include struct book{ char book_name[30]; int bianhao; double price; char author[20];

char state[20]; char name[20]; char sex[10]; int xuehao; struct book *book_next; }; struct club{ char name[20]; char sex[10]; int xuehao; char borrow[30]; struct club *club_next; }; void Print_Book(struct book *head_book);/*浏览所有图书信息*/ void Print_Club(struct club *head_club);/*浏览所有会员信息*/ struct book *Create_New_Book();/*创建新的图书库,图书编号输入为0时结束*/ struct book *Search_Book_bianhao(int bianhao,struct book *head_book); struct book *Search_Book_name(char *b_name,struct book *head_book); struct book *Search_Book_price(double price_h,double price_l,struct book *head_book); struct book *Insert_Book(struct book *head_book,struct book *stud_book);/*增加图书,逐个添加*/

《C语言程序设计》课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 2.1.4调试过程及实验结果

停车场管理系统C语言实现1

一.问题描述 1.实验题目: 设停车场是一个可停放n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端)。若停车场内已经停满n辆车,那么后来的车只能在门外的便道上等候。一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场。每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用。试为停车场编制按上述要求进行管理的模拟程序。 要求:根据各结点的信息,调用相应的函数或者语句,将结点入栈入队,出栈或者出队。 二.需求分析 1.程序所能达到的基本可能: 程序以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入数据的序列进行模拟管理。栈以顺序结构实现,队列以链表结构实现。同时另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车。输入数据按到达或离去的时刻有序。当输入数据包括数据项为汽车的“到达”(‘A’表示)信息,汽车标识(牌照号)以及到达时刻时,应输出汽车在停车场内或者便道上的停车位置;当输入数据包括数据项为汽车的“离去”(‘D’表示)信息,汽车标识(牌照号)以及离去时刻时,应输出汽车在停车场停留的时间和应缴纳的费用(便道上停留的时间不收费);当输入数据项为(‘P’,0,0)时,应输出停车场的车数;当输入数据项为(‘W’, 0, 0)时,应输出候车场车数;当输入数据项为(‘E’, 0, 0),退出程序;若输入数据项不是以上所述,就输出"ERROR!"。 2.输入输出形式及输入值范围: 程序运行后进入循环,显示提示信息:“Please input the state,number and time of the car:”,提示用户输入车辆信息(“到达”或者“离开”,车牌编号,到达或者离开的时间)。若车辆信息为“到达”,车辆信息开始进栈(模拟停车场),当栈满,会显示栈满信息:“The parking place is full!”,同时车辆进队列(模拟停车

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

图书管理系统 (c语言)

程序设计方法课程设计

问题提出: 设计一个图书馆的图书管理,具体要求如下: 1.录入新采购的图书信息,做成文件book.in,要求有良好的输入界面; 2.查询各种图书的基本信息,设计出良好的查询界面; 3.按图书编号进行排序,将排好序的图书信息输出到文件book.out中。 4.统计各类图书册数、图书馆的图书总册数。 5.统计图书的借阅情况。 1.需求分析 对于图书馆的管理系统,应该满足以下的用户需求: ○1用户能够增加和删除一些图书。 ○2用户根据一些基本信息查询相应的图书,系统可以准确输出所有符合条件的图书信息。 ○3用户可以借阅和归还图书馆中的图书。 ○4系统可以对图书做出统计,包括图书总数,各类图书数目,图书的借阅情况。 2.设计分析 定义图书结构体,其成员包括书名、作者、类型、出版社、价格、是否借阅(整型,1为借出,0为未借)、编号。 输入新书时,利用结构体储存书的信息,同时将新书信息以二进制写入book.in文件中,录入结束后,将新书按输入顺序写入book.out中,并且以原来存书的最大编号为基准对新书进行编号,这样可以保证book.out文件存储的图书都是按编号进行排序的。 查找图书时,获得所查书目基本信息后,以二进制依次读取文件中的每一本图书信息,并与输入信息相比较,输出符合信息的图书。 删除图书时,通过输入的图书编号(编号可通过查找图书获得)查找相应图书,删除相应数据并保存。 借阅或归还图书时,通过图书编号(编号可通过查找图书获得)查找相应图书,修改图书的属性(是否借阅)并保存。 实现统计功能时,以二进制依次读取文件中的每一本图书信息,设置变量统计图书类型、借阅情况和图书总数,到文件结尾时,输出各个变量的值。

大学 C语言 停车场管理系统 设计c语言课程设计 (含调试图)

Xxxxx大学 xxxxxxxxxxx系 20xx-20xx学年第一学期 《C程序设计》课程设计 题目名称:停车场管理系统设计 姓名: 学号: 班级: 指导教师: 编写日期: 20 年1月5日—20 年1月31日 成绩:

目录 (一)需求分析 (3) 1-1停车 (3) 1-2取车 (3) 1-3功能的选择 (3) (二)总体设计(程序设计组成框图) (3) 2-1停车模块 (3) 2-2取车模块 (3) 2-3车辆信息浏览模块 (4) 2-4程序设计组成框图 (4) (三)详细设计 (4) 3-1停车场分析 (4) 3-2停车操作 (4) 3-3收费管理(取车) (5) 3-4车辆信息 (5) 3-5退出系统 (5) (四)程序运行结果测试与分析 (5) (五)结论与心得 (7) (六)参考文献 (7) (七)致谢 (8) 附录: (8)

(一)需求分析 1-1停车 车辆信息要用文件存储,因而要提供文件的输入输出操作。 1-2取车 当车离开时,要删除文件中该车的信息,因而要提供文件的删除操作。 1-3功能的选择 提供现实操作和用键盘式菜单实现功能选择。 (二)总体设计(程序设计组成框图) 2-1停车模块 对车辆信息赋值,分配前检查车位使用情况(按行查找park 数组,元素为0 表示车位为空,则允许分配)。把新添加的车辆信息以追加的方式写入汽车信息文件,并更改汽车信息文件中其他汽车信息的停车时间(停车时间加5)。 2-2取车模块 计算费用(停车费用=停车时间*0.2 元),从文件中删除该车信息。并将该车位对应的二位数组变量设为0,表示该车位可用。输出提示信息:是否输出停车费用总计?(Y/N)如果选择Y,则输出停车费用,否则回到上级菜单。

c语言程序设计报告 图书管理系统

中国地质大学本科生课程论文封面 课程名称c语言课程设计 教师姓名樊媛媛 本科生姓名 本科生学 本科生专业 所在院系 类别: 日期: 课程设计评语

注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。 目录

课程设计评语 (1) 目录 (2) 1.课程论文题目 (3) 2.程序设计思路 (3) 3.功能模块图 (4) 4.数据结构设计 (4) 5.算法设计 (4) 6.程序代码 (5) 7.程序运行结果 (11) 8.编程中遇到的困难及解决方法 (14) 9.总结心得及良好建议 (15) 10.致谢 (15) 1.课程论文题目 图书管理系统 2.程序设计思路

根据要求,图书管理系统以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保持记录以进行删除,查询,借书,还书,退出,添加等等操作;另外还有键盘式旋转菜单以实现功能选择模块。 3.功能模块图 系统功能模块图 4.数据结构设计 先写主函数main (),然后设计个功能选项,用switch选择,然后进入不同模块,进行不同选择,实现不同功能。每个图书信息设置一个结构体,将输入信息存入文件,提供查询功能,还有删除功能以及借书还书功能。每运行一功能后都返回主界面,方便再次选择,还有设置退出模块,方便退出。 5.算法设计

先定义结构体数组struct books,然后设置主界面,主界面出现6个功能选项,分 别是输入sr() 、借书js()、还书hs()、删除sc()、退出tc()、查询cx().各模块设计如下: 输入模块sr(),先调用文件eup,对其进行读取,然后增加,再对其进行保存和调用。其中结构体只输入tsmc图书名称,tsbh图书编号,dj单价,zz作者, 然后自动生成,czzt存在状态,姓名xm,学号xh,性别xb. 查询模块cx(),有选项图书编号和图书名称,然后选择,用if选择,然后用for循环查找,当输入名称与文件中的名称相同时,便显示此信息。 删除模块就是在查找功能的图书后,选择删除,将strcpy将s[i+1]的值赋给s[i]。借出模块也是在查询的基础上,若s[i]的存在状态为已借出,则显示已借出,无法再借,若未借出,则将s[i]的存在状态czzt变为已借出,然后输入姓名,学号,性别,最后显示出已借出。 还书模块就是在查询的基础上,若s[i]的存在状态为未借出,则无法归还,若借出,则将存在状态变为未借出,然后自动将姓名,学号,性别变为初始值。 退出模块使flag=1,而在main就有bool flag 且main中已令main=0.这样就实现了退出功能。 其中若输入超过选项值后,都会显示输入错误,请重新输入。若字符错误,程序就直接出现错误了。 6.程序代码 #include #include #include #include #define M 100 struct books { char tsmc[12]; int tsbh; float dj; char zz[12]; char czzt[12]; char xm[12];

计算机程序设计(C语言)课程设计报告

计算机程序设计(C语言) 课程设计报告 题目:电子动画时钟 学院:机电工程学院 专业: 班级:090109班 学号: : 指导教师: 设计日期:

一、概述 选题背景:随着社会的进步和科技的发展,电子钟表逐渐成为了人们生活中不可缺少的一部分。设计思路:(一)功能模块设计,1.电子时钟执行主流程2.电子时钟界面显示3.电子时钟按键控制模块4.时钟动画处理模块(二)数据结构设计 1.time结构体 2.全局变量(三)函数功能描述1.keyhandle()2.timeupchange()3.timedownchange()4.digitclock()5.drawcursor()6. clearcursor()7.void clockhandle()8.main()(四)程序实现(五)运行结果。 二、概要设计 2.1、数据结构 此程序中,使用了C语言的time结构体和几个全局变量,1.time结构体struct time { unsigned char ti_min; /*分钟*/ unsigned char ti_hour; /*小时*/ unsigned char ti_hund; /*百分之一秒*/ unsigned char ti_sec; /*秒*/ }; time结构体定义在dos.h文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。 1.unsigned char ti_min:保存分钟值。

2.unsigned char ti_hour:保存小时。 3.unsigned char ti_hund:保存百分之一秒,例如,ti_hund=500,表示1/500秒。 4.unsigned char ti_sec:保存秒数。 2.2、全局变量 下面对程序用到的全局变量及数组进行说明. 1. double h,m,s: 此3个全局变量分别用来保存小时,分钟,秒数。 2. double x,x1,x2,y,y1,y2:保存数字时钟中小时,分,秒在屏幕中显示的坐标值。 3.struct time t[1]:定义一个time结构类型的数组,此数组只有t[0]一个元素。 2.3 模块列表 1.时钟动画处理模块 时钟动画处理模块主要由clockhandle()函数来实现,程序中旧时钟指针的擦除是借助setwritemode(mode)函数设置画线的方式来实现。如果mode=1,则表示画线时用现在特性的线所画之处原有的线性异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变时,进行两次画线操作相当于没有画线,即在当前位置处清除了原来的画线。 2.时钟按键控制模块 在电子时钟中,按键控制模块最主要的工作就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作。 3.

C语言课程设计报告停车场管理系统

停车场管理一 一.要求: 1.设计一个停车场用长度为N的堆栈来模拟。由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出为它让道,待其开出停车场后,这些车再依原来的顺序进入。 2.程序输出每辆车到达后的停车位置,以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。 二、程序中所采用的数据结构及存储结构的说明 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。栈以顺序结构实现,队列以链表实现。 程序中分别采用了“栈”和“队列”作为其存储结构。 “栈”的定义可知,每一次入栈的元素都在原栈顶元素之上成为新的元素,每一次出栈的元素总是当前栈顶元素使次栈元素成为新的栈顶元素,即最后进栈者先出栈。程序中采用的结构是: typedef struct NODE{ CarNode *stack[MAX+1]; int top; }SeqStackCar; /*模拟车库*/ “队列”是限定所有插入操作只能在表的一端进行,而所有的删除操作都只能在表的另一端进行。插入端叫队尾,删除端叫对头。按先进先出规则进行。程序中采用的结构是:typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar; /*模拟通道*/ 三、算法的设计思想 由于停车场是一个狭窄通道,而且只有一个大门可供汽车进出,问题要求汽车停车

场内按车辆到达时间的先后顺序,依次由北向南排列。由此很容易联想到数据结构中的堆栈模型,因此可首先设计一个堆栈,以堆栈来模拟停车场,又每个汽车的车牌号都不一样,这样一来可以根据车牌号准确找到汽车位置,所以堆栈里的数据元素我设计成汽车的车牌号。当停车场内某辆车要离开时,在他之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场。这是个一退一进的过程,而且让道的汽车必须保持原有的先后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道的汽车车牌号。当停车场满后,继续进来的汽车需要停放在停车场旁边的便道上等候,若停车场有汽车开走,则按排队的先后顺序依次进站,最先进入便道的汽车将会最先进入停车场,这完全是一个先进先出模型,因此可设计一个队列来模拟便道,队列中的数据元素仍然设计成汽车的车牌号。另外,停车场根据汽车在停车场内停放的总时长来收费的,在便道上的时间不计费,因此必须记录车辆进入停车场时的时间,车辆离开停车场时的时间不需要记录,当从终端输入时可直接使用。由于时间不象汽车一样需要让道,我设计了一个顺序表来存放时间。又用顺序表用派生法设计了一个堆栈,恰好满足上面模拟停车场的需要。 四.设计原理、框图

c语言最全的图书管理系统程序

题目名称:图书管理系统 算法分析: 1用结构体标出信息系统的成员:图书书号,书名,作者姓名,出版社,价格 2 利用c语言的文件知识将系统的信息存放在c盘下的“project choose.txt”的文件夹下 3 定义各个子函数(1)定义输入信息函数,将图书信息按一定格式用scanf函数输入(统计M本的信息); (2)定义输出函数,每3个表一页直到最后一个; (3)定义信息查询函数。a,定义按书号查询函数,如果输入的数字等于图书编号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个作者姓名字符串则输出信息;c,定义按出版社名称查找函数,如果输入的字符串等于其中出版社名称,则输出该信息; e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abc四个函数。 (4)定义删除信息函数。输入的数字作为要删除的图书编号,输出要删除的图书信息后选择是否删除,删除后将第g+1个的信息赋给第g个,输出删除后的信息表。 (5)定义信息修改函数。输入的数字等于要修改的图书编号,输出要修改的图书信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出图书信息。 (6)定义信息统计函数。输入一个字符串作为出版社,比较M 本书的出版社字符串是否等于输入的字符串,统计相等的个数n输出。 (7)定义图书编号排序函数。用冒泡排序法将M本的书的图书编号按从大到小的顺序排列后输出。 4 定义主函数。调用读取文件函数,输入数字1-5分别对应调用

修改图书信息函数,删除图书信息函数,查找图书信息函数,统计图书信息函数,图书排行信息函数,0表示退出系统。最后调用保存文件函数。结束程序。 流程设计:

VB程序设计课程设计报告完整版

V B程序设计课程设计 报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

《VB程序设计》 课程设计报告(2016 — 2017 学年第 1 学期) 题目:排序演示 学院:经济与管理学院 班级:物流管理1502 学号: 姓名: 指导教师:阮冰 时间:起 2017年1月3日止 1月6日

一、课程设计基本信息 课程代码:05190124 课程名称:计算机基础课程设计 课程英文名称: Computer-based Course Design 课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群 课程面向专业:生物科学类、制药工程、制药工程(生物制药)、药物制 剂、物流管理 课程类型:必修课 先修课程:大学计算机基础通识选修课程、Visual Basic程序设计课程学分:1 总学时:16 二、课程设计目标 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3.系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4.根据个人的设计调试过程,撰写设计报告。 三、课程设计内容 利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。在强化巩固已有编程知识基础之上,训练新的设计与编程思路,通过综合应用所学知识设计、编制、调试实用的Visual Basic程序。 四、课程设计要求 1.要求每个同学都要认真对待,积极参与。 2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同 时填写并完成《课程设计报告册》。 3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计 中完全未参与的将作不及格处理。 五、考核方式

停车场管理系统 C语言实习报告

C 语 言 课 程 实 习 报 告 【要求】 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟停车场管理。 【提示】 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。 基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某

辆车离开停车场时应交纳的费用和它在停车场内停留的时间。 根据题目要求,停车场可以用一个长度为n 的堆栈来模拟。由于停车场内如有某辆车要开走,在它之后进来的车辆都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场,所以可以设两个堆栈。 一、需求分析 根据题目要求,程序应该提供“到达/离去,汽车牌照号码,到达/离去”的输入、输出操作;在程序中需要浏览停车场的车位信息,应提供显示、查找、排序等操作;此外还应提供键盘式菜单实现功能选择。 二、总体设计: 根据需求分析,可以将系统的设计分为以下五大模块:(1)车辆进入;(2)车辆退出; (3)车辆等待;(4)车辆查询;(5)退出。 一、详细设计: 主函数中只包含菜单函数,菜单部分单独写成函数,只提供输入、功能处理和输出部分的函数调用,其中各功能模块用菜单方式选择。 [程序] #define N 30 /*等待车辆*/ #define M 20 /*车位*/ #define P 2 /*单位时间所收费用*/ #include #include #include struct cars /*定义车辆信息*/ { char state; int num; int in_time; 停车场 管理系统 车辆进入 车辆退出 车辆等待 车辆信息 显示 车辆查询 退出系统

(完整版)C语言课程设计实验报告

目录 目录 (1) 第1章问题描述 (2) 1.1 题目 (2) 1.2基本要求 (2) 第2章需求分析 (2) 1.1软件的基本功能 (2) 1.2输入/输出形式 (2) 1.3测试数据要求 (3) 第3章概要设计 (3) 1.1主程序 (3) 第4章详细设计 (4) 1.1数据类型 (4) 1.2伪码算法 (4) 1.3 程序流程图 (7) 第5章操作 (8) 1.1 进入足球比赛积分排行榜界面 (8) 1.2进入目录 (8) 1.3输入球队比赛信息 (10) 1.4 显示九轮比赛排行榜 (12) 1.5 保存数据 (15) 1.6 由D 盘查看数据 (16) 第6章参考文献 (16)

第1章问题描述 1.1 题目 足球比赛积分排行榜程序 1.2基本要求 (1)10个足球队进行9轮循环赛,胜一场积3分,平一场积1分,输一场积0分。 (2)如果两个队积分相同,进行净胜球的比较,如果净胜球再相同进行总进球的比较。 (3)编写一程序输入每轮比赛的比分,并可以存储。 (4)最后统计出每轮比赛的积分榜。 第2章需求分析 1.1软件的基本功能 (1)输入10个足球队的9轮比赛进球数。 (2)计算10个球队的积分,净胜球,总进球。 (3)对9轮比赛进行排序。 1.2输入/输出形式 由键盘输入,屏幕输出,并且以TXT形式保存。

1.3测试数据要求 输入九轮比赛10个足球队的进球数,由系统统计积分、净胜球、总进球数,并输出。 第3章概要设计 1.1主程序 头文件: #include 说明:main函数的头文件,控制整个程序。 #include 说明:清屏的头文件。 #include 说明:包括了大量的函数原型,调用现成的库函数。 #include 说明:基于char*的字符串处理函数。 全局变量: void input(); 输入数据函数 void sort(); 排序数据函数 void display(); 显示数据函数 void save(); 保存数据函数

相关主题
文本预览
相关文档 最新文档