學(xué)生信息管理系統(tǒng)C語言編寫-編輯學(xué)生信息如何寫
發(fā)布時(shí)間:2020-07-28 來源: 主持詞 點(diǎn)擊:
目
錄
1 設(shè)計(jì)目得………………………………………………………………………3 2 設(shè) 計(jì) 題 目 及 要 求 … … … … … … … … … … … … … … … … … … … … 3 3設(shè)計(jì)算法分析………………………………………………………………3
3、1 模塊調(diào)用層次圖………………………………………………………3
3、2 核心算法描述………………………………………………………4
3、3 系統(tǒng)特點(diǎn)………………………………………………………6 4 程序代碼………………………………………………………………………6 5調(diào)試情況……………………………………………………………………8 6 結(jié)論……………………………………………………………………………11
學(xué)生信息管理
1 1 、設(shè)計(jì)目得
本課程設(shè)計(jì)得目得就就是要通過一次集中得強(qiáng)化訓(xùn)練,使學(xué)生能及時(shí)鞏固已學(xué)得知識(shí),補(bǔ)充未學(xué)得但又必要得內(nèi)容。進(jìn)行課程設(shè)計(jì)目得在于加深對(duì)程序設(shè)計(jì)基礎(chǔ)中基礎(chǔ)理論與基本知識(shí)得理解,促進(jìn)理論與實(shí)踐得結(jié)合,進(jìn)一步提高程序設(shè)計(jì)得能力.具體目得如下: 1.使學(xué)生更深入地理解與掌握該課程中得有關(guān)基本概念,程序設(shè)計(jì)思想與方法. 2.培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成課題得能力。
。。培養(yǎng)學(xué)生勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求就是、有錯(cuò)必改,用實(shí)踐來檢驗(yàn)理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具有得素質(zhì). 4。提高學(xué)生對(duì)工作認(rèn)真負(fù)責(zé)、一絲不茍,對(duì)同學(xué)團(tuán)結(jié)友愛,協(xié)作攻關(guān)得基本素質(zhì)。
5.培養(yǎng)學(xué)生從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)得能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問題得新途徑得悟性,初步培養(yǎng)工程意識(shí)與創(chuàng)新能力。
6.對(duì)學(xué)生掌握知識(shí)得深度、運(yùn)用理論去處理問題得能力、實(shí)驗(yàn)?zāi)芰、課程設(shè)計(jì)能力、書面及口頭表達(dá)能力進(jìn)行考核. 2 2 、設(shè)計(jì)題目及要求
【1】設(shè)計(jì)題目
【2】要求 實(shí)現(xiàn)如下功能:
(1)建立學(xué)生信息得結(jié)構(gòu)體 (2)學(xué)生信息得初始化(可以從文件獲。
(3)學(xué)生信息得添加、修改、刪除、查找 (4)學(xué)生信息得輸出 (5)對(duì)學(xué)生信息按學(xué)號(hào)、成績(jī)排序 (6)計(jì)算一門課得平均分與總分 (7)將學(xué)生信息保存為文件 綜合應(yīng)用數(shù)組、指針、結(jié)構(gòu)體、文件等,對(duì)該設(shè)計(jì)題目進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。課程設(shè)計(jì)完成后,提交課程設(shè)計(jì)報(bào)告。
3 3 、 設(shè)計(jì) 算法分析
3、1 模塊調(diào)用層次圖
【1】變量描述
定義形式/名稱 含義/作用 數(shù)組 char name[20] 定義姓名數(shù)組 結(jié)構(gòu)體 struct student stu[50] 聲明一個(gè)結(jié)構(gòu)數(shù)組 全局變量 int input=0;float ave,sum;
全局變量標(biāo)記當(dāng)前錄入學(xué)生個(gè)數(shù)
FILE *fp;
文件 stu_list2、doc 保存學(xué)生信息 函數(shù) Save InputStu DelStu Modif y Stu FindStu InsertStu SortStu ListStu 保存 錄入 刪除 修改 查找 插入 排序 顯示學(xué)生信息
【2】系統(tǒng)模塊調(diào)用層次圖
3、2核心算法描述
1、總體模塊流程圖:
。
T
2、修改模塊:
for(i=0;i<=15;i++)
for(i=0;i<input;i++)
stu[i]、num==id
T(flag!=0)
F(flag!=0)
輸出修改后學(xué)生信息
。餽intf(”\n\nnull")
3、查詢模塊: Main ListStu SortStu ModifyStu FindStu InsertStu Save InputStu DelStu
開始
!(scanf("%d",&in1)==1
學(xué)生信息
修改
查詢
插入
刪除
排序
保存
結(jié)束
for(i=0;i<=15;i++)
for(i=0;i<input;i++)
(stu[i]、num==id)
T
(flag=0)
F (flag!=0)
輸出查詢后學(xué)生信息
。餽intf("\n\nnull")
(stu[i]、classid==id)
T (flag=0)
F(flag!=0)
輸出查詢后學(xué)生信息
printf(”\n\nnull”)
T (flag=0)
(!strcmp(stu[i]、name,name))
F(flag!=0)
輸出查詢后學(xué)生信息
無找到有關(guān)信息 4、插入模塊: for(i=0;i<input;i++)
。髏u[i]、num=id
。0=galf(T? F(flag。剑)
學(xué)號(hào)信息已經(jīng)存在
輸入要插入學(xué)生信息
5、刪除模塊:
ask != "n’ T
。 i=0;i〈input;i++
stu[i]、num == delnum
T (flag=0)
F(flag!=0)
。妫飏(j=i;j<input;j++)
刪除成功且
顯示刪除后數(shù)據(jù)
刪除指定學(xué)生得信息
沒有要?jiǎng)h除得學(xué)生 6、排序模塊:
chose==1 T
F(chose==2) for(i=0;i〈input-1;i++)
for(i=0;i〈input-1;i++)
for(j=i+1;j〈input;j++)
for(j=i+1;j<input;j++)
stu[i]、num〉stu[j]、num
。髏u[i]、ave〈stu[j]、ave
T
F
T
F
temp=stu[i]
temp=stu[i]
stu[i]=stu[j]
stu[i]=stu[j]
stu[j]=temp
stu[j]=temp 3、3 系統(tǒng)特點(diǎn) 【1】特點(diǎn):這個(gè)學(xué)生信息管理系統(tǒng)建立了學(xué)生信息得結(jié)構(gòu)體,實(shí)現(xiàn)了學(xué)生信息得錄入、添加、修改、刪除、查找等功能,并能計(jì)算學(xué)生得平均分與總分,對(duì)學(xué)生進(jìn)行排序。
。、 程序代碼
【1】程序代碼
void Help();
void Save(struct student stu[]);
void InputStu(struct student stu[]);
void DelStu(struct student stu[]);
void ModifyStu(struct student stu[]);
void FindStu(struct student stu[]);
void InsertStu(struct student stu[]);
void SortStu(struct student stu[]);
void ListStu(struct student stu[]);
void main()
{
struct student stu[50];
struct student *p;
int
in;
int
。椋1;
char ch;
void InputStu(struct student stu[])
{
pp=stu;
system("cls");
int i;
printf("Number of students you want to enter informat(yī)ion:");
scanf("%d",&input); if((fp=fopen("inputdata、sys","wb+"))==NULL)
{
printf("Cannot open
any key exit!");
getch();
exit(1);
}
void ModifyStu(struct student stu[])
{
system("cls");
pp=stu;
int id,i,flag=1;
。閒((fp=fopen("modifydata、sys","wb+"))==NULL)
{
printf(”Cannot open
any key exit!”); getch();
exit(1);
}
。鰋id FindStu(struct student stu[])
。
system("cls");
int i=0,id,flag=1,chose;
。餽intf("\nPlease select query:
。、No、 inquiries by school;2、Query by class;3、Query by name\n"); scanf("%d",&chose); switch(chose){ case 1:
printf(”Please enter your query No、 students:”); scanf("%d”,&id); for(i=0;i<input;i++) {
。椋 (stu[i]、num==id)
{
flag=0; stu[i]、sum=stu[i]、score1+stu[i]、score2+stu[i]、score3; stu[i]、ave=stu[i]、sum/3; printf(”\nNo、 Studies\ Name\ No、 classes\ The first subjec\
The second subject\ The third subject\Average \Total\n"); void InsertStu(struct student stu[ ])
{
system(”cls”); int flag=1;
pp=stu;
。閚t i,id; if((fp=fopen("insertdata、sys”,”wb+”))==NULL)
{
printf("Cannot open
any key exit!”); getch();
exit(1);
}
void ListStu(struct student stu[])
{
int i=0; for(i=0;i〈input;i++)
{
stu[i]、sum=stu[i]、score1+stu[i]、score2+stu[i]、score3; stu[i]、ave=stu[i]、sum/3;} printf("\nNo、 Studies\ Name\ No、 classes\ The first subjec\
。詇e second subject\ The third subject\Average \Total\n”); for(i=0;i<input;i++)
。鹥rintf("\n %d %s %d \t%d \t%d \t%d
\t%d
%d”,stu[i]、num,stu[i]、name,stu[i]、classid,stu[i]、score1,stu[i]、score2,stu[i]、score3,stu[i]、ave, stu[i]、sum);
}
。鏴tch();
。 void DelStu(struct student stu[])
。
。髖stem(”cls"); pp=stu;
int delnum,flag=1;
char ask;
。椋顃 i,j; if((fp=fopen("Deldata、sys","wb+"))==NULL)
{
printf("Cannot open
。醤y key exit!”); getch();
exit(1);
} void SortStu(struct student stu[])
{
system("cls"); int i,j,chose;
struct student temp; printf(”To sort the data before:\n”); printf("\nNo、 Studies\ Name\ No、 classes\ The first subjec\
。裕鑕 second subject\ The third subject\Average \Total\n"); for(i=0;i<input;i++) {printf(”\n %d
%s
%d
。ィ鋅t %d\t
%d\t %d\t %d\n",stu[i]、num,stu[i]、name,stu[i]、classid,stu[i]、score1,stu[i]、score2,stu[i]、score3,stu[i]、ave,stu[i]、sum);
} printf("\n1、Sort by Student ID\t2、By the average score (high → low) Sort\n");
void Save(struct student stu[])
{
。閚t i,j;
pp=stu;
system(”cls"); printf(”\n\n\n\n\t\t\tSaving"); if((fp=fopen(”stu_list2、doc”,”wb+"))==NULL)
{
printf("Cannot open
any key exit!"); getch();
exit(1); }
【2】程序執(zhí)行結(jié)果
【3】結(jié)果得討論:系統(tǒng)最后將修改過后得學(xué)生信息保存了下來 5 5 、 調(diào)試情況
三科成績(jī)、平均分、總分不能用 float定義應(yīng)改為 int
定義應(yīng)在函數(shù)得最前端
文件未定義
這就是建立學(xué)生信息文件
添加學(xué)生信息并計(jì)算平均分與總分
找不到要?jiǎng)h除得學(xué)生信息
刪除了學(xué)號(hào)為 12 得學(xué)生信息
修改學(xué)生信息
新學(xué)生信息記錄
保存信息后退出程序 6 6 、結(jié)論
(1)能夠通過編譯時(shí)出現(xiàn)得出錯(cuò)提示信息,進(jìn)行初步得糾錯(cuò)。
(2)完成一個(gè)程序得一般步驟為設(shè)計(jì),錄入 ,編譯 ,如果出錯(cuò),則修改,然后再編譯,編譯成功后,瞧瞧結(jié)果就是否正確,如果結(jié)果不正確,則再重復(fù)以上步驟。
。3)從這次編程序得過程中,我學(xué)到了編程所必須具備得專業(yè)技能,更領(lǐng)會(huì)編譯程序所需要得細(xì)心與耐心。
相關(guān)熱詞搜索:學(xué)生 信息管理系統(tǒng) 編寫
熱點(diǎn)文章閱讀