学生信息管理系统C语言课程设计说明书解析_第1页
学生信息管理系统C语言课程设计说明书解析_第2页
学生信息管理系统C语言课程设计说明书解析_第3页
学生信息管理系统C语言课程设计说明书解析_第4页
学生信息管理系统C语言课程设计说明书解析_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

•加

*7**«»*T»*7*»7»«T»»T»*7**7*[、*1T**7**7****J、«7»*/•

实践教学

sjcS^Ce^*

兰州理工大学

软件学院

2023年秋季学期

计算机应用基础课程设计

题目:学生信息管理系统

专业班级:

姓名:

学号:

指导教师:

成绩:_______________

摘要

本次我们设计H勺是《学生信息管理系统》,在程序中运行学生信息创立模块,

列出模块,删除模块,查找模块,保留模块等,在程序中用到了选择构造,循

环构造,构造体,数组,文献操作,自定义函数等。

关键词:构造体;文献操作;数组;循环构造;选择构造;自定义函数

目录

1需求分析.......................................................

2总体设计.......................................................

2.1程序的总体设计..........................................

2.2数据构造.................................................

3详细设计.......................................................

3.1主控模块设计............................................

3.2列出模块................................................

4重要函数功能描述...............................................

4.1主函数main。.............................................

4.2列出函数prinUisK)............................................................................

5测试与调试.....................................................

6个人设计小结与心得体会.........................................

参照文献.........................................................

附件1程序源代码

1需求分析

(1)问题

根据需求,该系统所应包括的I信息有如下某些:

息学生的基本信:

学号、姓名、性别、、

根据需求,该系统所应实现日勺功能有如下某些:

多种基本数据的录入。如:学生基本信息录入。

多种基本数据的修改。即:容许对已经录入的数据重新进行编辑、修改。例

如修改学生信息中张三的信息

多种基本数据的删除。例如将张三的信息从学生信息中删除

基于多种数据H勺查询。例如输入学号1,查询学号为1H勺名字、性别、

和。

多种基本信息的浏览。例如对保留的学生信息的浏览。

⑵系统

采用C语言实现,开发环境为VC,可以运行在操作系统windo\vs98及以上皆

可。

⑶运行规定

能不受限制日勺录入学生信息。

界面友好,操作以便,例如删除前需要提醒顾客与否删除。

容错性强,例如数据导出时,假如文献不存在需要提醒顾客。

2总体设计

2.1程序的总体设计

在系统设计方面需采用模块化,把一种复杂的问题简朴化,化成几种简朴的模

块来处理,.不过在划分日勺同步又必须要理解各自的功能,它们之间应当有自己日勺

独立性,同步又存在互相H勺联络.通讯记录时以二进制日勺形式进行存储和输入,一

般程序从整体到部分,先进行整体概括,然后在逐渐细化完善

本系统由一种图来表达为

图1系统总图

本通讯管理系统可以概括H勺划分为如下几大模块:

1输入创立模块

2列出菜单模块

3删除数据模块

4修改数据模块

5查找数据模块

6插入数据模块

7保留数据模块

8退出系统

2.2数据构造

根据系统规定,系统中需要保留口勺数据学生日勺信息,其构造如下:

数据项名称数据项系统表数据类型数据长度备注

学生学号numint

学生姓名name[]char10

学生nchar10

学生性别sexint

学生phoneint

使用语言创立日勺构造体如下:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

intnum;/*学生学号*/

charname[10];/*学生姓名*/

char[10];/*学生*/

intsex;/*学生性别*/

intphone;

/*学生*/

}LIST;

LISTL[100];

intmain(void)

}

voidrevise_list()/*自定义函数-修改数组*/

)

voidprint_list()/*自定义函数-列出菜单*/

voiddelete_list()/*自定义函数-删除文献*/

voidinsertlist()/*自定义函数-创立文献*/

)

voidfind_list()/*自定义函数-查找文献*/

{

)

voidintolist()/*自定义函数-插入文献*/

{

)

voidsave_list()/*自定义函数-保留文献*/

{

f

3详细设计

3.1主控模块设计

控制整个程序的运行,通斗主函数模块分别调用各个模块,实现各项功能,

TT5

流程如下图

<

77H田r£n

\,

菜单界面

12345670

图2主模块流程图

注释

1主控是用switch多分支选择构造来实现功能选择

3.2列出模块

列出模块是通过循环构造变化个个列出数组自定义数组Ukey]信息

图3列出模块流程图

4重要函数功能描述

4.1主函数main()

函数原型:

#includc<stdio.h>

#include<stdlib.h>

#inc!ude<string.h>

#defineEXIT-I

#dcfincLENsizcof(structlist)

intkey=O:/*stdlib-原则库头文献...sizeof-运算符...siring-字符串...typedef-定义类型*/

lypcdcfstructlis({

intnum;/*学生学号*/

charname[10);尸学生姓名*/

int:/*学生♦/

charsex|10);/*学生性别*/

longintphone;产学生*/

JLIST;

LISTL[1OOJ;

intmain(void)/*主函数*/

(

intchoice,y;

prinlf("\l\N*********学生信息管理系统*********");

printfC,请输入密码:");

scanf("%d'\&y);

if(y==123)

do{

prinif("\n\n\n\[\N********学生信息管理系统********”);

printf("\t\t\t\t1.***,*创立*****5");

printf("\t\t\t\t2.*****歹ij出*****\n");

printf("\t\t\t\t3.***»*删除*****\n");

printf("\t\t\t\t4.***»*修改*****\n");

printf("\t\t\t\t5.***,*查找*****5");

printf('>\t\t\t\t6.***»*插入*****\n");

printfC*\t\t\t\t7产****保留*****\n");

printfC\t\t\t\tO.***»*退出*****\n");

printfC请选择:");

scanf("%d",&choicc);

switch(choicc)

casel:insert_list();break;

case2:printjist();break:

case3:delete_listi);break;

case4:revise_listi):break;

case5:find_Iist();break;

case6:into_list():break;

case7:save_list();break;

caseO:exit(O);

default:printf("inpulagain-Vn'*);

)

}while⑴;

1

else

printf("密码错误!请重启程序!");

fflush(stdin);

getchar();

retuni0;

)

功能描述:通过if选择构造实现加密对日勺输入密码后进入主菜单,否则提醒

“密码密码错误!请重启程”进入主菜单后用switch多分支选择构造来调用子函

数来实现对学生信息日勺创立、修改、插入等。流程图如图2所示。

4.2列出函数print_list()

函数原型:

voidprint_list()/*列出菜单*/

inti;

for(i=0:i<kcy;i++)

(

prinlf("学号\t姓名\t号\t性别\t\t\n");

pnntf("%d\t%s\t%d\t%s\t%d\n”,L[i].num,L[i].nanieL[i]..LliJ.sex.L|i].phone);

}

if(key==0)

printf("theshuzuisNULL!\n");

)

功能描述:通过for循环构造变化i的值调月L[i]保留的值逐一显示。流程

图如图3所示

5测试与调试

1主程序测试

测试数据:

输入密码123

图4

测试成果:

程序运行没有错误,如下

■C:\Users\Administrator\Desktop\^^文件夹(6)\Debug\xy.exe

打里系

输入密码:123

学生信息管理系统

菜单项选择项测试:

输入数据

请选择:1

C:\Users\Administrator\Desktop\5^^文件夹(6)\Debug\xy.exe

XXXMXXXX♦学生信息管理系统*XXXXXX”

输入密码:123

学生信息管理系统

1建

2出

3

4民

5找

6人

7g

0

图6

测试成果:

程序运行没有错误,如下

IR

输入密码:123

学生信息管理系统―

建=

鬟=

找=

@=

学号

图7

2列出测试

测试数据:

输入2,如下

…***学生信息管理um系统…=

欠=

了=

I.

请选择:2

图8

测试成果

程序运行有错误,如下

图9

错误是性别、没有对其修改后如下

C:\Users\Administrator\Deskto件夹(3)\Debug\xy.exe

学号QQ号

112345678

图10

6个人设计小结与心得体会

为期一种星期的C语言实训结束了,在这一种星期内我日勺感触颇深。由于

在写程序中实在是碰到了太多的困难了,这让我意识到自己对C语言知识的贫

乏。我们只学会了简朴的指针和函数,这些应付考试是绝对没有问题了的,然而

应用在实际的程序设计当中却是远远不够日勺。可想而知,验收过程很不满意,这

让我觉得很对不起老师日勺一番含辛茹苦。因此哪怕我日勺验收过程不是很理想都

好,我交实训汇报H勺时候也一定要把这个学生信息管理系统理解透彻!在整个编

程过程中,我坚持虚心的向同学请教问题,同步自己也在网上查找多种信息,通

过不停地改正,我终于懂得编好一种完美的程序是多么的I不轻易啊!!同步,在

不停的出错中,我也理解了许多此前不懂得的东西。做得不好的,也请老师多多

见谅,后来我一定会好好改善的!最终,衷心地多谢老师辛劳的指导!!

参照文献

[1J.姜灵芝,余健.C语言课程设计案例精编.北京:清华大学出版社,2023

[2],王新,孙雷.C语言课程设计.北京:清华大学出版社,2023

【3】.游洪跃、彭骏、谭斌.C语言程序设计试验与课程设计教程.北京:清

华大学出版社,2023

[41王连相.C/C++程序设计上机指导与测试.北京:中国铁道出版社,2023

【5].C语言函数手册,机械工业出版社,1999

附件1程序源代码

#include<stdio.h>

#includc<stdlib.h>

#include<string.h>

#<lcfincEXIT-1

#defineLENsizeof(structlist)

intkey=O;/*stdlib-原则库头文献...sizeof-运算符...string-字符串...typedef-定义类型*/

typedefstructlist(

intnum;产学生学号*/

charname|10);产学生姓名*/

int/*学生*/

charsex|10|;/*学生性别*/

longintphone;产学生♦/

}LIST;

LISTL[IOO];

voidrevise_list()/*修改数组(revise-修改)*/

intnum;

charname[10J;

int;

charsex|IO|:

longiniphone;

piintf("请选择修改项学号。

scanf("%d'\&j);

for(k=0;k<key;k++)

(

if(j==L|k|.num)break;

)

prinif("您要修改成为:");

printf("\t\(学号\Z");

scanf("%d",&num);

printf("\t\t姓名W);

scanf("%s",name);

printf("\t\t号\Z");

scanf("%dM,&);

printf("\t\t性别

scanf("%s",sex);

printf("\t\t

scanf("%d",&phone);

L[k].num=num;

strcpy(L[kJ.name,name);产拷贝字符串*/

L[k].=;

s(rcpy(Llk].sex,scx);

L[kl.phone=phone;

voidprint_list()/*列出菜单*/

fbr(i=O;i<key;i++)

prinlf("学号\l姓名V号\t性别M\t\nM);

prinlf("%d\t%s\t%d\l%s\(%d\n",L[i].num,L[i].namc,L[i].,L[i].$cx,L[i].phone);

if(key==O)

printf("theshuzuisNULL!\ii");

voiddelete_lisl()产删除文献*/

inti,j,k;

printf("您要删除的是:\n');

scanf("%d",&j);

fbr(k=O;k<key;k++)

{

if(j==L[k].num)

break:

}

if(k>=key)

prinlf("您输入的数据有误,请重新输入:”);

fbr(i=k;i<kcy;i++)

L[i]=L[i+l];

key-;

)

voidinsert_list()产创立文献*/

[

intnum;

charname[10];

int

charsex[10];

longintphone;

prinlf("\t\t学号\N");

scanf("%d”,&num);

printf("\t\t姓名

scanf("%s",name);

printf("\t\t号\W);

scanf("%d",&);

printf("\t\t性别W);

scanf("%s",sex);

printf("\t\t

scanf("%d",&phonc);

Lfkey].num=num;

strcpy(L|key].name,name);

L|key].=;

strcpy(L[key].sex,sex);

L[key].phone=phone:

key++;

voidfind_lisl()/*查找文献*/

{inti,num;

printf("请输入你要查找的学号:");

scanf("%d",&num);

for(i=0;i<key;i++)

]

if(Lli].num=num)

(

printf("学号―姓名\t号性别\t

printf("%d\t%s\t%d\t%s\t%d\n",L[i].num,L[i].name,L[i]..L[i].sex.L|i].phone);

break;

)

)

if(i>=key)printf("无此人信息,请市新选择:");

)

voidinto_list()/*插入文献章/

{

inti.j.k;

intnunrcharnamef10];

int

charsex(10J;

longintphone;

printf("\t\t\t您要插入项是\t");

scanf("%d",&j);

if(j>O&&j<=key)

{

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

L[i]=L[i-l];

key++;

prinif("请输入你要插入I内内容:\n");

printf("\t\t学号

scanf("%d",&num);

printf("\t\t姓名W');

scanf("%s",namc);

printf("\t\t号

scanf("%d".&);

printf("\t\t性别

scanf("%s",sex);

scanf("%d'\&phone);

k=j-l;

L[k].num=num;

strcpy(L[k].name,name);

L[k].=;

strcpy(L|k].scx,sex);

L|k|.phone=phone;

}

elseprinlfC'error");

I

voidsave」isl()/*保留文献*/

{

inti;

FILE*fp;

if((fp=fopen("filc.(xt,'.',wb"))==NULL)

(

printf("不能打开文献\if);

return;

)

for(i=0:i<key;i++)

if(fwrite(&L[i],LENJ,fp)!=l);

fclosc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论