急求C语言程序
void main()
{
int a[40];
a[0]=a[1]=1;
int i;
for(i=2;i<40;i++)
a[i]=a[i-1]+a[i-2];
printf("数列中第40项的值是:%d
",a[39]);
for(i=0;i,40;i++)
printf("%d,",a[i]);
}
#include "stdio.h"void main(){int score,grade;printf("输入成绩:");scanf("%d",&score);if(score>100||score=0)//1{if(x>amax)amax=x;if(x<amin)amin=x;//2scanf(“%f”,&x);}printf(“
amax=%f
amin=%f
”,amax,amin);}
学
生
成
绩
管
理
系
统
班级:计算机06-1
辅导老师:郭春光
设计人:张珊珊 肖朋丽 姚约汉
时间:2007年6月16日
一. 需求分析
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本低等.这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化,正规化管理,与世界接轨的重要条件.因此,开发这样的一套成绩管理系统成为很有必要的事情.
开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平.为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自动化.现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素.在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替.一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息,高效,安全,学生在能方便的查看自己的成绩.
二. 系统功能分析
学生成绩管理系统的功能需求分析 :学生成绩管理系统主要提供学生资料的输入,学生资料的输出,学生资料的查询,学生资料删除,以及学生成绩的排序等.编程的体会心得:通过这次对学生成绩管理系统的编写,使我对现在所学的东西和以前所学的东西有了同一的了解,综合的运用,使我从中学到了很多很多......
整个管理系统的框架是这样的:先定义一个结构,再定义一个类,其中类中包含输入成员函数,输出成员函数,查找成员函数,排序成员函数,删除成员函数以及检查函数。主界面在主程序中输出。然后根据使用者输入的需要使用的模块所对应的(1-6)数字,而由主函数调用相对应的函数,完成使用者的需要,并且在主程序的开头还有对当前系统时间和日期的显示。
该程序共由六个模块构成,分别是:输入模块,输出模块,查找模块,删除模块,排序模块,退出模块。各模块的功能如下:
输入模块:该模块用于接收用户输入的学生信息。
输出模块:该模块用于输出用户输入的学生信息。
查找模块:按照用户输入的学号进行查找相对应的学生信息,如果找到便显示该生信息;否则,显示未找到。
删除模块:按照用户输入的学号进行查找相对应的学生信息,如果找到便显示该生信息并询问是否删除该信息,如果选择“是”就彻底删除该生信息;否则显示“未删除”,如果查找不到显示“未找到”。
排序模块:按照总分进行从大到小的排序并显示排序后的学生信息。
退出模块:退出该程序。
三.系统功能模块图
四.各模块流程图
1.输入模块
2.输出模块
3.查找模块
4.删除模块
5.排序模块
6.退出模块
五.程序代码
#include<iostream.h>
#include<string.h>
#include<iomanip.h>
#include<ctime>
#include<conio.h>
#include<iostream>
struct student //定义一个学生结构体
{
char name[8];
int num;
char add[20];
int GS,YY,JSJ,SUM;
};
int s=0;
class student1 //定义一个学生类
{
private:
student stu[40];
char name,add;
int num;
int GS,YY,JSJ,SUM;
public:
void sr(char *,int,char *,int,int,int);
void print(int);
int jc(int xxh)
{
int m=0;
while(m<=s+1)
if(xxh==stu[m++].num)
break;
if(m>s+1)
return 0;
else
return 1;
}
void cz(int);
void sc(int);
void sum(int);
};
void student1::sr(char *xm,int xh,char *dz,int gs,int yy,int jsj) //输入模块
{
strcpy(stu[s].name,xm);
stu[s].num=xh;
strcpy(stu[s].add,dz);
stu[s].GS=gs;
stu[s].YY=yy;
stu[s].JSJ=jsj;
}
void student1::print(int s) //输出模块
{
cout<<s<<"\t";
cout<<stu[s].name<<"\t";
cout<<stu[s].num<<"\t";
cout<<stu[s].add<<"\t";
cout<<stu[s].GS<<"\t";
cout<<stu[s].YY<<"\t";
cout<<stu[s].JSJ<<"\t";
cout<<endl;
}
void student1::cz(int s) //查找模块
{
int xxh,p;
while(s==0)
{
cout<<"没有记录,请先输入记录!"<<endl;
break;
}
if(s!=0)
{cout<<"请输入您要查找的学号:";
cin>>xxh;
while (xxh<100000||xxh>999999) //判断输入的学号是否正确
{
cout<<"您输入的学号不正确,请输入一个六位数的学号"<<endl;
cin>>xxh;
}
while(s!=0) //查找是否有符合条件的记录
{
p=1;
if (xxh==stu[s].num)
{
cout<<"姓名\t学号\t地址\t高数\t英语\t计算机"<<endl;
cout<<stu[s].name<<"\t";
cout<<stu[s].num<<"\t";
cout<<stu[s].add<<"\t";
cout<<stu[s].GS<<"\t";
cout<<stu[s].YY<<"\t";
cout<<stu[s].JSJ<<endl;
getch();
break;
}
else
p=0;
s--;
}
if(p==0)
cout<<"很抱歉,没有找到您要查找的学号!"<<endl;}
getch();
}
void student1::sc(int n) //删除模块
{
int xxh,p;
char da;
while(s==0)
{
cout<<"没有记录,请先输入记录!"<<endl;
break;
}
if(s!=0)
{
cout<<"请输入您要删除的学号:";
cin>>xxh;
while (xxh<100000||xxh>999999)
{
cout<<"您输入的学号不正确,请您输入一个六位数的学号" <<endl;
cin>>xxh;
}
for(int i=1;i<=n;i++)
{
if(stu[i].num!=xxh)
p=0;
if(stu[i].num==xxh)
{
cout<<"姓名\t学号\t地址\t高数\t英语\t计算机"<<endl;
cout<<stu[i].name
#include <stdio.h>
#include <malloc.h>
#include <string.h>
typedef struct stuent{
unsigned int number ;
char name[20];
int phyNum,ariNum,forNum,comNum;
struct stuent *next;
} stu;
void init();
void inputData();
void deleteData();
void updateData();
void displayData();
void statData();
void sort();
void find();
void display(stu *);
void swap(stu *,stu *);
stu *h;
int main(){
int controlNum;
init();
while(1){
printf(" ***************************\n");
printf(" 1:输入 2:修改 3:删除 4:显示\n 5:统计 6:排序 7:查询 0:退出\n");
printf(" ***************************\n");
scanf("%d",&controlNum);
fflush(stdin);
switch(controlNum){
case 1: inputData();break;
case 2: updateData();break;
case 3: deleteData();break;
case 4: displayData();break;
case 5: statData();break;
case 6: sort();break;
case 7: find();break;
case 0: return 0;
default:;
}
}
return 0;
}
void init(){
h=(stu *)malloc(sizeof(stu));
h->number = 0;
h->next = NULL;
}
void inputData(){
stu *tail=h;
stu *newnode;
while(tail->next) tail = tail->next ;
newnode=(stu*)malloc(sizeof(stu));
tail->next=newnode;
tail = newnode;
printf("input number and name:for example 9527,yuqiang\n");
scanf("%u,%s",&(tail->number),&(tail->name));
printf("input mark:for example 100,100,100,100\n");
scanf("%d,%d,%d,%d",&(tail->phyNum),&(tail->ariNum),&(tail->forNum),&(tail->comNum));
fflush(stdin);
tail->next = NULL;/*先用tail指向尾部节点,然后再赋值*/
}
void updateData(){
unsigned int tempnumber;
stu *p = h;
printf("输入欲修改的学生学号\n");
scanf("%u",&tempnumber);
while(p->number!=tempnumber&&p->next!=NULL){
p=p->next;
printf("test");
}
if(p->number!=tempnumber) {
printf("没有这个学生\n");
return;
}else{
printf("input number and name:for example 9527,yuqiang\n");
scanf("%u,%s",&(p->number),&(p->name));
printf("input mark:for example 100,100,100,100\n");
scanf("%d,%d,%d,%d",&(p->phyNum),&(p->ariNum),&(p->forNum),&(p->comNum));
fflush(stdin);
}
}
void deleteData(){
unsigned int tempnumber;
stu *p = h;
stu *q = h;
printf("输入欲删除的学生学号\n");
scanf("%u",&tempnumber);
while(p->number!=tempnumber&&p->next!=NULL){
p=p->next;
}
if(p->number!=tempnumber) {
printf("没有这个学生\n");
return;
}else{
while(q->next!=p) q=q->next;
q->next=p->next;
free(p);
}
}
void displayData(){
stu *p = h->next;
while(p!=NULL){
display(p);
p=p->next;
}
}
void statData(){
}
void sort(){
stu *p = h->next;
stu *q = NULL;
if(p!=NULL&&p->next!=NULL) q = p->next;
else return;
while(p!=NULL){
while(q!=NULL){
if(p->number>q->number) swap(p,q);
q=q->next;
}
p=p->next;
if(p!=NULL) q=p->next;
}
}
void find(){
unsigned int tempnumber;
stu *p = h;
printf("输入欲查询的学生学号\n");
scanf("%u",&tempnumber);
while(p->number!=tempnumber&&p->next!=NULL){
p=p->next;
}
if(p->number!=tempnumber) {
printf("没有这个学生\n");
return;
}else display(p);
}
void display(stu *p){
printf("\n %u,%s,%d,%d,%d,%d\n",p->number,p->name,p->phyNum,p->ariNum,p->forNum,p->comNum);
}
void swap(stu *p,stu*q){
unsigned int tempnumber ;
char tempname[20];
int temp;
tempnumber = p->number;
p->number = q->number;
q->number = tempnumber;
temp = p->phyNum;
p->phyNum = q->phyNum;
q->phyNum = temp;
temp = p->ariNum;
p->ariNum = q->ariNum;
q->ariNum = temp;
temp = p->forNum;
p->forNum = q->forNum;
q->forNum = temp;
temp = p->comNum;
p->comNum = q->comNum;
q->comNum = temp;
strcpy(tempname,p->name);
strcpy(p->name,q->name);
strcpy(q->name,tempname);
}
就剩一个统计模块没写,修改了一些bug,
估计能够80分了。
如何用C语言编写一个程序,求前20项和?
1、首先打开C语言软件,在主函数main中,声明定义一个长度为20个元素的数组,并且给第0个第1个元素赋值为1。2、然后利用for循环来完成对前20项的和,如下图所示。3、并将结果输出,执行程序,如下图所示。4、执行程序,结果如下图所示,这样就完成了。
求C语言 程序
include <stdio.h>double dis(int x1, int y1, int z1, int x2, int y2, int z2){ double s=0; int t; t=abs(x1-x2); s+=t*t; t=abs(y1-y2); s+=t*t; t=abs(z1-z2); s+=t*t; return sqrt(s);}int main(){ int x1,y1,z1...
这个方程在C语言中怎样编写,求这个方程的程序代码?
按照题目要求编写的计算方程的值的C语言程序如下 include<stdio.h> int main(){ double x=5,y;y=5*x*x+4*x-6;printf("%lf\\n",y);return 0;}
【C语言程序设计】C语言求最大公约数(详解版)!
在C语言程序设计中,要解决的问题是找到任意两个正整数的最大公约数(GCD)。这个概念基于约数的定义,即一个数的约数不会大于它本身,而几个数的最大公约数不会大于其中的任何一个数。求最大公约数的目标是找到一个既能同时整除这两个数,且是最小的这样的自然数。有两种算法设计方法:穷举法和从...
求一c语言程序:输入一批正整数(以0或负数为结束标志)求其中偶数的...
include<stdio.h> int main(){ int n,sum=0;printf("请输入一列整数:");scanf("%d",&n);while(n>0){ if(n%2==0)sum=sum+n;scanf("%d",&n);} printf("这列整数中偶数和为:%d\\n",sum);return 0;}
用C语言编写一个计算最大值的程序
C程序代码如下:解析:1、首先定义a,b,c,max四个整型变量,并输入a,b,c三个数;2、定义最大值为a,if循环体还是对b和c进行循环;3、根据循环体判断最大的值,最后输出结果。
求解一道C语言程序题~~
p[0]=&s1[0];p[1]=&s1[1];可得到*(p+1)指向s1[1](即 "IJK","LMN")。又因为 ++ (*(p+1))->s意思是指向字符串 "IJK" 的指针自增1,所以打印值为 JK 2)第二个printf的打印值:有 struct str2 { struct str1 sr;int d;}s2={"OPQ","RST",0}; 和 s2.sr.c[2] ...
求解程序...(C语言)
1.输出结果 5.5 2.这就是计算的式子:s+=1.0\/i;3.那个return s,就是返回计算结果
求一个C语言程序。
include<stdio.h> double f (double a, double b, double c, double d, double x){ return a * x * x * x + b * x * x + c * x + d;} void main(){ double a, b, c, d, x;while(1){ printf("输入a:");scanf("%lf",&a);printf("输入b:");scanf("%lf",&...
C语言,求过程?
答案是;A include <stdio.h> include<string.h>\/\/这是strcat头文件 int main(){ char ss[10]="12345";strcat(ss,"6789");\/*这是字符串拼接函数,把“6789”接到“12345”后面;但是这个语句在gets();上面,gets()输入的字符串不会执行拼接函数的指令;这是程序的顺序结构;*\/ gets(...
歧振广东: #include<stdio.h> void main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a; if(max<b) max=b; if(max<c) max=c; printf("max=%d\n",max); }
蓝田县19855587006: 急求一个c语言程序 - ?
歧振广东: #include<stdio.h>#include<stdlib.h> main(){ int a,b,c; for(a=1;a<=4;a++) for(b=1;b<=4;b++) for(c=1;c<=4;c++){ if(a!=b&&b!=c) printf("%d",a*100+b*10+c); printf("\n");} system("pause"); }这个是我刚刚运行过的试试吧
蓝田县19855587006: 急求c语言程序?
歧振广东: 推荐一个C语言编辑程序 Turbo c for windows 或者Turbo C 注意:这是两个不同的软件
蓝田县19855587006: 急求 C语言程序 1+1/3+1/5+1/7+1/9+1/11...1/100 详细步骤 谢谢!!! - ?
歧振广东: 简单程序如下:#include int main(){ double sum = 0; int i; for (i = 1; i...
蓝田县19855587006: 急求 用c语言编写一个程序, - ?
歧振广东: void main() { int iSum1 = 0; int iSum2 = 0; int iSum3 = 0; int i=1; for(i=1; i<=10; i++) { 1653if(i%2 == 0) { iSum2 += i; } else { iSum1 += i; } if(i>5) { iSum3 += i; } } printf("奇数和内:%d,偶数和:%d,大于5的数之容和:%d", iSum1, iSum2, iSum3); }
蓝田县19855587006: 求一个C语言程序!!急 - ?
歧振广东: #include /*引用库函数*/ #include #include #include typedef struct /*定义结构体数组*/ { char num[10]; &#...
蓝田县19855587006: 急求一个C语言程序,各位帮忙想想啊,很简单的,但是本人太笨了不会,先谢谢大家了啊?
歧振广东: c++写的 你自己改下就是C了 #include<iostream.h> void main() { float crose[10]; float *p; p=crose; int i; float Sun=0; for(i=0;i<10;i++) { cin>>p[i]; Sun+=p[i]; } for(int m=0;m<9;m++) { int j=m; for(int l=m+1;l<10;l++)if(p[l]<p[j])j=l; if(j>0) { float k=p[j]; p[j]=p[...
蓝田县19855587006: 急求C语言代码.5点前有效. - ?
歧振广东: #include #include //定义单链表结构类型typedef struct linknode{ int num; char name[10]; struct linknode *n...
蓝田县19855587006: 急求c语言程序代码! - ?
歧振广东: 写法一:#include"stdio.h"main(){ int a[5]={8,5,6,1,4}; int i,j,t; printf("由小到大的顺序为:"); for(i=0;i<5;i++) for(j=i;j<5;j++) if(a[i]>a[j]) { ...
蓝田县19855587006: 求C语言程式,急急急!?
歧振广东: #include<stdio.h> void main() {int n[5]={23,5,9,3,); int i,j,a; for(i=0,i<4;i++) for(j=i+1;j<5;j++) if(n[i]>n[j]) {a=n[i],n[i]=n[j],n[j]=a;} printf("%d",n); }