c语言课程设计课程设计-成绩统计系统进制转换系统_第1页
c语言课程设计课程设计-成绩统计系统进制转换系统_第2页
c语言课程设计课程设计-成绩统计系统进制转换系统_第3页
c语言课程设计课程设计-成绩统计系统进制转换系统_第4页
c语言课程设计课程设计-成绩统计系统进制转换系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 序号: 03 01 学号: 10416313 课 程 设 计设计课程名称: c 语言课程设计 题 目: 成绩统计系统成绩统计系统 进制转换系统进制转换系统学 生 姓 名: 学 院(系): 怀德学院 专 业 班 级: 计算机 101 指 导 教 师: 设计时间: 2011 年 6 月 13 日 2011 年 6 月 27 日常州大学课程设计第 2 页 共 22 页常州大学课程设计第 3 页 共 22 页常常州州大大学学 课课程程设设计计任任务务书书 一一怀德学院计算机 专业 计算机 101 班 同学:韩建东一、设计题目一、设计题目 成绩统计系统成绩统计系统 二、设计内容二、设计内容 假设某校学

2、生通讯录基本信息主要包括:学号、姓名、通讯地址、电话等,本系统应能对这些基本信息进行管理,并要求具有以下功能: 1、具有学生信息添加功能2、具有学生信息删除功能 3、具有学生信息浏览功能4、具有学生信息查询功能5、具有学生信息排序功能三、基本要求三、基本要求1、编写源程序的要求:(1)能够实现任务书中的功能;(2)尽可能使界面友好、直观、易操作(3)源程序要有适当的注释,使程序容易阅读。2、撰写“课程设计报告” ,要求如下: (1)封面:统一采用江苏工业学院课程设计说明书封面格式 (2)任务书 (3)目录 (4) “课程设计报告”正文3、课程设计验收要求: (1)运行所设计的系统;(2)回答有

3、关问题;(3)提交课程设计报告;(4)提交源程序。四、进度安排四、进度安排1、系统分析、设计准备阶段:4 学时2、编程调试阶段:22 学时3、总结和书写课程设计报告阶段:2 学时4、考核阶段:2 学时常州大学课程设计第 4 页 共 22 页指导教师: 倪彤光 2011 年 6 月 7 日系主任: 苏兵 2011 年 6 月 7 日教学院长: 杨长春 2011 年 6 月 7 日常常州州大大学学课课程程设设计计任任务务书书二二怀德学院计算机 专业 计算机 101 班 同学:韩建东一、设计题目一、设计题目 进制转换系统进制转换系统二、设计内容二、设计内容 本系统要求具有以下功能:1、具有将十进制转

4、换为二进制功能2、具有将十进制转换为十六进制功能3、具有将二进制转换为十进制功能4、具有将十六进制转换为十进制功能三、基本要求三、基本要求1、编写源程序的要求:(1)能够实现任务书中的功能;(2)尽可能使界面友好、直观、易操作(3)源程序要有适当的注释,使程序容易阅读。2、撰写“课程设计报告” ,要求如下: (1)封面:统一采用江苏工业学院课程设计说明书封面格式 (2)任务书 (3)目录 (4) “课程设计报告”正文3、课程设计验收要求: (1)运行所设计的系统;(2)回答有关问题;(3)提交课程设计报告;(4)提交源程序。四、进度安排四、进度安排1、系统分析、设计准备阶段:4 学时常州大学课

5、程设计第 5 页 共 22 页2、编程调试阶段:22 学时3、总结和书写课程设计报告阶段:2 学时4、考核阶段:2 学时指导教师: 倪彤光 2011 年 6 月 7 日系主任: 苏兵 2011 年 6 月 7 日教学院长: 杨长春 2011 年 6 月 7 日1.1.意义及功能意义及功能.51.1 系统意义 .51.1.1 成绩管理信息系统意义.51.1.2 进制算法设计意义.51.2 系统功能 .51.2.1 成绩管理信息系统功能 .51.2.2 进制算法设计功能 .52 2 功能结构图功能结构图.52.1 成绩管理信息系统.52.2 进制算法设计.53.3.流程图流程图.63.1 成绩管理

6、信息系统流程图 .64 4 调试运行调试运行.64.1 成绩管理信息系统 .64.2 进制算法设计 .65 5 使用说明使用说明.65.1 成绩管理信息系统.65.2 进制算法设计.66 6 c c 语言源程序代码语言源程序代码.76.1 成绩管理信息系统.76.2 进制算法设计 .77 7 心得体会心得体会.88 8 实习日志实习日志.89 9 参考文献参考文献.9常州大学课程设计第 6 页 共 22 页1.1.意义及功能意义及功能1.11.1系统意义系统意义1.1.1 成绩管理信息系统意义为了方便学校用来统计学生的数据,为学校可以省下大量的人力和物力,同时也省下了时间。1.1.2 进制算法

7、设计意义为了方便广大初学学生更好的了解进制之间的转换。1.21.2 系统功能系统功能1.2.1 成绩管理信息系统功能1、具有学生信息添加功能2、具有学生信息删除功能 3、具有学生信息浏览功能4、具有学生信息查询功能5、具有学生信息排序功能1.2.2 进制算法设计功能1、具有将十进制转换为二进制功能2、具有将十进制转换为十六进制功能3、具有将二进制转换为十进制功能4、具有将十六进制转换为十进制功能常州大学课程设计第 7 页 共 22 页2 2 功能结构图功能结构图2.12.1 成绩管理信息系统成绩管理信息系统输入学生信息添加学生信息删除学生信息显示学生信息排序学生信息 2.22.2 进制算法设计

8、进制算法设计输入数据要转换的进制输出数据常州大学课程设计第 8 页 共 22 页3.3.流程图流程图3.13.1 成绩管理信息系统流程图成绩管理信息系统流程图常州大学课程设计第 9 页 共 22 页4 4 调试运行调试运行4.14.1 成绩管理信息系统成绩管理信息系统常州大学课程设计第 10 页 共 22 页4.24.2 进制算法设计进制算法设计常州大学课程设计第 11 页 共 22 页5 5 使用说明使用说明5.15.1 成绩管理信息系统成绩管理信息系统1 是添加学生信息,2 是删除学生信息,3 是查询学生信息,4 是排序学生信息,5 是显示学生信息,6 是退出程序常州大学课程设计第 12

9、页 共 22 页5.25.2 进制算法设计进制算法设计先输入要转换为多少进制的数,在输入要转换的多少进制数6 6 c c 语言源程序代码语言源程序代码6.16.1 成绩管理信息系统成绩管理信息系统 #include stdio.h #include stdlib.h #include string.h #define max 50 void add(); void del(); void query(); void sort(); void list(); typedef struct employee int number;char name20;char sex2; int age;cha

10、r xueli10;float salary;char address30;char tel11; emp; void main() char c; int i; do system(cls); for(i=0;i80;i+) printf(*); printf(t 1: 添加学生信息n); printf(t 2: 删除学生信息n); printf(t 3: 查询n); printf(t 4: 排序n); printf(t 5: 显示n); printf(t 6: 退出n); printf(t 请选择输入选项123456:n);常州大学课程设计第 13 页 共 22 页 do c=getcha

11、r(); 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); void add() emp employ;file *fp;/* 以下为输入学生信息代码*/pri

12、ntf(请输入学生信息);printf(n 学生号(整数 00011999):); scanf(%d,&employ.number);getchar(); printf(n 学生姓名:);gets(); 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(

13、n 学生地址:); gets(employ.address);printf(n 学生电话:);gets(employ.tel); /* 学生信息输入代码结束*/printf(该学生信息为:%d %s %s %d %s %.2f %s %sn,employ.number,,employ.sex,employ.age,employ.xueli,employ.salary,employ.常州大学课程设计第 14 页 共 22 页address,employ.tel); /* 将学生信息保存到文件中*/ if(fp=fopen(xx.out,ab)=null)printf( );

14、 getchar(); exit(0); if(fwrite(&employ,sizeof(employ),1,fp)!=1) printf(file write errorn); fclose(fp); /* 保存学生信息代码结束*/ void query() int flag,number,count; emp employ; file *fp; char name10; printf(请输入查找方式:); printf(1-代表按照学生号 2-代表按照姓名n); scanf(%d,&flag);getchar(); if(flag=1) printf(请输入学生号:); scanf(%d

15、,&number);getchar(); if(fp=fopen(xx.out,rb)=null) printf(cannot open file exit! ); getchar(); exit(0); do count=fread(&employ,sizeof(employ),1,fp); if(employ.number=number) printf(该学生信息为:%d %s %s %d %s %.2f %s %sn,employ.number,,employ.sex,employ.age,employ.xueli,employ.salary,employ.addr

16、ess,employ.tel); break; while(count=1); /printf(%d,flag); fclose(fp); else printf(%d,flag); 常州大学课程设计第 15 页 共 22 页 printf(该学生不存在!n); void del() int count,i=0,number,j;file *fp;emp employmax;char flag; if(fp=fopen(xx.out,rb)=null) printf(cannot open file exit! ); getchar(); exit(0); /* 从文件中读入数据*/ do c

17、ount=fread(&employi,sizeof(employ0),1,fp); if(count=1) i+; while(count=1);/* for(count=0;counti;count+) printf(%d ,employcount.number); */ fclose(fp); printf(n 请输入删除学生的学生号:); scanf(%d,&number); getchar(); printf(n 你确认删除该学生吗(y/n)); flag=getchar(); if(flag=y) /*找被删除的下标记为 count*/for(count=0; counti;cou

18、nt+) if(number=employcount.number) break; /*以下为删除代码*/ if(counti) /*先将数组中的信息删除*/ for(j=count+1;ji;j+) employj-1.number=employj.number; strcpy(employj-1.address,employj.address);employj-1.age=employj.age;strcpy(,);employj-1.salary=employj.salary;strcpy(employj-1.sex,employj.s

19、ex);strcpy(employj-1.tel,employj.tel);strcpy(employj-1.xueli,employj.xueli);常州大学课程设计第 16 页 共 22 页 /*写入删除后的数据*/ if(fp=fopen(xx.out,wb)=null) printf(cannot open file exit! ); getchar(); exit(0); fwrite(employ,sizeof(employ0),i-1,fp); fclose(fp); else printf(你输入的学生号不存在n); void sort() emp employmax,temp

20、;file *fp; int count,n=0,flag,i,j; /*打开文件*/if(fp=fopen(xx.out,rb)=null) printf(cannot open file exit! ); getchar(); exit(0); /* 从文件中读入数据*/ do count=fread(&employn,sizeof(employ0),1,fp); if(count=1) n+; while(count=1); fclose(fp); printf(1-代表按照学生号升序排序 2-代表按照学生号降序排序n); scanf(%d,&flag);getchar(); if(fl

21、ag=1) /升序排序 for(i=0;in-1;i+)for(j=0;jemployj+1.number) temp.number=employj.number; strcpy(,); 常州大学课程设计第 17 页 共 22 页 strcpy(temp.sex,employj.sex); temp.age=employj.age; strcpy(temp.xueli,employj.xueli); temp.salary=employj.salary; strcpy(temp.address,employj.address); strcpy(temp

22、.tel,employj.tel); employj.number=employj+1.number; strcpy(,employj+1.name); strcpy(employj.sex,employj+1.sex); employj.age=employj+1.age; strcpy(employj.xueli,employj+1.xueli); employj.salary=employj+1.salary; strcpy(employj.address,employj+1.address); strcpy(employj.tel,employj+1.tel);

23、 employj+1.number=temp.number; strcpy(employj+1.name,); strcpy(employj+1.sex,temp.sex); employj+1.age=temp.age; strcpy(employj+1.xueli,temp.xueli); employj+1.salary=temp.salary; strcpy(employj+1.address,temp.address); strcpy(employj+1.tel,temp.tel); else /降序排序 for(i=0;in-1;i+)for(j=0;jn-1-i

24、;j+)if(employj.numberemployj+1.number) temp.number=employj.number; strcpy(,); strcpy(temp.sex,employj.sex); temp.age=employj.age;常州大学课程设计第 18 页 共 22 页 strcpy(temp.xueli,employj.xueli); temp.salary=employj.salary; strcpy(temp.address,employj.address); strcpy(temp.tel,employj.tel)

25、; employj.number=employj+1.number; strcpy(,employj+1.name); strcpy(employj.sex,employj+1.sex); employj.age=employj+1.age; strcpy(employj.xueli,employj+1.xueli); employj.salary=employj+1.salary; strcpy(employj.address,employj+1.address); strcpy(employj.tel,employj+1.tel); employj+1.number

26、=temp.number; strcpy(employj+1.name,); strcpy(employj+1.sex,temp.sex); employj+1.age=temp.age; strcpy(employj+1.xueli,temp.xueli); employj+1.salary=temp.salary; strcpy(employj+1.address,temp.address); strcpy(employj+1.tel,temp.tel); for(i=0;in;i+) printf(该学生信息为:%d %s %s %d %s %.2f %s %sn,em

27、ployi.number,,employi.sex,employi.age,employi.xueli,employi.salary,employi.address,employi.tel); void list() emp employ; file *fp; int count;常州大学课程设计第 19 页 共 22 页 if(fp=fopen(xx.out,rb)=null)printf( cannot open file exit!); getchar(); exit(0); do count=fread(&employ,sizeof(employ),1,fp);

28、 if(count=1) printf(该学生信息为:%d %s %s %d %s %.2f %s %sn,employ.number,,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel); while(count=1); fclose(fp); 6.26.2 进制算法设计进制算法设计#include #include /malloc 函数头文件#define initsize 100/初始分配的空间大小typedef int elemtype;/要据需要定义的数据类型ty

29、pedef struct elemtype *data;/用于存放元素的动态数组空间 int top;/栈顶指针 int stacksize;/当前栈空间的长度linkstack;void initstack(linkstack *s)/初始化栈 s-data=(elemtype *)malloc(initsize*sizeof(elemtype);/分配空间 s-top=0;/栈顶指针初始化 s-stacksize=initsize;/初始化栈的空间int push(linkstack *s,elemtype x)/元素入栈 if(s-tops-stacksize)/如果分配空间已满,从新分

30、配 s-data=(elemtype *)realloc(s-data ,(s-stacksize+1)*sizeof(elemtype); if(!s-data)return 0;/分配失败,反回零 s-stacksize+;/增加空间大小 s-datas-top+=x;/把元素 x 入栈 return 1;常州大学课程设计第 20 页 共 22 页int pop(linkstack *s)/元素出栈 if(s-top=0)return 0; return s-data-s-top;void list(linkstack s)/输出栈内的元素 int i,hex; char chhex; f

31、or(i=s.top-1;i=0;i-) if(s.datai=10)/如果大于等于 10 则做如下处理 hex=s.datai; switch(hex) case 10:chhex=a;break; case 11:chhex=b;break; case 12:chhex=c;break; case 13:chhex=d;break; case 14:chhex=e;break; case 15:chhex=f;break; printf(%c,chhex); else printf(%d,s.datai);/如果不大于 10 直接输出 printf(n);void main() linkstack s; char chhex; int l,n,i,x; initstack(&s);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论