C语言大作业 学生信息管理系统

C语言大作业 学生信息管理系统
C语言大作业 学生信息管理系统

《程序设计综合课程设计》报告

学生姓名: ______ ______ ______

______________________

学生班级: ______________________

____________

____________

学生学号: ____________

指导教师: ______

2014年6 月 22 日

目录

前言 (2)

第1章Visual C++6.0简介及其优点 (3)

第2章课程设计的目的和要求 (4)

(4)

2.2课程设计的要求 (5)

第3章课程设计任务内容 (6)

3.1 需求分析 (6)

3.2可行性分析 (6)

第5章总结 ................................................................... 附录源程序

学生信息管理系统

前言

学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项

数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等

院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。

其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人

工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院

校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的

管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力

和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入

人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以

计算机为物质基础的信息管理方法所取代。

作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟

的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要

条件,更是各个高等院校与世界接轨的重要条件。

第1章 Visual C++6.0简介及其优点

VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c++的一个开发平台有些软件就是这个编来的...另外还有VB,VF.只是使用不同语言...但是, vc++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、

COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。

VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说 VC++不是门语言,虽然它和C++之间有密切的关系,

如果形象点比喻的话,可以C++看作为一种”工业标准”,而VC++则是某种操作系统平台下的”厂商标准”,而”厂商标准”是在遵循”工业标准”的前提下扩展而来的。

VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。要想学习好VC必须具备良好的C/C++的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发布。

vc6.0的优点是界面简洁,占用资源少,操作方便。

第2章课程设计的目的和要求

2.1课程设计目的

本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言》课程后进行的一次全面的综合练习。本课程设计的目的和任务:

1.巩固和加深学生对C语言课程的基本知识的理解和掌握;

2.掌握C语言编程和程序调试的基本技能;

3.利用C语言进行基本的软件设计;

4.掌握书写程序设计说明文档的能力

5.提高运用C语言解决实际问题的能力。

通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c 语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!

通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。

学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。

作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。

本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量。

2.2课程设计的要求

本课程设计是《C语言程序设计》课程实践环节的深化和延续。此次课程

设计的目的是以C程序设计语言为基础,通过完成具有一定难度的课程设计题目的功能描述、总体设计、程序编写及调试工作,加深对C语言相关知识的理解与Visual C++集成开发环境的使用,重点掌握文件操作函数的熟练运用,并养成良好的程序设计习惯,提高自我分析问题、解决问题的能力,为进一步学习《高级编程技术》及其相关课程打下良好基础

掌握面向对象程序设计的基本方法,熟练掌握C++编程工具,根据问题进行学习,拓广、深化,独立完成一个小型应用程序的设计、编码和测试,为以后学习软件工程打下实践基础

系统说明书要求提交打印版或手写版(这是检查作业的依据)。内容包括:系统需求描述(问题描述),系统结构设计(类体系设计),类的详细设计(各类定义的基本功能,即主要数据和函数功能描述,以及类和类之间的交互),拟采用开发平台(Visual C++)

作业报告:根据原有的系统设计,编码阶段的工作,整理书写作业报告,内容包括:问题描述,系统设计,使用说明,讨论,最后提交(电子版):实验报告,

基本要求:1、要求利用C语言面向过程的编程思想来完成系统的设计;2、突出C语言的函数特征,以多个函数实现每一个子功能;3、画出功能模块图;

4、进行简单界面设计,能够实现友好的交互;

5、具有清晰的程序流程图和数据结构的详细定义;

6、熟练掌握C语言对文件的各种操作。

7、分析程序的功能要求,划分程序功能模块。

8、代码的编写。定义数据结构和各个功能子函数。

9、程序的功能调试;10、完成系统总结报告以及使用说明书。

第3章课程设计任务内容

3.1需求分析

21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理

系统软件为学校办公室带来了极大的方便。

(一)教育系统学生管理现状分析

学校工作流程分析

学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。

新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。

(二)学校具体需求分析

学生:对各科成绩的查询

任课老师:输入并维护所教科目的学生成绩

教务处:学校全体成员的信息管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护。

通过研究调查,本系统需以下功能:

综合学生信息、学生成绩以及信息查询等信息。

方便用户了解和管理学生的全面动态信息。

良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。

3.2可行性分析

目的:可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。

经济性:

由于学校等中小型管理系统并不复杂,且Visual C++6.0本身要求的运行环境不高,所以一般Windows 2000以上的系统环境都可以使用。

实用性:

本学生信息管理系统管理系统无太多复杂的操作要求,也没有过分花哨的装饰品,人性化的设计界面可以使操作者轻易运用自如

图3-1 功能图

第4章软件使用说明

1、进入程序后显示

2.选择进入程序身份

3.出入密码

4.进入管理员模式

5.添加信息

6.修改信息

7.删除信息

8.列出所有信息

9.查找指定学号

10.查找指定姓名

11.修改密码

12.备份信息

13.读取备份

14.初始化信息

15.退出程序

第5章总结

经过一个星期的上机实践学习,使我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

附录源程序

1.

#include

#include

extern struct student//声明结构体

{

long num;//学号

char name[10];//姓名

int age;//年龄

int sex;//性别

int year;//入学年份

char address[10];//地址

}stu[1000], temp;

extern int total;//声明total

void Save();//保存并退出

void EditInf();//编辑信息

void InfSearch();//查询信息

void codeinput();

void Encry();

void CCode();//修改密码

void ReadBackup();//读取备份

void WriteBackup();//备份信息

void DelInf();//删除信息

void SearchNum();//查找学号,该函数在Search.cpp中

void SearchName();//查找姓名

static void AddInf();//添加信息

static void AmendInf();//修改信息

void InputStu(int n);//录入信息函数

void PutStu(int n);//输出信息

static void ListAll();//输出所有信息

void AdminMode()

{

int select, flag = 1;

while(flag)

{

fflush(stdin);

system("cls");//清屏,使用此函数需包含stdlib.h

printf(" 当前是管理员模式\n");

printf(" 当前是主系统功能菜单\n");

printf("--------------------------------------------------------\n"); printf("╔═══════╗╔═══════╗╔═══════╗\n");

printf("║ 1.添加信息║║ 2.修改信息║║ 3.删除信息║\n");

printf("╚═══════╝╚═══════╝╚═══════╝\n");

printf("╔═══════╗╔═══════╗╔═══════╗\n");

printf("║4.列出所有信息║║5.查找指定学号║║6.查找指定姓名║\n");

printf("╚═══════╝╚═══════╝╚═══════╝\n");

printf("╔═══════╗╔═══════╗╔═══════╗\n");

printf("║ 7.修改密码║║ 8.初始化信息║║ 9.备份信息║\n");

printf("╚═══════╝╚═══════╝╚══════

═╝\n");

printf("╔═══════╗╔═══════╗╔═══════╗\n");

printf("║ 10.读取备份║║ 11.退出程序║║ 0.返回上层║\n");

printf("╚═══════╝╚═══════╝╚═══════╝\n");

printf("--------------------------------------------------------\n"); printf(" 请选择:");

scanf("%d", &select);

switch(select)

{

case 1:

AddInf();

break;

case 2:

AmendInf();

break;

case 3:

DelInf();

break;

case 4:

ListAll();

break;

case 5:

SearchNum();

break;

case 6:

SearchName();

break;

case 7:

CCode();

break;

case 8:

total = 0;

printf("操作成功");

case 9:

WriteBackup();

break;

case 10:

ReadBackup();

break;

case 11:

printf("请按任意键退出\n");

Save();

case 0:

flag = 0;

}

}

}

static void AddInf()//添加信息

{

system("cls");//清屏,使用此函数需包含stdlib.h

if(total >= 1000)

printf("记录已满1000,无法录入\n");

else

{

InputStu(total);

total++;

}

}

static void AmendInf()//修改信息

{

fflush(stdin);

long n = 0, stunum, i;

printf("请输入要修改的学生信息的学号:");

scanf("%ld", &stunum);

for(i = 0; i <= total - 1; i++)//查找学号对应的下标{

if(stunum == stu[i].num)

{

n = 1;

break;

}

}

if(n == 0)

{

printf("抱歉,没有找到对应的记录");

fflush(stdin);

getchar();

}

else

{

printf("请输入新的信息,按任意键继续");

fflush(stdin);

getchar();

InputStu(i);

}

}

static void ListAll()//列出所有信息

{

system("cls");

int i;

for(i = 0; i <= total - 1; i++)

PutStu(i);

fflush(stdin);

getchar();

}

2.

#include

#include

#include

#include

void Save();

void CCode()

{

system("cls");

int countl,select,res;

char code1[21],code2[21],ori[]="123",ch;//密码FILE *fp;

if((fp = fopen("pw.dat", "r")) == NULL)

{

printf("无法修改密码");

fflush(stdin);

getchar();

return;

}

fflush(stdin);

printf("请输入新密码:");

for(countl=1;;countl++)

{

scanf("%20s",code1);//密码输入

printf("\n");

printf("请再次输入您的新密码: \n");

scanf("%20s",code2);

printf("\n");

res=strcmp(code1,code2);

if(res==0)

{

fp=fopen("pw.dat","w");

fwrite(code1, sizeof(code1), 1, fp);

fclose(fp);

printf("修改密码成功!\n返回上级:任意键\n退出程序:【Esc】\n");

ch=getch();

printf("\n");

if(ch==27)

Save();

system("cls");break;

}

else

{

if(countl>=4)

{

printf("%c",'\007');

printf("对不起,您现在不能修改密码!\n退出程序:【Esc】\n 返回上级:任意键\n");

ch=getch();

printf("\n");

if(ch==27)

Save();

system("cls");

break;

}

else

{

printf("对不起,您密码两次输入不一致\n\n请重新输入:\n");

printf("%c",'\007');

}

}

}

}

3.

#include

#include

#include

void AdminMode();

void Code()

{

system("cls");

char pw[21], pw2[21];//密码

FILE *fp;

if((fp = fopen("pw.dat", "r")) == NULL)

{

strcpy(pw,"1234");

fp=fopen("pw.dat","w");

fwrite(pw, sizeof(pw), 1, fp);

fclose(fp);

}

else

{

fread(pw, sizeof(pw), 1, fp);//读取密码

fclose(fp);

}

fflush(stdin);

printf("请输入密码(默认为1234):");

scanf("%20s", pw2);

if(strcmp(pw2, pw) == 0)

AdminMode();

else

{

printf("密码输入错误");

fflush(stdin);

getchar();

}

}

4.

#include

#include

#include

extern struct student//声明结构体

{

long num;//学号

char name[10];//姓名

int age;//年龄

int sex;//性别

int year;//入学年份

char address[10];//地址

}stu[1000], temp;

extern int total;//声明total

static void Stucpy(int n);

void DelInf()//录入信息

{

fflush(stdin);

long n = 0, stunum, i, j;

printf("请输入要删除的学生信息的学号:");

scanf("%ld", &stunum);

for(i = 0; i <= total - 1; i++)//查找学号对应的下标

{

if(stunum == stu[i].num)

{

n = 1;

break;

}

}

if(n == 0)

{

printf("抱歉,没有找到对应的记录");

fflush(stdin);

getchar();

}

else

{

total--;

for(j = total ; j > i ; j--)

Stucpy(j);

printf("操作成功");

fflush(stdin);

getchar();

}

}

static void Stucpy(int j)

{

stu[j - 1].num = stu[j].num;//学号

strcpy(stu[j - 1].name, stu[j].name);//姓名

stu[j - 1].age = stu[j].age;//年龄

stu[j - 1].sex = stu[j].sex;//性别

stu[j - 1].year = stu[j].year;//入学年份

strcpy(stu[j - 1].address,stu[j].address);//地址}

5.

#include

#include

extern struct student//声明结构体

{

long num;//学号

char name[10];//姓名

int age;//年龄

int sex;//性别

int year;//入学年份

char address[10];//地址

}stu[1000], temp;

extern int total;

void PutStu(int n);

void Save();

void SearchNum();

void SearchName();

static void ListAll();

void InfSearch()

{

int select, flag = 1;

while(flag)

{

fflush(stdin);

system("cls");//清屏,使用此函数需包含stdlib.h printf("1.列出所有信息\n");

printf("2.查找指定学号\n");

printf("3.查找指定姓名\n");

printf("4.退出程序\n");

printf("0.返回上层\n");

printf("请选择:");

scanf("%d", &select);

switch(select)

{

case 1:

ListAll();

break;

case 2:

SearchNum();

break;

case 3:

SearchName();

break;

case 4:

printf("请按任意键退出\n");

Save();

case 0:

flag = 0;

}

}

}

static void ListAll()

{

system("cls");

int i;

for(i = 0; i <= total - 1; i++)

PutStu(i);

fflush(stdin);

getchar();

}

6.

#include

#include

extern struct student//声明结构体

{

long num;//学号

char name[10];//姓名

int age;//年龄

int sex;//性别

int year;//入学年份

char address[10];//地址

}stu[1000], temp;

extern int total;

void InputStu(int n)

{

int i, f = 0, f2 = 0;;

loop:

fflush(stdin);

system("cls");//清屏,使用此函数需包含stdlib.h

if(f == 0)

printf("请输入学号(最多9位):");

else

printf("与已有学号重复或过长,请再次输入学号:");

scanf("%9ld",&temp.num);

for(i = 0; i <= total - 1; i++)//判断学号是否重复

{

if(temp.num == stu[i].num)

{

f = 1;

goto loop;

}

}

stu[n].num = temp.num;

fflush(stdin);

printf("请输入姓名:");

scanf("%s",stu[n].name);

fflush(stdin);

printf("请输入年龄:");

scanf("%d",&stu[n].age);

loop2:

fflush(stdin);

if(f2 == 0)

printf("性别为男请输入1,为女请输入0:");

else

printf("输入错误,性别为男请输入1,为女请输入0:");

int judge;

scanf("%d", &judge);

if(judge == 1)

stu[n].sex = 1;

else if(judge == 0)

stu[n].sex = 0;

else

{

f2 = 1;

goto loop2;

}

fflush(stdin);

printf("请输入入学年份:");

scanf("%d",&stu[n].year);

fflush(stdin);

printf("请输入地址:");

scanf("%s",stu[n].address);

printf("操作成功");

fflush(stdin);

getchar();

}

7.

#include

#include

struct student//定义结构体

{

long num;//学号

char name[10];//姓名

int age;//年龄

int sex;//性别

int year;//入学年份

char address[10];//地址

}stu[1000], temp;

int total;//total是所包含记录的条数

void MainInterface();//开始界面

void Save();//保存文件并退出

static void read();//读取文件

int main()

{

read();

MainInterface();//进入开始主界面

Save();

return 0;

}

static void read()//读取文件

{

FILE *fp;

if((fp = fopen("stu.txt", "r")) == NULL)

{

total = 0;

}

else

{

fread(&total, sizeof(total), 1, fp);//读取total

fread(stu, sizeof(struct student), 1000, fp);//读取数组fclose(fp);

}

}

void Save()//保存文件

{

FILE *fp;

if((fp = fopen("stu.txt", "w")) == NULL)

{

printf("保存文件时出错");

exit(0);

}

fwrite(&total, sizeof(total), 1, fp);//写入total

fwrite(stu, sizeof(struct student), 1000, fp);//写入数组

fclose(fp);

exit(0);

}

8.

#include

#include

void Code();//管理员模式

void InfSearch();//信息查询

void Save();//保存并退出

void MainInterface()

{

while(1)

{

//fflush(stdin)的作用:

//清空输入缓冲区,通常是为了确保不影响后面的数据读取

//(例如在读完一个字符串后紧接着又要读取一个字符,

//此时应该先执行fflush(stdin);)

fflush(stdin);

system("cls");//清屏,使用此函数需包含stdlib.h

int select;

printf("欢迎进入学生信息管理系统\n");

printf("本系统可以实现学生信息的保存、查询、修改、删除、统计、备份等功能\n");

printf("本系统最多可存储1000条记录\n");

printf("1.管理员\n");

printf("2.普通用户\n");

printf("3.退出\n");

printf("请选择登录方式:");

scanf("%d", &select);

switch(select)

{

case 1:

Code();//管理员模式

break;

case 2:

InfSearch();//普通用户信息查询

break;

case 3:

printf("请按任意键退出\n");

Save();

}

}

}

9.

#include

#include

extern struct student//声明结构体

{

long num;//学号

char name[10];//姓名

int age;//年龄

int sex;//性别

int year;//入学年份

char address[10];//地址

}stu[1000], temp;

extern int total;

void PutStu(int n)

{

printf("学号:%ld 姓名:%s 年龄:%d", stu[n].num, stu[n].name,

stu[n].age);

if(stu[n].sex == 1)

printf(" 性别:男 ");

else

printf(" 性别:女 ");

printf("入学年份:%d 地址:%s", stu[n].year, stu[n].address);

printf("\n");

}

10.

#include

#include

extern struct student//声明结构体

{

long num;//学号

char name[10];//姓名

int age;//年龄

int sex;//性别

int year;//入学年份

char address[10];//地址

}stu[1000], temp;

extern total;

void ReadBackup()//读取文件

{

char file[20];

fflush(stdin);

FILE *fp;

printf("请输入文件名:");

scanf("%19s", file);

if((fp = fopen(file, "r")) == NULL)

{

printf("读取失败");

fflush(stdin);

getchar();

return;

}

else

{

fread(&total, sizeof(total), 1, fp);//读取total

fread(stu, sizeof(struct student), 1000, fp);//读取数组fclose(fp);

}

printf("操作成功");

fflush(stdin);

getchar();

C语言大作业报告

目录 一、设计题目 二、目标和需求分析 三、开发工具 四、应用平台 五、程序模块 1、游戏盒子 2、2048 3、扫雷 4、贪吃蛇 六、开发日志 七、程序调试及运行 八、程序开发总结 总结:虽然做出来的东西真的没什么技术水平,但是我们尽量把这个东西的每个方方面面做完整。

目标和需求分析一个小的游戏盒子,可以用来启动其它游戏,当然,其它游戏也是我们大作业的编写内容,平时可以玩玩用来打发时间 用到的工具VS2005 Easyx图形库 Pthread线程库 Hge 分工 秦贤康 组织大家,编写主程序,及构思计划,技术指导 王尧 所有的文件处理,数据算法方面优化 王懿晨 合作2048模块 杨梓晗 图片资源加工,音乐裁剪,按钮制作 程维驰 合作扫雷模块 应用平台:WINDOWS X64

程序功能模块: 一、 安装包:(写入开始菜单快捷方式,桌面快捷方式,开机启动等)//pascal 脚本编写 #define MyAppName "C 大作业" #define MyAppVersion "2.0" #define MyAppPublisher "五人小组" #define MyAppExeName "1.exe" [Setup] AppId={{49DB1DB4-FAE9-4ACB-A4B9-E5C420C5F10B} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} DefaultDirName={pf}\{#MyAppName} DisableDirPage=yes DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes (剩余代码未全部给出) 安装包 内嵌:C 语言报告 游戏盒子 开机启动,桌面快捷方式等 进入动画,左侧动画 启动模块 通知,和显示游戏信息 2048 扫雷 贪吃蛇 主界面信息显示 通知栏信息显示 意见箱

C语言大作业——学生信息管理系统

《程序设计综合课程设计》报告 学生姓名: ______ ______ ______ ______________________ 学生班级: ______________________ ____________ ____________ 学生学号: ____________ 指导教师: ______ 2014年6 月22 日

目录第1章Visual C++简介及其优点 第5章总结 附录源程序

学生信息管理系统 前言 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。随着科学技术的不断提高,日渐成熟,计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以计算机为物质基础的信息管理方法所取代。 作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要条件,更是各个高等院校与世界接轨的重要条件。

C语言大作业报告范文

学院XX学院

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计容 (3) 1.3开发工具 (3) 1.4应用平台 (3) 2 详细设计 (3) 2.1程序结构 (3) 2.2主要功能 (3) 2.3函数实现 (3) 2.4开发日志 (4) 3 程序调试及运行 (4) 3.1程序运行结果 (4) 3.2程序使用说明 (4) 3.3程序开发总结 (4) 4 附件(源程序) (4)

1 摘要 1.1 设计题目 (A)求最大数;(B)高次方数的尾数 1.2 设计容 (A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数1.3 开发工具 Visual C++ 6.0和Win32。 1.4 应用平台 Windows XP 32位 2 详细设计 2.1 程序结构 (A)求最大数

定义变量a、b、c,a从100至999递增,b为555555,用b除以a,判断是否可以整除,若可以,则把a的值赋给c,a自加1;若不可,a自加1。重复以上步骤,直到a>999,输出c。循环语句采用for 循环。 (B)高次方数的尾数

定义变量i、j,i从1至13递增,j初值为1。用j乘以13,用得到的乘积除以1000并取其余数,赋给j,i自加1。重复以上步骤,直到i>13,输出j。循环语句采用for循环。

2.2 主要功能 程序功能:(A)求555555的约数中最大的三位数; (B)求13的13次方的最后三位数。 原理和方法: (A)题目的原理和方法:因为要求的是三位数,就用555555从小到大依次除以100到999的所有数,并判断能否整除,最后一个可以整除555555的数即为所求。循环语句采用for循环。 (B)题目的原理和方法:乘积的最后三位数只与乘数和被乘数的后三位数有关,因此用1乘以13,再除以1000并取余数,用余数乘以13,再除以1000并取余数,依次进行下去,累乘13个13后除以1000取得的余数即为所求。循环语句采用for循环。 2.3 函数实现 (A)求最大数 int a,b=555555,c; /*定义变量,赋初值*/ for(a=100;a<=999;a++) /*FOR循环*/ { if(b%a==0) /*利用IF语句判断b是否可以被a整除*/ c=a; /*将555555的约数赋给c*/ } printf("%d\n",c); /*输出c*/ (B)高次方数的尾数 int i,j=1; /*定义变量,赋初值*/ for(i=1;i<=13;i++) /*FOR循环*/ { j=j*13%1000; /*将j乘以13的乘积的后三位数赋给j*/ } printf("%d\n",j); /*输出j*/ 2.4 开发日志 (A)选定这个题目后,我先分析此题用何种算法完成,确定了使用FOR循环并限定除数围,然后画出程序框图,再一步步编写源代码。调试过程很顺利,只有一个地方忘加了“;”。运行程序后,结果非常满意。 (B)这个题目不难,但是也不简便,我想到只取三位数的方法,并使用FOR循环,然后画出程序框图,再一步步编写源代码。调试过程发现对其中一个变量的初值是1还是13有待解决,分析程序后发现应该用1,然后进一步调试,运行,直至结果正确。

C语言大作业设计-

CHANGZHOU INSTITUTE OF TECHNOLOGY C语言大作业 设计说明书 题目: 通讯录管理系统 二级学院(直属学部):计算机信息工程学院 专业: 软件工程(中英合作)班级: 12软件二: 学号: 2013年7月 目录

1 概述 (1) 1.2设计分析 (1) 1.3开发工具 (1) 1.4应用平台 (1) 2 系统设计 (2) 2.1功能模块设计 (2) 2.2数据结构设计 (4) 2.3函数功能设计 (4) 3 实现与测试 (7) 3.1关键技术实现 (7) 3.2测试运行结果 (8) 4 开发日志 (14) 5 设计总结 (14) 6 参考文献 (14)

1 概述 1.1 小组构成及分工 1.2 设计分析 本程序设计共包含六个函数模块,分别是添加记录、显示记录、删除记录、查询记录、修改记录、保存记录等信息模块,完成通讯录的功能。在主函数中可以以1、2、3、4、 5、6数字键分别可以执行某个功能模块。 1.3 开发工具 Visual C++ 6.0 和window32 1.4 应用平台 Windows XP 32位 2 系统设计 2.1功能模块设计

1.系统模块图 本系统包括6个模块,分别是添加模块、显示模块、删除模块、查询模块、修改模块、保存模块等,各模块的功能如图2.1所示。各个模块的功能描述如下: (1)添加模块:可以添加通讯录记录,依次输入、年龄、、地址、电子后,并会提示是否继续添加。 (2)显示模块:可以以表格形式输出所有通讯录里的记录。 (3)删除模块:输入欲删除的那个人的名字后,会自动删除他(她)的记录容。 (4)查询模块:可以选择用、、地址三种方式查询。 (5)修改模块:输入欲修改的那个人的名字后,再依次输入、年龄、、地址、电子完成修改。 (6)保存模块:输入文件名(带后缀名)后,即可将通讯录信息保 存到文件。 图2.1 系统模块图 2.任务执行流程图

C语言大作业(仅供参考)

实验综合练习一 打印万年历 (1)已知公元1年1月1日是星期一,计算输入的年月日是星期几?编程如下: #include void main() { int i,year,month,day,day_of_year,day_of_month; long sumday=0; printf("请先输入年、月、日,中间以空格或换行符间隔:\n"); scanf("%ld%ld%ld",&year,&month,&day); for(i=1;i<=year-1;i++) { if(i%400==0||i%100!=0&&i%4==0) day_of_year=366; else day_of_year=365; sumday=sumday+day_of_year; } for(i=1;i<=month-1;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) day_of_month=31; else if(i==4||i==6||i==9||i==11) day_of_month=30; else if(i==2) { if(year%400==0||year%100!=0&&year%4==0) day_of_month=29; else day_of_month=28; } sumday=sumday+day_of_month; } sumday=sumday+day; i=sumday%7; if(i==0) i=7; printf("%ld年%ld月%ld日是星期%d\n",year,month,day,i); } 为了使输出的星期为大写且将星期7变成星期天,可作如下改动:#include void main()

C语言课程设计大作业

郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: *** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书

成绩评定教师:一. 需求分析

1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能: 输出数据函数:随时输出数据; 读取数据函数:读取输入的数据信息;

显示菜单函数:显示可供选择的主菜单; 显示记录函数:显示通讯录所有输入的信息; 删除记录函数:显示要删除的通讯录所有输入的信息; 查找记录函数:显示要查询的通讯录所有输入的信息; 自定义清屏函数:清除前面运行留下的信息; 自定义输入函数:输入通讯录的成员;; 字符输入函数:从终端输入一个字符,遇回车键返回; 修改数据函数:修改通讯录的成员信息; 保存数据函数:保存通讯录的成员信息; 排序数据函数:排序通讯录的成员信息; (2)程序中的抽象数据类型的定义: 用户的状态结构 用户 { 编号: 姓名: 电话; 年龄; 邮箱: 地址; (3)总体流程图 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 } 三. 详细设计

c语言大作业

学年论文(课程论文、课程设计) 题目:学生学籍信息管理系统 作者: 所在学院:信息科学与工程学院 专业年级: 指导教师: 职称:讲师 2014年 12月 31日

目录 1. 设计内容、任务以及要求.......................... 1.1设计内容、任务 1.2 设计要求 2. 设计思路概述.................................... 2.1 系统基本功能 2.2 具体设计思想 2.3 系统的总体流程图 3. 函数设计的实现.............................. 3.1 结构的定义 3.2 各个函数的设计简介 3.3源代码 3.4删除模块的详细介绍 4. 重点程序的调试及运行............................删除函数的测试 5. 总结............................................ 6. 致谢............................................ 7. 参考文献........................................

1.设计内容、任务以及要求 1.1 设计内容、任务 主要利用c语言的文件操作能力设计开发一个学生学籍管理系统,至少具有如下功能:信息输入、输出、查找、删除、成绩排序等功能。具体内容如下: (1)通过提示菜单选择可以进行的操作; (2)将学生的信息存入文件中,并命名为txl.txt; (3)在本系统中可以进行管理系统包含的基本操作: a. 查看所有学生信息; b. 输入一个学生的姓名或学号,从当前的信息中查找,如果找到则显示该学生的相关信息,如果没找到则给出相关提示信息; c. 输入一个学生的姓名或学号,从当前信息中查找,如果找到则删除该学生的基本信息,如果没找到则给出相关提示信息; d. 将学生的成绩按降序排序; Txl.txt文件中: (4)学生基本信息包括:学号、姓名、性别、班级、籍贯、分数等简单信息;1.2设计要求 明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用c语言进行文件操作的编程技术水平;初步了解软件开发的一般方法和步骤。 2.设计思路概述 2.1 系统基本功能 外部操作:根据要求系统要有查看全部学生信息,查找、添加、删除某一个学生信息; 内部操作:将学生的信息存入文件中,并命名为txl.txt; 为了接近实际学生学籍管理系统,增加了一个权限认证功能(使用前需要输入正确的账号及密码)。 2.2 具体设计思想 (1)以结构化各个功能模块,函数间的调用精简整个函数; (2)以全局结构来随时定义结构数组及其结构; (3)以写一个信息存一个的思想,实现多个添加功能; (4)以先全部读入内存,再打印信息的思想,实现显示全部信息; (5)以先判断再打印的思想,实现查找是否有某一学生信息; (6)以先判断再删除的思想,实现删除某一学生信息; (7)以选择排序算法的思想,实现学生成绩的排序 2.3 系统的总体流程图 权限确认 进入系统

C语言大作业(图书管理)

c语言图书管理系统 主要功能: 1. 新进图书基本信息的输入。 2. 显示全部记录 3. 按图书名称查询图书基本信息。 4. 根据图书名称对撤消的图书信息进行删除。 5. 按图书名称从小到大排序。 6. 统计某价格以上的图书数量。 7. 列出所有未借出去的图书信息。 基本信息:图书编号、图书名称、单价、作者、存在状态、借书人姓名、性别、学号等 #include #include #include #include typedef int BOOL; typedef struct bookinfo { char number[15];/*产品编号*/ char name[30];/*产品名称*/ float price;/*单价*/ char auther[20];/*作者*/ BOOL isExit;/*存在状态*/ char lendername[20];/*借书人姓名*/ char lendersex[2];/*借书人性别*/ char lendernum[15];/*借书人学号*/ }BOOKINFO; void menu() { printf("\n\n\n\n\n\n\n"); printf("\t\t\t图书管理系统\n"); printf("\t\t\t1:新进图书基本信息的输入\n"); printf("\t\t\t2:显示全部记录\n");

printf("\t\t\t3:根据图书名称查询图书基本信息\n"); printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n"); printf("\t\t\t5:按照图书名称从小大到排序\n"); printf("\t\t\t6:统计某价格以上的图书数量\n"); printf("\t\t\t7:列出所有未借出去的图书信息\n"); printf("\t\t\t8:退出\n"); } void choice_1_input_new()/*输入新进的图书信息*/ { char choice; FILE *p; BOOKINFO newbook; system("cls"); while(1) { printf("输入图书编号:"); gets(newbook.number); printf("输入图书名称:"); gets(https://www.360docs.net/doc/309674196.html,); printf("输入图书单价:"); scanf("%f",&newbook.price); while(getchar()!='\n'); printf("输入图书的作者:"); gets(newbook.auther); printf("输入借书人姓名:"); gets(newbook.lendername); printf("输入借书人性别:"); gets(newbook.lendersex); printf("输入借书人学号:"); gets(newbook.lendernum);

c语言大作业

c 语言大作业 《面向对象技术课程大作业》 设计报告书 题目: 指导教师: 姓名: 学号: 日期: 管理科学与工程学院2011-2012 学年第1 学期 一、需求分析: 随着小型超市规模的发展不断扩大,商品数量急剧增加,商品的各种信息量也成倍增长。超市在时时刻刻需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块: 登入、原始数据录入、数据的汇总及查询等。从而,实现对进货、库存和销售全面、动态、及时的管理。 超市管理系统是一个多部门、多任务的信息管理系统,包含人事部、采购部、销售部、财务部和总经理。对于不同的部门必须有独立的功能。数据的可靠性是信息管理的必要保证,所以不同部门的员工在执行各自权限功能时对其它部门数据的影响必须降到最低,因此超市管理系统也同样是通过权限来实现数据的更新和行为的操作。用户权限分为: 各部门普通员工权限、各部门经理权限、各部门管理员权限和总经理权限。 计算机作为一种高效的管理工具,对现代企业的管理发挥了及其重要的作用。 商业超市是当今最重要的商业经营形式之一,为了进一步提高商业超市的管理水平和竞争力,管理信息系统在商业超市中的趋势已是大势所趋。随着小超市规模的发 展不断扩大,商品数量急剧增加,有关商品的各种信息也成倍增长。所以,计算机 管理超市的模式,是一种很有必要的管理模式,不但能提高工作效率,还能减少工作人员的工作

量。是一种非常有潜力的市场经营模式。 二、系统的主要功能 功能需求: 1、超市员工管理 2、进货管理 3、销售管理 4、销售额管理 具体如下: (1) 登入模块员工可通过该功能登入本系统,执行其权限范围内的所有功能。 (2) 新进职员登记模块 新入职员工通过该功能,添加该员工信息入员工信息表。 (3) 员工信息修改模块 员工通过该功能,修改其住址、联系电话、银行卡号。(4) 职员离职登记模块 员工通过该功能,添加职员离职信息。(5) 修改员工登入密码模块员工通过该功能,修改登入密码。 (6) 员工考勤登记模块 员工通过该功能,添加考勤记录。 (7) 添加采购信息模块 员工通过该功能,添加采购记录。 (8) 修改商品单价模块

C语言大作业

学院

目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计内容 (3) 1.3开发工具 (3) 1.4应用平台 (3) 2 详细设计 (3) 2.1程序结构 (3) 2.2主要功能 (10) 2.3函数实现 (10) 2.4开发日志 (17) 3 程序调试及运行 (18) 3.1程序运行结果 (18) 3.2程序使用说明 (19) 3.3程序开发总结 (20) 4 附件(源程序) (20)

1 摘要 1.1 设计题目 A题算法型:折半查找算法演示程序 B题空间桁架结构节点位移求解 1.2 设计内容 A题: 本程序是一个演示折半查找算法的演示程序。当用户输入查找数据表列和要查找的数据时,程序会演示折半法查找该数的详细过程,并且支持多次查找、错误提示等功能。 B题: 空间桁架结构节点位移求解 1.3 开发工具 Code Blocks 12.11(内置MinGW) 1.4 应用平台 Windows 7 64位 2 详细设计 2.1 程序结构 A题: 程序功能模块: 本程序主要包含六大模块:程序说明模块、输入模块、排序模块、折半法查找模块、选择模块和程序

退出模块。 工程文件结构: 本程序的工程含有6个文件,其中main.cpp、print_stars.cpp、judge.cpp、sort.cpp、putout.cpp5个cpp 文件和include.h1个头文件(参见下图),两者共同存在于工程“折半法查找演示程序”中。其中main.cpp 文件包含了程序的主体部分,程序说明模块、输入、排序、折半查找、选择、程序退出模块按线性排列。其中输入、排序模块执行一次,这般查找、选择模块可多次执行,直到程序退出模块执行。 六大模块说明: (1) 程序说明模块: 给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。此部分模块主函数源代码如下: int a[N]; /*存储要查找的数表,用户输入*/ int i,n,num,count; /*count为折半次数计数器,n为数表数据个数,num存储所查数据*/ int top,bottom,mid; char c; /*存储选择函数中的输入的字符y或n*/ int flag=1; /*折半法循环标志变量*/ int loc=-1; /*存储所查找数据位置*/ double k=0; p_s(76);puts("\n"); /*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文)

C语言大作业题目陆树芬

1、某服务公司征询顾客意见,以考核公司的位服务员的工作业绩。 设服务员已按1、2、3、…顺序连续编号,顾客意见是顺序列出第一名(最佳)至第十名的服务员编号。设所收到意见信息已存于正文文件中,一位顾客的意见一行,服务员编号整数之间由空格符分隔,对应名次的服务员编号可以为0,已表示该名次空缺。 若一行意见信息中有不是服务员编号的整数,也不是0,或有编号重复出现,或一行有十个以上编号,或不足十个编号(包括0),则该行意见信息作废。 程序综合顾客对各服务员的名次评定情况,给每位服务员计分,各名次得分标准如下:名次一二三四五六七八九十得分15 12 9 7 6 5 4 3 2 1 程序最后顺序输出各服务员各名次所得票数和它的合计得分。 2、职工工资报表 本题主函数通过调用create() 函数建立一个职工链表,每个结点的数据包括职工号和工资。链表建立后主函数又调用list() 函数打印输出链表的全部结点的职工号和工资。 3、工资排名(用结构体实现) 本程序首先输入某单位的职工数据(包括每个职工的工号、姓名、工资),然后根据工资由高到低(即按单调不增次序)对这些数据实行排序,排好序的数据送入磁盘文件test.dat中保存,同时在屏幕上显示排序後的内容。 4、成绩排名 某班有50名学生,本学期进行了8门课的考试,现在要对考试成绩进行处理: (1)从键盘上输入学生的学号、姓名、每门课程的成绩; (2)计算每名学生的平均分; (3)输出原始成绩单; (4)输出按平均分由高到低排列的成绩单。 5、人机猜数游戏 由计算机“想”一个四位数,请人猜这个四位数是多少。人输入四位数字后, 计算机首先判断这四位数字中有几个数字是猜对了,并且在猜对的数字中又有几 位位置也是对的,将结果显示出来,请人再猜,直到人猜出计算机所想的四位数 是多少时为止。游戏结束时,显示人猜一个数用了几次。 例如:计算机“想”了一个“1234”请人猜,可能的提示如下: 人猜的数计算机判断有几个数字正确有几个位置正确 1122 2 1 3344 2 1 3312 3 0 4123 4 0 1243 4 2 1234 4 4 6、五子棋算法 任何一种棋类游戏其关键是对当前棋局是否有正确的评分,评分越准确则电脑的AI越高。五子棋游戏也是如此,但在打分之前,我们先扫描整个棋盘,把每个空位从八个方向上的棋型填入数组gStyle(2, 15, 15, 8, 2),其中第一个下标为1时表示黑棋,为2时表示白棋,第二和第三个下标表示(x,y),第四个下标表示8个方向,最后一个下标为1时表示棋子数,为2时表示空格数,如:

C语言大作业

C语言大作业题目 1电话簿管理程序 存储的数据包括:人名、工作单位、电话号码和E-mail地址等。程序要求具有如下功能: ①加入一个新电话号码; ②删除一个电话号码; ③显示保存的所有电话号码。 ④修改功能; ⑤排序功能,包括按照电话号码排序和按照姓名字母序排列; ⑥查询功能,包括按人名查询电话号码和按电话号码查询人名。 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求: 程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条功能,就调用哪项功能。 2班级同学信息管理程序 存储的数据包括:姓名,学号,宿舍,QQ号码和电话号码等。程序要求具有以下功能: ①加入一个同学的记录; ②删除一个同学的记录; ③显示所有同学的记录。 ④排序功能,包括按照学号排序和按照姓名字母序排序显示所有同学的纪录。 ⑤查询功能,包括按学号查询同学的信息或者其他。 ⑥修改功能。 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求: 程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条命令,就调用哪项功能。 3职工信息管理系统 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。提供以下功能: ①加入一个职工的记录; ②删除一个职工的记录; ③显示所有职工的记录。 ④排序功能,包括按照学号排序和按照姓名字母序排序显示所有职工的纪录。 ⑤查询功能,包括按工号或姓名查询职工的信息或者其他。 ⑥修改功能。 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求:

程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条命令,就调用哪项功能。 4图书信息管理系统 图书信息包括:图书号、书名、作者名、分类号、出版单位、出版时间、价格等。 提供以下功能: ①加入一本图书; ②删除一本图书; ③显示所有图书。 ④排序功能,包括按照书名排序所有图书。 ⑤查询功能,包括按书名查询图书。 ⑥修改功能 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求: 程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条命令,就调用哪项功能。 5图书借阅管理系统 图书信息包括:图书名称、图书编号、单价、作者、存在状态、借书证号、姓名、性别。提供以下功能: ①新进图书基本信息的输入。 ②显示所有图书信息。 ③对撤消图书信息的删除。 ④图书基本信息的查询。 ⑤办理借书手续。 ⑥办理还书手续 ⑦保存信息到文件。 ⑧从文件读取信息。 课程设计要求: 程序运行开始,首先显示一个提示信息,作为一个功能选择菜单。用户选用哪条命令,就调用哪项功能。 6实验设备管理系统 设备信息包括:设备编号,设备名称,设备价格,设备所属实验室。 提供以下功能: ①加入一个设备; ②报废一个设备; ③显示所有设备。 ④排序功能,包括按照编号排序所有设备。

C语言大作业

#include #include #include //exit()的头文件 #include //屏幕操作函数 #define N 100 //控制学生记录的容量 #define M 3 //控制课程数 #define LEN 9 void menu(); void browse(); typedef struct student //定义学生结构体 { char num[11]; //把学号定义成字符数组类型,一来学号可能比较长,二来可直接用strcmp来比较,确保无雷同 char name[20]; int score[M]; double ave; }STU; STU stu[N]; //定义一个外部学生结构体变量 /*****以写的方式保存数据到文件的函数【原数据将被覆盖】*****/ int save(int n) //保存函数,保存n个记录 { FILE *fp; int i; if((fp=fopen("zhouhao.txt","wb"))==NULL)//以二进制写的方式打开,在此前的记录被覆盖{ printf("无法打开文件!\n任意键退出程序... ...\n"); getch(); //预防闪屏 return 0; } for(i=0;i

C语言大作业(成绩管理系统)

计算机科学学院计算机科学与应用系C程序设计报告 成绩管理系统设计 学生:* * 学号:1004681082 班级:计科102 指导老师:* * 报告日期:2011--02--16

1.题目与要求 1)问题提出 本人计划编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。2)本系统涉及的知识点 单链表、结构体、函数、循环、指针、选择 3)功能要求 (1)建立学生信息,每个学生的信息包括:学号、、成绩。 (2)求出每个学生的总分和平均分。 (3)查找:根据学号、、成绩、总分、平均分中任一项查询该生的基本信息。(4)排序:根据学号或总分将学生的信息按照一定的顺序进行排序。 (5)根据需要修改学生的基本信息。 (6)根据实际情况删除某生的信息。 (7)根据实际情况插入某生的信息。 (8)输出。 2.功能设计 1)算法设计 (1)利用switch语句设计如图所示的主菜单。 图1 学生信息管理系统主菜单

(2)选择1后,调用查找函数search,进入查找函数后利用switch语句实现如图所示的查找子菜单。该菜单中每个选项调用一个函数(除选项10外)。 图2 查找子菜单 (3)选项2后,调用排序函数arrange,进入查找函数后利用switch语句实现如图所示的查找子菜单。该菜单中每个每个选项调用一个函数(除3外)。 图3 排序子菜单

(4)选择3后,调用修改函数correct,修改某个学生的信息。 (5)选择4后,调用删除函数del,根据需要删除某个学生的信息。 (6)选择5后,调用插入函数insert,根据需要插入某个学生的信息。(7)选择6后,调用输出函数output,将每个学生的信息全部输出。 (8)选择7后,退出学生信息管理系统。 (9)根据所选菜单编号编写相应代码。 (a)函数welcome:欢迎用户使用。 (b)函数about: 简要介绍本程序。 (c)函数create:创建单链表,采用循环输入的方式输入学生的基本信息。(d)函数SnoSearch:根据学号查找,输出该生的基本信息。 (e)函数NameSearch:根据查找,输出该生的基本信息。 (f)函数CYuYanSearch:根据C语言成绩成绩查找,输出该生的基本信息。(g)函数GaoShuSearch:根据高数成绩查找,输出该生的基本信息。 (h)函数YingYuSearch:根据英语成绩查找,输出该生的基本信息。 (i)函数ZongFenSearch:根据总分查找,输出该生的基本信息。 (j)函数AverageSearch:根据平均分查找,输出该生的基本信息。 (k)函数QSMSearch:查看班级前三名学生信息情况。 (l)函数BuJiGeSearch:查看班级不及格学生信息情况。 图4 成绩子菜单 (m)函数ClassScore:查看班级成绩平均分整体情况。 (n)函数SnoArrange:按照学号将学生信息进行排序。 (o)函数ZongFenArrange:按照总分将学生信息进行排序。 (n)函数over:感用户使用。

西工大C语言大作业习题答案

童鞋们,快来呀! 答案!答案! no1.绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。 关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。为了获得本文要求的图形就必须在一行中一次输出两个“*”。 为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就应为62-m。程序中利用反余弦函数acos计算坐标(x,y)的对应关系。 使用这种方法编出的程序短小精炼,体现了一定的技巧。 *程序说明与注释 #include #include void main() { double y; int x,m; for(y=1;y>=-1;y-=0.1) { m=acos(y)*10; for(x=1;x

no2.绘制余弦曲线和直线 在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。 *问题分析与算法设计 本题可以在上题的基础上进行修改。图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。为此,可以先判断图形的交点,再分别控制打印两个不同的图形。 *程序注释与说明 #include #include void main() { double y; int x,m,n,yy; for(yy=0;yy<=20;yy++) { y=0.1*yy; m=acos(1-y)*10; n=45*(y-1)+31; for(x=0;x<=62;x++) if(x==m&&x==n) printf("+"); else if(x==n) printf("+"); else if(x==m||x==62-m) printf("*"); else printf(" "); printf("\\n"); } } --------------------------------------------------------------------------------

C语言大作业全

C语言大作业全 Document number:PBGCG-0857-BTDO-0089-PTT1998

#include "" #include "" #include "" #include "" #include "" #define LEN sizeof(struct student) #define NULL 0 int n,m; int k=1; struct student {char num[20]; char name[20]; int age; char profession[50]; int maths; int english; int C_program; float ave; struct student * next; }; float ave(struct student * p1) { float ave; ave=(float)(p1->maths+p1->english+p1->C_program)/3; return ave; } void save(struct student *head) { struct student *p1 = head; FILE *outFile; outFile = fopen("", "wb"); if (outFile == NULL) { printf("\nFile error."); }

else { while(p1 != NULL) { fwrite(p1, sizeof(struct student), 1, outFile); p1 = p1->next; } fclose(outFile); } } ; } else { head = (struct student *)malloc(sizeof(struct student)); fread(head, sizeof(*head), 1, infile); p2 = head; while(fread(&record, sizeof(record), 1, infile)); } fwrite(p1, sizeof(struct student), 1, outFile); fclose(outFile); } void sta(struct student * head,char array[20],int max,int min) { struct student *p1=head; int k=0; if(strcmp(array,"maths")==0) { while(p1!=NULL) { if(p1->maths>=min&&p1->maths<=max) k++; p1=p1->next; } printf("数学科目在%d到%d之间的人数为:%d\n",min,max,k); } else if(strcmp(array,"english")==0) { while(p1!=NULL) { if(p1->english>=min&&p1->english<=max)

C语言程序大作业

大连理工大学C程序设计(大作业)总结报告学生成绩录入处理系统 学生姓名:罗 专业班级: 学号: 联系电话: Email : 完成日期:2015年5 月29日

一、设计任务 我的程序设计是一个学生成绩录入及处理的程序,该程序包括多种功能,能够满足大多数的学生成绩管理处理。主要能够实现的目的主要有: 第一.学生姓名学号既包括三门成绩等信息的录入,并保存到文件d://score.txt。 第二.对每个学生的成绩进行求平均分及按平均分排序的数字处理。 第三.对输入错误的学生信息加以修改重新排序保存。 第四.增加学生信息,重新排序,加以保存。 第五.按每个学生的平均分进行表格化和图形化处理。 第六.实现某位同学的信息查找,包括姓名,学号,每科成绩及平均分。 以上功能全都可以实现,但是注意录入信息的要求,下面会有注释。 二、程序设计与实现 1.结构框图 下图描述预期实现题目的设计方案或功能设计的组成结构。绘制成框图,如图所示是我设计的成绩信息管理程序设计的结构图示: 2.功能模块设计及其流程图

(1) 数据描述与存储 该学生信息统计系统设计一个全局结构体变量,将学生的姓名,学号,各科成绩及平均分保存在结构体,然后供设计各种程序调用,以完成修改,增加,排序和数据显示的功能。学生成绩数据以二进制存储在d://score.txt文件,可以利用程序随时进行增加和修改,同时它会自动排序。的描述题目所使用的核心数据,如;结构体类型定义及结构体成员含义说明。并说明所使用的数据存储方法,指定文件的路径和文件名,保存数据的格式和读数据的目的。 (2) 结构体定义及介绍 typedef struct rec /*定义一个结构体类型*/ { char name[20]; /*第一个元素为学生姓名,20个字节*/ short number; /*第一个元素为学生学号,2个字节(输入注意不要超出)*/ short score[M]; /*(M为全局3)依次定义三门科目分数:数,英,机*/ float average; /*定义浮点型平均数,保留2位小数,有函数计算赋值*/ }score; score stu[N]; /*(N为全局100)定义全局总数100个学生信息以录入*/ (3)对于该程序的一点说明 1.学号在0~32768之间,请录入前对学号做好数据处理。 2.该系统的成绩满分为一百分制,如有某科成绩不符合应提前处理。 3.录入退出后,同样的数据不需两次输入,可直接运行程序处理及查看。 4.保存退出后请勿删除文件,数据会丢失。 5.柱状图的分辨率在十位数。 (4) 主要函数功能基变量说明

相关文档
最新文档