當前位置:首頁 » 考試成績 » 學生成績管理系統容易出現的問題和解決方法

學生成績管理系統容易出現的問題和解決方法

發布時間: 2020-12-22 02:38:30

A. C語言編簡單的學生成績管理系統有個bug,輸入成績的時候最後一個數學成績老是顯示4198786不能賦值進去

//姓名,學號,英語,語文,數學三種成績
#include<stdio.h>
#include<stdlib.h>
#definemaxnumber30
intstudent_number;
intcount1=0,count2=0,Operate1=3;
FILE*stream;
typedefstructstu{
intidnumber;
charname[20];
doubleEnglish_score;
doublechinese_score;
doublemath_score;
}Student;
//按學號排序

voidputout_one(Student*sp)
{
for(intj=0;j<10;j++)
printf("******");
printf(" ");
printf("%d%s%.1f%.1f%.1f ",(*sp).idnumber,(*sp).name,(*sp).English_score,(*sp).chinese_score,(*sp).math_score);
for(j=0;j<10;j++)
printf("******");
printf(" ");
}
voidputout_lot(Student*student)
{
for(inti=0;i<=Operate1;i++)
{
for(intj=0;j<10;j++)
printf("******");
printf(" ");

printf("%d%s%.1f%.1f%.1f ",student[i].idnumber,student[i].name,student[i].English_score,student[i].chinese_score,student[i].math_score);
}
for(intj=0;j<10;j++)
printf("******");
printf(" ");
}
voidinput_student(Student*S)//輸入插入學生的信息
{
//printf("請輸入第%d位學生(學號,名字,語文,英語,數學) ",i+1);
scanf("%d",&(*S).idnumber);
scanf("%s",&(*S).name);
scanf("%lf%lf%lf",&(*S).chinese_score,&(*S).English_score,&(*S).math_score);
}
voidid_find_in(Student*S,Student*q)//把新的學生信息加入表單
{
Student*p=S,*t;
while(count1<Operate1+1)
{
t=p;
p++;
count1++;
}
*t=*q;
count1=0;
Operate1++;
}
voidinsert_element(Student*S)//插入學生信息
{
printf("請輸入1位學生(學號,名字,語文,英語,數學) ");
Student*temp=(Student*)malloc(sizeof(Student)),*q=S;
input_student(temp);
id_find_in(S,temp);
}
voiddelet_element(Student*S,intid_n)
{
Student*p=S,*t;
while(count1<Operate1)
{
if((*p).idnumber==id_n)
{
t=p;
printf("已刪除%d號學生信息 ",(*p).idnumber);
while(count2<Operate1-count1-1)
{
*(t-1)=*(++t);
count2++;
}
break;
}
count1++;
p++;
}
count1=0;
count2=0;
Operate1--;
}
intjunge(char*a,char*b)
{
char*p=a,*q=b;
while(*p!='')
{
if(*p==*q)
{
p++;
q++;

continue;
}
else
break;
}
if(*p==''&&*q=='')
return1;
else
return0;
}
voidshow_stu_element(Student*S,char*sp)//顯示某人信息(功能已實現)
{
Student*p=S;
while(count1<Operate1)
{
if(junge((*p).name,sp))
{
printf("已找到此人:%s ",(*p).name);
putout_one(p);
p=S;
break;
}
else
{
p++;
count1++;
continue;
}
}
if(p!=S)
printf("查無此人! ");
count1=0;
}
voidid_sort(Student*S)
{
Student*temp=(Student*)malloc(sizeof(Student)),*q=S,*t;
intnum=Operate1;
while(count1<Operate1)
{
t=q+1;
while(count2<num)
{
if((*q).idnumber>(*t).idnumber)
{
*temp=*q;
*q=*t;
*(t)=*temp;
//printf("%d ",(*t).idnumber);
}

count2++;
t++;

//t=t+sizeof(Student);//這樣無法實現why?
}
num--;
q++;
count2=0;
count1++;

//q=q+sizeof(Student);
}
count1=0;
count2=0;
}
voidcount_passnumber(Student*S)
{
Student*p=S;
inte_p_number=0,m_p_number=0,c_p_number=0,num=0;
while(num<=Operate1)
{
if(p->English_score>=60)
e_p_number++;
if(p->math_score>=60)
m_p_number++;
if(p->chinese_score>=60)
c_p_number++;
num++;
p++;
}
printf("/***學生總人數=:%d ",Operate1);
printf("/***英語過關人數=%d數學過關人數=%d語文過關人數=%d ",e_p_number,m_p_number,c_p_number);
printf("/***英語掛科人數=%d數學掛科人數=%d語文掛科人數=%d ",Operate1+1-e_p_number,Operate1+1-m_p_number,Operate1+1-c_p_number);//因為數組下標是從0開始的
}
voidmain()
{
Studentstudent[maxnumber];
stream=freopen("in.txt","r",stdin);
intOperate=3;inti;intid_n;
charstudent_element[20];
for(i=0;i<Operate1;i++)
{
printf("請輸入第%d位學生(學號,名字,語文,英語,數學) ",i+1);
scanf("%d",&student[i].idnumber);
scanf("%s",&student[i].name);
scanf("%lf%lf%lf",&student[i].chinese_score,&student[i].English_score,&student[i].math_score);
}
//fclose(stream);
for(i=0;Operate!=0;i++)
{
printf("輸入:0.退出。1.輸入學生信息2.按姓名查找並刪除學生信息 3.按學號排序4.查找顯示一位學生信息 5.顯示統計記錄(成員數、每科平均分)6.輸出每科及格人數和不及格人數7(default).操作完成,等待用戶輸入: ");
scanf("%d",&Operate);
switch(Operate)
{
case1:insert_element(student);break;
case2:scanf("%d",&id_n);delet_element(student,id_n);break;
case3:id_sort(student);break;
case4:scanf("%s",student_element);show_stu_element(student,student_element);break;
case5:putout_lot(student);break;
case6:count_passnumber(student);break;
default:printf("請輸入: ");continue;
}
if(Operate==0)
break;
}
}

B. 學生成績管理系統風險分析

6. 風險分析
6.1 信息系統面臨的主要風險
信息系統一般有技術性風險、工程性風險和環境性風險這三種類型。
同樣,我們所創建的學生成績管理信息系統也面臨著這幾方面的風險。
首先,是有關環境性風險,我們現在創建的學生成績管理信息系統要盡可能的全面,社會在不斷的發展,我們也要與時俱進。學生成績管理信息系統要囊括各個功能,我們要時刻的關注學校的發展,要大膽思考,將一些管理學生成績中可能要用到的編寫進去。
還有我們所開發的信息系統是否與社會的法律、政策、道德規范相沖突;組織管理是否實現科學化,編寫信息系統的程序員的文化知識素養有么有達到建設信息系統的需要;企業能否保證信息系統建設所需要的足夠資金。
有關工程性風險:工程組織是否規范、工程管理是否混亂、在工程中是否使用了不稱職的管理人員或工程技術人員。
有關技術性風險:信息系統是否安全,異常處理是否得當,信息系統開發所採用的理論、方法、技術、設備等技術性因素是否存在風險。
6.2 風險的處理策略
設備要從正規評價高的地方買,方法理論不能偏離實際異想天開,技術發面要考慮實際情況。要關注管理員程序員,根據他們的實際水平分配他們各自職務和任務。要綜合考慮資金發面的問題,不要一味的追求最好的 只要適當搭配就行。

系統層的安全問題來自網路內使用的操作系統。系統層的安全性問題表現在兩方面:系統預警防護;系統安全系統;系統安全配置;系統日誌審計;
應用層的安全考慮所採用的應用軟體和業務數據的安全性,包括資料庫軟體、web服務、電子郵件系統等常見應用系統及業務應用系統安全。此外,還包括病毒對系統的威脅。

C. 一個學習成績管理系統的問題!

在輸入數據之後加上一個循環: 加註釋的地方
cout<<"請輸入該學生【專fox】的成績:";
cin>>stud[n+i].fox;
while(stud[n+i].fox<0||stud[n+i].fox>100)///////////////////////
{
cout<<"成績應在1-100之間,請屬重新輸入:";
cin>>stud[n+i].fox;
}
cout<<"請輸入該學生【C++程序設計】的成績:";
cin>>stud[n+i].c_program;
while(stud[n+i].c_program<0||stud[n+i].c_program>100)//////////////
{
cout<<"成績應在1-100之間,請重新輸入:";
cin>>stud[n+i].c_program;
}
cout<<"請輸入該學生【大學英語】的成績:";
cin>>stud[n+i].english;
while(stud[n+i].english<0||stud[n+i].english>100)//////////////
{
cout<<"成績應在1-100之間,請重新輸入:";
cin>>stud[n+i].english;
}

D. c語言的一個學生成績管理系統。。。。 老是出錯,都要崩潰了。。。。 就這么多分了。。。

同學,你這個程序問題很多很多啊,一時半會還真不好改,而且建議你用指針,不要用數組。
而且上面的幾個幫你改的也是錯的,很明確的告訴你,首先while裡面沒有判斷,就是個死循環,
還有你的那個n根本就沒賦值

E. 一個c語言學生成績管理系統的程序錯誤問題,求大神改正。

程序什麼錯誤, (報錯信息),有沒有單步調試過?

F. 關於c語言學生成績管理系統的一個問題!!!!

可恢復刪除:把刪除部分放到一個特定的文件,若要恢復則 可以恢復
不可刪除恢復就直接刪除

G. 我在寫一個簡單的成績管理系統時遇到了問題,求助

同學,你是在做課設吧,這種事情建議還是自主完成吧。對自己編程能力的提升很有幫助的。雖然過程可能不是那麼順利,但是只要付出努力了,就會發現自己的能力有了質的飛躍了。

H. 我用C++ 6.0做了一個的學生成績管理系統遇到一些問題。。以下是步驟。

char name[20][50];
char sex[20][5];
...
scanf("%s",name[a]);
...
scanf("%s",sex[a]);

I. 用C程序設計學生成績管理系統時會遇見哪些問題

會遇到很多很多問題,其中,你這個問題就是一個大問題。
不過我還是說幾個,不知道專是不是你想了解的內屬容。
----人機交互部分----
c程序寫學生管理系統,一般是沒有窗口界面的。
一般輸入數據只能用鍵盤,不能用滑鼠。
----程序編寫部分----
使用鏈表作為存儲結構的程序,動態分配內存的時候容易寫錯
(struct A*)malloc(sizeof(struct A))注意前面的地址符,很容易忘寫。
程序輸入輸出的時候,格式符號容易出錯「%d」,「%s」,「%f」,「%x」等別搞混。
字元處理的時候,『/t』,'/n','/0'等轉義符容易用錯。
數組下標越界。
文件存儲讀取模式錯誤「w」,「r」,「b」,「r+」,「w+」等文件打開方式要分清。
等於號和復制符號要分清,[==]才是等於號,[=]是賦值符號,經常有這么寫的if(a=b)a++;
刪除鏈表的時候,記得要free,然後在清空指針。
作為暫時變數的結構體,程序結束時也一定要free掉。
暫時就想到這么多。

J. 學生成績管理系統 設計說明的一些問題

void find(struct student *arr) /*定義查找函數*/
{
int j;(局部變數,用於後面循環比較)
char name[9]; /*用於接收用戶輸入的學生姓名*/(字元串數組,接收姓名)
char number[10]; /*用於接收用戶輸入的學生學號*/(字元串數組,接收學號)
system("cls"); /*清屏函數*/(清屏,開始)
printf("\n請輸入要查找的學生資料:\n");
printf("\n學生姓名:");
scanf("%s",name);(輸入姓名)
printf("\n學生學號:");
scanf("%s",number);(輸入學號)
for(j=0;j<count;j++) /*使用字元串比較函數查找兵書出符合條件的學生成績*/
{
if((strcmp(name,arr[j].name)==0)&&(strcmp(number,arr[j].number)==0))
{
printf("\n\t姓名\t學號\t性別\t數學\t英語\t總分\n");
printf("\t%-6s\t%-4s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\n",
arr[j].name,arr[j].number,arr[j].sex,arr[j].math,arr[j].english,arr[j].math+arr[j].english);
break;
}
}
if(j>=count) /*如果沒找到,會從循環條件退出*/
printf("\n未找到該學生紀錄,請核對後重新查找!\n");
fflush(stdin); /*清空輸入緩沖區*/
printf("\n回車鍵返回上一功能菜單\n");
getchar();
}
後面的這個是一個順序查找的方法,用FOR循環來實現,通過strcmp這個字元串比較函數逐步比較姓名和學號,從1到count,這個count應該是前面定義的輸入的學生的總人數。

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919