学生管理系统 C语言

  • 格式:doc
  • 大小:88.50 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C/C++程序设计

课程设计报告

专业:

班级:

学号:

姓名:

版本号:

时间:

目录

1 概述 (2)

1.1目的 (2)

1.2计划 (2)

2 课程设计过程及结果 (3)

2.1编程环境及工具 (3)

2.2排序与简单分析 (3)

2.3综合设计 (3)

2.3.1 功能实现 (3)

2.3.2 程序异常处理 (5)

2.3.3 特色功能 (5)

3 课程设计总结 (6)

3.1课程设计计划执行情况 (6)

3.2我理解的C++ (6)

3.3改进设想 (6)

附录关键代码 (6)

原创声明:本课程设计报告及相应的软件程序的全部内容均为本人独立完成,如有抄袭,愿承担相应后果。

声明人___________________

学号:__________________

1概述

1.1 目的

1、熟悉c语言的编译环境

2、掌握c语言的基本操作

3、回顾并加深对C/C++程序设计相关知识的理解,能够用C/C++独立完成简单数据管

理软件的编写

4、锻炼同学思维强度与能力

5、培养同学认真态度和刻苦的精神

1.2 计划

用Microsoft Visual C++ 6.0进行编译,利用之前学过的课程知识和查询资料等方法完成题目的设计,用Debug进行调试。

1.回顾c语言编程基本内容,了解各种数据类型及掌握各种语句的结构类型。

2.完成一个简单任务:排序与简单分析把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序。出现次数相同的按照字母顺序排列,(a最前,z最后)。

输入:任意一个字符串(小写,长度小于255)

输出:重新排序后的结果

例如,输入:aassdfkjiowea回车

则输出为:defijkowssaaa

3.综合设计:设计实现学生成绩管理软件。

参考下面的数据,用C/C++设计一个简单的学生成绩管理软件,实现基本的功能。

学生信息文件(A.TXT)及其内容(示意):

学号姓名性别班级

200800800901 张三男电子0801

200800820902 李四女通信0801

200800800903 王五女电子0802

200800820904 赵六男通信0801

……

课程信息(B.TXT)及其内容(示意):

课程编号课程名称学分

C01 大学英语 4

C02 高等数学 4

C03 C++程序设计 3

……

学生成绩信息文件(C.TXT)及其内容(示意,成绩保存使用浮点数):

学号课程成绩

200800800901 C01 89

200800800902 C01 68.5

200800800901 C02 45.5

200800800903 C02 78

实现数据录入显示功能查询功能数据删除、整理功能排序功能。

2课程设计过程及结果

2.1 编程环境及工具

环境变量的设置及作用

环境变量的设置:右击我的电脑——高级——环境变量——在系统变量里有

path选项——双击打开——在原有变量的基础上添加英文状态下的分号——

然后将路径名输入即可

作用:安装软件时往往须要向系统目录中复制某些文件,而使用另外一个系

统时会由于缺少这些文件而无法运行。因此,我们可以通过设置环境变量的

方法来解决这个问题

批处理及命令行编译

2.2 排序与简单分析

题目重述:

把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序。出现次数相同的按照字母顺序排列,(a最前,z最后)。

输入:任意一个字符串(小写,长度小于255)

输出:重新排序后的结果

题目分析:

此次设计排序有两个要求,并有优先排序。

1、先以字母个数的多少来排序

2、字母字数相同的按照先后顺序来排。

要实现以上两个要求,最基本的方法是:先按字母先后顺序排序(冒泡排序法),存到一个数组a里,然后用两个数组b,c,一个记录字母的个数,一个记录字母的下标,然后对b数组排序,同时c也跟着排序,最后,用for循环把排好的字母顺序打印出来。

(具体见附录中的排序程序)。

2.3 综合设计

2.3.1功能实现

1.数据录入

2..显示功能

3.查询功能

4.数据删除、整理功能

2.3.1.1文件读入

1.分别把三个文件录入到三个结构体里

先定义结构体数组stu1[] ,stu2[],stu3[];

stu1[6]用来记录学生信息,stu2[6]用来记录课程信息,stu3[12]用来记录成绩信息

struct stu_info1

{

c har num[13];//学号

c har name[10];//姓名

c har sex[5];//性别

c har cls[20];//班级

}stu1[6];

struct stu_info2

{

c har counum[6];//课程号

c har counam[20];//课程名称

i nt credit;//学分

}stu2[6];

struct stu_info3

{

c har num[13];//学号

c har counum[6];//课程号

f loat results;//分数

}stu3[12];

2.三个文件用fscanf来读到结构体里:

void input1()//录入结构体stu1[]

{

i nt i;

F ILE *fp;

i f((fp=fopen("A.txt","r"))==NULL)

{

printf("can not open file\n");

exit(0);

}

f or(i=0;i<=5;i++)

{

fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);

}

f close(fp);

}

此处只写了将A.txt录入结构体stu1[6]的子函数,将B.txt,C.txt 录入stu2[6],stu3[12]的子函数和这个子函数类似,具体函数请参考附录中的子函数input2()和output() 函数。2.3.1.2数据录入

1用只读方式打开.C.txt,

FILE *fp;

fp=fopen("C.txt","w");