PDA

نسخه کامل مشاهده نسخه کامل : راهنمایی برای پروژه صدور کارنامه



frontlines
15-05-2012, 12:58
سلام،از دوستان اگه کسی این پروژه رو بتونه بنویسه خیلی ممنون میشم. اگه با استراکچر باشه خیلی بهتره.
می خواهیم برای تعدادی دانشجو کارنامه صادر نماییم.
برای هر دانشجو ابتدا اطلاعاتی به فرم زیر بخواند:
1-شماره دانشجویی،نام،نام خانوادگی،شماره ترم. اگر شماره دانشجو 0 باشد ، پایان برنامه.
سپس برای هر دانشجو تعدادی درس با اطلاعات زیر از ورودی بخواند:
شماره درس، گروه درس، واحد درس،نمره
اگر شماره درس 0 باشد پایان ورود اطلاعات مربوط به دروس یک ترم دانشجو، سپس کارنامه ای به فرم زیر در خروجی بنویسد:
شماره دانشجو،نام و نام خانوادگی،شماره ترم
ردیف،شماره درس،نام درس،گروه درس واحد،نمره

در پایان : تعداد واحد اخذ شده ، تعداد واحد قبولی،معدل ترم
در صورتی که دانشجو مشروط شده باشد پیغامی چاپ کند.
بازم ممنون

ttsh
16-05-2012, 10:26
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAX 100
struct student {
char name[10] ;
float mead ;
int unit ;
int number ;
int stno;
} st_info[MAX] ;
void init_list(void), enter(void);
void del_rec(void), list(void);
void list1(), list2();
void print(int *, int), title(int *);
int menu_select(void);
int find_free(void) ;
int main(void)
{
char choice ;
init_list() ;
for(;;){
choice = menu_select() ;
switch(choice) {
case 1: enter(); break;
case 2: del_rec(); break ;
case 3: list(); break;
case 4: list1(); break ;
case 5: list2(); break ;
case 6: exit(0) ;
} // end of switch
}//end of for
}
//*********************
void init_list(void)
{
register int t ;
for(t = 0; t < MAX; ++t)
st_info[t].name[0] = '\0' ;
}
//*********************
int menu_select(void)
{
char s[10];
int c ;
clrscr() ;
gotoxy(29, 3) ;
printf("1) << enter a student >>");
gotoxy(29, 5) ;
printf("2) << delete a student >>");
gotoxy(29, 7) ;
printf("3) << list the array >>");
gotoxy(29, 9) ;
printf("4) << list for probation >>");
gotoxy(29, 11) ;
printf("5) << list for exelent >>");
gotoxy(29, 13) ;
printf("6) << Quit >>");
do {
gotoxy(27, 15) ;
printf(" Please enter your choice(1-6): ") ;
gets(s);
c = atoi(s);
} while(c < 0 || c > 6) ;
return (c) ;
}
//*********************
void enter(void)
{
float grade, sumgrade = 0;
int slot, j, unit1, sumunit = 0 ;
slot = find_free() ;
if(slot == -1){
printf("\n list full. press a key to continue...");
getch();
return ;
}
gotoxy(5, 17) ;
printf("enter name:") ;
gets(st_info[slot].name) ;
gotoxy(5, 18) ;
printf("enter stno:") ;
scanf("%d", &st_info[slot].stno) ;
gotoxy(5, 19) ;
printf("enter number of course:") ;
scanf("%d", &st_info[slot].number) ;
for(j = 1; j <= st_info[slot].number; j++) {
gotoxy(40, 17) ;
printf(" ");
gotoxy(40, 17) ;
printf("enter grade number %d:",j);
scanf("%f", &grade) ;
gotoxy(40, 19) ;
printf(" ");
gotoxy(40,19) ;
printf("enter unit of grade %d:", j);
scanf("%d", &unit1) ;
sumgrade += grade * unit1 ;
sumunit += unit1 ;
} //end of for
st_info[slot].mead = sumgrade / sumunit ;
st_info[slot].unit = sumunit;
}
//*********************
int find_free(void)
{
register int t ;
for(t = 0; st_info[t].name[0] && t < MAX ; ++t);
if(t == MAX) return -1 ;
return t ;
}
//*********************
void del_rec(void)
{
int slot ;
gotoxy(28, 19) ;
printf("enter record #(0 - 99):") ;
scanf("%d", &slot) ;
if(slot >= 0 && slot < MAX)
st_info[slot].name[0]='\0' ;
}
//*********************
void list(void)
{
int t, r = 0;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t)
if(st_info[t].name[0])
print(&r, t);
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void list1(void)
{
int t, r = 0 ;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t){
if(st_info[t].name[0] && st_info[t].mead < 12)
print(&r, t) ;
}//end of for
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void list2(void)
{
int t, r=0 ;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t){
if(st_info[t].name[0] && st_info[t].mead >= 17)
print(&r, t) ;
}// end of for
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void title(int *r)
{
*r = 2;
gotoxy(25, *r) ;
printf(" << information in list are: >>");
gotoxy(13, *r + 1) ;
printf("*************************");
printf("************************************");
gotoxy(10, *r + 2);
printf(" name mead ");
printf(" unit number stno ");
gotoxy(10, *r + 3);
printf(" ________ ________ ");
printf(" ______ ______ ____ ");
*r = 6;
}
//*********************
void print(int *r, int t)
{
gotoxy(14, *r) ;
printf("%s ", st_info[t].name) ;
gotoxy(26, *r) ;
printf("%.2f ", st_info[t].mead) ;
gotoxy(40, *r) ;
printf("%d ", st_info[t].unit) ;
gotoxy(54, *r) ;
printf("%d ", st_info[t].number) ;
gotoxy(70, *r) ;
printf("%u ", st_info[t].stno) ;
(*r) ++ ;
}

سلام این برنامه نام و شماره دانشجویی و نمره و ... رو میگیره امکان حذف و ویرایش هم داره.

ttsh
16-05-2012, 10:27
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAX 100
struct student {
char name[10] ;
float mead ;
int unit ;
int number ;
int stno;
} st_info[MAX] ;
void init_list(void), enter(void);
void del_rec(void), list(void);
void list1(), list2();
void print(int *, int), title(int *);
int menu_select(void);
int find_free(void) ;
int main(void)
{
char choice ;
init_list() ;
for(;;){
choice = menu_select() ;
switch(choice) {
case 1: enter(); break;
case 2: del_rec(); break ;
case 3: list(); break;
case 4: list1(); break ;
case 5: list2(); break ;
case 6: exit(0) ;
} // end of switch
}//end of for
}
//*********************
void init_list(void)
{
register int t ;
for(t = 0; t < MAX; ++t)
st_info[t].name[0] = '\0' ;
}
//*********************
int menu_select(void)
{
char s[10];
int c ;
clrscr() ;
gotoxy(29, 3) ;
printf("1) << enter a student >>");
gotoxy(29, 5) ;
printf("2) << delete a student >>");
gotoxy(29, 7) ;
printf("3) << list the array >>");
gotoxy(29, 9) ;
printf("4) << list for probation >>");
gotoxy(29, 11) ;
printf("5) << list for exelent >>");
gotoxy(29, 13) ;
printf("6) << Quit >>");
do {
gotoxy(27, 15) ;
printf(" Please enter your choice(1-6): ") ;
gets(s);
c = atoi(s);
} while(c < 0 || c > 6) ;
return (c) ;
}
//*********************
void enter(void)
{
float grade, sumgrade = 0;
int slot, j, unit1, sumunit = 0 ;
slot = find_free() ;
if(slot == -1){
printf("\n list full. press a key to continue...");
getch();
return ;
}
gotoxy(5, 17) ;
printf("enter name:") ;
gets(st_info[slot].name) ;
gotoxy(5, 18) ;
printf("enter stno:") ;
scanf("%d", &st_info[slot].stno) ;
gotoxy(5, 19) ;
printf("enter number of course:") ;
scanf("%d", &st_info[slot].number) ;
for(j = 1; j <= st_info[slot].number; j++) {
gotoxy(40, 17) ;
printf(" ");
gotoxy(40, 17) ;
printf("enter grade number %d:",j);
scanf("%f", &grade) ;
gotoxy(40, 19) ;
printf(" ");
gotoxy(40,19) ;
printf("enter unit of grade %d:", j);
scanf("%d", &unit1) ;
sumgrade += grade * unit1 ;
sumunit += unit1 ;
} //end of for
st_info[slot].mead = sumgrade / sumunit ;
st_info[slot].unit = sumunit;
}
//*********************
int find_free(void)
{
register int t ;
for(t = 0; st_info[t].name[0] && t < MAX ; ++t);
if(t == MAX) return -1 ;
return t ;
}
//*********************
void del_rec(void)
{
int slot ;
gotoxy(28, 19) ;
printf("enter record #(0 - 99):") ;
scanf("%d", &slot) ;
if(slot >= 0 && slot < MAX)
st_info[slot].name[0]='\0' ;
}
//*********************
void list(void)
{
int t, r = 0;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t)
if(st_info[t].name[0])
print(&r, t);
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void list1(void)
{
int t, r = 0 ;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t){
if(st_info[t].name[0] && st_info[t].mead < 12)
print(&r, t) ;
}//end of for
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void list2(void)
{
int t, r=0 ;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t){
if(st_info[t].name[0] && st_info[t].mead >= 17)
print(&r, t) ;
}// end of for
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void title(int *r)
{
*r = 2;
gotoxy(25, *r) ;
printf(" << information in list are: >>");
gotoxy(13, *r + 1) ;
printf("*************************");
printf("************************************");
gotoxy(10, *r + 2);
printf(" name mead ");
printf(" unit number stno ");
gotoxy(10, *r + 3);
printf(" ________ ________ ");
printf(" ______ ______ ____ ");
*r = 6;
}
//*********************
void print(int *r, int t)
{
gotoxy(14, *r) ;
printf("%s ", st_info[t].name) ;
gotoxy(26, *r) ;
printf("%.2f ", st_info[t].mead) ;
gotoxy(40, *r) ;
printf("%d ", st_info[t].unit) ;
gotoxy(54, *r) ;
printf("%d ", st_info[t].number) ;
gotoxy(70, *r) ;
printf("%u ", st_info[t].stno) ;
(*r) ++ ;
}

سلام ! این برنامه نمره و نام و شماره و ... رو میگیره امکان ویرایش هم داره

frontlines
17-05-2012, 21:21
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAX 100
struct student {
char name[10] ;
float mead ;
int unit ;
int number ;
int stno;
} st_info[MAX] ;
void init_list(void), enter(void);
void del_rec(void), list(void);
void list1(), list2();
void print(int *, int), title(int *);
int menu_select(void);
int find_free(void) ;
int main(void)
{
char choice ;
init_list() ;
for(;;){
choice = menu_select() ;
switch(choice) {
case 1: enter(); break;
case 2: del_rec(); break ;
case 3: list(); break;
case 4: list1(); break ;
case 5: list2(); break ;
case 6: exit(0) ;
} // end of switch
}//end of for
}
//*********************
void init_list(void)
{
register int t ;
for(t = 0; t < MAX; ++t)
st_info[t].name[0] = '\0' ;
}
//*********************
int menu_select(void)
{
char s[10];
int c ;
clrscr() ;
gotoxy(29, 3) ;
printf("1) << enter a student >>");
gotoxy(29, 5) ;
printf("2) << delete a student >>");
gotoxy(29, 7) ;
printf("3) << list the array >>");
gotoxy(29, 9) ;
printf("4) << list for probation >>");
gotoxy(29, 11) ;
printf("5) << list for exelent >>");
gotoxy(29, 13) ;
printf("6) << Quit >>");
do {
gotoxy(27, 15) ;
printf(" Please enter your choice(1-6): ") ;
gets(s);
c = atoi(s);
} while(c < 0 || c > 6) ;
return (c) ;
}
//*********************
void enter(void)
{
float grade, sumgrade = 0;
int slot, j, unit1, sumunit = 0 ;
slot = find_free() ;
if(slot == -1){
printf("\n list full. press a key to continue...");
getch();
return ;
}
gotoxy(5, 17) ;
printf("enter name:") ;
gets(st_info[slot].name) ;
gotoxy(5, 18) ;
printf("enter stno:") ;
scanf("%d", &st_info[slot].stno) ;
gotoxy(5, 19) ;
printf("enter number of course:") ;
scanf("%d", &st_info[slot].number) ;
for(j = 1; j <= st_info[slot].number; j++) {
gotoxy(40, 17) ;
printf(" ");
gotoxy(40, 17) ;
printf("enter grade number %d:",j);
scanf("%f", &grade) ;
gotoxy(40, 19) ;
printf(" ");
gotoxy(40,19) ;
printf("enter unit of grade %d:", j);
scanf("%d", &unit1) ;
sumgrade += grade * unit1 ;
sumunit += unit1 ;
} //end of for
st_info[slot].mead = sumgrade / sumunit ;
st_info[slot].unit = sumunit;
}
//*********************
int find_free(void)
{
register int t ;
for(t = 0; st_info[t].name[0] && t < MAX ; ++t);
if(t == MAX) return -1 ;
return t ;
}
//*********************
void del_rec(void)
{
int slot ;
gotoxy(28, 19) ;
printf("enter record #(0 - 99):") ;
scanf("%d", &slot) ;
if(slot >= 0 && slot < MAX)
st_info[slot].name[0]='\0' ;
}
//*********************
void list(void)
{
int t, r = 0;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t)
if(st_info[t].name[0])
print(&r, t);
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void list1(void)
{
int t, r = 0 ;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t){
if(st_info[t].name[0] && st_info[t].mead < 12)
print(&r, t) ;
}//end of for
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void list2(void)
{
int t, r=0 ;
clrscr() ;
title(&r) ;
for(t = 0; t < MAX; ++t){
if(st_info[t].name[0] && st_info[t].mead >= 17)
print(&r, t) ;
}// end of for
gotoxy(13, r) ;
printf("******************************");
printf("*******************************") ;
gotoxy(27, r + 1) ;
printf("press any key to continue ") ;
getch();
}
//*********************
void title(int *r)
{
*r = 2;
gotoxy(25, *r) ;
printf(" << information in list are: >>");
gotoxy(13, *r + 1) ;
printf("*************************");
printf("************************************");
gotoxy(10, *r + 2);
printf(" name mead ");
printf(" unit number stno ");
gotoxy(10, *r + 3);
printf(" ________ ________ ");
printf(" ______ ______ ____ ");
*r = 6;
}
//*********************
void print(int *r, int t)
{
gotoxy(14, *r) ;
printf("%s ", st_info[t].name) ;
gotoxy(26, *r) ;
printf("%.2f ", st_info[t].mead) ;
gotoxy(40, *r) ;
printf("%d ", st_info[t].unit) ;
gotoxy(54, *r) ;
printf("%d ", st_info[t].number) ;
gotoxy(70, *r) ;
printf("%u ", st_info[t].stno) ;
(*r) ++ ;
}

سلام ! این برنامه نمره و نام و شماره و ... رو میگیره امکان ویرایش هم داره

اقا دمت گرم.