c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx

上传人:b****5 文档编号:17889319 上传时间:2022-12-11 格式:DOCX 页数:17 大小:90.31KB
下载 相关 举报
c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx_第1页
第1页 / 共17页
c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx_第2页
第2页 / 共17页
c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx_第3页
第3页 / 共17页
c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx_第4页
第4页 / 共17页
c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx

《c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

c语言课程设计报告学生学籍信息管理系统Word格式文档下载.docx

12、sortByMajor——专业排序;

13、splash——建立起始界面;

14、menuRegister——输入学生的子菜单;

15、menuModify——修改学生信息的子菜单;

16、menuDelete——删除学生信息的子菜单;

17、menuSearch——查找学生的子菜单;

18、menuAllByNumber——按学号展示全部学生信息;

19、menuAllByMajor——按专业展示全部学生信息;

20、menuStatus——查询某学生的状态;

21、menuQuit——退出并保存;

四、程序运行结果测试与分析

编译并运行程序

出现以上界面并按回车键

出现设定好的主菜单

出现此界面,可以通过此界面输入学生相关信息,键入学生信息后返回主界面,输入2

即可对信息进行修改,后回到主界面键入3

即可在此界面删除某同学信息,回到主菜单键入4

即可在此界面中按学号查找某同学,返回主界面键入5

即可得到按学号排序的信息,返回主界面键入6

为按学科排列,返回主界面键入7

最后返回键入8

保存并退出程序

五、结果与心得

在本次课题设计中,我全程担任程序的设计与完善和课程设计报告的书写。

程序的书写中,由于是第一次进行菜单和链表的书写,所以在书写的过程中有大量的不严谨不合理,尤其是在子菜单的书写上,输入数据和调用函数这一部分,enum函数也是第一次使用。

以上问题在和同学的讨论后得到了一部分解决。

由于时间关系,本程序存在一些问题,目前还没有得到完全解决,比如会出现可能子菜单操作后一闪而过直接回到主菜单的情况。

个人觉得本程序的功能没有完全合理的设计,对于程序还缺乏进一步的优化与完善。

六、源代码

#include<

stdio.h>

stdlib.h>

string.h>

#defineclrscr()system("

cls"

#definepause()system("

PAUSE>

nul"

typedefcharString[64];

typedefenum{

Enrolled=1,ChangingMajor,Disenrolled,Retarded,Suspended,Graduated,Unknown=0

}Status;

StringStatusStr[]={"

Unknown"

"

Enrolled"

ChangingMajor"

Disenrolled"

Retarded"

Suspended"

Graduated"

};

Statusstoe(Strings){

for(inti=0;

i<

7;

i++){

if(strcmp(StatusStr[i],s)==0)return(Status)i;

}

returnUnknown;

}

Male,Female

}Gender;

typedefstruct_student{

Stringnumber;

Stringname;

Gendergender;

intage;

StringnativePlace;

Stringdepartment;

Stringmajor;

StringclassName;

Statusstatus;

struct_student*pNext;

}Student;

Student*students;

intfindStudent(Stringnumber){

Student*cur=students;

intcount=0;

while(cur!

=NULL){

if(strcmp(cur->

number,number)==0)returncount;

cur=cur->

pNext;

count++;

return-1;

intregisterStudent(Stringnumber,Stringname,Gendergender,intage,StringnativePlace,Stringdepartment,Stringmajor,StringclassName,Statusstatus){

if(findStudent(number)!

=-1)return-1;

Student*s=(Student*)malloc(sizeof(Student));

s->

gender=gender;

status=status;

age=age;

pNext=NULL;

strcpy(s->

number,number);

name,name);

nativePlace,nativePlace);

department,department);

major,major);

className,className);

if(cur==NULL)

students=s;

else{

while(cur->

pNext!

cur=cur->

}

cur->

pNext=s;

return0;

intmodifyStudent(Stringnumber,Stringname,Gendergender,intage,StringnativePlace,Stringdepartment,Stringmajor,StringclassName,Statusstatus){

intcount=findStudent(number);

if(count==-1)return-1;

count;

cur->

strcpy(cur->

intdeleteStudent(Stringnumber){

if(count==0){

students=cur->

return0;

count-1;

i++)cur=cur->

pNext=cur->

pNext->

Student*getStudent(Stringnumber){

if(count==-1)returnNULL;

returncur;

voidputStudent(Student*s,FILE*f){

fprintf(f,"

(%s)%s:

\n"

s->

number,s->

name);

Gender:

%s\n"

gender==Male?

"

Male"

:

Female"

);

Age:

%d\n"

age);

NativePlace:

nativePlace);

Dept:

department);

Major:

major);

Class:

className);

Status:

%s\n\n"

StatusStr[s->

status]);

voidputAll(FILE*stream){

putStudent(cur,stream);

voidsortByNumber(){

Student*n=NULL;

while(students!

Student*cur=students;

Student*min=students;

while(cur!

if(strcmp(min->

number,cur->

number)>

0){

min=cur;

}

deleteStudent(min->

number);

min->

Student*ncur=n;

if(ncur==NULL)

n=min;

else{

while(ncur->

ncur=ncur->

ncur->

pNext=min;

students=n;

voidsortByMajor(){

major,cur->

major)>

voidsplash(){

clrscr();

puts("

\n\n"

\t\t###################################################"

\t\t#WelcomeToStudentEnrollmentManagementSystem#"

\t\t##"

\t\t#InThisSystem,YouMayManageStudents'

#"

\t\t#EnrollmentStatus,SuchAsRegistering,#"

\t\t#Modifying,DeletingAndDoingBasicStatistics#"

\t\t#ThisSystemProvidesADialogue-BasedMenu#"

\t\t#PressAnyKeyToContinue...#"

pause();

voidmenuRegister(){

PleaseInputNumber,Name,Gender,Age,NativePlace,Department,Major,Class,Status.SeparateBySpace,EndWithAnyKey"

StringNumber,Name,GenderStr,NativePlace,Department,Major,Class,statusStr;

scanf("

%s%s%s%d%s%s%s%s%s"

Number,Name,GenderStr,&

age,NativePlace,Department,Major,Class,statusStr);

if(registerStudent(Number,Name,strupr(GenderStr)=="

MALE"

?

Male:

Female,age,NativePlace,Department,Major,Class,stoe(statusStr))==-1){

puts("

StudentExist!

PressAnyKeyToMainMenu"

fflush(stdin);

pause();

voidmenuModify(){

StringNumber,Name,GenderStr,NativePlace,Department,Major,Class,StatusStr;

Number,Name,GenderStr,age,NativePlace,Department,Major,Class,StatusStr);

if(modifyStudent(Number,Name,strupr(GenderStr)=="

male"

Female,age,NativePlace,Department,Major,Class,stoe(StatusStr))==-1){

StudentDoesn'

tExist!

voidmenuDelete(){

printf("

PleaseInputNumber:

StringNumber;

%s"

Number);

if(deleteStudent(Number)==-1){

voidmenuSearch(){

Student*s=getStudent(Number);

if(s==NULL){

return;

putStudent(s,stdout);

fflush(stdin);

voidmenuAllByNumber(){

sortByNumber();

putAll(stdout);

\nPressAnyKeyToMainMenu"

system("

pause>

voidmenuAllByMajor(){

sortByMajor();

voidmenuStatus(){

EnrollmentStatusForStudentNo.%s:

number,StatusStr[s->

voidmenuQuit(){

AreYouSureToQuit?

(Y/N,Default=N)"

charresponse;

%c"

&

response);

if(response!

='

y'

&

&

response!

Y'

)return;

SaveCurrentDatatoFile?

(Y/N,Default=Y)"

n'

N'

){

printf("

FileName:

StringfileName;

scanf("

%s"

fileName);

FILE*f=fopen(fileName,"

w"

putAll(f);

fclose(f);

DataSavedto\"

%s\"

exit(0);

voidmenuMain(){

students=NULL;

while

(1){

clrscr();

StudentEnrollmentManagementSystem\n"

1.RegisterNewStudent\n"

2.ModifyExistingStudent\n"

3.DeleteExistingStudent\n"

4.

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

当前位置:首页 > 表格模板 > 表格类模板

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

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