版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
•加
*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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学新生班主任工作总结
- 人际沟通的艺术与技巧
- 《电能质量经济性评估 第2部分:公用配电网的经济性评估方法》
- 胃管置管及胃肠减压术的护理
- HPV疫苗应用指南男女共防总结2026
- 《沙河流域水污染物排放标准》编制说明
- 2026届昆明市高三二诊模拟考试历史试卷含解析
- 2025-2026学年云南省普洱市高三(最后冲刺)历史试卷含解析
- 高中生在校园咖啡馆的学习行为与学习效率关联性研究教学研究课题报告
- 小学信息技术教学中编程启蒙教育与创新思维培养的课题报告教学研究课题报告
- 鄂托克前旗新寨子砖厂浓盐水处理项目环评报告书
- 国开计算机组网技术实训1:组建小型局域网
- 医院海姆立克急救操作考核评分标准
- 动力换档变速器设计课件
- (全)附着式升降脚手架监理实施细则
- 考生报名承诺书
- 逻辑学导论(中山大学)【超星尔雅学习通】章节答案
- DB51T 2880-2022建设放心舒心消费城市通用要求
- 新能源之氢能
- 37自动扶梯安全风险告知卡
- 市政道路养护工程施工组织设计
评论
0/150
提交评论