c语言程序学生籍贯信息记录簿设计.docx

上传人:b****4 文档编号:26932753 上传时间:2023-06-24 格式:DOCX 页数:16 大小:28.95KB
下载 相关 举报
c语言程序学生籍贯信息记录簿设计.docx_第1页
第1页 / 共16页
c语言程序学生籍贯信息记录簿设计.docx_第2页
第2页 / 共16页
c语言程序学生籍贯信息记录簿设计.docx_第3页
第3页 / 共16页
c语言程序学生籍贯信息记录簿设计.docx_第4页
第4页 / 共16页
c语言程序学生籍贯信息记录簿设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c语言程序学生籍贯信息记录簿设计.docx

《c语言程序学生籍贯信息记录簿设计.docx》由会员分享,可在线阅读,更多相关《c语言程序学生籍贯信息记录簿设计.docx(16页珍藏版)》请在冰豆网上搜索。

c语言程序学生籍贯信息记录簿设计.docx

c语言程序学生籍贯信息记录簿设计

c语言程序学生籍贯信息记录簿设计

学生籍贯信息记录簿

课程设计报告书

班级:

方0909-1学号:

********姓名:

苑小叶指导教师:

康亚男

石家庄铁道大学四方学院

2010年07月14日

1

课程设计报告内容

1.选择题目

题目:

学生籍贯信息记录簿设计2.内容摘要

摘要:

学生籍贯信息管理系统是典型的信息管理系统,根据开发要求,主要完成对学生姓名、学号、籍贯等管理。

随着学校办学规模的不断扩大、办学层次的多样化、在校生的不断增多。

开发这系统可以是教务处老师减轻工作压力,比较系统的对学生进行管理,加快速度、加强管理,使各项管理更加规范化。

本系统管理内容广泛,全面涉及管理学生资料信息的管理。

3.索引关键词

关键词:

学生籍贯管理,结构体,循环,函数

学生籍贯信息记录簿

4.目录

1题目要求……………………………………………………………42设计思想……………………………………………………………43系统完成及功能……………………………………………………44界面设计……………………………………………………………55正文…………………………………………………………………56结论…………………………………………………………………147参考资料……………………………………………………………148后记…………………………………………………………………159附录…………………………………………………………………15

3

学生籍贯信息记录簿5.正文

1.1课程设计题目要求

1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3.画出功能模块图;

4.进行简单界面设计,能够实现友好的交互;5.具有清晰的程序流程图和数据结构的详细定义;6.熟练掌握C语言对文件的各种操作。

2.1设计思想

程序运用结构体数组和循环进行程序的编写.

3.1系统完成功能及功能框图

1每条记录包括一个学生学号、姓名、籍贯。

2输入功能:

可以一次完成无数条记录的输入。

3显示功能:

完成全部学生记录的显示。

4查找功能:

完成按姓名、学号查找学生记录,并显示。

5修改功能:

通过查找学生姓名、学号,修改学生记录。

6保存功能:

将学生记录保存到任何自定义的文件中。

7读取功能:

将保存到文件中的学生记录读取出来。

8应提供一个界面来调用各个功能,调用界面和功能的操作界面应尽可能清晰美观。

主要功能

录查删编输入询除辑出

4

学生籍贯信息记录簿4.1界面设计

5.1核心算法及说明

#include#include#include#include#defineMAX300structstudent

{

charname[10];//姓名

charno[50];//学号

charad[20];//籍贯

};

structdata

{

5

学生籍贯信息记录簿

intcount;//当前学生数组中学生的个数

structstudentstu[MAX];//学生数组

}dd;

//显示主菜单

voidmenu()

{

system("cls");

printf("\n");

printf("\t\t\t********************************\n");

printf("\t\t\t**\n");

printf("\t\t\t*学生籍贯信息记录簿*\n");

printf("\t\t\t**\n");

printf("\t\t\t*[0]退出*\n");

printf("\t\t\t*[1]查看所有学生信息*\n");

printf("\t\t\t*[2]输入学生记录*\n");

printf("\t\t\t*[3]删除学生记录*\n");

printf("\t\t\t*[4]编辑学生记录*\n");

printf("\t\t\t*[5]查询(学号)*\n");

printf("\t\t\t*[6]查询(姓名)*\n");

printf("\t\t\t*[7]查询(籍贯)*\n");

printf("\t\t\t**\n");

printf("\t\t\t********************************\n");

printf("\t\t\t*制作人:

苑小叶崔京*\n");}

//等待用户按回车后回到主菜单

voidto_menu()

{

charc1,c2;

printf("\n\n\n按回车键返回主菜单...");

scanf("%c%c",&c1,&c2);

menu();

}

//查看所有学生信息

6

学生籍贯信息记录簿voidview_data()

{

inti;

printf("姓名\t学号\t籍贯");

printf("\n------------------------------------------------------------------

-\n");

for(i=0;i

printf("%s\t%s\t%s\n",dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);

}

//将数据从结构体数组保存到文件中

voidsave_data()

{

FILE*fp;

inti,k;

k=dd.count;

fp=fopen("c:

/dada.txt","w");

fwrite(&k,sizeof(int),1,fp);

for(i=0;i

fwrite(&dd.stu[i],sizeof(structstudent),1,fp);

fclose(fp);

}

//输入学生记录

voidadd_data()

{

structstudentst;

intb;

intk;

inti,j;

while

(1)

{

j=0;

7

学生籍贯信息记录簿

printf("\n请输入学生信息:

");

printf("\n姓名\t学号\t籍贯");

printf("\n---------------------------------------------------------------\n"

);

scanf("%s%s%s",st.name,st.no,st.ad);

for(i=0;i

if(strcmp(dd.stu[i].no,st.no)==0)

{

j=1;

printf("学号录入重复,请重新输入~");

break;

}

if(j==1)

continue;

if(j==0)

{

k=dd.count;

strcpy(dd.stu[k].name,st.name);

strcpy(dd.stu[k].no,st.no);

strcpy(dd.stu[k].ad,st.ad);

dd.count++;

}

printf("\n\n继续添加学生信息[1-yes0-no]:

");

scanf("%d",&b);

if(b==0)break;

}

save_data();

}

//将数据从文件读到结构体数组中

voidread_data()

{

FILE*fp;

inti,k;

8

学生籍贯信息记录簿

structstudentst;

k=0;

if(access("c:

/dada.txt",0)==-1)//如果文件不存在

{

fp=fopen("c:

/dada.txt","w");

fwrite(&k,sizeof(int),1,fp);

fclose(fp);

}

fp=fopen("c:

/dada.txt","r");

fread(&k,sizeof(int),1,fp);

dd.count=k;

for(i=0;i

{

fread(&st,sizeof(structstudent),1,fp);

strcpy(dd.stu[i].name,st.name);

strcpy(dd.stu[i].no,st.no);

strcpy(dd.stu[i].ad,st.ad);

}

fclose(fp);

}

//删除学生记录

voiddelete_data()

{

inti,k;

charno[50];

printf("\n请输入要删除学生的学号:

");

scanf("%s",no);

k=-1;

for(i=0;i

{

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

{

k=i;

9

学生籍贯信息记录簿

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(学号-%s)!

",no);

}

else

{

for(i=k;i

{

strcpy(dd.stu[i].name,dd.stu[i+1].name);

strcpy(dd.stu[i].no,dd.stu[i+1].no);

strcpy(dd.stu[i].ad,dd.stu[i+1].ad);

}

dd.count--;

save_data();

printf("\n\n删除(学号-%s)成功!

",no);

}

}

//编辑学生记录

voidedit_data()

{

inti,k;

charno[50],ad[20];

printf("\n请输入要编辑学生的学号:

");

scanf("%s",no);

k=-1;

for(i=0;i

{

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

{

k=i;

break;

10

学生籍贯信息记录簿

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(学号-%s)!

",no);

}

else

{

printf("\n姓名:

%s,学号:

%s",dd.stu[k].name,dd.stu[k].no);

printf("\n请修改学生数据:

");

printf("\n籍贯:

");

scanf("%s",ad);

strcpy(dd.stu[k].ad,ad);

}

}

//查询(学号)

voidquery_data_no()

{

inti,k;

charno[50];

printf("\n请输入要查询学生的学号:

");

scanf("%s",no);

k=-1;

for(i=0;i

{

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

{

{

printf("\n\n姓名\t学号\t籍贯");

printf("\n--------------------------------------------------------------

---\n");

}

11

学生籍贯信息记录簿

k=i;

printf("%s\t%s\t%s\n",dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(学号-%s)!

",no);

}

}

//查询(姓名)

voidquery_data_name(){

inti,k;

charname[10];

printf("\n请输入要查询学生的姓名:

");

scanf("%s",name);

k=-1;

for(i=0;i

{

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

{

{

printf("\n\n姓名\t学号\t籍贯");

printf("\n--------------------------------------------------------------

---\n");

}

k=i;

printf("%s\t%s\t%s\n",dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);

}

}

if(k==-1)

{

12

学生籍贯信息记录簿

printf("\n\n没有找到该学生(姓名-%s)!

",name);

}

}

//查询(籍贯)

voidquery_data_address(){

inti,sum=0;charad[20];

printf("请输入籍贯信息:

");

scanf("%s",ad);

printf("该籍贯的学生有:

");

for(i=0;i

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

{

printf("%s\t",dd.stu[i].name);

sum++;

}

if(sum==0)

printf("0人\n");

}

//主函数

voidmain()

{

intfun;

read_data();

menu();

while

(1)

{

printf("请输入功能号[0-7]:

",&fun);

scanf("%d",&fun);

switch(fun)

{

case0:

//退出

break;

case1:

//查看所有学生信息

13

学生籍贯信息记录簿

view_data();

break;

case2:

//输入学生记录

add_data();

break;

case3:

//删除学生记录

delete_data();

break;

case4:

//编辑学生记录

edit_data();

break;

case5:

//查询(学号)

query_data_no();

break;

case6:

//查询(姓名)

query_data_name();

break;

case7:

//查询(籍贯)

query_data_address();

break;

}

if(fun==0)break;

to_menu();

}

}

6.结论

各项功能均能实现,但程序存在缺陷,如录入重复学号,没有出现提示功能,需要修改

和完善。

7.参考资料

C语言设计第三版清华大学出版社出版

14

学生籍贯信息记录簿

8.后记

虽然该系统可以运行最基本的功能,但该系统仍然有不完善之处,有待添加更丰富的功能…….感谢康亚男老师给与的细心指导,感谢同伴的积极配合共同完成了程序.

9.附录

系统公共数据结构如下:

#difineMAX300\\定义常量N表示可录入最大学生数

inti,j、k,sum,\\i表示第几位学生,j\k都用来存放赋的值,sum表示查询时该学生不存在的学生数0人

intcount\\存放学生总人数

inti\\变量i存放循环次数

stuctstudent\\定义一个名为student的结构体,这个结构体定义了学生的基本信息

{charno\\定义学生的学号

charname\\定义学生的姓名

charad\\定义学生的籍贯

intb\\用来跳出某项功能

structstudent、structstudentstu[MAX],定义两个结构体,两者是嵌套的。

dd是全局的结构体变量名

15

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

当前位置:首页 > 求职职场 > 简历

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

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