《C程序设计》课程设计报告完成

上传人:206****923 文档编号:90114159 上传时间:2019-06-08 格式:DOC 页数:30 大小:462.50KB
返回 下载 相关 举报
《C程序设计》课程设计报告完成_第1页
第1页 / 共30页
《C程序设计》课程设计报告完成_第2页
第2页 / 共30页
《C程序设计》课程设计报告完成_第3页
第3页 / 共30页
《C程序设计》课程设计报告完成_第4页
第4页 / 共30页
《C程序设计》课程设计报告完成_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《C程序设计》课程设计报告完成》由会员分享,可在线阅读,更多相关《《C程序设计》课程设计报告完成(30页珍藏版)》请在金锄头文库上搜索。

1、 课程设计报告题目学生信息管理系统系别数学与计算机科学系班级10数学与应用数学姓名彭伟学号10061310张兵1006131054张祥建1006131059张志波1006131063刘越10061310指导教师束红职称讲师二一 一年 六 月 C语言课程设计报告 第 30 页,共 26页一课程设计目的1. 训练学生灵活应用所学知识,独立完成问题分析,结合C程序设计理论知识,编写程序求解指定问题。 2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4. 训练用系统的观点和软件开发一般规范进行软件开发,巩固

2、、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。二课程设计任务与要求:任务学生信息管理 问题描述:已知某学生信息表中现有N位同学的信息(要求各人数据不同),如:学号姓名年龄性别出生年月地址电话E-mail001彭伟20男92.09安徽002张兵21男91.07安徽 现需要删除已转学的某位同学的信息,同时添加某位同学的信息(学号、姓名),插入位置按学号升序排列。 请根据所学过的知识用C/C+编程实现此操作。程序要求: 1. 现有N位同学的数据要求从数据文件中读入,不用交互方式录入;2. 删除及插入操作完毕,需将信息表中的所有记录按学号升序方式显示出来;3.

3、 将更新后的信息表保存到另一个数据文件中;4. 可以增加功能:如修改某位同学的信息。要求:1. 在处理每个题目时,要求从分析题目的需求入手,设计算法、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2. 设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3. 程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;4. 每组同学需提交可独立运行的程序;5. 每组同学需独立提交设计报告书(每组一份),要求编排格式统一、规范、内容充实

4、,不少于10页(代码不算);6. 课程设计实践作为培养学生动手能力的一种手段,单独考核。三课程设计说明书1、需求分析要求用到课本上学到的知识,所以就要充分而清晰的理解关于数组、指针、结构体等知识。要求实现的基本功能很简单,只有删除和插入,增加功能也不过是加上修改。问题是将输入的信息保存入文件和从文件输出。这里基本是自学的内容,而且要考虑到是否要自行选择保存的磁盘。综上,做这个课题,要具备的知识就是数组、指针、结构体等基本知识,文件的保存和读取算法,以及丰富的程序调适经验。2、概要设计 首先由于程序中要有对学生信息的增加和减少,定义三个全局变量k,n,m,在此程序的任意的模块中均可以使用。宏定义

5、,用LEN来代替开辟地址空间,定义八个结构体变量,学号code,姓名name,年龄age,出生年月time,家庭住址add,电话号码tel,电子邮件地址mail. 设计实现主要功能的函数有:创建学生信息的子函数void readfile();查找的子函数void seek();修改的子函数void modify();排序的子函数void sort();增添信息的子函数void insert();删除信息的子函数void del();显示当前信息的子函数void display();保存信息的子函数del();然后在main()函数中使用一个menu()实现对各个子函数的调用。为了使用的方便,程

6、序中将设计一种排序的方式,按照学号排序void sort()为了直观的看到操作以后的结果,还要有一个输出显示的函数void display()。程序运行中,为了保持屏幕的清楚和美观,时刻进行清屏也是必要的。3、详细设计1)宏定义,定义全局变量、结构体:#include /*I/O函数*/#include /*其它说明*/#include /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 15 /* 学号和姓名最大字符数,实际请更改 */#define N 100 /* 最大学生人数,实际请更改*/struct record /*结构体*

7、/char codeLEN+1; /* 学号 */char nameLEN+1; /* 姓名 */int age; /* 年龄 */char sex3; /* 性别 */char timeLEN+1; /* 出生年月 */char add30; /* 家庭地址 */char telLEN+1; /* 电话号码 */char mail30; /* 电子邮件地址 */stuN;int k=1,n,m; /* 定义全局变量 */ void readfile();/* 函数声明 */void seek();void modify();void insert();void del();void disp

8、lay();void save();void menu();2)主函数的算法如下:main() while(k)menu();system(pause);return 0; /*结束main函数*/ 3)建立信息的算法如下:void readfile()/* 建立信息 */char *p=student.txt;FILE *fp;int i=0;if (fp=fopen(student.txt,r)=NULL) printf(Open file %s error! Strike any key to exit!,p);system(pause);exit(0);while(fscanf(fp,

9、%s %s%d%s %s %s %s %s,stui.code,stui.name,&stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail)=8)i+;i=i;fclose(fp);n=i;printf(录入完毕!n);4)查找学生信息的算法如下:void seek() /*查找*/int i,item,flag;char s121; /* 以姓名和学号最长长度+1为准 */printf(-n);printf(-1.按学号查询-n);printf(-2.按姓名查询-n);printf(-3.退出本菜单-n);printf(-n);whi

10、le(1)printf(请选择子菜单编号:);scanf(%d,&item);flag=0;switch(item)case 1:printf(请输入要查询的学生的学号:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.code,s1)=0)flag=1;printf(学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn);printf(-n);printf(%-10s%-10s%-6d%-7s%-11s%-9s%-14s%-14sn,stui.code,stui.name,stui.age,stui.sex,stui.time,stui

11、.add,stui.tel,stui.mail);if(flag=0)printf(该学号不存在!n); break;case 2:printf(请输入要查询的学生的姓名:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.name,s1)=0)flag=1;printf(学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn);printf(-n);printf(%-10s%-10s%-6d%-7s%-11s%-9s%-14s%-14sn,stui.code,stui.name,stui.age,stui.sex,stui.time,stu

12、i.add,stui.tel,stui.mail);if(flag=0)printf(该姓名不存在!n); break;case 3:return;default:printf(请在1-3之间选择n);5)修改学生信息的算法如下:void modify() /*修改信息*/int i,item,num;char sex13,s1LEN+1,s2LEN+1; /* 以姓名和学号最长长度+1为准 */printf(请输入要要修改的学生的学号:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.code,s1)=0) /*比较字符串是否相等*/num=i;printf(-n);printf(1.修改姓名n);printf(2.修改年龄n);printf(3.修改性别n);printf(4.修改出生年月n);printf(5.修改地址n);printf(6.修改电话号码n);printf(7.修改E-mail地址n);printf(8.退出本菜单n);printf(-n);while(1)printf(请选择子菜单编号:);scanf(%d,&item);switch(item)case 1:printf(请输入新的姓名:n);scanf(%s,s2);strcpy(st

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号