C语言课程设计学生信息管理系统Word文档格式.docx

上传人:b****1 文档编号:1518697 上传时间:2023-04-30 格式:DOCX 页数:21 大小:303.18KB
下载 相关 举报
C语言课程设计学生信息管理系统Word文档格式.docx_第1页
第1页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第2页
第2页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第3页
第3页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第4页
第4页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第5页
第5页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第6页
第6页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第7页
第7页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第8页
第8页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第9页
第9页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第10页
第10页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第11页
第11页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第12页
第12页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第13页
第13页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第14页
第14页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第15页
第15页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第16页
第16页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第17页
第17页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第18页
第18页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第19页
第19页 / 共21页
C语言课程设计学生信息管理系统Word文档格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计学生信息管理系统Word文档格式.docx

《C语言课程设计学生信息管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生信息管理系统Word文档格式.docx(21页珍藏版)》请在冰点文库上搜索。

C语言课程设计学生信息管理系统Word文档格式.docx

首先使用switch语句生成菜单,实现操作选择功能。

分三个部分按学号查询、按姓名查询和取消返回上一层。

按学号查询时调用while语句对学号检索,再调用if语句进行判断,最后输出想要查询的信息。

按姓名查询的方法跟按学号查询的一样。

(6)Del删除函数:

使用while语句进行检索,直接删除学生信息。

(7)Change修改函数:

建立devise函数,生成菜单,用switch语句进行分叉选择功能,选择项目进行相应的信息输入。

在Change函数中使用while语句进行检索后再调用devise函数修改信息。

实现学生信息修改。

四、调试与测试

1、进行多次运行,发现那栏的一打长就会显示一样的数字,打短的数字就可以。

我们原本是使用长整型来定义,想说空间不够,后来改用字符型,用字符串记录程序运行结果正确。

2、程序设计初就在考虑退出与返回有什么差别,如果返回了主菜单那退出用什么,关于这个问题看了许多网上的资料,发现许多程序都有exit(0)的函数,所以去查了不少关于exit的函数容,最后退出就用了exit(0),但是又提醒说要编写exit函数,之后发现要加入<

stdlib.h>

的头文件,程序可以正常运行。

3、程序在180行显示说readData函数不可以返回值,所以在if条件句中将return0删除了,不过这个程序在学校的机房即使不删return0也是可以运行的,关于这点很是不解,还有待解决。

五、测试结果

1、进入系统界面,输入密码,超过三次会自动退出。

2、选1时录入学生信息,编辑完后会继续显示菜单

3、选2浏览学生信息,之后继续返回菜单界面,为节省空间菜单界面暂不截图

4、选择3查询学生信息会有按学号与按姓名查询。

下图是先按学号查询的截图。

5、按姓名查询时,如果查无此人会显示“没有该学生信息,请核对。

”之后返回上一层,按姓名查询。

显示学生信息后可以选择取消返回主菜单。

6、选择4删除学生,输入学号删除学生的信息。

之后会返回主菜单

7选择5修改学生信息,按学号输入,之后按显示输入即可。

用几组测试数据进行测试算法设计的正确性。

(附上程序运行的截图)

六、用户手册

1程序一开始会显示欢迎界面,按要求输入密码,3次错误会退出程序。

2密码正确后会显示主菜单,按要求输入您的需求。

七、附录

源程序清单和结果:

源程序要加注释。

结果要包括测试数据和运行结果。

/*Note:

YourchoiceisCIDE*/

#include<

stdio.h>

malloc.h>

string.h>

io.h>

#defineNULL0

#defineLENsizeof(structstudent)

#defineFILE_DATA_PATH"

c:

\student.txt"

structstudent

{longintnum;

charname[20];

intage;

charsex[4];

charbirthday[10];

charaddress[30];

chartele_num[13];

charE_mail[20];

structstudent*next;

};

intTOTAL_NUM=0;

structstudent*head=NULL;

voidwelcome();

voidmainmenu();

voidrecord();

voidinsert(structstudent*stu);

voiddisplay(structstudent*stu);

voiddisplayAll();

voidquery();

voidquery_by_num();

voidquery_by_name();

voidreadData();

voidwriteData();

voidfreeAll();

voiddel();

voidchange();

voiddevise(structstudent*p);

intmain(){

charuserPWD[7];

inti;

welcome();

for(i=0;

i<

3;

i++){

printf("

\n密码为123\n"

);

\n请输入您的密码:

"

scanf("

%s"

userPWD);

if(strcmp(userPWD,"

123"

)==0)

{//密码正确,显示主菜单

mainmenu();

break;

}

else

{if(i<

2)

{//用户名或密码错误,提示用户重新输入

printf("

密码错误,请重新输入!

else{//连续3次输错用户名或密码,退出系统。

您已连续3次将密码输错,系统将退出!

}}}

return0;

}//显示欢迎信息

voidwelcome(){

+~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n"

||\n"

|欢迎使用学生信息管理系统|\n"

}//系统主菜单

voidmainmenu(){intchoice;

choice=-1;

readData();

\n温馨提示:

为保证您的操作得到保存,请按正常顺序退出系统^_^\n"

do

{printf("

\n\n\n"

\t\t\t--------------------------------\n"

\t\t\t+学生信息管理系统|\n"

\t\t\t+1----录入学生信息|\n"

\t\t\t+2----浏览学生信息|\n"

\t\t\t+3----查询学生信息|\n"

\t\t\t+4----删除学生信息|\n"

\t\t\t+5----修改学生信息|\n"

\t\t\t+0----退出系统|\n"

请输入您的选择:

scanf("

%d"

&

choice);

switch(choice){

case0:

writeData();

freeAll();

exit(0);

case1:

record();

case2:

displayAll();

case3:

query();

case4:

del();

case5:

change();

default:

\n无效选项!

}}

while(choice!

=0);

}//录入学生信息

voidrecord(){structstudent*p0;

p0=(structstudent*)malloc(LEN);

请输入学生的学号:

%ld"

&

p0->

num);

请输入学生的姓名:

p0->

name);

请输入学生的年龄:

age);

请输入学生的性别:

sex);

请输入学生的出生年月:

birthday);

请输入学生的地址:

address);

请输入学生的:

tele_num);

请输入学生的E-mail:

E_mail);

insert(p0);

该学生的信息为:

\n"

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

学号\t姓名\t年龄\t性别\t出生年月\t\t地址\t\tE-mail\n"

display(p0);

}

voidinsert(structstudent*stu)//根据学号对学生进行排序//

{

structstudent*p0,*p1,*p2;

p1=head;

p0=stu;

if(head==NULL){head=p0;

p0->

next=NULL;

}

else{while((p0->

num>

p1->

num)&

&

(p1->

next!

=NULL))

{p2=p1;

p1=p1->

next;

if(p0->

num<

=p1->

num){if(head==p1)head=p0;

elsep2->

next=p0;

p0->

next=p1;

else{p1->

TOTAL_NUM++;

voiddisplay(structstudent*p){

%ld\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n"

p->

num,p->

name,p->

age,p->

sex,p->

birthday,p->

address,p->

tele_num,p->

}//浏览学生信息

voiddisplayAll(){

structstudent*p;

学生总数:

%d\n"

TOTAL_NUM);

p=head;

if(head!

=NULL){

\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t\tE-mail\n"

do{display(p);

p=p->

}while(p!

=NULL);

}printf("

}//查询学生信息

voidquery(){intchoice;

do{printf("

+--------------------+\n"

|按学号查询请按1|\n"

|按姓名查询请按2|\n"

|取消请按0|\n"

switch(choice){case0:

return;

case1:

query_by_num();

break;

case2:

query_by_name();

default:

}//按学号查询学生信息

voidquery_by_num(){

intnum;

structstudent*p1;

请输入学生的学号:

if(head==NULL){printf("

无学生记录!

p1=head;

while(num!

=p1->

num&

next!

=NULL)p1=p1->

if(num==p1->

num){

display(p1);

}elseprintf("

没有该学生记录,请核对!

}//按姓名查询学生信息

voidquery_by_name(){charname[20];

请输入学生的姓名:

name);

}p1=head;

while(strcmp(name,p1->

name)&

if(!

strcmp(name,p1->

name)){

elseprintf("

}//写入文件

voidwriteData(){FILE*fp;

//文件指针

fp=fopen(FILE_DATA_PATH,"

w"

if(!

fp){printf("

文件打开错误!

fprintf(fp,"

for(p=head;

p!

=NULL;

p=p->

next){

fprintf(fp,"

p->

fclose(fp);

voidfreeAll(){

structstudent*p1,*p2;

p1=p2=head;

while(p1){p2=p1->

free(p1);

p1=p2;

}}//读取文件

voidreadData(){FILE*fp;

r"

fscanf(fp,"

TOTAL_NUM);

head=p1=p2=(structstudent*)malloc(LEN);

p1->

num,p1->

name,&

age,p1->

sex,p1->

birthday,p1->

address,&

tele_num,p1->

while(!

feof(fp))

{p1=(structstudent*)malloc(LEN);

fscanf(fp,"

p2->

p2=p1;

}//删除学生信息

voiddel(){structstudent*p1,*p2;

longintnum;

if(head==NULL)

请输入您要删除的学生的学号:

while(num!

=NULL)

{p2=p1;

p1=p1->

if(num==p1->

num)

{if(p1==head)

head=p1->

elsep2->

next=p1->

free(p1);

TOTAL_NUM--;

}

}//修改学生信息

voidchange(){structstudent*p1,*p2;

return;

请输入您要修改的学生的学号:

p1=p1->

num)devise(p1);

voiddevise(structstudent*p)

{intchoice;

choice=-1;

请选择您要修改的学生的信息容:

+----------------------+\n"

|姓名请按1|\n"

|年龄请按2|\n"

|性别请按3|\n"

|出生年月请按4|\n"

|地址请按5|\n"

|请按6|\n"

|E-mail请按7|\n"

请输入新姓名:

请输入新年龄:

p->

case3:

请输入新性别:

case4:

请输入新出生年月:

case5:

请输入新地址:

case6:

请输入新:

case7:

请输入新E-mail:

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

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2