资源描述
课 程 设 计 报 告
课程名称 C语言程序设计
课题名称 学生宿舍管理系统
专 业
班 级
学 号
姓 名
指导老师
6月19日
湖南工程学院
课 程 设 计 任 务 书
课程名称 C语言程序设计
课 题 学生宿舍管理系统
专业班级
学生姓名
学 号
指导老师
审 批
任务书下达日期 年 6 月 19 日
任务完成日期 年 7 月 4 日
一、设计内容和设计要求
1. 设计内容:学生宿舍管理系统设计
包含知识点:
①掌握并熟练利用C语言基础数据类型和多种表示式,程序步骤控制语句;
②掌握数组基础概念。熟练掌握一维数组、二维数组应用、掌握字符数组
和字符串关系和字符串简单处理。
③掌握函数定义,函数返回值,函数调用,函数形式参数和实际参数之间关系;掌握变量作用域和生存期,了解函数作用域。
④掌握结构体概念,结构体类型定义,结构体变量定义和初始化,结构体组员表示,结构体变量赋值含义,结构体和指针、函数关系。
⑤掌握文件、文件类型指针基础概念,熟练掌握文件打开和关闭和文件建立、读写等相关操作。
2. 设计要求:
1) 用C语言实现系统;利用结构体数组实现学生宿舍信息数据结构设计;系统各个功效模块要求用函数形式实现;应提供一个界面来调用各个功效,调用界面和各个功效操作界面应尽可能清楚美观;各项显示数据均要求以表格形式输出;在各功效子模块中应设计对应二级菜单。
2) 建立一个学生宿舍信息数据库,文件名为ssxxk.txt,并从该文件中读取数据;
3) 学生宿舍管理系统应能提供以下功效:
①系统以菜单方法工作:经过提醒用户输入一个数字选项,调用对应功效函数。
②显示功效:完成全部宿舍信息显示,显示时按表格形式,且应有表头;
③追加功效:完成一个(或多个)学生入住宿舍登记(追加统计),要求在追加过程中有对应提醒信息,完成追加后能重新显示;
④查询功效:要求可选择按指定学号和指定姓名两种方法定位查询,查询结果要求以表格形式显示,若查询不到应给出对应提醒信息。
⑤删除功效:要求可按指定学号和指定姓名两种定位方法删除学生在宿舍统计。
⑥修改功效:要求能按学号或按姓名两种定位方法,且能够按用户要求修改统计中除学号和姓名以外指定内容,并重新显示。
⑦)统计模块:能按指定校区、宿舍栋号、统计入住该栋学生人数,或统计指定班级入住某栋人数,并将统计结果和被统计人员信息用表格形式显示;
⑧排序功效:按宿舍类别排序(升序)
⑨要求在删除模块、修改模块和查询模块中若找不到所需统计时,系统设计中应有一定提醒信息。
4) 说明:
(1) 要求将修改后数据写入到一个新数据文件nwesxxk.txt中。
(2) 对系统有爱好同学能够在实现基础要求基础上,完善系统其它功效。
5) 学生宿舍管理系统采取一个结构体数组,宿舍生信息数据库结构以下:
char ssdh[4]; /*宿舍栋号*/
int fjh; /*房间号*/
long xh /*学号*/
char name[10]; /*姓名*/
char xb[4]; /*性别*/
char bj[12]; /*班级*/
char phone[12]; /*电话号码*/
int xq; /*校区*/
int sslb; /*宿舍类别*/
注意:学号不能反复且不少于4位数字,各项字符串长度要求在4~10之间,数据库应有10条或多于10条以上统计。
6) 要求:
⑴ 要求每个学生必需独立思索,认真并按时完成本课程设计所包含全部内容;
⑵ 要求学生必需根据课程设计汇报完整格式说明设计内容,设计任务分析过程和算法,给出程序步骤图和全部源程序;
⑶ 设计汇报完整格式应包含以下部分内容:
① 系统设计总体思绪;
② 系统关键功效;
③ 系统功效模块划分(要求画出总体模块框图);
④ 关键功效实现和各个程序模块说明(每个功效模块框图、系统主模块步骤图,各个功效模块最少要有一个关键步骤图);
⑤ 程序调试过程及各模块调试中对应部分截图;
⑥ 课程设计总结和体会(不少于500字)。
⑦ 课程设计参考文件;
⑧ 程序清单;
⑷ 课程设计周内,凡要求集中上机时间必需到机房调试程序;
⑸ 设计完成后必需参与答辩,并按要求演示程序,提交课程设计汇报和相关电子文档。
7)分组及安排
所选题目依据学生班号和学号确定,(班号+学号)% 6+1。如你班号为01班、学号为01,则所选题目号为:(1+1)%6+1=3,即课题号为3。
8)成绩评定
①程序设计方案是否合理;②程序设计是否正确;③调试结果;④设计说明书质量高低;⑤答辩时回复问题情况;⑥课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。
二、进度安排
第 19 周 星期一 8:00——12:00 讲课、部署任务
星期二 8:00——12:00 机房上机调试程序
星期三 14:00——18:00 机房上机调试程序
星期四 14:00——18:00 机房上机调试程序、答辩
附:课程设计汇报排版、打印和装订要求
1. 课程设计汇报装订次序:封面、任务书、目录、正文、附件、评分表。按A4大小纸张排版和打印。
2. 设计汇报页码从目录以后开始使用;
3. 正文格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22磅。正文中程序清单(英文)用英文字体Times New Roman,单倍行间距。
4. 正文内容:一、课题关键功效;二、课题功效模块划分(要求画出模块图);三、关键功效实现(最少要有一个关键模块步骤图);四、程序调试(各模块最少有一个程序调试截图);五、总结(不少于500字);六、参考文件;t、附件(包含全部程序原代码,且程序中应有必需注释)。八.正文总字数要求在5000字以上(不含程序原代码)。
5.设计汇报中任务书和评分表不需重新排版。
目 录
一、系统总体设计思绪: 1
Ⅰ.总体功效设计: 1
Ⅱ.各模块功效设计: 1
二.系统总体模块框图: 3
三、系统总步骤图及各模块步骤图 4
Ⅰ.总步骤图: 4
Ⅱ.各模块步骤图: 6
四、系统各模块关键功效实现 12
I.显示模块 12
II.追加模块 12
III.修改模块 12
IV.删除模块 13
V.查询模块 13
VI.统计模块: 13
VII.排序模块: 14
五.程序调试 14
I.显示模块: 14
II.追加程序: 16
III.修改程序: 20
IV.删除模块: 23
V.查询模块: 26
VI.统计模块: 28
VII.排序模块: 31
VIII.退出模块: 32
六.总结和体会 33
七.参考文件: 34
八.附件 34
一、系统总体设计思绪:
Ⅰ.总体功效设计:
学生宿舍管理系统存放了每个学生学号、姓名、性别、班级、电话号码及所住宿舍栋号、房间号、校区、宿舍类别数据库。每个人信息定义在一个结构体变量中。其结构以下:
系统经过显示程序、追加程序、查询程序、删除程序、修改程序、统计程序、排序程序来实现学生信息管理系统显示功效、追加功效、查询功效、删除功效、修改功效、统计功效、排序功效。各个功效调用经过主函数中switch语句来实现。
switch(sele)
{
case 1:Disp();break;(显示模块)
case 2:Appe();break;(追加模块)
case 3:Modi();break;(修改模块)
case 4:Dele();break;(删除模块)
case 5:Query();break;(查询模块)
case 6:Sort(); break;(排序模块)
case 7:Total(); break;(统计模块)
case 8:Quit(); sele=0;break;(退出模块)
}
Ⅱ.各模块功效设计:
ⅰ.显示模块:
经过设计一个模块,来实现学生信息显示。方便于浏览学生信息。
ⅱ.追加模块:
经过设计一个模块,当要加入新学生信息时候,来实现新学生信息加入。
iii.查询模块:
经过设计一个模块,这个模块能够按学生学号、姓名来查询学生全部信息,并显示学生全部信息,方便查询者阅读。
iv.删除模块:
经过设计一个模块,当输入一个学生学号或姓名时候,能够经过这个模块,将输入学号或姓名学生全部信息从数据库中删除出去。以后,这个学生信息将不再见出现再数据库中。
v.修改模块:
经过设计一个模块,当某个人信息发生改变时候,能够经过修改模块来进行修改。修改模块时一含有多级子菜单摸块。使用十分方便、灵活。
vi.统计模块:
经过设计一个模块,能按指定校区、宿舍栋号统计入住该栋学生人数,或统计制指定班级入住某栋人数,并能将统计结果和统计人员信息用表格显示出来,是浏览者一目了然。
vii.排序模块:
经过设计一个模块,来实现数据库信息按宿舍类别升序排列。并显示全部信息,使浏览者一目了然。
二.系统总体模块框图:
主函数
显示模块
追加模块
查询模块
删除模块
排序模块
退出模块
统计模块
退出
修改模块
三、系统总步骤图及各模块步骤图
Ⅰ.总步骤图:
进入系统
输入
Sele=?
追加程序
删除程序
查询程序
统计程序
显示程序
退出程序
输出
Sele=8
Sele=4
Sele=2
Sele=5
Sele=7
Sele=1
排序程序
Sele=6
修改程序
Sele=3
开始
结束
Ⅱ.各模块步骤图:
i.显示模块:
进入
输入选项xuanx
M=?
输出全部信息
退出
M=1
M=2
ii.追加模块:
进入
输入选项
num=?
输入信息
输出全部信息
退出
num=2
num=1
是否继续追加
否
是
iii.修改模块:
进入
输入选项
t=?
修改宿舍栋号
修改性别
修改电话号码
修改校区
退出程序
输入信息
t=8
t=3
t=1
t=7
修改宿舍类别
t=6
修改房间号
t=2
修改班级
num=??
num=3
按学号查找并修改
按姓名查找并修改
num=1
num=2
输出全部信息
t=4
t=5
选择
是否继续修改?
是
否
iv.删除模块:
进入
输入选项要查找信息
查找要删除学生信息
删除学生信息
输出删除后学生信息
是否继续删除
退出
查无此人
flag=?
否
是
flag=0
flag=1
v.查询模块:
进入
输入选项
按学号查找号
按姓名查找号
查找学生
num=1
num=3
num=2
flag=?
是否继续查询
查无此人!!!
flag=1
输出学生信息
flag=0
退出
是
否
vi.统计模块:
进入
输入选项
按校区、宿舍栋号统计该栋入住学生人数
按班级统计入住某栋人数
输入统计人数和这些学生信息
是否继续统计
退出
否
是
t=1
t=2
t=3
vii.排序模块:
进入
输入选项
按宿舍类别进行升序排列
输出排序后学生信息
退出
num=2
num=1
四、系统各模块关键功效实现
I.显示模块
程序经过一个printf函数把输出信息表头打印出来,再经过一个for循环把每一个学生信息输出,在输出时候,经过调用Print函数(一个专门用来输出函数,且是用指向结构体数组指针输出学生信息)输出全部学生信息。
II.追加模块
结构体中间组员之间用空格来隔开输入,经过回车键来实现追加。且追加一个学生信息后可选择继续追加或退出。
III.修改模块
程序定义一个变量num1,来确定到底输入是学号还是姓名。经过一个for循环来确定数据库到底是否含有此人信息。假如含有此人信息,则把此人序号赋值给变量k,把标识变量flag赋值为1;假如不含有此人信息,则标识变量flag值仍为0。再经过if语句,假如标识变量flag为0,则打印“查无此人!!!”。假如flag值为1怎进入下一级菜单,经过switch语句来选择是修改这个人宿舍栋号、房间号、性别、班级、电话号码、校区还是宿舍类别。修改完成后经过调用Print函数输出修改后新全部学生信息。每次修改成功以后可经过选择“是”或“否”来选择是否继续修改学生信息。
IV.删除模块
程序经过定义一个变量num,来确定输入到底是学号还是姓名,或退出删除模块。经过一个for循环来确定数据库到底是否含有此人信息。假如含有此人信息,则经过一个for循环,把这个以后信息依次前推来覆盖这个人信息,而实现此人信息删除。假如不含此人信息,则打印“查无此人!!!”。每次删除结束以后经过选择“是”或“否”来选择是否继续删除学生信息。
V.查询模块
程序经过输入一个变量num来实现是按学号还是按姓名来查找,或退出查询。当输入完学号或姓名时候,再经过一个for循环来实现此人信息查找。当含有这个人信息时候,把标识变量flag赋值为1,并立即输出此人信息。假如不含这个人信息时候,标识变量flag仍为0。再经过一个if 语句,假如标识变量flag为0,则打印“查无此人!!!”。用while循环境保护证程序在模块中查询。每次查询结束以后经过选择“是”或“否”来选择是否继续查询学生信息。
VI.统计模块:
程序经过输入一个变量t来选择是按校区、宿舍栋号统计该栋入住学生人数还是按班级统计入住某栋人数,或退出统计模块。再经过一个for循环来实现目标信息查找。定义标识变量flag,在for循环查找信息前赋值为零。当每找到一个目标信息时,把标识变量flag赋值为1,用变量num累加人数并并把此人信息赋给另一个结构体组员。假如不含这个人信息时,标识变量flag仍为0。最终输出统计人数并经过for语句输出这些学生信息,再经过一个if 语句,假如标识变量flag为0,则打印出“查无此信息!!!”。每次统计结束以后可经过选择“是”或“否”来选择是否继续统计其它学信息信息。
VII.排序模块:
程序利用起泡排序方法(从第一个数开始依次对相邻两数进行比较,如次序对则不进行任何操作;如次序不对则使这两个数交换位置。第一遍(N-1)次比较后,最大数已放在最终,第二遍只需考虑(N-1)个数,以这类推直到第(N-1)遍后就能够完成排序。)对全部学生按宿舍类别进行升序排列,并经过调用Print函数输出排序后数据。
五.程序调试
假如运行程序,将出现以下界面,即程序主菜单:
I.显示模块:
输入1,并按回车键,程序将进入显示模块菜单(二级菜单),界面以下:
假如输入1并按回车,将显示出全部学生全部信息,其输出界面以下:
假如按任意键将退出,退回主菜单:
II.追加程序:
在主菜单下输入2并回车,将进入追加程序菜单,其界面以下:
输入2并回车,将开始进行追加学生信息:
输入学生信息:
输入学生信息后,按回车将自动显示出追加及原来全部学生信息,并显示出是否继续追加学生信息,其界面以下:
输入1并按回车,即选择继续追加学生信息,将出现追加程序菜单:
输入另一个学生信息并回车,将自动显示出全部学生信息,其界面以下:
输入2并按回车,将显示出提醒语“按任意键返回主菜单”,界面以下:
按任意键将退出追加程序返回主菜单。
III.修改程序:
在主菜单下输入3并回车进入修改程序下菜单:
输入1并回车,即按学号查找并修改,程序将会提醒输入学号:
输入学号,如2112,回车,显示修改程序下一级菜单,即修改选项:
输入选择项,如2,将会提醒进入下一步,即修改信息:
输入修改信息并回车,将显示出经修改后全部学生新信息,并出现提醒语句选项,是否继续修改,其界面以下:
输入1并回车,即选择继续修改,将进入修改程序下主菜单:
输入2并回车,即选择按姓名查找并修改。修改完成后选择继续修改,并按学号查找并修改,随便输入一个学号(即数据库不存在学生信息),将会显示提醒信息——查无此人!!!其界面以下:
输入2并回车,即选择退出修改程序,程序将完成修改并返回主菜单。
IV.删除模块:
在主菜单下输入2并回车,将进入删除程序菜单下,其界面以下:
输入1并回车,即选择按学号查找并删除,并输入一个学号回车,如输入2112,将自动显示出删除后新学生信息,即不在存在学号为2112学生信息:
按任意键将进入下一步,即选择是否继续修改:
输入1并回车,即选择继续修改,将显示出删除程序选择菜单:
输入2,即按姓名查找并修改,随意输入一个姓名,即数据库不存在学生信息,回车将显示出提醒信息:查无结果! 其界面以下:
V.查询模块:
在主菜单下输入5并回车,进入查询程序选择菜单下,其界面以下:
输入1并回车,即选择按学号查询,将出现提醒语句,提醒使用者输入学生学号。输入一个学生学号,如,回车,将显示出此学生全部信息。而且提醒使用者是否选择继续查询,其界面以下:
选择继续查询将回到查询程序选择菜单下。在查询程序菜单下输入2并回车,即选择按姓名查询,输入一个学生姓名并回车,如司马懿(追加学生信息),将出现此人全部信息,即也证实追加学生信息成功:
选择继续查询,而且按学号查询(或按姓名查询),随便输入一个数据,即数据库不存在,如学号8970,将出现提醒语句----查无此人!!!
选择“否”,即不继续查询,将完成信息查询并退出查询程序返回主菜单。
VI.统计模块:
在主菜单下输入6并回车,将进入统计模块菜单下:
输入1,即按校区、宿舍栋号统计该栋入住学生人数,并提醒使用者输入相关信息:
输入相关信息,如0,A(中间用空格),回车将统计出人数和显示出这些学生全部信息,并提醒使用者下一步是否继续统计其它数据:
选择继续统计将返回统计程序下菜单,输入2并回车,即选择按班级统计入住某栋人数,并提醒输入相关信息:
输入相关信息并回车,将显示出统计出人数和这些学生全部信息:
选择继续统计返回菜单,选择1、2任一项,如选择1,即选择按班级统计入住某栋人数,随意输入数据,即数据库不存在,回车,将显示提醒语句---查无此信息!其界面以下:
选择“否”完成统计返回主菜单。
VII.排序模块:
在主菜单下输入7并回车进入排序程序下菜单:
输入2并回车,即选择按宿舍类别排列(升序),将显示排序后全部学生信息:
按任意键返回主菜单。
VIII.退出模块:
在主菜单下输入8并回车将显示出退出程序界面:
继续按任意键将退出整个程序,即退出学生宿舍管理系统。
六.总结和体会
邓小平说过“实践是检验真理唯一标准”。经过几天课程设计,经过实践来了解和巩固理论知识,使我对C语言程序设计有了一个愈加深入认识,从刚开始初略了解到有了比较深入认识,能够比较灵活利用。C语言是一门比较灵活、有趣而且实践性很强课程,单从理论课上是难以领会到它精髓,我们只有从它实践利用中,才能体会到了学习C语言乐趣和好处。在课程设计这段时间里,我学到了很多东西,同时也使我对以前学东西有了一个更深更透彻了解。比如:能够灵活利用循环,switch语句,结构体定义、引用、使用,指针定义、使用等。即使对C语言编程还有很多不明白,但这段时间我真获易匪浅,原来理论课上部分没弄懂知识点经过上机实践差不多全部弄懂了。课程设计也就是学以致用嘛,让自己了解自己所学怎样用于实际应用中。正所谓实践出真知,在实践中我们才能发觉自己所存在问题和不足。
在编程过程中总是出现这个或那个问题,比如说总是在scanf语句中少掉地址符“&”,最终造成程序无法运行。这也源于自己平时没养成好习惯,初心大意吧,以后得多多注意啊。在编程过程出现很多问题是免不了,不过还好最终经过和同学讨论或请教老师全部一一处理了。为了和同学讨论处理问题,我甚至放弃了使用自己电脑而去电子阅览室上机编程。在这次课程设计中,我再一次深深地体会到了了和她人合作交流关键性,正所谓“众人拾柴火焰高”。虽说每个人独立编程,但总少不了碰到问题,碰到问题就得处理啊。在和同学交流讨论中,取长补短,不仅她人帮我处理了问题,一样我也帮她人处理了问题。
我感觉自己程序还算编得不错,清楚美观,还很多特色。为了美观我特意把全部界面上菜单调到了中间。我自己定义了一个函数用于输出数据,而且是经过指针输出。所以说整个程序所学知识差不多我全部用到了,用些知识可能不需要,但我还是想措施把它用进去,表现它作用。可是遗憾是最终程序经过我修修改改,最终答辩却出现了部分问题,有些不能运行。不过没什么,现在问题已经处理了,答辩出问题了,又何须在意那个结果呢?应该看重是整个过程。
即使课程设计很复杂,枯燥乏味,但我从没想到过放弃。高考全部经历过来了,这又算得了什么呢?碰到困难时,不要轻言放弃,有毅力能做好事情。当然c语言课程设计确实极难,不过世上无难事只怕有心人,紧要关头不放弃,绝望就会变成期望。任何困难全部只不过是纸老虎,相信自己就一定能成功。
课程设计也就是学以致用嘛,让自己了解自己所学怎样用于实际应用中。正所谓实践出真知,在实践中我们才能发觉自己所存在问题和不足。C语言学习更是为我们以后学习微机原理和单片机原理奠定了基础。我们专业是电子科学和技术,关键是跟电子产品打交道,后面用到C语言地方还有很多,所以说,学好C语言,为我们以后专业知识学习有很大好处。在学习C语言中更使我体会到了学习计算机技术乐趣,我将愈加努力多学,学好计算机技术。
七.参考文件:
1. 《C语言程序设计》 主编 陈世清 浙江大学出版社
2. 《C语言程序设计实践教程》 主编 陈世清 浙江大学出版社
八.附件
#include "stdio.h"
#include "string.h"
#include "conio.h"
int N=0;
struct stu
{ char ssdh[4]; /*宿舍栋号*/
int fjh; /*房间号*/
long xh; /*学号*/
char name[10]; /*姓名*/
char xb[4]; /*性别*/
char bj[12]; /*班级*/
char phone[12]; /*电话号码*/
int xq; /*校区*/
int sslb; /*宿舍类别*/
}s[40];
void Re_file()
{
FILE *fp;
fp=fopen("G:\\课题2\\ssxxk.txt","r");
while( fscanf(fp,"%s\n%d\n%ld\n%s\n%s\n%s\n%s\n%d\n%d\n",s[N].ssdh,&s[N].fjh,&s[N].xh,s[N].name,s[N].xb,s[N].bj,s[N].phone,&s[N].xq,&s[N].sslb)!=EOF) N++;
fclose(fp);
}
void Wr_file()
{int i;
FILE *fp;
fp=fopen("G:\\课题2\\newssxxk.txt","w");
for(i=0;i<N;i++)
fprintf(fp,"%s\n%d\n%ld\n%s\n%s\n%s\n%s\n%d\n%d\n",s[i].ssdh,s[i].fjh,s[i].xh,s[i].name,s[i].xb,s[i].bj,s[i].phone,s[i].xq,s[i].sslb);
fclose(fp);
}
void Print() /*输出函数*/
{
struct stu *p;
printf(" ***************************************************************************\n");
printf(" 宿舍栋号 房间号 学号 姓名 性别 班级 电话 校区 宿舍类别\n");
printf(" ***************************************************************************\n");
for(p=s;p<s+N;p++)
printf(" %-8s%-7d%-8ld%-9s%-7s%-7s%-13s%-8d%-4d\n",p->ssdh,p->fjh,p->xh,p->name,p->xb,p->bj,p->phone,p->xq,p->sslb);
}
void Disp() /*显示模块*/
{
int num;
printf(" *****************************************\n");
printf(" ** **\n");
printf(" ** 1.显示学生信息 **\n");
printf(" ** **\n");
printf(" ** 2.退 出 **\n");
printf(" ** **\n");
printf(" *****************************************\n");
printf("请选择:");
scanf("%d",&num);
switch(num)
{
case 1:
Print();
case 2:
printf("\n\n请按任意键退出!");getch();}
}
void Appe() /*追加模块*/
{
int num;
printf(" *****************************************\n");
printf(" ** **\n");
printf(" ** 1.追加学生信息 **\n");
printf(" ** **\n");
printf(" ** 2.退 出 **\n");
printf(" ** **\n");
printf(" *****************************************\n");
printf("\n\n 请输入选项:");
scanf("%d",&num);
switch(num)
{
case 1:
printf("请输入数据:\n");
printf(" ***************************************************************************\n");
printf(" 宿舍栋号 房间号 学号 姓名 性别 班级 电话 校区 宿舍类别\n");
printf(" ***************************************************************************\n");
{
scanf("%s%d%ld%s%s%s%s%d%d",s[N].ssdh,&s[N].fjh,&s[N].xh,s[N].name,s[N].xb,s[N].bj,&s[N].phone,&s[N].xq,&s[N].sslb);
N++;
}
printf("\n\n新数据以下表:\n\n");
Print();
printf("\n\n *** 是否继续追加??? ***\n");
printf("\n\n *** 1.是 *** 2.否 *** \n\n\n");
printf("请输入选项:");
scanf("%d",&num);
switch(num)
{
case 1:Appe();break;
case 2:printf(" 按任意键返回主菜单!\n");
getch();
return;
}
case 2:printf(" 按任意键返回主菜单!\n");
getch();
break;
}
}
void Modi() /*修改模块*/
{
int j,num1,num,k,t;
long xuehao;
char xingming[4];
int flag;
printf(" ********************************************\n");
printf(" ** **\n");
printf(" ** 1.按学号查找并修改 **\n");
printf(" ** **\n");
printf(" ** 2.按姓名查找并修改 **\n");
printf(" ** **\n");
printf(" ** 3. 退 出 **\n");
printf(" ** **\n");
printf(" ********************************************\n");
printf("\n\n 请输入你选项:");
scanf("%d",&num1);
flag=0;
if(num1==1)
{
printf("\n 请输入学号:");
scanf("%ld",&xuehao);
for(j=0;j<N;j++)
{
if(s[j].xh==xuehao)
{
flag=1;
k=j;
break;
}
}
}
if(num1==2)
{
printf("\n 请输入姓名:");
scanf("%s",xingming);
for(j=0;j<N;j++)
{
if(strcmp(s[j].name,xingming)==0)
flag=1;
k=j;
break;
}
}
if(num1==3)
{
printf("\n 请按任意键退出!\n");
getch();return;
}
if(flag==0)
printf("\n\n 查无此人!\n\n");
if(flag==1)
{
printf(" ***************************************\n");
printf(" ** **\n");
printf("
展开阅读全文