C语言课程设计.docx

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

C语言课程设计.docx

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

C语言课程设计.docx

C语言课程设计

C语言课程设计

序号:

0301

学号:

10416313

课程设计

 

设计课程名称:

C语言课程设计

题目:

成绩统计系统进制转换系统

学生姓名:

韩建东

学院(系):

怀德学院专业班级:

计算机101

指导教师:

倪彤光

设计时间:

2011年6月13日~2011年6月27日

常州大学课程设计任务书一

怀德学院计算机专业计算机101班同学:

韩建东

一、设计题目成绩统计系统

二、设计内容

假设某校学生通讯录基本信息主要包括:

学号、姓名、通讯地址、电话等,本系统应能对这些基本信息进行管理,并要求具有以下功能:

1、具有学生信息添加功能

2、具有学生信息删除功能

3、具有学生信息浏览功能

4、具有学生信息查询功能

5、具有学生信息排序功能

三、基本要求

1、编写源程序的要求:

(1)能够实现任务书中的功能;

(2)尽可能使界面友好、直观、易操作

(3)源程序要有适当的注释,使程序容易阅读。

2、撰写“课程设计报告”,要求如下:

(1)封面:

统一采用《江苏工业学院课程设计说明书》封面格式

(2)任务书

(3)目录

(4)“课程设计报告”正文

3、课程设计验收要求:

(1)运行所设计的系统;

(2)回答有关问题;(3)提交课程设计报告;(4)提交源程序。

四、进度安排

1、系统分析、设计准备阶段:

4学时

2、编程调试阶段:

22学时

3、总结和书写课程设计报告阶段:

2学时

4、考核阶段:

2学时

指导教师:

倪彤光2011年6月7日

系主任:

苏兵2011年6月7日

教学院长:

杨长春2011年6月7日

常州大学课程设计任务书二

怀德学院计算机专业计算机101班同学:

韩建东

一、设计题目进制转换系统

二、设计内容

本系统要求具有以下功能:

1、具有将十进制转换为二进制功能

2、具有将十进制转换为十六进制功能

3、具有将二进制转换为十进制功能

4、具有将十六进制转换为十进制功能

三、基本要求

1、编写源程序的要求:

(1)能够实现任务书中的功能;

(2)尽可能使界面友好、直观、易操作

(3)源程序要有适当的注释,使程序容易阅读。

2、撰写“课程设计报告”,要求如下:

(1)封面:

统一采用《江苏工业学院课程设计说明书》封面格式

(2)任务书

(3)目录

(4)“课程设计报告”正文

3、课程设计验收要求:

(1)运行所设计的系统;

(2)回答有关问题;(3)提交课程设计报告;(4)提交源程序。

四、进度安排

1、系统分析、设计准备阶段:

4学时

2、编程调试阶段:

22学时

3、总结和书写课程设计报告阶段:

2学时

4、考核阶段:

2学时

指导教师:

倪彤光2011年6月7日

系主任:

苏兵2011年6月7日

教学院长:

杨长春2011年6月7日

 

1.意义及功能

1.1系统意义

1.1.1成绩管理信息系统意义

为了方便学校用来统计学生的数据,为学校可以省下大量的人力和物力,同时也省下了时间。

1.1.2进制算法设计意义

为了方便广大初学学生更好的了解进制之间的转换。

1.2系统功能

1.2.1成绩管理信息系统功能

1、具有学生信息添加功能

2、具有学生信息删除功能

3、具有学生信息浏览功能

4、具有学生信息查询功能

5、具有学生信息排序功能

1.2.2进制算法设计功能

1、具有将十进制转换为二进制功能

2、具有将十进制转换为十六进制功能

3、具有将二进制转换为十进制功能

4、具有将十六进制转换为十进制功能

2功能结构图

2.1成绩管理信息系统

2.2进制算法设计

3.流程图

3.1成绩管理信息系统流程图

4调试运行

4.1成绩管理信息系统

4.2进制算法设计

5使用说明

5.1成绩管理信息系统

1是添加学生信息,2是删除学生信息,3是查询学生信息,4是排序学生信息,5是显示学生信息,6是退出程序

5.2进制算法设计

先输入要转换为多少进制的数,在输入要转换的多少进制数

6C语言源程序代码

6.1成绩管理信息系统

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#defineMAX50

voidadd();

voiddel();

voidquery();

voidsort();

voidlist();

typedefstructemployee{

intnumber;

charname[20];

charsex[2];

intage;

charxueli[10];

floatsalary;

charaddress[30];

chartel[11];

}EMP;

voidmain()

{charc;

inti;

do

{

system("cls");

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

printf("*");

printf("\t1:

添加学生信息\n");

printf("\t2:

删除学生信息\n");

printf("\t3:

查询\n");

printf("\t4:

排序\n");

printf("\t5:

显示\n");

printf("\t6:

退出\n");

printf("\t请选择输入选项[1\\2\\3\\4\\5\\6]:

\n");

do

{

c=getchar();

}while(c!

='1'&&c!

='2'&&c!

='3'&&c!

='4'&&c!

='5'&&c!

='6');

getchar();

switch(c)

{case'1':

add();break;

case'2':

del();break;

case'3':

query();break;

case'4':

sort();break;

case'5':

list();break;

case'6':

exit(0);

}

printf("按任意键返回主菜单:

\n");

getchar();

system("cls");

}while

(1);

}

voidadd(){

EMPemploy;

FILE*fp;

/*以下为输入学生信息代码*/

printf("请输入学生信息");

printf("\n学生号(整数0001—1999):

");

scanf("%d",&employ.number);getchar();

printf("\n学生姓名:

");

gets(employ.name);

printf("\n学生性别(请输入男或女):

");

gets(employ.sex);

printf("\n学生年龄:

");

scanf("%d",&employ.age);getchar();

printf("\n学生成绩:

");

gets(employ.xueli);

printf("\n学生班级:

");

scanf("%f",&employ.salary);getchar();

printf("\n学生地址:

");

gets(employ.address);

printf("\n学生电话:

");

gets(employ.tel);

/*学生信息输入代码结束*/

printf("该学生信息为:

%d%s%s%d%s%.2f%s%s\n",employ.number,employ.name,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel);

/*将学生信息保存到文件中*/

if((fp=fopen("XX.out","ab"))==NULL)

{printf("");

getchar();

exit(0);

}

if(fwrite(&employ,sizeof(employ),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

/*保存学生信息代码结束*/

}

voidquery(){

intflag,number,count;

EMPemploy;

FILE*fp;

charname[10];

printf("请输入查找方式:

");

printf("1--代表按照学生号2--代表按照姓名\n");

scanf("%d",&flag);getchar();

if(flag==1)

{printf("请输入学生号:

");

scanf("%d",&number);getchar();

if((fp=fopen("XX.out","rb"))==NULL)

{printf("cannotopenfileexit!

");

getchar();

exit(0);

}

do

{

count=fread(&employ,sizeof(employ),1,fp);

if(employ.number==number){printf("该学生信息为:

%d%s%s%d%s%.2f%s%s\n",employ.number,employ.name,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel);

break;

}

}while(count==1);

//printf("%d",flag);

fclose(fp);

}

else

{printf("%d",flag);

}

printf("该学生不存在!

\n");

}

voiddel(){

intcount,i=0,number,j;

FILE*fp;

EMPemploy[MAX];

charflag;

if((fp=fopen("XX.out","rb"))==NULL)

{printf("cannotopenfileexit!

");

getchar();

exit(0);

}

/*从文件中读入数据*/

do{

count=fread(&employ[i],sizeof(employ[0]),1,fp);

if(count==1){i++;}

}while(count==1);

/*for(count=0;count

printf("%d",employ[count].number);*/

fclose(fp);

printf("\n请输入删除学生的学生号:

");

scanf("%d",&number);getchar();

printf("\n你确认删除该学生吗(y/n)");

flag=getchar();

if(flag=='y'){

/*找被删除的下标记为count*/

for(count=0;count

if(number==employ[count].number)break;

/*以下为删除代码*/

if(count

/*先将数组中的信息删除*/

for(j=count+1;j

{

employ[j-1].number=employ[j].number;

strcpy(employ[j-1].address,employ[j].address);

employ[j-1].age=employ[j].age;

strcpy(employ[j-1].name,employ[j].name);

employ[j-1].salary=employ[j].salary;

strcpy(employ[j-1].sex,employ[j].sex);

strcpy(employ[j-1].tel,employ[j].tel);

strcpy(employ[j-1].xueli,employ[j].xueli);

}

/*写入删除后的数据*/

if((fp=fopen("XX.out","wb"))==NULL)

{printf("cannotopenfileexit!

");

getchar();

exit(0);

}

fwrite(employ,sizeof(employ[0]),i-1,fp);

fclose(fp);

}

elseprintf("你输入的学生号不存在\n");

}

}

voidsort(){

EMPemploy[MAX],temp;

FILE*fp;

intcount,n=0,flag,i,j;

/*打开文件*/

if((fp=fopen("XX.out","rb"))==NULL)

{printf("cannotopenfileexit!

");

getchar();

exit(0);

}

/*从文件中读入数据*/

do{

count=fread(&employ[n],sizeof(employ[0]),1,fp);

if(count==1){n++;}

}while(count==1);

fclose(fp);

printf("1--代表按照学生号升序排序2--代表按照学生号降序排序\n");

scanf("%d",&flag);getchar();

if(flag==1){

//升序排序

for(i=0;i

for(j=0;j

{if(employ[j].number>employ[j+1].number)

{temp.number=employ[j].number;

strcpy(temp.name,employ[j].name);

strcpy(temp.sex,employ[j].sex);

temp.age=employ[j].age;

strcpy(temp.xueli,employ[j].xueli);

temp.salary=employ[j].salary;

strcpy(temp.address,employ[j].address);

strcpy(temp.tel,employ[j].tel);

employ[j].number=employ[j+1].number;

strcpy(employ[j].name,employ[j+1].name);

strcpy(employ[j].sex,employ[j+1].sex);

employ[j].age=employ[j+1].age;

strcpy(employ[j].xueli,employ[j+1].xueli);

employ[j].salary=employ[j+1].salary;

strcpy(employ[j].address,employ[j+1].address);

strcpy(employ[j].tel,employ[j+1].tel);

employ[j+1].number=temp.number;

strcpy(employ[j+1].name,temp.name);

strcpy(employ[j+1].sex,temp.sex);

employ[j+1].age=temp.age;

strcpy(employ[j+1].xueli,temp.xueli);

employ[j+1].salary=temp.salary;

strcpy(employ[j+1].address,temp.address);

strcpy(employ[j+1].tel,temp.tel);

 

}

}

}

else{

//降序排序

for(i=0;i

for(j=0;j

{if(employ[j].number

{temp.number=employ[j].number;

strcpy(temp.name,employ[j].name);

strcpy(temp.sex,employ[j].sex);

temp.age=employ[j].age;

strcpy(temp.xueli,employ[j].xueli);

temp.salary=employ[j].salary;

strcpy(temp.address,employ[j].address);

strcpy(temp.tel,employ[j].tel);

employ[j].number=employ[j+1].number;

strcpy(employ[j].name,employ[j+1].name);

strcpy(employ[j].sex,employ[j+1].sex);

employ[j].age=employ[j+1].age;

strcpy(employ[j].xueli,employ[j+1].xueli);

employ[j].salary=employ[j+1].salary;

strcpy(employ[j].address,employ[j+1].address);

strcpy(employ[j].tel,employ[j+1].tel);

employ[j+1].number=temp.number;

strcpy(employ[j+1].name,temp.name);

strcpy(employ[j+1].sex,temp.sex);

employ[j+1].age=temp.age;

strcpy(employ[j+1].xueli,temp.xueli);

employ[j+1].salary=temp.salary;

strcpy(employ[j+1].address,temp.address);

strcpy(employ[j+1].tel,temp.tel);

 

}

}

}

for(i=0;i

printf("该学生信息为:

%d%s%s%d%s%.2f%s%s\n",employ[i].number,employ[i].name,employ[i].sex,employ[i].age,employ[i].xueli,employ[i].salary,employ[i].address,employ[i].tel);

}

voidlist(){

EMPemploy;

FILE*fp;

intcount;

if((fp=fopen("XX.out","rb"))==NULL)

{printf("cannotopenfileexit!

");

getchar();

exit(0);

}

do

{

count=fread(&employ,sizeof(employ),1,fp);

if(count==1)printf("该学生信息为:

%d%s%s%d%s%.2f%s%s\n",employ.number,employ.name,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel);

}while(count==1);

fclose(fp);

}

6.2进制算法设计

#include

#include//malloc函数头文件

#defineINITSIZE100//初始分配的空间大小

typedefintElemType;//要据需要定义的数据类型

typedefstruct

{

ElemType*data;//用于存放元素的动态数组空间

inttop;//栈顶指针

intstacksize;//当前栈空间的长度

}linkStack;

voidinitstack(linkStack*s)//初始化栈

{

s->data=(ElemType*)malloc(INITSIZE*sizeof(ElemType));//分配空间

s->top=0;//栈顶指针初始化

s->stacksize=INITSIZE;//初始化栈的空间

}

intpush(linkStack*s,ElemTypex)//元素入栈

{

if(s->top>s->stacksize)//如果分配空间已满,从新分配

{

s->data=(ElemType*)realloc(s->data,(s->stacksize+1)*sizeof(ElemType));

if(!

s->data)return0;//分配失败,反回零

s->stacksize++;//增加空间大小

}

s->data[s->top++]=x;//把元素X入栈

return1;

}

intpop(linkStack*s)//元素出栈

{

if(s->top==0)return0;

returns->data[--s->top];

}

voidlist(linkStacks)//输出栈内的元素

{

inti,hex;

charchhex;

for(i=s.top-1;i>=0;i--)

if(s.data[i]>=10)//如果大于等于10则做如下处理

{

hex=s.data[i];

switch(hex)

{

case10:

chhex='A';break;

case11:

chhex='B';break;

case12:

chhex='C';break;

case13:

ch

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

当前位置:首页 > 初中教育 > 语文

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

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