c语言课程设计11级Word文档下载推荐.docx

上传人:b****4 文档编号:17562708 上传时间:2022-12-07 格式:DOCX 页数:20 大小:165.15KB
下载 相关 举报
c语言课程设计11级Word文档下载推荐.docx_第1页
第1页 / 共20页
c语言课程设计11级Word文档下载推荐.docx_第2页
第2页 / 共20页
c语言课程设计11级Word文档下载推荐.docx_第3页
第3页 / 共20页
c语言课程设计11级Word文档下载推荐.docx_第4页
第4页 / 共20页
c语言课程设计11级Word文档下载推荐.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

c语言课程设计11级Word文档下载推荐.docx

《c语言课程设计11级Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言课程设计11级Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。

c语言课程设计11级Word文档下载推荐.docx

包含if和switch控制语句、while和for循环语句及嵌套循环、break和continue控制语句;

4.数组:

定义姓名、性别、学号数组等。

1.3功能要求

要求:

学生信息包括:

学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:

(1)系统以菜单方式工作;

(2)学生信息录入功能(学生信息用文件保存)---输入;

(3)学生信息浏览功能---输出;

(4)查询、排序功能:

按学号、姓名进行排序和查询。

2总体设计

2.1算法设计

将题目分成若干模块或部分、各模块或部分的算法设计;

本系统需要实现的功能要求:

利用switch语句设计如图1所示的主菜单:

请输入选项(A~E)

*****************主菜单*****************

输入学生信息...................A

输出学生信息...................B

查询学生信息...................C

排序学生信息...................D

退出程序.......................E

图1学生信息管理系统主菜单

2、选择A后,调用输入函数,进入函数后分别从键盘获取学号,姓名,年龄,性别,出生年月,地址,电话,E-mail如图2

请输入这个学生的学号

请输入这个学生的名字

请输入这个学生的年龄

请输入这个学生的性别:

<

MorF>

请输入这个学生的出生年月

请输入这个学生的地址

请输入这个学生的电话

请输入这个学生的E-mail

图2输入子菜单

3、选择C后,调用查询函数,进入函数后利用switch语句实现一个如图3所示的菜单,该菜单中每个选项调用一个函数。

****菜单*****

A按学号查询.

B按姓名查询.

C返回主菜单.

*************

请输入你的选择:

图3查找子菜单

4、根据所选菜单编写相应代码:

1)输入函数input:

利用循环输入的方式,将有关信息存入结构数组,结构数组根据实际的人数,采用动态方式建立……

2)输出函数output:

利用循环输出的方式,将选择要输出的人的信息显示出来。

3)查询函数search:

利用switch语句,进行选择按学号或按姓名查询。

4)排序函数order:

利用switch语句,进行选择按学号或按姓名排序。

主菜单

输入

输出

查询

排序

退出

按学号查询

按姓名查询

图4成绩管理系统模块图

2.2部分模块流程图

3详细设计

3.1程序代码设计

内容:

分模块(函数)简述其功能;

模块中使用的各变量的类型及作用,包括声明数据类型(如结构体);

设计过程;

并列出该模块(函数)的代码。

3.2输入模块(模块名宋体粗小四号,其余宋体小四号)

1)函数原形:

voidinput()

2)功能:

利用for循环语句和scanf、gets、fflush函数完成对结构数组的输入,存放m个学生的信息(学号,姓名,年龄,性别,出生年月,地址,电话,E-mail)。

3)变量及类型:

charnum[9],name[20]:

字符数组,接收main函数传过来的一维数组的首地址。

inti,m:

循环控制变量。

voidinput()/*定义输入函数*/

{

system("

cls"

);

inti,m;

FILE*fp;

printf("

\n请输入学生的总人数:

"

scanf("

%d"

&

m);

fflush(stdin);

for(i=0;

i<

m;

i++)

{

printf("

请输入第%d学生信息.\n"

i+1);

请输入这个学生的学号:

\n"

gets(stu[i].num);

fflush(stdin);

请输入这个学生的名字:

gets(stu[i].name);

请输入这个学生的年龄:

gets(stu[i].age);

(MorF)\n"

gets(stu[i].sex);

请输入这个学生的出生年月:

gets(stu[i].brith);

请输入这个学生的地址:

gets(stu[i].add);

请输入这个学生的电话:

gets(stu[i].phone);

请输入这个学生的E-mail:

gets(stu[i].Email);

}

if((fp=fopen("

stud.txt"

"

a"

))==NULL)/*打开或新建文件*/

打开文件失败!

return;

}

i++)/*保存文件*/

if(fwrite(&

stu[i],sizeof(STU),1,fp)!

=1)

printf("

文件写入错误!

fclose(fp);

保存学生信息成功!

按任意键返回主菜单!

getch();

}

4调试运行

(1)调试:

(2)系统主界面:

(3)输入学生信息界面:

(4)输出学生信息界面:

(5)查询学生信息界面:

(6)排序学生信息界面:

5:

程序清单

#include<

stdio.h>

string.h>

stdlib.h>

conio.h>

structstudent/*定义结构体类型数据类型全为字符型*/

charnum[9],name[20];

charage[3];

charsex[2];

charbrith[10],add[20],phone[12],Email[18];

};

typedefstructstudentSTU;

STUstu[100];

voidinput();

/*声明输入函数*/

voidoutput();

/*声明输出函数*/

voidsearch();

/*声明查询函数*/

voidsearch_num();

/*声明按学号查询函数*/

voidsearch_name();

/*声明按姓名查询函数*/

voidorder();

/*声明排序函数*/

voidorder_num();

/*声明按学号排序函数*/

voidorder_name();

/*声明按姓名排序函数*/

voidsave(intn);

/*声明保存函数*/

intopenn();

/*声明打开文件函数*/

voidmain()/*主函数*/

{

chara;

/*定义字符数据用于选择选项*/

intflag=0;

/*定义整型数据用于结束while循环*/

color75"

while

(1)

system("

\n\t\t\t*欢迎来到学生信息管理系统*"

\n\n\t\t*****************主菜单*****************\n\n\n"

\t\t输入学生信息...................A\n\n"

\t\t输出学生信息...................B\n\n"

\t\t查询学生信息...................C\n\n"

\t\t排序学生信息...................D\n\n"

\t\t退出程序.......................E\n\n\n"

\t\t****************************************\n\n"

\t\t请输入你的选择:

scanf("

%c"

a);

switch(a)/*调用函数完成各种功能*/

{

case'

A'

:

input();

break;

B'

output();

C'

search();

D'

order();

E'

flag=1;

default:

printf("

\t\tError!

\t\t按任意键返回主菜单\n"

getch();

}

if(flag)break;

intopenn()/*定义打开文件函数,并返回文件中学生个数*/

inti;

r"

))==NULL)

打开文件失败.\n"

main();

!

feof(fp);

fread(&

stu[i],sizeof(STU),1,fp);

fclose(fp);

return(i-1);

voidsave(intn)/*定义保存函数*/

w"

保存函数不能打开这个文件!

n;

文件输入错误!

voidoutput()/*定义输出函数*/

inti,n;

n=openn();

/*调用打开文件函数并将学生信息个数赋给n*/

\n%-9s%-12s%-5s%-5s%-9s%-10s%-12s%-18s\n"

学号"

姓名"

年龄"

"

性别"

出生年月"

地址"

电话"

E-mail"

%-9s%-12s%-5s%-5s%-9s%-10s%-12s%-18s\n"

stu[i].num,stu[i].name,

stu[i].age,stu[i].sex,stu[i].brith,stu[i].add,stu[i].phone,stu[i].Email);

\n按任意键返回主菜单!

getch();

voidsearch()/*定义查询主函数类型与主函数相同*/

\n****菜单*****\n"

\n(A按学号查询.\n"

(B按姓名查询.\n"

(C返回主菜单.\n"

\n*************\n"

请输入你的选择:

switch(a)

search_num();

search_name();

选择错误!

voidsearch_num()/*定义按学号查询函数*/

intn,i,flag=0;

charnum[20];

\n请输入你想查询学生的学号:

%s"

num);

if(strcmp(stu[i].num,num)==0)

stu[i].age,stu[i].sex,stu[i].brith,stu[i].add,stu[i].phone,stu[i].Email);

flag=1;

if(flag==0)

没有要查询学生的信息!

\n按任意键返回菜单!

voidsearch_name()/*定义按姓名查询函数*/

charname[20];

\n请输入你想查询学生的姓名:

gets(name);

if(strcmp(stu[i].name,name)==0)

voidorder()/*定义排序主函数*/

\n(A按学号排序.\n"

(B按姓名排序.\n"

(D返回主菜单.\n"

order_num();

order_name();

voidorder_num()/*定义按学号排序函数*/

inti,j,n;

STUtemp;

n-1;

for(j=i+1;

j<

j++)

if(strcmp(stu[i].num,stu[j].num)>

0)

{

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

}

stu[i].age,stu[i].sex,stu[i].brith,stu[i].add,stu[i].phone,stu[i].Email);

\n按任意键继续.\n"

DOyouwanttosave?

Y)SaveN)Notsave.\n"

Yourchoice:

if(a=='

Y'

save(n);

Savesuccess!

elseprintf("

Exit!

}

voidorder_name()/*定义按姓名排序函数*/

"

if(strcmp(stu[i].name,stu[j].name)>

%-9s%-12s%-4s%-4s

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

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1